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

RWSymMat<T>

Module:  Linear Algebra   Group:  Sparse Matrix classes


Does not inherit

Local Index

Members

Non-Members

Synopsis

#include <rw/lapack/symmat.h>

RWSymMat<double> A;

Description

The class RWSymMat<T> 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. 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

RWSymMat();
RWSymMat(const RWSymMat<T>& A);
RWSymMat(unsigned n, unsigned n);
RWSymMat(unsigned n, unsigned n, T x);
RWSymMat(const RWMathVec<T>& vd, unsigned n, 
unsigned n);
RWSymMat<DComplex>(const RWSymMat<double>& re);
RWSymMat<DComplex>(const RWSymMat<double>& re, 
                   const RWSymMat<double>& im);
RWSymMat<double>(const RWSymMat<float>&);

Public Member Functions

RWSymMat<float>
RWSymMat<float>::apply(mathFunTy);
RWSymMat<double>
RWSymMat<double>::apply(mathFunTy);
RWSymMat<DComplex>
RWSymMat<DComplex>::apply(CmathFunTy);
RWSymMat<double>
RWSymMat<DComplex>::apply(CmathFunTy2);
T&
bcref(int i, int j);
void
bcset(int i, int j, T x);
T
bcval(int i, int j);
unsigned
binaryStoreSize();
unsigned
cols();
RWSymMat<T>
copy();
T*
data();
RWMathVec<T>
dataVec();
RWSymMat<T>
deepCopy();
void
deepenShallowCopy();
RWSymMat<T>
leadingSubmatrix(int k);
void
printOn(ostream&);
T&
ref(int i, int j);
RWSymMat<T>
reference(RWSymMat<T>&);
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, T x);
T
val(int i, int j);
RWSymMat<T>
zero();

Public Member Operators

double&      RWSymMat<float>::operator()(int i, 
int j); double RWSymMat<float>::operator()(int i,
int j) const; float& RWSymMat<double>::operator()(int i,
int j); float RWSymMat<double>::operator()(int i,
int j) const; DComplex& RWSymMat<DComplex>::operator()(int i,
int j); DComplex RWSymMat<DComplex>::operator()(int i,
int j) const;
RWSymMat<T>&      operator=(const RWSymMat<T>& A);
RWSymMat<T>&      operator=(T x);
RWSymMat<T>&      operator==(const RWSymMat<T>& A);
RWSymMat<T>&      operator!=(const RWSymMat<T>& A);
RWSymMat<T>&      operator+=(T x);
RWSymMat<T>&      operator-=(T x);
RWSymMat<T>&      operator*=(T x);
RWSymMat<T>&      operator/=(T x);
RWSymMat<T>&      operator+=(const RWSymMat<T>& A);
RWSymMat<T>&      operator-=(const RWSymMat<T>& A);
RWSymMat<T>&      operator*=(const RWSymMat<T>& A);
RWSymMat<T>&      operator/=(const RWSymMat<T>& A);
RWSymMat<double>&    operator++();
RWSymMat<float>&     operator++();
RWSymMat<double>&    operator--();
RWSymMat<float>&     operator--();

Global Operators

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

Global Functions

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