AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects
Version of the Day
|
Abstract base class for all serial polymorphic symmetrix nonsingular matrices that can be used to solve for linear systems relatively efficiently. More...
#include <AbstractLinAlgPack_MatrixSymNonsingSerial.hpp>
Level-3 | |
virtual void | M_StMtInvMtM (DMatrixSliceSym *sym_gms_lhs, value_type alpha, const MatrixOpSerial &mwo, BLAS_Cpp::Transp mwo_trans, EMatrixDummyArg) const |
sym_gms_lhs = alpha * op(mwo) * inv(M) * op(mwo)'. More... | |
Overridden from MatrixSymNonsing | |
void | M_StMtInvMtM (MatrixSymOp *sym_lhs, value_type alpha, const MatrixOp &mwo, BLAS_Cpp::Transp mwo_trans, EMatrixDummyArg) const |
symwo_lhs = alpha * op(mwo) * inv(M) * op(mwo)'. More... | |
Additional Inherited Members | |
Public Types inherited from AbstractLinAlgPack::MatrixSymNonsing | |
enum | EMatrixDummyArg |
Public Member Functions inherited from AbstractLinAlgPack::MatrixNonsingSerial | |
virtual void | V_InvMtV (DVector *v_lhs, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2) const |
v_lhs = inv(op(M_rhs1)) * vs_rhs2 More... | |
virtual void | V_InvMtV (DVectorSlice *vs_lhs, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2) const =0 |
vs_lhs = inv(op(M_rhs1)) * vs_rhs2 More... | |
virtual void | V_InvMtV (DVector *v_lhs, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) const |
v_lhs = inv(op(M_rhs1)) * sv_rhs2 More... | |
virtual void | V_InvMtV (DVectorSlice *vs_lhs, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) const |
vs_lhs = inv(op(M_rhs1)) * sv_rhs2 More... | |
virtual value_type | transVtInvMtV (const DVectorSlice &vs_rhs1, BLAS_Cpp::Transp trans_rhs2, const DVectorSlice &vs_rhs3) const |
result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3 More... | |
virtual value_type | transVtInvMtV (const SpVectorSlice &sv_rhs1, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) const |
result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3 More... | |
virtual void | M_StInvMtM (DMatrix *gm_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DMatrixSlice &gms_rhs2, BLAS_Cpp::Transp trans_rhs2) const |
gm_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right) More... | |
virtual void | M_StInvMtM (DMatrixSlice *gms_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DMatrixSlice &gms_rhs2, BLAS_Cpp::Transp trans_rhs2) const |
gms_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right) More... | |
virtual void | M_StMtInvM (DMatrix *gm_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2) const |
gm_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left) More... | |
virtual void | M_StMtInvM (DMatrixSlice *gms_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2) const |
gms_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left) More... | |
virtual void | M_StInvMtM (DMatrix *gm_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2) const |
gm_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right) More... | |
virtual void | M_StInvMtM (DMatrixSlice *gms_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2) const |
gms_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right) More... | |
virtual void | M_StMtInvM (DMatrix *gm_lhs, value_type alpha, const MatrixOpSerial &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2) const |
gm_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left) More... | |
virtual void | M_StMtInvM (DMatrixSlice *gms_lhs, value_type alpha, const MatrixOpSerial &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2) const |
gms_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left) More... | |
void | V_InvMtV (VectorMutable *v_lhs, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2) const |
v_lhs = inv(op(M_rhs1)) * vs_rhs2 More... | |
void | V_InvMtV (VectorMutable *v_lhs, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) const |
v_lhs = inv(op(M_rhs1)) * sv_rhs2 More... | |
value_type | transVtInvMtV (const Vector &v_rhs1, BLAS_Cpp::Transp trans_rhs2, const Vector &v_rhs3) const |
result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3 More... | |
void | M_StInvMtM (MatrixOp *m_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2) const |
m_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right). More... | |
void | M_StMtInvM (MatrixOp *m_lhs, value_type alpha, const MatrixOp &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2) const |
m_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left). More... | |
Public Member Functions inherited from AbstractLinAlgPack::MatrixNonsing | |
Public Member Functions inherited from AbstractLinAlgPack::MatrixBase | |
virtual | ~MatrixBase () |
Virtual destructor. More... | |
virtual const VectorSpace & | space_cols () const =0 |
Vector space for vectors that are compatible with the columns of the matrix. More... | |
virtual const VectorSpace & | space_rows () const =0 |
Vector space for vectors that are compatible with the rows of the matrix. More... | |
virtual size_type | rows () const |
Return the number of rows in the matrix. More... | |
virtual size_type | cols () const |
Return the number of columns in the matrix. More... | |
virtual size_type | nz () const |
Return the number of nonzero elements in the matrix. More... | |
Public Member Functions inherited from AbstractLinAlgPack::MatrixSymNonsing | |
virtual mat_msns_mut_ptr_t | clone_msns () |
Clone the non-const matrix object (if supported). More... | |
virtual mat_msns_ptr_t | clone_msns () const |
Clone the const matrix object (if supported). More... | |
mat_mns_mut_ptr_t | clone_mns () |
Returns this->clone_msns() . More... | |
mat_mns_ptr_t | clone_mns () const |
Returns this->clone_msns() . More... | |
Protected Member Functions inherited from AbstractLinAlgPack::MatrixSymNonsing |
Abstract base class for all serial polymorphic symmetrix nonsingular matrices that can be used to solve for linear systems relatively efficiently.
The methods of this interface should not be called directly but instead through the provided nonmember functions.
Definition at line 56 of file AbstractLinAlgPack_MatrixSymNonsingSerial.hpp.
|
virtual |
sym_gms_lhs = alpha * op(mwo) * inv(M) * op(mwo)'.
The default implementation is based on the operation M_StInvMtM(...) assuming that this M
is a symmetric matrix. For an efficient implementation (for this = L*L' for instance) the subclass may want to override this function.
Definition at line 62 of file AbstractLinAlgPack_MatrixSymNonsingSerial.cpp.
|
virtual |
symwo_lhs = alpha * op(mwo) * inv(M) * op(mwo)'.
The default implementation is based on the operation M_StInvMtM(...) assuming that this #M# is a symmetric matrix. For an efficient implementation (for this = L*L' for instance) the subclass may want to override this function.
Reimplemented from AbstractLinAlgPack::MatrixSymNonsing.
Definition at line 113 of file AbstractLinAlgPack_MatrixSymNonsingSerial.cpp.