Rogue Wave banner
Previous fileTop of DocumentContentsIndexNext file

{type}SymMat



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

Synopsis

#include <rw/dsymmat.h>        // DoubleSymMat
#include <rw/fsymmat.h>        // FloatSymMat
#include <rw/csymmat.h>        // DComplexSymMat

DoubleSymMat A;

Description

The classes {TYPE}SymMat represent symmetric matrices. A symmetric matrix is defined by the requirement that Aij = Aji, and so a symmetric matrix is equal to its transpose.

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 was chosen so that the leading part of the matrix was always located in contiguous memory.

For example, given the following symmetric 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 storage vector is as follows:

Public Constructors

DoubleSymMat();
FloatSymMat();
DComplexSymMat();
DoubleSymMat(const DoubleSymMat& A);
FloatSymMat(const FloatSymMat& A);
DComplexSymMat(const DComplexSymMat& A);
DoubleSymMat(unsigned n, unsigned n);
FloatSymMat(unsigned n, unsigned n);
DComplexSymMat unsigned n, unsigned n);
DoubleSymMat(unsigned n, unsigned n, double x);
FloatSymMat(unsigned n, unsigned n, float x);
DComplexSymMat(unsigned n, unsigned n, DComplex x);
DoubleSymMat(const RWMathVec<double>& vd, unsigned n, 
unsigned n); FloatSymMat(const RWMathVec<float>& vd, unsigned n,
unsigned n); DComplexSymMat(const RWMathVec<DComplex>& vd, unsigned n,
unsigned n);
DComplexSymMat(const DoubleSymMat& re);
DComplexSymMat(const DoubleSymMat& re, 
               const DoubleSymMat& im);
DoubleSymMat(const FloatSymMat&);

Public Member Functions

FloatSymMat
FloatSymMat::apply(mathFunTy);
DoubleSymMat
DoubleSymMat::apply(mathFunTy);
DComplexSymMat
DComplexSymMat::apply(CmathFunTy);
DoubleSymMat
DComplexSymMat::apply(CmathFunTy2);
float&
FloatSymMat::bcref(int i, int j);
double&
DoubleSymMat::bcref(int i, int j);
DComplex&
DComplexSymMat::bcref(int i, int j);
void
FloatSymMat::bcset(int i, int j, float x);
void
DoubleSymMat::bcset(int i, int j, double x);
void
DComplexSymMat::bcset(int i, int j, DComplex x);
float
FloatSymMat::bcval(int i, int j);
double
DoubleSymMat::bcval(int i, int j);
DComplex
DComplexSymMat::bcval(int i, int j);
unsigned
FloatSymMat::binaryStoreSize();
unsigned
DoubleSymMat::binaryStoreSize();
unsigned
DComplexSymMat::binaryStoreSize();
unsigned
FloatSymMat::cols();
unsigned
DoubleSymMat::cols();
unsigned
DComplexSymMat::cols();
FloatSymMat
FloatSymMat::copy();
DoubleSymMat
DoubleSymMat::copy();
DComplexSymMat
DComplexSymMat::copy();
float*
FloatSymMat::data();
double*
DoubleSymMat::data();
DComplex*
DComplexSymMat::data();
RWMathVec<float>
FloatSymMat::dataVec();
RWMathVec<double>
DoubleSymMat::dataVec();
RWMathVec<DComplex>
DComplexSymMat::dataVec();
FloatSymMat
FloatSymMat::deepCopy();
DoubleSymMat
DoubleSymMat::deepCopy();
DComplexSymMat
DComplexSymMat::deepCopy();
void
FloatSymMat::deepenShallowCopy();
void
DoubleSymMat::deepenShallowCopy();
void
DComplexSymMat::deepenShallowCopy();
FloatSymMat
FloatSymMat::leadingSubmatrix(int k);
DoubleSymMat
DoubleSymMat::leadingSubmatrix(int k);
DComplexSymMat
DComplexSymMat::leadingSubmatrix(int k);
void
FloatSymMat::printOn(ostream&);
void
DoubleSymMat::printOn(ostream&);
void
DComplexSymMat::printOn(ostream&);
float&
FloatSymMat::ref(int i, int j);
double&
DoubleSymMat::ref(int i, int j);
DComplex&
DComplexSymMat::ref(int i, int j);
FloatSymMat
FloatSymMat::reference(FloatSymMat&);
DoubleSymMat
DoubleSymMat::reference(DoubleSymMat&);
DComplexSymMat
DComplexSymMat::reference(DComplexSymMat&);
void
DoubleSymMat::resize(unsigned n, unsigned n);
void
FloatSymMat::resize(unsigned n, unsigned n);
void
DComplexSymMat::resize(unsigned n, unsigned n);
void
DoubleSymMat::restoreFrom(RWFile&);
void
FloatSymMat::restoreFrom(RWFile&);
void
DComplexSymMat::restoreFrom(RWFile&);
void
DoubleSymMat::restoreFrom(RWvistream&);
void
FloatSymMat::restoreFrom(RWvistream&);
void
DComplexSymMat::restoreFrom(RWvistream&);
unsigned
FloatSymMat::rows();
unsigned
DoubleSymMat::rows();
unsigned
DComplexSymMat::rows();
void
DoubleSymMat::saveOn(RWFile&);
void
FloatSymMat::saveOn(RWFile&);
void
DComplexSymMat::saveOn(RWFile&);
void
DoubleSymMat::saveOn(RWvostream&);
void
FloatSymMat::saveOn(RWvostream&);
void
DComplexSymMat::saveOn(RWvostream&);
void
FloatSymMat::scanFrom(istream&);
void
DoubleSymMat::scanFrom(istream&);
void
DComplexSymMat::scanFrom(istream&);
void
FloatSymMat::set(int i, int j, float x);
void
DoubleSymMat::set(int i, int j, double x);
void
DComplexSymMat::set(int i, int j, DComplex x);
float
FloatSymMat::val(int i, int j);
double
DoubleSymMat::val(int i, int j);
DComplex
DComplexSymMat::val(int i, int j);
FloatSymMat
FloatSymMat::zero();
DoubleSymMat
DoubleSymMat::zero();
DComplexSymMat
DComplexSymMat::zero();

