suanPan
SparseMatBaseMUMPS< T > Class Template Reference

#include <SparseMatMUMPS.hpp>

Inheritance diagram for SparseMatBaseMUMPS< T >:
Collaboration diagram for SparseMatBaseMUMPS< T >:

Public Member Functions

 SparseMatBaseMUMPS (const uword in_row, const uword in_col, const uword in_elem, const int in_sym)
 
 SparseMatBaseMUMPS (const SparseMatBaseMUMPS &other)
 
 SparseMatBaseMUMPS (SparseMatBaseMUMPS &&) noexcept=delete
 
SparseMatBaseMUMPSoperator= (const SparseMatBaseMUMPS &)=delete
 
SparseMatBaseMUMPSoperator= (SparseMatBaseMUMPS &&) noexcept=delete
 
 ~SparseMatBaseMUMPS () override
 
void zeros () override
 
int sign_det () const override
 
- Public Member Functions inherited from SparseMat< T >
 SparseMat (const uword in_row, const uword in_col, const uword in_elem=0)
 
bool is_empty () const override
 
void zeros () override
 
void nullify (const uword idx) override
 
T max () const override
 
Col< Tdiag () const override
 
T operator() (const uword in_row, const uword in_col) const override
 Access element (read-only), returns zero if out-of-bound. More...
 
Tat (const uword in_row, const uword in_col) override
 Access element with bound check. More...
 
const Tmemptr () const override
 
Tmemptr () override
 
void scale_accu (const T scalar, const shared_ptr< MetaMat< T > > &in_mat) override
 
void scale_accu (const T scalar, const triplet_form< T, uword > &in_mat) override
 
Mat< Toperator* (const Mat< T > &in_mat) const override
 
void operator*= (const T scalar) override
 
int sign_det () const override
 
void csc_condense () override
 
void csr_condense () override
 
- Public Member Functions inherited from MetaMat< T >
 MetaMat (const uword in_rows, const uword in_cols, const uword in_elem)
 
 MetaMat (const MetaMat &)=default
 
 MetaMat (MetaMat &&) noexcept=delete
 
MetaMatoperator= (const MetaMat &)=delete
 
MetaMatoperator= (MetaMat &&) noexcept=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< MetaMatmake_copy ()=0
 
void unify (const uword K)
 
virtual void nullify (uword)=0
 
virtual T max () const =0
 
virtual Col< Tdiag () const =0
 
virtual T operator() (uword, uword) const =0
 Access element (read-only), returns zero if out-of-bound. More...
 
virtual Tunsafe_at (const uword I, const uword J)
 Access element without bound check. More...
 
virtual Tat (uword, uword)=0
 Access element with bound check. More...
 
virtual const Tmemptr () const =0
 
virtual Tmemptr ()=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< Toperator* (const Mat< T > &) const =0
 
virtual void operator*= (T)=0
 
template<ArmaContainer< T > C>
int solve (Mat< T > &X, C &&B)
 
template<ArmaContainer< T > C>
Mat< Tsolve (C &&B)
 
virtual int sign_det () const =0
 
void save (const char *name)
 
virtual void csc_condense ()
 
virtual void csr_condense ()
 
Col< Tevaluate (const Col< T > &X) const
 

Protected Member Functions

int direct_solve (Mat< T > &X, Mat< T > &&B) override
 
int direct_solve (Mat< T > &X, const Mat< T > &B) override
 
int direct_solve (Mat< T > &X, Mat< T > &&B) override
 
- Protected Member Functions inherited from MetaMat< T >
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)
 
int iterative_solve (Mat< T > &, const Mat< T > &)
 
int iterative_solve (Mat< T > &X, const SpMat< T > &B)
 
template<std::invocable< fmat & > F>
int mixed_trs (mat &X, mat &&B, F trs)
 

Protected Attributes

triplet_form< T, uword > h_mat
 
- Protected Attributes inherited from MetaMat< T >
bool factored = false
 
SolverSetting< Tsetting {}
 

Additional Inherited Members

- Public Attributes inherited from MetaMat< T >
triplet_form< T, uword > triplet_mat
 
const uword n_rows
 
const uword n_cols
 
const uword n_elem
 

Constructor & Destructor Documentation

◆ SparseMatBaseMUMPS() [1/3]

template<sp_d T>
SparseMatBaseMUMPS< T >::SparseMatBaseMUMPS ( const uword  in_row,
const uword  in_col,
const uword  in_elem,
const int  in_sym 
)
inline

◆ SparseMatBaseMUMPS() [2/3]

template<sp_d T>
SparseMatBaseMUMPS< T >::SparseMatBaseMUMPS ( const SparseMatBaseMUMPS< T > &  other)
inline

◆ SparseMatBaseMUMPS() [3/3]

template<sp_d T>
SparseMatBaseMUMPS< T >::SparseMatBaseMUMPS ( SparseMatBaseMUMPS< T > &&  )
deletenoexcept

◆ ~SparseMatBaseMUMPS()

template<sp_d T>
SparseMatBaseMUMPS< T >::~SparseMatBaseMUMPS ( )
inlineoverride

Member Function Documentation

◆ direct_solve() [1/2]

template<sp_d T>
int SparseMatBaseMUMPS< T >::direct_solve ( Mat< T > &  X,
const Mat< T > &  B 
)
inlineoverrideprotectedvirtual

Implements MetaMat< T >.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ direct_solve() [2/2]

template<sp_d T>
int SparseMatBaseMUMPS< T >::direct_solve ( Mat< T > &  X,
Mat< T > &&  B 
)
inlineoverrideprotectedvirtual

Reimplemented from SparseMat< T >.

Reimplemented in SparseSymmMatMUMPS< T >.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=() [1/2]

template<sp_d T>
SparseMatBaseMUMPS & SparseMatBaseMUMPS< T >::operator= ( const SparseMatBaseMUMPS< T > &  )
delete

◆ operator=() [2/2]

template<sp_d T>
SparseMatBaseMUMPS & SparseMatBaseMUMPS< T >::operator= ( SparseMatBaseMUMPS< T > &&  )
deletenoexcept

◆ sign_det()

template<sp_d T>
int SparseMatBaseMUMPS< T >::sign_det ( ) const
inlineoverridevirtual

Reimplemented from SparseMat< T >.

◆ zeros()

template<sp_d T>
void SparseMatBaseMUMPS< T >::zeros ( )
inlineoverridevirtual

Reimplemented from SparseMat< T >.

Here is the call graph for this function:

Member Data Documentation

◆ h_mat

template<sp_d T>
triplet_form<T, uword> SparseMatBaseMUMPS< T >::h_mat
protected

The documentation for this class was generated from the following file: