Rogue Wave banner
Previous fileTop of DocumentContentsIndexNext file

DComplexHermMat



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

Synopsis

#include <rw/dhermmat.h>          // DComplexHermMat

DComplexHermMat H;

Description

The class DComplexHermMat encapsulates a Hermitian matrix. A Hermitian matrix is defined by the requirement that Aij = conj(Aji). This strict definition implies that the diagonal elements have 0 imaginary parts. The Rogue Wave classes relax this definition along the diagonal so that diagonal elements can have nonzero imaginary parts.

Example

Storage Scheme

The upper triangle of the matrix is stored in column major order. The lower triangle is then calculated implicitly. The upper triangle is stored in column major order. This storage scheme is used so that the leading part of the matrix is always located in contiguous memory.

For example, given the following matrix:

the data is stored in the following order:

[ A11 A12 A22 A13 A23 A33 ... A1n A2n A3n ... Ann ]

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

Public Constructors

DComplexHermMat();
DComplexHermMat(const DComplexHermMat& A);
DComplexHermMat(unsigned n, unsigned n);
DComplexHermMat(const RWMathVec<DComplex>& vd, unsigned n,
unsigned n);
DComplexHermMat(const DoubleSymMat& re);
DComplexHermMat(const DoubleSymMat& re, 
                const DoubleSkewMat& im);

Public Member Functions

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

Public Member Operators

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

Global Operators

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

Global Functions

DoubleSymMat
abs(const DComplexHermMat& A);
DoubleSkewMat
arg(const DComplexHermMat& A);
DComplexHermMat
conj(const DComplexHermMat& A);
DoubleSkewMat
imag(const DComplexHermMat& A);
DComplexHermMat
lowerToHermMat(const RWGenMat<DComplex>& A);
DoubleSymMat
norm(const DComplexHermMat& A);
RWMathVec<DComplex>
product(const DComplexHermMat& A, 
        const RWMathVec<DComplex>& x);
RWMathVec<DComplex>
product(const RWMathVec<DComplex>& x, 
        const DComplexHermMat& A);
DoubleSymMat
real(const DComplexHermMat& A);
DComplexBandMat
toHermBandMat(const RWGenMat<DComplex>&, unsigned h);
DComplexHermMat
transpose(const DComplexHermMat&);
DComplexHermMat
upperToHermMat(const RWGenMat<DComplex>& A);


Previous fileTop of DocumentContentsIndexNext file

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