Public Member Operators

double&      FloatSymMat::operator()(int i, int j);
double       FloatSymMat::operator()(int i, int j) const;
float&       DoubleSymMat::operator()(int i, int j);
float        DoubleSymMat::operator()(int i, int j) const;
DComplex&    DComplexSymMat::operator()(int i, int j);
DComplex     DComplexSymMat::operator()(int i, int j) const;
DoubleSymMat&      operator=(const DoubleSymMat& A);
FloatSymMat&       operator=(const FloatSymMat& A);
DComplexSymMat&    operator=(const DComplexSymMat& A);
DoubleSymMat&      operator=(double x);
FloatSymMat&       operator=(float x);
DComplexSymMat&    operator=(DComplex x);
DoubleSymMat&      operator==(const DoubleSymMat& A);
FloatSymMat&       operator==(const FloatSymMat& A);
DComplexSymMat&    operator==(const DComplexSymMat& A);
DoubleSymMat&      operator!=(const DoubleSymMat& A);
FloatSymMat&       operator!=(const FloatSymMat& A);
DComplexSymMat&    operator!=(const DComplexSymMat& A);
DoubleSymMat&      operator+=(double x);
FloatSymMat&       operator+=(float x);
DComplexSymMat&    operator+=(DComplex x);
DoubleSymMat&      operator-=(double x);
FloatSymMat&       operator-=(float x);
DComplexSymMat&    operator-=(DComplex x);
DoubleSymMat&      operator*=(double x);
FloatSymMat&       operator*=(float x);
DComplexSymMat&    operator*=(DComplex x);
DoubleSymMat&      operator/=(double x);
FloatSymMat&       operator/=(float x);
DComplexSymMat&    operator/=(DComplex x);
DoubleSymMat&      operator+=(const DoubleSymMat& A);
FloatSymMat&       operator+=(const FloatSymMat& A);
DComplexSymMat&    operator+=(const DComplexSymMat& A);
DoubleSymMat&      operator-=(const DoubleSymMat& A);
FloatSymMat&       operator-=(const FloatSymMat& A);
DComplexSymMat&    operator-=(const DComplexSymMat& A);
DoubleSymMat&      operator*=(const DoubleSymMat& A);
FloatSymMat&       operator*=(const FloatSymMat& A);
DComplexSymMat&    operator*=(const DComplexSymMat& A);
DoubleSymMat&      operator/=(const DoubleSymMat& A);
FloatSymMat&       operator/=(const FloatSymMat& A);
DComplexSymMat&    operator/=(const DComplexSymMat& A);
DoubleSymMat&    operator++();
FloatSymMat&     operator++();
DoubleSymMat&    operator--();
FloatSymMat&     operator--();

