Handles small size matrices like element matrices, with a priori known size. More...
#include <LocalMatrix.h>
Public Member Functions | |
| LocalMatrix () | |
| Default constructor. | |
| LocalMatrix (const LocalMatrix< T_, NR_, NC_ > &m) | |
| Copy constructor. | |
| LocalMatrix (Element *el, const SpMatrix< T_ > &a) | |
| Constructor of a local matrix associated to element from a SpMatrix. | |
| LocalMatrix (Element *el, const SkMatrix< T_ > &a) | |
| Constructor of a local matrix associated to element from a SkMatrix. | |
| LocalMatrix (Element *el, const SkSMatrix< T_ > &a) | |
| Constructor of a local matrix associated to element from a SkSMatrix. | |
| ~LocalMatrix () | |
| Destructor. | |
| T_ & | operator() (size_t i, size_t j) |
Operator () (Non constant version) | |
| T_ | operator() (size_t i, size_t j) const |
Operator () (Constant version) | |
| void | Localize (Element *el, const SpMatrix< T_ > &a) |
| Initialize matrix as element matrix from global SpMatrix. | |
| void | Localize (Element *el, const SkMatrix< T_ > &a) |
| Initialize matrix as element matrix from global SkMatrix. | |
| void | Localize (Element *el, const SkSMatrix< T_ > &a) |
| Initialize matrix as element matrix from global SkSMatrix. | |
| LocalMatrix< T_, NR_, NC_ > & | operator= (const LocalMatrix< T_, NR_, NC_ > &m) |
Operator = | |
| void | clear () |
| Clear matrix. | |
| LocalMatrix< T_, NR_, NC_ > & | operator= (const T_ &x) |
Operator = | |
| LocalMatrix< T_, NR_, NC_ > & | operator+= (const LocalMatrix< T_, NR_, NC_ > &m) |
Operator += | |
| LocalMatrix< T_, NR_, NC_ > & | operator-= (const LocalMatrix< T_, NR_, NC_ > &m) |
Operator -= | |
| LocalVect< T_, NR_ > | operator* (LocalVect< T_, NC_ > &x) |
Operator * | |
| LocalMatrix< T_, NR_, NC_ > & | operator+= (const T_ &x) |
Operator += | |
| LocalMatrix< T_, NR_, NC_ > & | operator-= (const T_ &x) |
Operator -= | |
| LocalMatrix< T_, NR_, NC_ > & | operator*= (const T_ &x) |
Operator *= | |
| LocalMatrix< T_, NR_, NC_ > & | operator/= (const T_ &x) |
Operator /= | |
| void | MultAdd (const LocalVect< T_, NC_ > &x, LocalVect< T_, NR_ > &y) |
| Multiply matrix by vector and add result to vector. | |
| void | MultAddScal (const T_ &a, const LocalVect< T_, NC_ > &x, LocalVect< T_, NR_ > &y) |
| Multiply matrix by scaled vector and add result to vector. | |
| void | Mult (const LocalVect< T_, NC_ > &x, LocalVect< T_, NR_ > &y) |
| Multiply matrix by vector. | |
| void | Symmetrize () |
| Symmetrize matrix. | |
| int | Factor () |
| Factorize matrix. | |
| int | solve (LocalVect< T_, NR_ > &b) |
| Forward and backsubstitute to solve a linear system. | |
| int | FactorAndSolve (LocalVect< T_, NR_ > &b) |
| Factorize matrix and solve linear system. | |
| void | Invert (LocalMatrix< T_, NR_, NC_ > &A) |
| Calculate inverse of matrix. | |
| T_ | getInnerProduct (const LocalVect< T_, NC_ > &x, const LocalVect< T_, NR_ > &y) |
| Calculate inner product witrh respect to matrix. | |
| T_ * | get () |
| Return pointer to matrix as a C-array. | |
Handles small size matrices like element matrices, with a priori known size.
The template class LocalMatrix treats small size matrices. Typically, this class is recommended to store element and side arrays.
Internally, no dynamic storage is used.
| T_ | Data type (double, float, complex<double>, ...) |
| NR_ | number of rows of matrix |
| NC_ | number of columns of matrix |
| LocalMatrix | ( | ) |
Default constructor.
Constructs a matrix with 0 rows and 0 columns
| LocalMatrix | ( | Element * | el, |
| const SpMatrix< T_ > & | a ) |
| LocalMatrix | ( | Element * | el, |
| const SkMatrix< T_ > & | a ) |
| LocalMatrix | ( | Element * | el, |
| const SkSMatrix< T_ > & | a ) |
| void clear | ( | ) |
Clear matrix.
Set all matrix entries to zero
| int Factor | ( | ) |
Factorize matrix.
Performs a LU factorization.
0: Factorization has ended normally, n: n-th pivot was zero. | int FactorAndSolve | ( | LocalVect< T_, NR_ > & | b | ) |
Factorize matrix and solve linear system.
| [in,out] | b | Right-hand side in input and solution vector in output. |
0 if solution was performed normally. n if n-th pivot is zero. This function simply calls Factor() then Solve(b). | T_ getInnerProduct | ( | const LocalVect< T_, NC_ > & | x, |
| const LocalVect< T_, NR_ > & | y ) |
Calculate inner product witrh respect to matrix.
Returns the product xTAy
| [in] | x | Left vector |
| [in] | y | Right vector |
| void Invert | ( | LocalMatrix< T_, NR_, NC_ > & | A | ) |
Calculate inverse of matrix.
| [out] | A | Inverse of matrix |
| void Mult | ( | const LocalVect< T_, NC_ > & | x, |
| LocalVect< T_, NR_ > & | y ) |
Multiply matrix by vector.
| [in] | x | Vector to multiply matrix by. |
| [out] | y | Resulting vector. |
| void MultAdd | ( | const LocalVect< T_, NC_ > & | x, |
| LocalVect< T_, NR_ > & | y ) |
Multiply matrix by vector and add result to vector.
| [in] | x | Vector to multiply matrix by. |
| [out] | y | Resulting vector (y += a * x) |
| void MultAddScal | ( | const T_ & | a, |
| const LocalVect< T_, NC_ > & | x, | ||
| LocalVect< T_, NR_ > & | y ) |
Multiply matrix by scaled vector and add result to vector.
| [in] | a | Constant to premultiply by vector x. |
| [in] | x | (Scaled) vector to multiply matrix by. |
| [out] | y | Resulting vector (y += a * x) |
| T_ & operator() | ( | size_t | i, |
| size_t | j ) |
Operator () (Non constant version)
Returns entry at row i and column j.
| T_ operator() | ( | size_t | i, |
| size_t | j ) const |
Operator () (Constant version)
Returns entry at row i and column j.
| LocalVect< T_, NR_ > operator* | ( | LocalVect< T_, NC_ > & | x | ) |
Operator *
Return a Vect instance as product of current matrix by vector x.
| LocalMatrix< T_, NR_, NC_ > & operator*= | ( | const T_ & | x | ) |
Operator *=
Multiply matrix entries by constant x.
| LocalMatrix< T_, NR_, NC_ > & operator+= | ( | const LocalMatrix< T_, NR_, NC_ > & | m | ) |
Operator +=
Add m to current matrix.
| LocalMatrix< T_, NR_, NC_ > & operator+= | ( | const T_ & | x | ) |
Operator +=
Add constant x to current matrix entries.
| LocalMatrix< T_, NR_, NC_ > & operator-= | ( | const LocalMatrix< T_, NR_, NC_ > & | m | ) |
Operator -=
Subtract m from current matrix.
| LocalMatrix< T_, NR_, NC_ > & operator-= | ( | const T_ & | x | ) |
Operator -=
Subtract x from current matrix entries.
| LocalMatrix< T_, NR_, NC_ > & operator/= | ( | const T_ & | x | ) |
Operator /=
Divide by x current matrix entries.
| LocalMatrix< T_, NR_, NC_ > & operator= | ( | const LocalMatrix< T_, NR_, NC_ > & | m | ) |
Operator =
Copy instance m into current instance.
| LocalMatrix< T_, NR_, NC_ > & operator= | ( | const T_ & | x | ) |
Operator =
Assign matrix to identity times x
| int solve | ( | LocalVect< T_, NR_ > & | b | ) |
Forward and backsubstitute to solve a linear system.
| [in] | b | Right-hand side in input and solution vector in output. |
0: Solution was performed normally. n: n-th pivot is zero. | void Symmetrize | ( | ) |
Symmetrize matrix.
Fill upper triangle to form a symmetric matrix.