Rogue Wave banner
Previous fileTop of DocumentContentsIndexNext file

{type}SymBandMat



Data Type and Member Function Indexes
(exclusive of constructors and destructors)

Synopsis

#include <rw/dsbndmat.h>         // DoubleSymBandMat
#include <rw/fsbndmat.h>         // FloatSymBandMat
#include <rw/csbndmat.h>         // DComplexSymBandMat

DoubleSymBandMat d;

Description

The classes {TYPE}SymBandMat encapsulate symmetric band matrices. A symmetric banded matrix is symmetric, and nonzero only near the diagonal. Specifically, if h is the half bandwidth, then any entries for which i-j>h or j-i>h are defined to be 0; in addition, an entry Aij = Aji.

Example

Storage Scheme

As an example of the storage scheme, consider the following 9 x 9 matrix with a half bandwidth of two:

The upper triangle is stored column by column. For convenience, there are some unused locations left in the vector of data. These are indicated as XXX in the following illustration of the storage vector:

[ XXX XXX A11 XXX A12 A22 A13 A23 A33 A24 A34 A44 A35 A45 A55
A46 A56 A66 A57 A67 A77 A68 A78 A88 A79 A89 A99 ]

The mapping between the array and storage vector is as follows:

Public Constructors

DoubleSymBandMat();
FloatSymBandMat();
DComplexSymBandMat();
DoubleSymBandMat(const DoubleSymBandMat& A);
FloatSymBandMat(const FloatSymBandMat& A);
DComplexSymBandMat(const DComplexSymBandMat& A);
DoubleSymBandMat(unsigned n, unsigned n, unsigned hb);
FloatSymBandMat(unsigned n, unsigned n, unsigned hb);
DComplexSymBandMat(unsigned n, unsigned n, unsigned hb);
DoubleSymBandMat(const RWMathVec<double>& vd, 
                 unsigned n, unsigned n, unsigned hb);
FloatSymBandMat(const RWMathVec<float>& vd, unsigned n,
                unsigned n, unsigned hb);
DComplexSymBandMat(const RWMathVec<DComplex>& vd, unsigned n, 
                   unsigned n, unsigned hb);
DComplexSymBandMat(const DoubleSymBandMat& re);
DComplexSymBandMat(const DoubleSymBandMat& re, 
                   const DoubleSymBandMat& im);
DoubleSymBandMat(const FloatSymBandMat&);

Public Member Functions

