MOOCHO (Single Doxygen Collection)
Version of the Day
|
Classes | |
class | AbstractLinAlgPack::MatrixNonsing::SingularMatrix |
This exception will be thrown if it turns out at runtime that the matrix is numerically singular. More... | |
Functions | |
AbstractLinAlgPack::MatrixNonsing::SingularMatrix::SingularMatrix (const std::string &what_arg) | |
Level-2 BLAS | |
void | AbstractLinAlgPack::V_InvMtV (VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2) |
v_lhs = inv(op(M_rhs1)) * v_rhs2 More... | |
void | AbstractLinAlgPack::V_InvMtV (VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) |
v_lhs = inv(op(M_rhs1)) * sv_rhs2 More... | |
value_type | AbstractLinAlgPack::transVtInvMtV (const Vector &v_rhs1, const MatrixNonsing &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const Vector &v_rhs3) |
result = v_rhs1' * inv(op(M_rhs2)) * v_rhs3 More... | |
value_type | AbstractLinAlgPack::transVtInvMtV (const SpVectorSlice &sv_rhs1, const MatrixNonsing &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) |
result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3 More... | |
void | AbstractLinAlgPack::Vp_StMtV (VectorMutable *v_lhs, value_type alpha, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta=1.0) |
v_lhs = alpha * op(M_rhs1) * v_rhs2 + beta * v_lhs (BLAS xGEMV) More... | |
void | AbstractLinAlgPack::Vp_StMtV (VectorMutable *v_lhs, value_type alpha, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta=1.0) |
v_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * v_lhs (BLAS xGEMV) More... | |
void | AbstractLinAlgPack::Vp_StPtMtV (VectorMutable *v_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &M_rhs2, BLAS_Cpp::Transp M_rhs2_trans, const Vector &v_rhs3, value_type beta=1.0) |
v_lhs = alpha * op(P_rhs1) * op(M_rhs2) * v_rhs3 + beta * v_rhs More... | |
void | AbstractLinAlgPack::Vp_StPtMtV (VectorMutable *v_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &M_rhs2, BLAS_Cpp::Transp M_rhs2_trans, const SpVectorSlice &sv_rhs3, value_type beta=1.0) |
v_lhs = alpha * op(P_rhs1) * op(M_rhs2) * sv_rhs3 + beta * v_rhs More... | |
value_type | AbstractLinAlgPack::transVtMtV (const Vector &v_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const Vector &v_rhs3) |
result = v_rhs1' * op(M_rhs2) * v_rhs3 More... | |
value_type | AbstractLinAlgPack::transVtMtV (const SpVectorSlice &sv_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) |
result = sv_rhs1' * op(M_rhs2) * sv_rhs3 More... | |
void | AbstractLinAlgPack::syr2k (const MatrixOp &M, BLAS_Cpp::Transp M_trans, value_type alpha, const GenPermMatrixSlice &P1, BLAS_Cpp::Transp P1_trans, const GenPermMatrixSlice &P2, BLAS_Cpp::Transp P2_trans, value_type beta, MatrixSymOp *symwo_lhs) |
symwo_lhs += alpha*op(P1')*op(M)*op(P2) + alpha*op(P2')*op(M')*op(P1) + beta*symwo_lhs More... | |
void | AbstractLinAlgPack::V_InvMtV (DVector *v_lhs, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2) |
v_lhs = inv(op(M_rhs1)) * vs_rhs2 More... | |
void | AbstractLinAlgPack::V_InvMtV (DVectorSlice *vs_lhs, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2) |
vs_lhs = inv(op(M_rhs1)) * vs_rhs2 More... | |
void | AbstractLinAlgPack::V_InvMtV (DVector *v_lhs, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) |
v_lhs = inv(op(M_rhs1)) * sv_rhs2 More... | |
void | AbstractLinAlgPack::V_InvMtV (DVectorSlice *vs_lhs, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) |
vs_lhs = inv(op(M_rhs1)) * sv_rhs2 More... | |
value_type | AbstractLinAlgPack::transVtInvMtV (const DVectorSlice &vs_rhs1, const MatrixNonsingSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const DVectorSlice &sv_rhs3) |
result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3 More... | |
value_type | AbstractLinAlgPack::transVtInvMtV (const SpVectorSlice &sv_rhs1, const MatrixNonsingSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) |
result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3 More... | |
void | AbstractLinAlgPack::Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, const MatrixOpSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta=1.0) |
vs_lhs = alpha * op(M_rhs1) * vs_rhs2 + beta * vs_lhs (BLAS xGEMV) More... | |
void | AbstractLinAlgPack::Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, const MatrixOpSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta=1.0) |
vs_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * vs_lhs (BLAS xGEMV) More... | |
void | AbstractLinAlgPack::Vp_StPtMtV (DVectorSlice *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOpSerial &M_rhs2, BLAS_Cpp::Transp M_rhs2_trans, const DVectorSlice &vs_rhs3, value_type beta=1.0) |
vs_lhs = alpha * op(P_rhs1) * op(M_rhs2) * vs_rhs3 + beta * vs_rhs More... | |
void | AbstractLinAlgPack::Vp_StPtMtV (DVectorSlice *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOpSerial &M_rhs2, BLAS_Cpp::Transp M_rhs2_trans, const SpVectorSlice &sv_rhs3, value_type beta=1.0) |
vs_lhs = alpha * op(P_rhs1) * op(M_rhs2) * sv_rhs3 + beta * vs_rhs More... | |
value_type | AbstractLinAlgPack::transVtMtV (const DVectorSlice &vs_rhs1, const MatrixOpSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const DVectorSlice &vs_rhs3) |
result = vs_rhs1' * op(M_rhs2) * vs_rhs3 More... | |
value_type | AbstractLinAlgPack::transVtMtV (const SpVectorSlice &sv_rhs1, const MatrixOpSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) |
result = sv_rhs1' * op(M_rhs2) * sv_rhs3 More... | |
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) |
m_lhs = alpha * inv(op(mwo_rhs1)) * op(mwo_rhs2) (right) More... | |
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) |
m_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left) More... | |
void | AbstractLinAlgPack::Mp_StMtM (MatrixOp *mwo_lhs, value_type alpha, const MatrixOp &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta=1.0) |
mwo_lhs = alpha * op(mwo_rhs1) * op(mwo_rhs2) + beta * mwo_lhs (right) (xGEMM). More... | |
void | AbstractLinAlgPack::syrk (const MatrixOp &mwo_rhs, BLAS_Cpp::Transp M_trans, value_type alpha, value_type beta, MatrixSymOp *sym_lhs) |
Perform a rank-k update of a symmetric matrix of the form: More... | |
void | AbstractLinAlgPack::M_StInvMtM (DMatrix *gm_lhs, value_type alpha, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const DMatrixSlice &gms_rhs2, BLAS_Cpp::Transp trans_rhs2) |
gm_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right) More... | |
void | AbstractLinAlgPack::M_StInvMtM (DMatrixSlice *gms_lhs, value_type alpha, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const DMatrixSlice &gms_rhs2, BLAS_Cpp::Transp trans_rhs2) |
gms_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right) More... | |
void | AbstractLinAlgPack::M_StMtInvM (DMatrix *gm_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixNonsingSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2) |
gm_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left) More... | |
void | AbstractLinAlgPack::M_StMtInvM (DMatrixSlice *gms_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixNonsingSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2) |
gms_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left) More... | |
void | AbstractLinAlgPack::M_StInvMtM (DMatrix *gm_lhs, value_type alpha, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2) |
gm_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right) More... | |
void | AbstractLinAlgPack::M_StInvMtM (DMatrixSlice *gms_lhs, value_type alpha, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2) |
gms_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right) More... | |
void | AbstractLinAlgPack::M_StMtInvM (DMatrix *gm_lhs, value_type alpha, const MatrixOpSerial &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixNonsingSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2) |
gm_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left) More... | |
void | AbstractLinAlgPack::M_StMtInvM (DMatrixSlice *gms_lhs, value_type alpha, const MatrixOpSerial &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixNonsingSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2) |
gms_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left) More... | |
void | AbstractLinAlgPack::Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, const MatrixOpSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const DMatrixSlice &gms_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta=1.0) |
gms_lhs = alpha * op(M_rhs1) * op(gms_rhs2) + beta * gms_lhs (right) (xGEMM) More... | |
void | AbstractLinAlgPack::Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta=1.0) |
gms_lhs = alpha * op(gms_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xGEMM) More... | |
void | AbstractLinAlgPack::Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, const MatrixOpSerial &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &gms_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta=1.0) |
gms_lhs = alpha * op(mwo_rhs1) * op(mwo_rhs2) + beta * gms_lhs (right) (xGEMM) More... | |
void | AbstractLinAlgPack::Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, const MatrixOpSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const DMatrixSliceSym &sym_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta=1.0) |
gms_lhs = alpha * op(M_rhs1) * op(sym_rhs2) + beta * gms_lhs (right) (xSYMM) More... | |
void | AbstractLinAlgPack::Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, const DMatrixSliceSym &sym_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta=1.0) |
gms_lhs = alpha * op(sym_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xSYMM) More... | |
void | AbstractLinAlgPack::Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, const MatrixOpSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const DMatrixSliceTri &tri_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta=1.0) |
gms_lhs = alpha * op(M_rhs1) * op(tri_rhs2) + beta * gms_lhs (right) (xTRMM) More... | |
void | AbstractLinAlgPack::Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, const DMatrixSliceTri &tri_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta=1.0) |
gms_lhs = alpha * op(tri_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xTRMM) More... | |
Friends | |
void | AbstractLinAlgPack::MatrixNonsing::V_InvMtV (VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2) |
void | AbstractLinAlgPack::MatrixNonsing::V_InvMtV (VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) |
value_type | AbstractLinAlgPack::MatrixNonsing::transVtInvMtV (const Vector &v_rhs1, const MatrixNonsing &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const Vector &v_rhs3) |
value_type | AbstractLinAlgPack::MatrixNonsing::transVtInvMtV (const SpVectorSlice &sv_rhs1, const MatrixNonsing &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) |
void | AbstractLinAlgPack::MatrixNonsing::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::MatrixNonsing::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) |
Clone | |
virtual mat_mns_mut_ptr_t | AbstractLinAlgPack::MatrixNonsing::clone_mns () |
Clone the non-const matrix object (if supported). More... | |
virtual mat_mns_ptr_t | AbstractLinAlgPack::MatrixNonsing::clone_mns () const |
Clone the const matrix object (if supported). More... | |
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 More... | |
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 More... | |
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 More... | |
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 More... | |
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). More... | |
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). More... | |
that call virtual functions.
These allow nonmember functions to act like virtual functions and thereby allow the same syntax as in DenseLinAlgPack.
|
inline |
Definition at line 152 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
virtual |
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::MatrixSymNonsing, AbstractLinAlgPack::MatrixOpNonsing, AbstractLinAlgPack::MatrixSymOpNonsing, and AbstractLinAlgPack::MatrixSymOpNonsingSerial.
Definition at line 62 of file AbstractLinAlgPack_MatrixNonsing.cpp.
|
virtual |
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::MatrixSymNonsing, AbstractLinAlgPack::MatrixOpNonsing, AbstractLinAlgPack::MatrixSymOpNonsing, and AbstractLinAlgPack::MatrixSymOpNonsingSerial.
Definition at line 68 of file AbstractLinAlgPack_MatrixNonsing.cpp.
|
pure virtual |
v_lhs = inv(op(M_rhs1)) * vs_rhs2
Implemented in AbstractLinAlgPack::MatrixOpNonsingAggr, AbstractLinAlgPack::MatrixSymDiagStd, AbstractLinAlgPack::MatrixNonsingSerial, AbstractLinAlgPack::MatrixOpNonsingThyra, and AbstractLinAlgPack::MatrixSymIdent.
|
virtual |
v_lhs = inv(op(M_rhs1)) * sv_rhs2
Reimplemented in AbstractLinAlgPack::MatrixOpNonsingAggr, AbstractLinAlgPack::MatrixSymDiagStd, and AbstractLinAlgPack::MatrixNonsingSerial.
Definition at line 75 of file AbstractLinAlgPack_MatrixNonsing.cpp.
|
virtual |
result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3
Reimplemented in AbstractLinAlgPack::MatrixOpNonsingAggr, and AbstractLinAlgPack::MatrixNonsingSerial.
Definition at line 93 of file AbstractLinAlgPack_MatrixNonsing.cpp.
|
virtual |
result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3
Reimplemented in AbstractLinAlgPack::MatrixOpNonsingAggr, and AbstractLinAlgPack::MatrixNonsingSerial.
Definition at line 106 of file AbstractLinAlgPack_MatrixNonsing.cpp.
|
virtual |
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, AbstractLinAlgPack::MatrixNonsingSerial, and AbstractLinAlgPack::MatrixOpNonsingThyra.
Definition at line 121 of file AbstractLinAlgPack_MatrixNonsing.cpp.
|
virtual |
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 176 of file AbstractLinAlgPack_MatrixNonsing.cpp.
|
inline |
v_lhs = inv(op(M_rhs1)) * v_rhs2
Definition at line 249 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
inline |
v_lhs = inv(op(M_rhs1)) * sv_rhs2
Definition at line 257 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
inline |
result = v_rhs1' * inv(op(M_rhs2)) * v_rhs3
Definition at line 265 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
inline |
result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3
Definition at line 273 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
inline |
m_lhs = alpha * inv(op(mwo_rhs1)) * op(mwo_rhs2) (right)
Definition at line 287 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
inline |
m_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left)
Definition at line 296 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
inline |
v_lhs = alpha * op(M_rhs1) * v_rhs2 + beta * v_lhs (BLAS xGEMV)
Definition at line 857 of file AbstractLinAlgPack_MatrixOp.hpp.
|
inline |
v_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * v_lhs (BLAS xGEMV)
Definition at line 866 of file AbstractLinAlgPack_MatrixOp.hpp.
|
inline |
v_lhs = alpha * op(P_rhs1) * op(M_rhs2) * v_rhs3 + beta * v_rhs
Definition at line 875 of file AbstractLinAlgPack_MatrixOp.hpp.
|
inline |
v_lhs = alpha * op(P_rhs1) * op(M_rhs2) * sv_rhs3 + beta * v_rhs
Definition at line 886 of file AbstractLinAlgPack_MatrixOp.hpp.
|
inline |
result = v_rhs1' * op(M_rhs2) * v_rhs3
Definition at line 897 of file AbstractLinAlgPack_MatrixOp.hpp.
|
inline |
result = sv_rhs1' * op(M_rhs2) * sv_rhs3
Definition at line 906 of file AbstractLinAlgPack_MatrixOp.hpp.
|
inline |
symwo_lhs += alpha*op(P1')*op(M)*op(P2) + alpha*op(P2')*op(M')*op(P1) + beta*symwo_lhs
Definition at line 915 of file AbstractLinAlgPack_MatrixOp.hpp.
void AbstractLinAlgPack::Mp_StMtM | ( | MatrixOp * | mwo_lhs, |
value_type | alpha, | ||
const MatrixOp & | mwo_rhs1, | ||
BLAS_Cpp::Transp | trans_rhs1, | ||
const MatrixOp & | mwo_rhs2, | ||
BLAS_Cpp::Transp | trans_rhs2, | ||
value_type | beta = 1.0 |
||
) |
mwo_lhs = alpha * op(mwo_rhs1) * op(mwo_rhs2) + beta * mwo_lhs (right) (xGEMM).
This method first calls mwo_rhs1.Mp_StMtM(...)
to perform the opeation. If mwo_rhs1.Mp_StMtM(...)
returns false, then mwo_rhs2.Mp_StMtM(...)
is called. If mwo_rhs2.Mp_StMtM(...)
returns false, then mwo_lhs.Mp_StMtM(...)
is called.
As a last resort, the function attempts to cast dynamic_cast<MultiVectorMutable*>(mwo_lhs)
. If this dynamic cast fails, the this function throws an exception. Otherwise, the operation is implemented in terms of Vp_StMtV()
.
Definition at line 579 of file AbstractLinAlgPack_MatrixOp.cpp.
void AbstractLinAlgPack::syrk | ( | const MatrixOp & | mwo_rhs, |
BLAS_Cpp::Transp | M_trans, | ||
value_type | alpha, | ||
value_type | beta, | ||
MatrixSymOp * | sym_lhs | ||
) |
Perform a rank-k update of a symmetric matrix of the form:
symwo_lhs += alpha*op(mwo_rhs)*op(mwo_rhs') + beta*symwo_lhs
The default implementation returns false
and does nothing.
Definition at line 631 of file AbstractLinAlgPack_MatrixOp.cpp.
|
inline |
v_lhs = inv(op(M_rhs1)) * vs_rhs2
Definition at line 184 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
vs_lhs = inv(op(M_rhs1)) * vs_rhs2
Definition at line 191 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
v_lhs = inv(op(M_rhs1)) * sv_rhs2
Definition at line 198 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
vs_lhs = inv(op(M_rhs1)) * sv_rhs2
Definition at line 205 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3
Definition at line 212 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3
Definition at line 219 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
gm_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right)
Definition at line 232 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
gms_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right)
Definition at line 242 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
gm_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left)
Definition at line 252 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
gms_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left)
Definition at line 262 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
gm_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right)
Definition at line 272 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
gms_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right)
Definition at line 282 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
gm_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left)
Definition at line 292 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
gms_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left)
Definition at line 302 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.
|
inline |
vs_lhs = alpha * op(M_rhs1) * vs_rhs2 + beta * vs_lhs (BLAS xGEMV)
Definition at line 363 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
vs_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * vs_lhs (BLAS xGEMV)
Definition at line 370 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
vs_lhs = alpha * op(P_rhs1) * op(M_rhs2) * vs_rhs3 + beta * vs_rhs
Definition at line 377 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
vs_lhs = alpha * op(P_rhs1) * op(M_rhs2) * sv_rhs3 + beta * vs_rhs
Definition at line 386 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
result = vs_rhs1' * op(M_rhs2) * vs_rhs3
Definition at line 395 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
result = sv_rhs1' * op(M_rhs2) * sv_rhs3
Definition at line 402 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
gms_lhs = alpha * op(M_rhs1) * op(gms_rhs2) + beta * gms_lhs (right) (xGEMM)
Definition at line 414 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
gms_lhs = alpha * op(gms_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xGEMM)
Definition at line 422 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
gms_lhs = alpha * op(mwo_rhs1) * op(mwo_rhs2) + beta * gms_lhs (right) (xGEMM)
Definition at line 430 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
gms_lhs = alpha * op(M_rhs1) * op(sym_rhs2) + beta * gms_lhs (right) (xSYMM)
Definition at line 438 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
gms_lhs = alpha * op(sym_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xSYMM)
Definition at line 446 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
gms_lhs = alpha * op(M_rhs1) * op(tri_rhs2) + beta * gms_lhs (right) (xTRMM)
Definition at line 454 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
inline |
gms_lhs = alpha * op(tri_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xTRMM)
Definition at line 462 of file AbstractLinAlgPack_MatrixOpSerial.hpp.
|
friend |
Definition at line 249 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
friend |
Definition at line 257 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
friend |
Definition at line 265 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
friend |
Definition at line 273 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
friend |
Definition at line 287 of file AbstractLinAlgPack_MatrixNonsing.hpp.
|
friend |
Definition at line 296 of file AbstractLinAlgPack_MatrixNonsing.hpp.