|
HLIBpro
1.2
|
Baseclass for representing the inverse of factorised matrices.
#include <TLUInvMatrix.hh>
Public Member Functions | |
| 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 TMatrix * | inverse () const =0 |
| return matrix object for the inverse operator | |
| virtual size_t | byte_size () const |
| return size in bytes used by this object | |
| 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 | |
| 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 | |
Public Member Functions inherited from TMatrix | |
| 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 * | create () const =0 |
| return matrix of same class (but no content) | |
| virtual TMatrix * | copy () const |
| return copy of matrix | |
| 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 | |
Public Member Functions inherited from TLockable | |
| TMutex & | mutex () |
| give access to internal mutex | |
| void | lock () |
| lock local mutex of matrix | |
| void | unlock () |
| unlock local mutex of matrix | |
Public Member Functions inherited from TTypeInfo | |
| virtual String | typestr () const |
| return string representation of type | |
| TFacInvMatrix | ( | TMatrix * | afac_matrix, |
| const eval_type_t | aeval_type = CFG::Arith::eval_type |
||
| ) |
construct inverse operator with factorised matrix afac_matrix (no diagonal scaling applied)
| TFacInvMatrix | ( | const TScalarVector * | D1, |
| TMatrix * | afac_matrix, | ||
| const TScalarVector * | D2, | ||
| const eval_type_t | aeval_type = CFG::Arith::eval_type |
||
| ) |
construct inverse operator with factorised matrix afac_matrix and additional row and column scaling factors D1 and D2, e.g. A = D1·Ã·D2, with à = afac_matrix
|
virtual |
compute y ≔ β·y + α·op(M)·x, with M being the inverse of the factorised matrix
Reimplemented from TMatrix.
1.8.1.2