Class for representing the inverse of a LU factored matrix.
Public Member Functions |
| | TLUInvMatrix (TMatrix *afac_matrix, const eval_type_t aeval_type=CFG::Arith::eval_type) |
| | TLUInvMatrix (const TScalarVector *D1, TMatrix *afac_matrix, const TScalarVector *D2, const eval_type_t aeval_type=CFG::Arith::eval_type) |
|
virtual | ~TLUInvMatrix () |
| | dtor
|
|
virtual TMatrix * | create () const |
| | return matrix of same class (but no content)
|
|
virtual TMatrix * | copy () const |
| | return copy of matrix
|
|
virtual TMatrix * | inverse () const |
| | return matrix object for the inverse operator
|
|
virtual typeid_t | type () const |
| | return type ID of matrix
|
|
virtual bool | is_type (const typeid_t t) const |
| | return true if object is of type t
|
| | TFacInvMatrix (TMatrix *afac_matrix, const eval_type_t aeval_type=CFG::Arith::eval_type) |
| | TFacInvMatrix (const TScalarVector *D1, TMatrix *afac_matrix, const TScalarVector *D2, const eval_type_t aeval_type=CFG::Arith::eval_type) |
|
| ~TFacInvMatrix () |
| | dtor
|
|
virtual size_t | rows () const |
| | return number of rows of the inverse!
|
|
virtual size_t | cols () const |
| | return number of columns of the inverse!
|
|
virtual void | set_size (const size_t n, const size_t m) |
| | set size of the inverse operator (change not allowed!)
|
|
TMatrix * | matrix () |
| | access factorised matrix
|
|
bool | has_scaling () const |
| | return true if diagonal scaling is used
|
|
const TScalarVector & | scaling_left () const |
| | return left scaling matrix
|
|
const TScalarVector & | scaling_right () const |
| | return right scaling matrix
|
|
eval_type_t | eval_type () const |
| | return evaluation type (pointwise/blockwise)
|
|
virtual real | entry (const idx_t i, const idx_t j) const |
| | return index (i,j) of the matrix (real valued)
|
|
virtual const complex | centry (const idx_t i, const idx_t j) const |
| | return index (i,j) of the matrix (complex valued)
|
| virtual void | mul_vec (const real alpha, const TVector *x, const real beta, TVector *y, const matop_t op=MATOP_NORM) const |
| virtual void | cmul_vec (const complex alpha, const TVector *x, const complex beta, TVector *y, const matop_t op=MATOP_NORM) const |
|
virtual void | transpose () |
| | transpose matrix
|
|
virtual void | conjugate () |
| | conjugate matrix coefficients
|
|
virtual void | truncate (const TTruncAcc &acc) |
| | truncate matrix to given accuracy
|
|
virtual void | print (const uint ofs=0) const |
| | print basic info about matrix
|
|
virtual void | to_real () |
| | convert to real valued representation (if possible)
|
|
virtual void | to_complex () |
| | convert to complex valued representation
|
|
virtual void | copy_to (TMatrix *A) const |
| | copy matrix into given matrix
|
|
virtual TVector * | row_vector () const |
| | return appropriate row vector type for inverse matrix
|
|
virtual TVector * | col_vector () const |
| | return appropriate column vector type for inverse matrix
|
|
virtual size_t | byte_size () const |
| | return size in bytes used by this object
|
|
virtual void | read (TByteStream &s) |
| | read matrix from byte stream
|
|
virtual void | write (TByteStream &s) const |
| | write matrix to byte stream
|
|
virtual size_t | bs_size () const |
| | returns size of object in bytestream
|
|
| TMatrix (const bool acomplex=false) |
| | construct zero sized matrix
|
|
| TMatrix (const TBlockCluster *c) |
| | construct matrix of size defined by block cluster c
|
|
| TMatrix (const TBlockIndexSet &bis) |
| | construct matrix of size defined by block cluster c
|
|
| TMatrix (const TMatrix &A) |
| | copy constructor
|
|
virtual | ~TMatrix () |
| | dtor
|
|
TIndexSet | row_is () const |
| | return row index set
|
|
TIndexSet | col_is () const |
| | return column index set
|
|
TBlockIndexSet | block_is () const |
| | return block index set
|
|
virtual idx_t | row_ofs () const |
| | return first index (number) in row
|
|
virtual idx_t | col_ofs () const |
| | return first index (number) in column
|
|
virtual void | set_ofs (const idx_t r, const idx_t c) |
| | set index set offsets
|
|
virtual void | set_block_is (const TBlockIndexSet &is) |
| | set block index set of matrix
|
|
bool | is_nonsym () const |
| | return true if matrix is unsymmetric
|
|
bool | is_symmetric () const |
| | return true if matrix is symmetric
|
|
bool | is_hermitian () const |
| | return true if matrix is hermitian
|
|
matform_t | form () const |
| | return matrix format
|
|
void | set_nonsym () |
| | set matrix to be unsymmetric
|
|
void | set_symmetric () |
| | set matrix to be symmetric
|
|
void | set_hermitian () |
| | set matrix to be hermitian
|
|
virtual void | set_form (const matform_t f) |
| | set matrix format
|
|
const TProcSet & | procs () const |
| | return matrix processor set
|
|
uint | nprocs () const |
| | return number of processors in local set
|
|
void | set_procs (const TProcSet &ps) |
| | set processor set of matrix
|
| virtual void | copy_struct (const TMatrix *M) |
|
bool | is_real () const |
| | return true if matrix is real valued
|
|
bool | is_complex () const |
| | return true if matrix is complex valued
|
| void | set_complex (const bool b, const bool force=false) |
|
const TBlockCluster * | cluster () const |
| | return corresponding block cluster of matrix
|
|
virtual void | set_cluster (const TBlockCluster *c) |
| | set block cluster of matrix
|
|
virtual void | scale (const real alpha) |
| | compute this ≔ α·this
|
|
virtual void | add (const real alpha, const TMatrix *matrix) |
| | compute this ≔ this + α · matrix
|
|
virtual TMatrix * | mul_right (const real alpha, const TMatrix *B, const matop_t op_A, const matop_t op_B) const |
| | compute α·op(A)·op(B), with A = this
|
|
virtual TMatrix * | mul_left (const real alpha, const TMatrix *A, const matop_t op_A, const matop_t op_B) const |
| | compute α·op(A)·op(B), with B = this
|
|
virtual void | cscale (const complex alpha) |
| | compute this ≔ α·this
|
|
virtual void | cadd (const complex alpha, const TMatrix *matrix) |
| | compute this ≔ this + α · matrix
|
|
virtual TMatrix * | cmul_right (const complex alpha, const TMatrix *B, const matop_t op_A, const matop_t op_B) const |
| | compute α·op(A)·op(B), with A = this
|
|
virtual TMatrix * | cmul_left (const complex alpha, const TMatrix *A, const matop_t op_A, const matop_t op_B) const |
| | compute α·op(A)·op(B), with B = this
|
| virtual size_t | global_byte_size () const |
|
virtual TMatrix * | copy (const TTruncAcc &acc, const bool coarsen=false) const |
| | return copy of matrix with accuracy acc and optional coarsening
|
|
virtual void | copy_to (TMatrix *A, const TTruncAcc &acc, const bool coarsen=false) const |
| | copy matrix into matrix A with accuracy acc and optional coarsening
|
|
virtual void | build (TByteStream &s) |
| | use data from stream s to build matrix
|
| virtual void | sum (const TProcSet &p, const uint pid, const uint nparts, TByteStream *bs, const TTruncAcc &acc) |
|
virtual void | check_data () const |
| | test data for invalid values, e.g. INF and NAN
|
|
TMutex & | mutex () |
| | give access to internal mutex
|
|
void | lock () |
| | lock local mutex of matrix
|
|
void | unlock () |
| | unlock local mutex of matrix
|
|
virtual String | typestr () const |
| | return string representation of type
|