|
suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
|
A MetaMat class that holds matrices. More...
#include <MetaMat.hpp>
Public Member Functions | |
| MetaMat (const uword in_rows, const uword in_cols, const uword in_elem) | |
| MetaMat (const MetaMat &)=default | |
| MetaMat (MetaMat &&)=delete | |
| MetaMat & | operator= (const MetaMat &)=delete |
| MetaMat & | operator= (MetaMat &&)=delete |
| virtual | ~MetaMat ()=default |
| void | set_solver_setting (const SolverSetting< T > &SS) |
| SolverSetting< T > & | get_solver_setting () |
| void | set_factored (const bool F) |
| virtual bool | is_empty () const =0 |
| virtual void | zeros ()=0 |
| virtual unique_ptr< MetaMat > | unique_copy ()=0 |
| void | unify (const uword K) |
| virtual void | nullify (uword)=0 |
| void | unify (const uvec &list) |
| void | nullify (const uvec &list) |
| virtual T | max () const =0 |
| virtual T | operator() (uword, uword) const =0 |
| Access element (read-only), returns zero if out-of-bound. | |
| virtual T & | unsafe_at (const uword I, const uword J) |
| Access element without bound check. | |
| virtual T & | at (uword, uword)=0 |
| Access element with bound check. | |
| virtual const T * | memptr () const =0 |
| virtual T * | memptr ()=0 |
| virtual void | scale_accu (T, const shared_ptr< MetaMat > &)=0 |
| virtual void | scale_accu (T, const triplet_form< T, uword > &)=0 |
| void | operator+= (const shared_ptr< MetaMat > &M) |
| void | operator-= (const shared_ptr< MetaMat > &M) |
| void | operator+= (const op_scale< T > &M) |
| void | operator-= (const op_scale< T > &M) |
| void | operator+= (const triplet_form< T, uword > &M) |
| void | operator-= (const triplet_form< T, uword > &M) |
| virtual Mat< T > | operator* (const Mat< T > &) const =0 |
| virtual void | operator*= (T)=0 |
| template<typename C > requires is_arma_mat<T, C> | |
| int | solve (Mat< T > &X, C &&B) |
| template<typename C > requires is_arma_mat<T, C> | |
| Mat< T > | solve (C &&B) |
| virtual int | sign_det () const |
| virtual void | allreduce ()=0 |
| void | save (const char *name) |
| virtual void | csc_condense () |
| virtual void | csr_condense () |
Public Attributes | |
| triplet_form< T, uword > | triplet_mat |
| const uword | n_rows |
| const uword | n_cols |
| const uword | n_elem |
Protected Member Functions | |
| virtual int | direct_solve (Mat< T > &, const Mat< T > &)=0 |
| virtual int | direct_solve (Mat< T > &, Mat< T > &&)=0 |
| int | direct_solve (Mat< T > &X, const SpMat< T > &B) |
| int | direct_solve (Mat< T > &X, SpMat< T > &&B) |
| template<std::invocable< fmat & > F> | |
| int | mixed_trs (mat &X, mat &&B, F &&trs) |
Protected Attributes | |
| bool | factored = false |
| SolverSetting< T > | setting {} |
|
inline |
Implemented in DenseMat< T >, and SparseMat< T >.
Access element with bound check.
Implemented in BandMatCluster< T >, BandSymmMatCluster< T >, FullMatBaseCluster< T, solver_t >, BandMat< T >, BandMatSpike< T >, BandSymmMat< T >, FullMat< T >, SymmPackMat< T >, and SparseMat< T >.
Reimplemented in SparseMat< T >.
Reimplemented in SparseMat< T >.
|
protectedpure virtual |
Implemented in FullMatCUDA< T >, SparseMatCUDA< T >, SparseMatFGMRES< T >, SparseMatBasePARDISO< T, MT >, SparseMatMAGMA< T >, SparseMatSuperLU< T >, DenseMat< T >, SparseMatClusterLIS< T >, SparseMatBaseClusterMUMPS< T, sym >, and SparseMatBaseClusterPARDISO< T, mtype >.
|
protectedpure virtual |
Implemented in BandMatCluster< T >, BandSymmMatCluster< T >, FullMatBaseCluster< T, solver_t >, BandMat< T >, BandMatMAGMA< T >, BandMatSpike< T >, BandSymmMat< T >, FullMat< T >, SymmPackMat< T >, SparseMatMAGMA< T >, SparseMatSuperLU< T >, FullMatCUDA< T >, SparseMatClusterLIS< T >, SparseMatBaseClusterMUMPS< T, sym >, SparseMatBaseClusterPARDISO< T, mtype >, and SparseMat< T >.
|
inlineprotected |
|
inline |
Implemented in DenseMat< T >, and SparseMat< T >.
Implemented in DenseMat< T >, and SparseMat< T >.
Implemented in DenseMat< T >, and SparseMat< T >.
Implemented in DenseMat< T >, and SparseMat< T >.
|
inlineprotected |
Implemented in SparseMat< T >, BandMatCluster< T >, BandSymmMatCluster< T >, FullMatBaseCluster< T, solver_t >, BandMat< T >, BandMatSpike< T >, BandSymmMat< T >, FullMat< T >, and SymmPackMat< T >.
Access element (read-only), returns zero if out-of-bound.
Implemented in BandMatCluster< T >, BandSymmMatCluster< T >, FullMatBaseCluster< T, solver_t >, BandMat< T >, BandMatSpike< T >, BandSymmMat< T >, FullMat< T >, SymmPackMat< T >, and SparseMat< T >.
Implemented in BandMatCluster< T >, BandSymmMatCluster< T >, FullMatBaseCluster< T, solver_t >, BandMat< T >, BandMatSpike< T >, BandSymmMat< T >, FullMat< T >, SymmPackMat< T >, and SparseMat< T >.
Implemented in SparseMat< T >, and DenseMat< T >.
|
inline |
|
inline |
|
pure virtual |
Implemented in SparseMat< T >, and DenseMat< T >.
|
inline |
Reimplemented in BandMat< T >, BandSymmMat< T >, FullMat< T >, SymmPackMat< T >, and SparseMatBaseClusterMUMPS< T, sym >.
|
inline |
|
inline |
Implemented in BandMatCluster< T >, BandSymmMatCluster< T >, FullMatBaseCluster< T, solver_t >, BandMat< T >, BandMatMAGMA< T >, BandMatSpike< T >, BandSymmMat< T >, FullMat< T >, FullMatCUDA< T >, SymmPackMat< T >, SparseMatClusterLIS< T >, SparseMatBaseClusterMUMPS< T, sym >, SparseMatBaseClusterPARDISO< T, mtype >, SparseMatCUDA< T >, SparseMatFGMRES< T >, SparseMatMAGMA< T >, SparseMatBasePARDISO< T, MT >, and SparseMatSuperLU< T >.
Access element without bound check.
Reimplemented in BandMatCluster< T >, BandSymmMatCluster< T >, BandMat< T >, BandMatSpike< T >, BandSymmMat< T >, and SymmPackMat< T >.
Implemented in DenseMat< T >, and SparseMat< T >.
|
protected |
| triplet_form<T, uword> MetaMat< T >::triplet_mat |