unsigned
FloatSymBandMat::bandwidth();
unsigned
DoubleSymBandMat::bandwidth();
unsigned
DComplexSymBandMat::bandwidth();
RWMathVec<float>
FloatSymBandMat::bcdiagonal(int j=0);
RWMathVec<double>
DoubleSymBandMat::bcdiagonal(int j=0);
RWMathVec<DComplex>
DComplexSymBandMat::bcdiagonal(int j=0);
ROFloatRef
FloatSymBandMat::bcref(int i, int j);
RODoubleRef
DoubleSymBandMat::bcref(int i, int j);
RODComplexRef
DComplexSymBandMat::bcref(int i, int j);
void
FloatSymBandMat::bcset(int i, int j, float x);
void
DoubleSymBandMat::bcset(int i, int j, double x);
void
DComplexSymBandMat::bcset(int i, int j, DComplex);
float
FloatSymBandMat::bcval(int i, int j);
double
DoubleSymBandMat::bcval(int i, int j);
DComplex
DComplexSymBandMat::bcval(int i, int j);
unsigned
FloatSymBandMat::binaryStoreSize();
unsigned
DoubleSymBandMat::binaryStoreSize();
unsigned
DComplexSymBandMat::binaryStoreSize();
unsigned
FloatSymBandMat::cols();
unsigned
DoubleSymBandMat::cols();
unsigned
DComplexSymBandMat::cols();
FloatSymBandMat
FloatSymBandMat::copy();
DoubleSymBandMat
DoubleSymBandMat::copy();
DComplexSymBandMat
DComplexSymBandMat::copy();
float*
FloatSymBandMat::data();
double*
DoubleSymBandMat::data();
DComplex*
DComplexSymBandMat::data();
RWMathVec<float>
FloatSymBandMat::dataVec();
RWMathVec<double>
DoubleSymBandMat::dataVec();
RWMathVec<DComplex>
DComplexSymBandMat::dataVec();
FloatSymBandMat
FloatSymBandMat::deepCopy();
DoubleSymBandMat
DoubleSymBandMat::deepCopy();
DComplexSymBandMat
DComplexSymBandMat::deepCopy();
void
FloatSymBandMat::deepenShallowCopy();
void
DoubleSymBandMat::deepenShallowCopy();
void
DComplexSymBandMat::deepenShallowCopy();
RWMathVec<float>
FloatSymBandMat::diagonal(int j=0);
RWMathVec<double>
DoubleSymBandMat::diagonal(int j=0);
RWMathVec<DComplex>
DComplexSymBandMat::diagonal(int j=0);
unsigned
FloatSymBandMat::halfBandwidth();
unsigned
DoubleSymBandMat::halfBandwidth();
unsigned
DComplexSymBandMat::halfBandwidth();
FloatSymBandMat
FloatSymBandMat::leadingSubmatrix(int k);
DoubleSymBandMat
DoubleSymBandMat::leadingSubmatrix(int k);
DComplexSymBandMat
DComplexSymBandMat::leadingSubmatrix(int k);
unsigned
FloatSymBandMat::lowerBandwidth();
unsigned
DoubleSymBandMat::lowerBandwidth();
unsigned
DComplexSymBandMat::lowerBandwidth();
void
FloatSymBandMat::printOn(ostream&);
void
DoubleSymBandMat::printOn(ostream&);
void
DComplexSymBandMat::printOn(ostream&);
ROFloatRef
FloatSymBandMat::ref(int i, int j);
RODoubleRef
DoubleSymBandMat::ref(int i, int j);
RODComplexRef
DComplexSymBandMat::ref(int i, int j);
FloatSymBandMat
FloatSymBandMat::reference(FloatSymBandMat&);
DoubleSymBandMat
DoubleSymBandMat::reference(DoubleSymBandMat&);
DComplexSymBandMat
DComplexSymBandMat::reference(DComplexSymBandMat&);
void 
DoubleSymBandMat::resize(unsigned n, unsigned n);
void 
FloatSymBandMat::resize(unsigned n, unsigned n);
void
DComplexSymBandMat::resize(unsigned n,unsigned n);
void 
DoubleSymBandMat::resize(unsigned n, unsigned n, unsigned hb);
void
FloatSymBandMat::resize(unsigned n, unsigned n, unsigned hb);
void
DComplexSymBandMat::resize(unsigned n,unsigned n, unsigned hb);
void
DoubleSymBandMat::restoreFrom(RWFile&);
void
FloatSymBandMat::restoreFrom(RWFile&);
void
DComplexSymBandMat::restoreFrom(RWFile&);
void
DoubleSymBandMat::restoreFrom(RWvistream&);
void
FloatSymBandMat::restoreFrom(RWvistream&);
void
DComplexSymBandMat::restoreFrom(RWvistream&);
unsigned
FloatSymBandMat::rows();
unsigned
DoubleSymBandMat::rows();
unsigned
DComplexSymBandMat::rows();
void
DoubleSymBandMat::saveOn(RWFile&);
void
FloatSymBandMat::saveOn(RWFile&);
void
DComplexSymBandMat::saveOn(RWFile&);
void
DoubleSymBandMat::saveOn(RWvostream&);
void
FloatSymBandMat::saveOn(RWvostream&);
void
DComplexSymBandMat::saveOn(RWvostream&);
void
FloatSymBandMat::scanFrom(istream&);
void
DoubleSymBandMat::scanFrom(istream&);
void
DComplexSymBandMat::scanFrom(istream&);
void
FloatSymBandMat::set(int i, int j, float x);
void
DoubleSymBandMat::set(int i, int j, double x);
void
DComplexSymBandMat::set(int i, int j, DComplex x);
unsigned
FloatSymBandMat::upperBandwidth();
unsigned
DoubleSymBandMat::upperBandwidth();
unsigned
DComplexSymBandMat::upperBandwidth();
float
FloatSymBandMat::val(int i, int j);
double
DoubleSymBandMat::val(int i, int j);
DComplex
DComplexSymBandMat::val(int i, int j);
FloatSymBandMat
FloatSymBandMat::zero();
DoubleSymBandMat
DoubleSymBandMat::zero();
DComplexSymBandMat
DComplexSymBandMat::zero();

