Classes | |
| class | AbstractLinAlgPack::MatrixNonsing::SingularMatrix |
| This exception will be thrown if it turns out at runtime that the matrix is numerically singular. More... | |
| class | AbstractLinAlgPack::MatrixNonsing::SingularMatrix |
| This exception will be thrown if it turns out at runtime that the matrix is numerically singular. More... | |
Clone | |
| virtual mat_mns_mut_ptr_t | AbstractLinAlgPack::MatrixNonsing::clone_mns () |
| Clone the non-const matrix object (if supported). | |
| virtual mat_mns_ptr_t | AbstractLinAlgPack::MatrixNonsing::clone_mns () const |
| Clone the const matrix object (if supported). | |
Level-2 BLAS | |
| virtual void | AbstractLinAlgPack::MatrixNonsing::V_InvMtV (VectorMutable *v_lhs, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2) const =0 |
| v_lhs = inv(op(M_rhs1)) * vs_rhs2 | |
| virtual void | AbstractLinAlgPack::MatrixNonsing::V_InvMtV (VectorMutable *v_lhs, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) const |
| v_lhs = inv(op(M_rhs1)) * sv_rhs2 | |
| virtual value_type | AbstractLinAlgPack::MatrixNonsing::transVtInvMtV (const Vector &v_rhs1, BLAS_Cpp::Transp trans_rhs2, const Vector &v_rhs3) const |
| result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3 | |
| virtual value_type | AbstractLinAlgPack::MatrixNonsing::transVtInvMtV (const SpVectorSlice &sv_rhs1, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) const |
| result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3 | |
Level-3 BLAS | |
| virtual void | AbstractLinAlgPack::MatrixNonsing::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). | |
| virtual void | AbstractLinAlgPack::MatrixNonsing::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). | |
Level-2 BLAS | |
| void | AbstractLinAlgPack::V_InvMtV (VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2) |
| | |
| void | AbstractLinAlgPack::V_InvMtV (VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) |
| | |
| value_type | AbstractLinAlgPack::transVtInvMtV (const Vector &v_rhs1, const MatrixNonsing &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const Vector &v_rhs3) |
| | |
| value_type | AbstractLinAlgPack::transVtInvMtV (const SpVectorSlice &sv_rhs1, const MatrixNonsing &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) |
| | |
Level-3 BLAS | |
| void | AbstractLinAlgPack::M_StInvMtM (MatrixOp *m_lhs, value_type alpha, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2) |
| | |
| void | AbstractLinAlgPack::M_StMtInvM (MatrixOp *m_lhs, value_type alpha, const MatrixOp &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixNonsing &M_rhs2, BLAS_Cpp::Transp trans_rhs2) |
| | |
These allow nonmember functions to act like virtual functions and thereby allow the same syntax as in DenseLinAlgPack.
| MatrixNonsing::mat_mns_mut_ptr_t AbstractLinAlgPack::MatrixNonsing::clone_mns | ( | ) | [virtual, inherited] |
Clone the non-const matrix object (if supported).
The default implementation returns NULL which is perfectly acceptable. A matrix object is not required to return a non-NULL value but almost every good matrix implementation will.
Reimplemented in AbstractLinAlgPack::MatrixOpNonsing, AbstractLinAlgPack::MatrixSymNonsing, and AbstractLinAlgPack::MatrixSymOpNonsing.
Definition at line 49 of file AbstractLinAlgPack_MatrixNonsing.cpp.
| MatrixNonsing::mat_mns_ptr_t AbstractLinAlgPack::MatrixNonsing::clone_mns | ( | ) | const [virtual, inherited] |
Clone the const matrix object (if supported).
The behavior of this method is the same as for the non-const version above except it returns a smart pointer to a const matrix object.
The default implementation of this method will call the non-const version and then cast to constant.
Reimplemented in AbstractLinAlgPack::MatrixOpNonsing, AbstractLinAlgPack::MatrixSymNonsing, and AbstractLinAlgPack::MatrixSymOpNonsing.
Definition at line 55 of file AbstractLinAlgPack_MatrixNonsing.cpp.
| virtual void AbstractLinAlgPack::MatrixNonsing::V_InvMtV | ( | VectorMutable * | v_lhs, | |
| BLAS_Cpp::Transp | trans_rhs1, | |||
| const Vector & | v_rhs2 | |||
| ) | const [pure virtual, inherited] |
v_lhs = inv(op(M_rhs1)) * vs_rhs2
Implemented in AbstractLinAlgPack::MatrixOpNonsingAggr, AbstractLinAlgPack::MatrixSymDiagStd, AbstractLinAlgPack::MatrixSymIdent, and AbstractLinAlgPack::MatrixNonsingSerial.
| void AbstractLinAlgPack::MatrixNonsing::V_InvMtV | ( | VectorMutable * | v_lhs, | |
| BLAS_Cpp::Transp | trans_rhs1, | |||
| const SpVectorSlice & | sv_rhs2 | |||
| ) | const [virtual, inherited] |
v_lhs = inv(op(M_rhs1)) * sv_rhs2
Reimplemented in AbstractLinAlgPack::MatrixOpNonsingAggr, AbstractLinAlgPack::MatrixSymDiagStd, and AbstractLinAlgPack::MatrixNonsingSerial.
Definition at line 62 of file AbstractLinAlgPack_MatrixNonsing.cpp.
| value_type AbstractLinAlgPack::MatrixNonsing::transVtInvMtV | ( | const Vector & | v_rhs1, | |
| BLAS_Cpp::Transp | trans_rhs2, | |||
| const Vector & | v_rhs3 | |||
| ) | const [virtual, inherited] |
result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3
Reimplemented in AbstractLinAlgPack::MatrixOpNonsingAggr, and AbstractLinAlgPack::MatrixNonsingSerial.
Definition at line 80 of file AbstractLinAlgPack_MatrixNonsing.cpp.
| value_type AbstractLinAlgPack::MatrixNonsing::transVtInvMtV | ( | const SpVectorSlice & | sv_rhs1, | |
| BLAS_Cpp::Transp | trans_rhs2, | |||
| const SpVectorSlice & | sv_rhs3 | |||
| ) | const [virtual, inherited] |
result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3
Reimplemented in AbstractLinAlgPack::MatrixOpNonsingAggr, and AbstractLinAlgPack::MatrixNonsingSerial.
Definition at line 93 of file AbstractLinAlgPack_MatrixNonsing.cpp.
| void AbstractLinAlgPack::MatrixNonsing::M_StInvMtM | ( | MatrixOp * | m_lhs, | |
| value_type | alpha, | |||
| BLAS_Cpp::Transp | trans_rhs1, | |||
| const MatrixOp & | mwo_rhs2, | |||
| BLAS_Cpp::Transp | trans_rhs2 | |||
| ) | const [virtual, inherited] |
m_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right).
The default implemention performs a dynamic_cast<MultiVectorMutable>(m_lhs). If this dynamic_cast<> does not return NULL , then this operation is implemented in terms of this->V_InvMtV() one row or column at a time. If this dynamic_cast<> returns false, then this default implementation has no choice but to throw an exception (std::invalid_argument).
Reimplemented in AbstractLinAlgPack::MatrixOpNonsingAggr, and AbstractLinAlgPack::MatrixNonsingSerial.
Definition at line 108 of file AbstractLinAlgPack_MatrixNonsing.cpp.
| void AbstractLinAlgPack::MatrixNonsing::M_StMtInvM | ( | MatrixOp * | m_lhs, | |
| value_type | alpha, | |||
| const MatrixOp & | mwo_rhs1, | |||
| BLAS_Cpp::Transp | trans_rhs1, | |||
| BLAS_Cpp::Transp | trans_rhs2 | |||
| ) | const [virtual, inherited] |
m_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left).
The default implemention performs a dynamic_cast<MultiVectorMutable>(m_lhs). If this dynamic_cast<> does not return NULL , then this operation is implemented in terms of this->V_InvMtV() one row or column at a time. If this dynamic_cast<> returns false, then this default implementation has no choice but to throw an exception (std::invalid_argument).
Reimplemented in AbstractLinAlgPack::MatrixOpNonsingAggr, and AbstractLinAlgPack::MatrixNonsingSerial.
Definition at line 163 of file AbstractLinAlgPack_MatrixNonsing.cpp.
| void AbstractLinAlgPack::V_InvMtV | ( | VectorMutable * | v_lhs, | |
| const MatrixNonsing & | M_rhs1, | |||
| BLAS_Cpp::Transp | trans_rhs1, | |||
| const Vector & | v_rhs2 | |||
| ) | [inline] |
| void AbstractLinAlgPack::V_InvMtV | ( | VectorMutable * | v_lhs, | |
| const MatrixNonsing & | M_rhs1, | |||
| BLAS_Cpp::Transp | trans_rhs1, | |||
| const SpVectorSlice & | sv_rhs2 | |||
| ) | [inline] |
| value_type AbstractLinAlgPack::transVtInvMtV | ( | const Vector & | v_rhs1, | |
| const MatrixNonsing & | M_rhs2, | |||
| BLAS_Cpp::Transp | trans_rhs2, | |||
| const Vector & | v_rhs3 | |||
| ) | [inline] |
| value_type AbstractLinAlgPack::transVtInvMtV | ( | const SpVectorSlice & | sv_rhs1, | |
| const MatrixNonsing & | M_rhs2, | |||
| BLAS_Cpp::Transp | trans_rhs2, | |||
| const SpVectorSlice & | sv_rhs3 | |||
| ) | [inline] |
| void AbstractLinAlgPack::M_StInvMtM | ( | MatrixOp * | m_lhs, | |
| value_type | alpha, | |||
| const MatrixNonsing & | M_rhs1, | |||
| BLAS_Cpp::Transp | trans_rhs1, | |||
| const MatrixOp & | mwo_rhs2, | |||
| BLAS_Cpp::Transp | trans_rhs2 | |||
| ) | [inline] |
| void AbstractLinAlgPack::M_StMtInvM | ( | MatrixOp * | m_lhs, | |
| value_type | alpha, | |||
| const MatrixOp & | mwo_rhs1, | |||
| BLAS_Cpp::Transp | trans_rhs1, | |||
| const MatrixNonsing & | M_rhs2, | |||
| BLAS_Cpp::Transp | trans_rhs2 | |||
| ) | [inline] |
1.4.7