AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
List of all members
AbstractLinAlgPack::MatrixSymNonsingSerial Class Reference

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>

Inheritance diagram for AbstractLinAlgPack::MatrixSymNonsingSerial:
Inheritance graph
[legend]

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 VectorSpacespace_cols () const =0
 Vector space for vectors that are compatible with the columns of the matrix. More...
 
virtual const VectorSpacespace_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

Detailed Description

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.

Member Function Documentation

void AbstractLinAlgPack::MatrixSymNonsingSerial::M_StMtInvMtM ( DMatrixSliceSym sym_gms_lhs,
value_type  alpha,
const MatrixOpSerial mwo,
BLAS_Cpp::Transp  mwo_trans,
EMatrixDummyArg   
) const
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.

void AbstractLinAlgPack::MatrixSymNonsingSerial::M_StMtInvMtM ( MatrixSymOp symwo_lhs,
value_type  alpha,
const MatrixOp mwo,
BLAS_Cpp::Transp  mwo_trans,
EMatrixDummyArg   
) const
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.


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