Public Member Operators

RODoubleRef   FloatSymBandMat::operator()(int i, int j);
double        FloatSymBandMat::operator()(int i, int j) const;
ROFloatRef    DoubleSymBandMat::operator()(int i, int j);
float          DoubleSymBandMat::operator()(int i, int j) const;
RODComplexRef DComplexSymBandMat::operator()(int i, int j);
DComplex        DComplexSymBandMat::operator()(int i,int j) const;
DoubleSymBandMat&    operator=(const DoubleSymBandMat& A);
FloatSymBandMat&     operator=(const FloatSymBandMat& A);
DComplexSymBandMat&  operator=(const DComplexSymBandMat& A);
DoubleSymBandMat&    operator==(const DoubleSymBandMat& A);
FloatSymBandMat&     operator==(const FloatSymBandMat& A);
DComplexSymBandMat&  operator==(const DComplexSymBandMat& A);
DoubleSymBandMat&    operator!=(const DoubleSymBandMat& A);
FloatSymBandMat&     operator!=(const FloatSymBandMat& A);
DComplexSymBandMat&  operator!=(const DComplexSymBandMat& A);
DoubleSymBandMat&    operator*=(double x);
FloatSymBandMat&     operator*=(float x);
DComplexSymBandMat&  operator*=(DComplex x);
DoubleSymBandMat&    operator/=(double x);
FloatSymBandMat&     operator/=(float x);
DComplexSymBandMat&  operator/=(DComplex x);
DoubleSymBandMat&   operator+=(const DoubleSymBandMat& A);
FloatSymBandMat&    operator+=(const FloatSymBandMat& A);
DComplexSymBandMat& operator+=(const DComplexSymBandMat& A);
DoubleSymBandMat&   operator-=(const DoubleSymBandMat& A);
FloatSymBandMat&    operator-=(const FloatSymBandMat& A);
DComplexSymBandMat& operator-=(const DComplexSymBandMat& A);
DoubleSymBandMat&   operator*=(const DoubleSymBandMat& A);
FloatSymBandMat&    operator*=(const FloatSymBandMat& A);
DComplexSymBandMat& operator*=(const DComplexSymBandMat& A);
DoubleSymBandMat&   operator/=(const DoubleSymBandMat& A);
FloatSymBandMat&    operator/=(const FloatSymBandMat& A);
DComplexSymBandMat& operator/=(const DComplexSymBandMat& A);
DoubleSymBandMat    operator+(const DoubleSymBandMat&);
FloatSymBandMat     operator+(const FloatSymBandMat&);
DComplexSymBandMat  operator+(const DComplexSymBandMat&);
DoubleSymBandMat    operator-(const DoubleSymBandMat&);
FloatSymBandMat     operator-(const FloatSymBandMat&);
DComplexSymBandMat  operator-(const DComplexSymBandMat&);
DoubleSymBandMat    operator+(const DoubleSymBandMat&, 
const DoubleSymBandMat&); FloatSymBandMat operator+(const FloatSymBandMat&,
const FloatSymBandMat&); DComplexSymBandMat operator+(const DComplexSymBandMat&,
const DComplexSymBandMat&); DoubleSymBandMat operator-(const DoubleSymBandMat&,
const DoubleSymBandMat&); FloatSymBandMat operator-(const FloatSymBandMat&,
const FloatSymBandMat&); DComplexSymBandMat operator-(const DComplexSymBandMat&,
const DComplexSymBandMat&); DoubleSymBandMat operator*(const DoubleSymBandMat&,
const DoubleSymBandMat&); FloatSymBandMat operator*(const FloatSymBandMat&,
const FloatSymBandMat&); DComplexSymBandMat operator*(const DComplexSymBandMat&,
const DComplexSymBandMat&); DoubleSymBandMat operator/(const DoubleSymBandMat&,
const DoubleSymBandMat&); FloatSymBandMat operator/(const FloatSymBandMat&,
const FloatSymBandMat&); DComplexSymBandMat operator/(const DComplexSymBandMat&,
const DComplexSymBandMat&);
DoubleSymBandMat   operator*(double,const DoubleSymBandMat&);
DoubleSymBandMat   operator*(const DoubleSymBandMat&,double);
FloatSymBandMat    operator*(float,const FloatSymBandMat&);
FloatSymBandMat    operator*(const FloatSymBandMat&,float);
DComplexSymBandMat operator*(DComplex, 
const DComplexSymBandMat&); DComplexSymBandMat operator*(const DComplexSymBandMat&,
DComplex); DoubleSymBandMat operator/(const DoubleSymBandMat&, double); FloatSymBandMat operator/(const FloatSymBandMat&,float); DComplexSymBandMat operator/(const DComplexSymBandMat&,
DComplex);
ostream&   operator<<(ostream& s, const DoubleSymBandMat&);
ostream&   operator<<(ostream& s, const FloatSymBandMat&);
ostream&   operator<<(ostream& s, const DComplexSymBandMat&);
istream&   operator>>(istream& s, const DoubleSymBandMat&);
istream&   operator>>(istream& s, const FloatSymBandMat&);
istream&   operator>>(istream& s, const DComplexSymBandMat&);

