Rogue Wave banner
Previous fileTop of DocumentContentsIndexNext file

DComplexHermBandMat



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

Synopsis

#include <rw/chbndmat.h>          //DComplexHermBandMat

DComplexHermBandMat H;

Description

The class DComplexHermBandMat encapsulates a Hermitian banded matrix. A Hermitian banded matrix is Hermitian, 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 = conj(Aji). Although this strict definition implies a matrix with 0 imaginary parts along the diagonal, the Rogue Wave class implementation allows arbitrary diagonal entries.

Example

Storage Scheme

As an example of the storage scheme for banded Hermitian matrices, consider the following 9x9 matrix with a half bandwidth of 2, where entries aij are notation for conj(Aij):

The upper triangle is stored column by column. For convenience, there are some unused locations 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
A
55 A46 A56 A66 A57 A67 A77 A68 A78 A88 A79 A89 A99 ]

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

Public Constructors

DComplexHermBandMat();
DComplexHermBandMat(const DComplexHermBandMat& A);
DComplexHermBandMat(unsigned n, unsigned n, unsigned hb);
DComplexHermBandMat(const RWMathVec<DComplex>& vd, unsigned n, 
                    unsigned n, unsigned hb);
DComplexHermBandMat(const DoubleSymBandMat& re);

Public Member Functions

unsigned
DComplexHermBandMat::bandwidth();
ROCJDComplexRef
DComplexHermBandMat::bcref(int i, int j);
void
DComplexHermBandMat::bcset(int i, int j, DComplex x);
DComplex
DComplexHermBandMat::bcval(int i, int j);
unsigned
DComplexHermBandMat::binaryStoreSize();
unsigned
DComplexHermBandMat::cols();
DComplexHermBandMat
DComplexHermBandMat::copy();
DComplex*
DComplexHermBandMat::data();
RWMathVec<DComplex>
DComplexHermBandMat::dataVec();
DComplexHermBandMat
DComplexHermBandMat::deepCopy();
void
DComplexHermBandMat::deepenShallowCopy();
unsigned
DComplexHermBandMat::halfBandwidth();
DComplexHermBandMat
DComplexHermBandMat::leadingSubmatrix(int k);
unsigned
DComplexHermBandMat::lowerBandwidth();
void
DComplexHermBandMat::makeDiagonalReal();
void
DComplexHermBandMat::printOn(ostream&);
ROCJDComplexRef
DComplexHermBandMat::ref(int i, int j);
DComplexHermBandMat
DComplexHermBandMat::reference(DComplexHermBandMat&);
void
DComplexHermBandMat::resize(unsigned n, unsigned n);
void
DComplexHermBandMat::resize(unsigned n, 
                            unsigned n,unsigned hb);
void
DComplexHermBandMat::restoreFrom(RWFile&);
void
DComplexHermBandMat::restoreFrom(RWvistream&);
unsigned
DComplexHermBandMat::rows();
void
DComplexHermBandMat::saveOn(RWFile&);
void
DComplexHermBandMat::saveOn(RWvostream&);
void
DComplexHermBandMat::scanFrom(istream&);
void
DComplexHermBandMat::set(int i, int j, DComplex x);
unsigned
DComplexHermBandMat::upperBandwidth();
DComplex
DComplexHermBandMat::val(int i, int j);
DComplexHermBandMat
DComplexHermBandMat::zero();

Public Member Operators

ROCJDComplexRef   DComplexHermBandMat::operator()(int i, 
int j); DComplex DComplexHermBandMat::operator()(int i,
int j)const;
DComplexHermBandMat&  operator=(const DComplexHermBandMat& A);
DComplexHermBandMat& operator==(const DComplexHermBandMat& A);
DComplexHermBandMat& operator!=(const DComplexHermBandMat& A);
DComplexHermBandMat&    operator*=(DComplex x);
DComplexHermBandMat&    operator/=(DComplex x);
DComplexHermBandMat& operator+=(const DComplexHermBandMat& A);
DComplexHermBandMat& operator-=(const DComplexHermBandMat& A);
DComplexHermBandMat& operator*=(const DComplexHermBandMat& A);
DComplexHermBandMat& operator/=(const DComplexHermBandMat& A);

Global Operators

DComplexHermBandMat    operator+(const DComplexHermBandMat&);
DComplexHermBandMat    operator-(const DComplexHermBandMat&);
DComplexHermBandMat    operator+(const DComplexHermBandMat&,
const DComplexHermBandMat&); DComplexHermBandMat operator-(const DComplexHermBandMat&,
const DComplexHermBandMat&); DComplexHermBandMat operator*(const DComplexHermBandMat&,
const DComplexHermBandMat&); DComplexHermBandMat operator/(const DComplexHermBandMat&,
const DComplexHermBandMat&);
DComplexHermBandMat    operator*(DComplex, 
const DComplexHermBandMat&); DComplexHermBandMat operator*(const DComplexHermBandMat&,
DComplex); DComplexHermBandMat operator/(const DComplexHermBandMat&,
DComplex);
ostream&  operator<<(ostream& s, const DComplexHermBandMat&);
istream&  operator>>(istream& s, const DComplexHermBandMat&);

Global Functions

DoubleSymBandMat
abs(const DComplexHermBandMat& A);
DComplexHermBandMat
conj(const DComplexHermBandMat& A);
DoubleSymMat
norm(const DComplexHermBandMat& A);
RWMathVec<DComplex>
product(const DComplexHermBandMat& A, 
const RWMathVec<DComplex>& x);
RWMathVec<DComplex>
product(const RWMathVec<DComplex>& x, 
const DComplexHermBandMat& A);
DoubleSymBandMat
real(const DComplexHermBandMat& A);
DComplexBandMat
toHermBandMat(const RWGenMat<DComplex>&, unsigned h);
DComplexHermBandMat
transpose(const DComplexHermBandMat&);


Previous fileTop of DocumentContentsIndexNext file

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