Global Operators

DoubleSymMat      operator+(const DoubleSymMat&);
FloatSymMat       operator+(const FloatSymMat&);
DComplexSymMat    operator+(const DComplexSymMat&);
DoubleSymMat      operator-(const DoubleSymMat&);
FloatSymMat       operator-(const FloatSymMat&);
DComplexSymMat    operator-(const DComplexSymMat&);
DoubleSymMat      operator+(const DoubleSymMat&, 
const DoubleSymMat&); FloatSymMat operator+(const FloatSymMat&,
const FloatSymMat&); DComplexSymMat operator+(const DComplexSymMat&,
const DComplexSymMat&); DoubleSymMat operator-(const DoubleSymMat&,
const DoubleSymMat&); FloatSymMat operator-(const FloatSymMat&,
const FloatSymMat&); DComplexSymMat operator-(const DComplexSymMat&,
const DComplexSymMat&); DoubleSymMat operator*(const DoubleSymMat&,
const DoubleSymMat&); FloatSymMat operator*(const FloatSymMat&,
const FloatSymMat&); DComplexSymMat operator*(const DComplexSymMat&,
const DComplexSymMat&); DoubleSymMat operator/(const DoubleSymMat&,
const DoubleSymMat&); FloatSymMat operator/(const FloatSymMat&,
const FloatSymMat&); DComplexSymMat operator/(const DComplexSymMat&,
const DComplexSymMat&);
DoubleSymMat     operator+(double,const DoubleSymMat&);
DoubleSymMat     operator+(const DoubleSymMat&,double);
FloatSymMat      operator+(float,const FloatSymMat&);
FloatSymMat      operator+(const FloatSymMat&,float);
DComplexSymMat   operator+(DComplex,const DComplexSymMat&);
DComplexSymMat   operator+(const DComplexSymMat&,DComplex);
DoubleSymMat     operator-(double,const DoubleSymMat&);
DoubleSymMat     operator-(const DoubleSymMat&,double);
FloatSymMat      operator-(float,const FloatSymMat&);
FloatSymMat      operator-(const FloatSymMat&,float);
DComplexSymMat   operator-(DComplex,const DComplexSymMat&);
DComplexSymMat   operator-(const DComplexSymMat&,DComplex);
DoubleSymMat     operator*(double,const DoubleSymMat&);
DoubleSymMat     operator*(const DoubleSymMat&,double);
FloatSymMat      operator*(float,const FloatSymMat&);
FloatSymMat      operator*(const FloatSymMat&,float);
DComplexSymMat   operator*(DComplex,const DComplexSymMat&);
DComplexSymMat   operator*(const DComplexSymMat&,DComplex);
DoubleSymMat     operator/(double,const DoubleSymMat&);
DoubleSymMat     operator/(const DoubleSymMat&,double);
FloatSymMat      operator/(float,const FloatSymMat&);
FloatSymMat      operator/(const FloatSymMat&,float);
DComplexSymMat   operator/(DComplex,const DComplexSymMat&);
DComplexSymMat   operator/(const DComplexSymMat&,DComplex);
ostream&    operator<<(ostream& s, const DoubleSymMat&);
ostream&    operator<<(ostream& s, const FloatSymMat&);
ostream&    operator<<(ostream& s, const DComplexSymMat&);
istream&    operator>>(istream& s, const DoubleSymMat&);
istream&    operator>>(istream& s, const FloatSymMat&);
istream&    operator>>(istream& s, const DComplexSymMat&);

Global Functions