Global Functions

DoubleSymBandMat
abs(const DoubleSymBandMat&);
FloatSymBandMat
abs(const FloatSymBandMat&);
DoubleSymBandMat
abs(const DComplexSymBandMat&);
DoubleSymBandMat
arg(const DComplexSymBandMat& A);
DComplexSymBandMat
conj(const DComplexSymBandMat& A);
DoubleSymBandMat
imag(const DComplexSymBandMat& A);
double
maxValue(const DoubleSymBandMat&);
float
maxValue(const FloatSymBandMat&);
double
minValue(const DoubleSymBandMat&);
float
minValue(const FloatSymBandMat&);
DoubleSymBandMat
norm(const DComplexSymBandMat& A);
RWMathVec<double>
product(const DoubleSymBandMat& A, const RWMathVec<double>& x);
RWMathVec<float>
product(const FloatSymBandMat& A, const RWMathVec<float>& x);
RWMathVec<DComplex>
product(const DComplexSymBandMat& A, const RWMathVec<DComplex>& x);
RWMathVec<double>
product(const RWMathVec<double>& x, const DoubleSymBandMat& A);
RWMathVec<float>
product(const RWMathVec<float>& x, const FloatSymBandMat& A);
RWMathVec<DComplex>
product(const RWMathVec<DComplex>& x,const DComplexSymBandMat& A);
DoubleSymBandMat
real(const DComplexSymBandMat& A);
FloatSymBandMat
toFloat(const DoubleSymBandMat&);
DoubleSymBandMat
toSymBandMat(const RWGenMat<double>&);
FloatSymBandMat
toSymBandMat(const RWGenMat<float>&);
DComplexSymBandMat
toSymBandMat(const RWGenMat<DComplex>&);
DoubleSymBandMat
transpose(const DoubleSymBandMat&);
FloatSymBandMat
transpose(const FloatSymBandMat&);
DComplexSymBandMat
transpose(const DComplexSymBandMat&);


Previous fileTop of DocumentContentsIndexNext file

©Copyright 1999, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.