Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Linear Algebra Module Reference Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

RWHermMat<T>

Module:  Linear Algebra   Group:  Sparse Matrix classes


Does not inherit

Local Index

Members

Non-Members

Synopsis

#include <rw/lapack/hermmat.h>

RWHermMat<T> H;

Description

The class RWHermMat<T> 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

RWHermMat();
RWHermMat(const RWHermMat<T>& A);
RWHermMat(unsigned n, unsigned n);
RWHermMat(const RWMathVec<T>& vd, unsigned n,unsigned
          n);
RWHermMat(const RWSymMat<double>& re);
RWHermMat(const RWSymMat<double>& re, 
          const RWSkewMat<double>& im);

Public Member Functions

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

Public Member Operators

RWCJRef<T> RWHermMat<T>::operator()(int i, int j);
T          RWHermMat<T>::operator()(int i, int j)
              const;
RWHermMat<T>&    operator=(const RWHermMat<T>& A);
RWHermMat<T>&    operator==(const RWHermMat<T>& A);
RWHermMat<T>&    operator!=(const RWHermMat<T>& A);
RWHermMat<T>&    operator*=(T x);
RWHermMat<T>&    operator/=(T x);
RWHermMat<T>&    operator+=(const RWHermMat<T>& A);
RWHermMat<T>&    operator-=(const RWHermMat<T>& A);
RWHermMat<T>&    operator*=(const RWHermMat<T>& A);
RWHermMat<T>&    operator/=(const RWHermMat<T>& A);

Global Operators

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

Global Functions

RWSymMat<double>
abs(const RWHermMat<T>& A);
RWSkewMat<double>
arg(const RWHermMat<T>& A);
RWHermMat<T>
conj(const RWHermMat<T>& A);
RWSkewMat<double>
imag(const RWHermMat<T>& A);
RWHermMat<T>
lowerToHermMat(const RWGenMat<T>& A);
RWSymMat<double>
norm(const RWHermMat<T>& A);
RWMathVec<T>
product(const RWHermMat<T>& A, 
        const RWMathVec<T>& x);
RWMathVec<T>
product(const RWMathVec<T>& x, 
        const RWHermMat<T>& A);
RWSymMat<double>
real(const RWHermMat<T>& A);
RWHermMat<T>
toHermBandMat(const RWGenMat<T>&, unsigned h);
RWHermMat<T>
transpose(const RWHermMat<T>&);
RWHermMat<T>
upperToHermMat(const RWGenMat<T>& A);


Previous fileTop of DocumentContentsIndex pageNext file

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.