DoubleSymMat
abs(const DoubleSymMat&);
FloatSymMat
abs(const FloatSymMat&);
DoubleSymMat
abs(const DComplexSymMat&);
DoubleSymMat
arg(const DComplexSymMat& A);
DoubleSymMat 
acos(const DoubleSymMat&);
FloatSymMat 
acos(const FloatSymMat&);
DoubleSymMat
asin(const DoubleSymMat&);
FloatSymMat 
asin(const FloatSymMat&);
DoubleSymMat 
atan(const DoubleSymMat&);
FloatSymMat 
atan(const FloatSymMat&);
DoubleSymMat
atan2(const DoubleSymMat&, const DoubleSymMat&);
FloatSymMat
atan2(const FloatSymMat&, const FloatSymMat&);
DoubleSymMat
ceil(const DoubleSymMat&);
FloatSymMat
ceil(const FloatSymMat&);
DComplexSymMat
conj(const DComplexSymMat& A);
DoubleSymMat
cos(const DoubleSymMat&);
FloatSymMat  
cos(const DoubleSymMat&);
DComplexSymMat 
cos(const DComplexSymMat&);
DoubleSymMat  
cosh(const DoubleSymMat&);
FloatSymMat  
cosh(const DoubleSymMat&);
DComplexSymMat 
cosh(const DComplexSymMat&);
DoubleSymMat  
exp(const DoubleSymMat&);
FloatSymMat
exp(const DoubleSymMat&);
DComplexSymMat    
exp(const DComplexSymMat&);
DoubleSymMat
floor(const DoubleSymMat&);
FloatSymMat
floor(const FloatSymMat&);
DoubleSymMat
imag(const DComplexSymMat& A);
DoubleSymMat       
log(const DoubleSymMat&);
FloatSymMat        
log(const DoubleSymMat&);
DComplexSymMat     
log(const DComplexSymMat&);
DoubleSymMat       
log10(const DoubleSymMat&);
FloatSymMat        
log10(const DoubleSymMat&);
DComplexSymMat     
log10(const DComplexSymMat&);
DoubleSymMat
lowerToSymMat(const RWGenMat<double>& A);
FloatSymMat
lowerToSymMat(const RWGenMat<float>& A);
DComplexSymMat
lowerToSymMat(const RWGenMat<DComplex>& A);
Double
maxValue(const DoubleSymMat&);
float
maxValue(const FloatSymMat&);
double
minValue(const DoubleSymMat&);
float
minValue(const FloatSymMat&);
DoubleSymMat
norm(const DComplexSymMat& A);
RWMathVec<double>
product(const DoubleSymMat& A, const RWMathVec<double>& x);
RWMathVec<float>
product(const FloatSymMat& A, const RWMathVec<float>& x);
RWMathVec<DComplex>
product(const DComplexSymMat& A, const RWMathVec<DComplex>& x);
RWMathVec<double>
product(const RWMathVec<double>& x, const DoubleSymMat& A);
RWMathVec<float>
product(const RWMathVec<float>& x, const FloatSymMat& A);
RWMathVec<DComplex>
product(const RWMathVec<DComplex>& x, const DComplexSymMat& A);
DoubleSymMat
real(const DComplexSymMat& A);
DoubleSymMat       
sin(const DoubleSymMat&);
FloatSymMat        
sin(const DoubleSymMat&);
DComplexSymMat     
sin(const DComplexSymMat&);
DoubleSymMat       
sinh(const DoubleSymMat&);
FloatSymMat        
sinh(const DoubleSymMat&);
DComplexSymMat     
sinh(const DComplexSymMat&);
DoubleSymMat       
sqrt(const DoubleSymMat&);
FloatSymMat        
sqrt(const DoubleSymMat&);
DComplexSymMat     
sqrt(const DComplexSymMat&);
DoubleSymMat       
tan(const DoubleSymMat&);
FloatSymMat        
tan(const DoubleSymMat&);
DComplexSymMat     
tan(const DComplexSymMat&);
DoubleSymMat       
tanh(const DoubleSymMat&);
FloatSymMat        
tanh(const DoubleSymMat&);
DComplexSymMat     
tanh(const DComplexSymMat&);
FloatSymMat
toFloat(const DoubleSymMat&);
DoubleSymMat
toSymMat(const RWGenMat<double>&);
FloatSymMat
toSymMat(const RWGenMat<float>&);
DComplexSymMat
toSymMat(const RWGenMat<DComplex>&);
DoubleSymMat
transpose(const DoubleSymMat&);
FloatSymMat
transpose(const FloatSymMat&);
DComplexSymMat
transpose(const DComplexSymMat&);
DoubleSymMat
upperToSymMat(const RWGenMat<double>& A);
FloatSymMat
upperToSymMat(const RWGenMat<float>& A);
DComplexSymMat
upperToSymMat(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.