#include <Matrix_Type.h>
Inheritance diagram for Matrix(Type)::

Public Methods | |
| Matrix(Type) () | |
| virtual | ~Matrix(Type) () |
| bool | symmetricStorage () |
| bool | pivotingAllowed () |
| virtual int | getNoRows () const=0 |
| virtual int | getNoColumns () const=0 |
| virtual int | getNoNonzeroes () const=0 |
| virtual void | size (int &m, int &n) const=0 |
| virtual int | getWork (const MatrixWork work_tp=MATVEC_WORK) const |
| virtual real | getStorage () const=0 |
| virtual bool | makeItSimilar (Handle(Matrix(Type)) &M) const=0 |
| virtual bool | redim (const Matrix(prm_Type) &pm)=0 |
| virtual void | optimizeDataStructure () |
| virtual bool | redim (const VecSimple(int) &ivec, const VecSimple(int) &jvec, int new_nrows, int new_ncolumns)=0 |
| virtual void | getIndexSet (VecSimple(int) &ivec, VecSimple(int) &jvec) const=0 |
| virtual bool | validIndexSet (const VecSimple(int) &ivec, const VecSimple(int) &jvec, const int new_nrows, const int new_ncolumns)=0 |
| virtual Type& | elm (int i, int j)=0 |
| Matrix(Type)& | operator= (const Matrix(Type) &X) |
| Matrix(Type)& | operator= (Type a) |
| virtual void | fill (const Matrix(Type) &X)=0 |
| virtual void | fill (Type a)=0 |
| virtual void | convertFrom (Matrix(Type) &X) |
| virtual void | assemble (const Mat(Type) &em, const VecSimple(int) &idx_row_trans, const VecSimple(int) &idx_col_trans, int elm_no) |
| virtual void | add (Matrix(Type) &bm, Matrix(Type) &cm)=0 |
| virtual void | add (Matrix(Type) &bm, char s, Matrix(Type) &cm)=0 |
| virtual void | add (Matrix(Type) &bm, Type b, Matrix(Type) &cm)=0 |
| virtual void | add (Type a, Matrix(Type) &bm, Type b, Matrix(Type) &cm)=0 |
| virtual void | mult (Type value)=0 |
| virtual void | prod (const Vector(Type) &xb, Vector(Type) &yb, TransposeMode tpmode=NOT_TRANSPOSED, bool add_to_yb=false) const=0 |
| virtual void | colManip (LinEqConstraint &constraint_eq, Vec(Type) &vc, VecSimple(bool) &essential_dof) |
| virtual void | rowManip (LinEqConstraint &constraint_eq, Vec(Type) &vc, VecSimple(bool) &essential_dof) |
| void | resetFact (bool is_factorized=false, FactType last_fact=LU_FACT, PivotType last_pivtp=NO_PIVOT) |
| bool | factorized () const |
| bool | factorized (FactType &fact_tp, PivotType &pivot_tp) const |
| virtual bool | factorize (const FactStrategy &fstrategy)=0 |
| virtual void | forwBack (Vector(Type) &bb, Vector(Type) &xb)=0 |
| virtual void | SSOR1it (Vector(Type) &xnew, const Vector(Type) &xold, const Vector(Type) &b, real omega, TransposeMode tpmode=NOT_TRANSPOSED) const=0 |
| virtual void | SSORsolve (Vector(Type) &y, const Vector(Type) &c, real omega, TransposeMode tpmode=NOT_TRANSPOSED) const=0 |
| virtual void | SOR1it (Vector(Type) &xnew, const Vector(Type) &xold, const Vector(Type) &b, real omega, TransposeMode tpmode=NOT_TRANSPOSED) const=0 |
| virtual void | SORsolve (Vector(Type) &y, const Vector(Type) &c, real omega, TransposeMode tpmode=NOT_TRANSPOSED) const=0 |
| virtual void | Jacobi1it (Vector(Type) &xnew, const Vector(Type) &xold, const Vector(Type) &b, TransposeMode tpmode=NOT_TRANSPOSED) const=0 |
| virtual void | Jacobisolve (Vector(Type) &y, const Vector(Type) &c, TransposeMode tpmode=NOT_TRANSPOSED) const=0 |
| virtual void | print (Os os, const char *header=NULL, int nentries_per_line=3) const=0 |
| virtual void | printAscii (Os os, const char *header=NULL) const=0 |
| virtual void | scan (Is is)=0 |
| virtual void | save (const char *filename, const char *name="X") const |
| virtual void | load (const char *filename, const char *name="X") |
Protected Methods | |
| virtual void | copy_matrix_attributes (const Matrix(Type) &X) |
| virtual void | reset () |
Protected Attributes | |
| bool | symm_storage |
| bool | pivot_allowed |
| bool | is_factorized |
| FactType | last_fact |
| PivotType | last_pivtp |
| int | prod_work |
| int | matvec_work |
| int | fact_work |
| int | forwback_work |
| int | inv_work |
| int | det_work |
| int | jacobi_work |
| int | sor_work |
| int | ssor_work |
NAME: Matrix(Type) - abstract base class for matrices with arithmetic operations
DESCRIPTION:
The class serves as base for various matrix formats, such as standard (dense) matrices, sparse matrices and banded matrices. All these matrix formats have in common that the classes offer arithmetic operations like matrix-vector products, LU decompositions etc.
|
|
The only constructor requires no parameters. No further initialization of this class is required. |
|
|
|
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSparse(Type), and MatTri(Type). |
|
|
|
|
|
permits conversion between any two matrix formats. This functionality is based on format-independent matrix indexing together with each format's version of "getIndexSet", "validIndexSet" and the accompanying "redim". For this reason, the conversion process is slow for large matrix objects. |
|
|
Reimplemented in Mat(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
See documentation of one of the overloaded functions. |
|
|
returns true if the matrix is factorized (may also return factorization and pivot types). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
returns the number of columns in the current object when viewed (logically) as a full matrix. Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
returns the number of nonzero entries represented in the current object. Note that this function does not take symmetric storage formats into account. That is, it also counts entry "a(j,i)" even if this value is not stored due to symmetry properties. This function does not check for stored zero entries, but counts all entries represented by the chosen matrix format. Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
returns the number of rows in the current object when viewed (logically) as a full matrix. Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
returns the operation count for the last computation of the type indicated by the "MatrixWork" argument. Reimplemented in MatDiag(Type), MatEBE(Type), and MatSparse(Type). |
|
|
quite similar to "save", this function permits Matlab data files to be entered into the current vector object. If available, the binary format is used, otherwise it reads plain ASCII files. The version implemented in this base class is dummy, stating that the described functionality is not available. To overrule this behaviour, the "load" function should be implemented for the specific format(s). Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSparse(Type), and MatTri(Type). |
|
|
|
|
|
Reimplemented in MatSparse(Type). |
|
|
|
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type). |
|
|
allows the user to manually specify the factorization/pivoting attributes for the current matrix object. |
|
|
|
|
|
saves the current vector object in a file that is readable for Matlab. If available, the utilities for Matlab's internal binary data file format is used. Otherwise, the output is given as a plain ASCII file that can be loaded in Matlab. The version implemented in this base class is dummy, stating that the described functionality is not available. To overrule this behaviour, the "save" function should be implemented for the specific format(s). Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
|
|
|
Reimplemented in Mat(Type), MatDiag(Type), MatEBE(Type), MatSchur(Type), MatSparse(Type), and MatTri(Type). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|