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
Classes
MatrixNonsing inline non-member operation functions

Classes

class  AbstractLinAlgPack::MatrixNonsing::SingularMatrix
 This exception will be thrown if it turns out at runtime that the matrix is numerically singular. More...
 

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...
 

Detailed Description

that call virtual functions.

These allow nonmember functions to act like virtual functions and thereby allow the same syntax as in DenseLinAlgPack.

Function Documentation

MatrixNonsing::mat_mns_mut_ptr_t AbstractLinAlgPack::MatrixNonsing::clone_mns ( )
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::DirectSparseSolverImp::BasisMatrixImp, and AbstractLinAlgPack::MatrixSymOpNonsing.

Definition at line 62 of file AbstractLinAlgPack_MatrixNonsing.cpp.

MatrixNonsing::mat_mns_ptr_t AbstractLinAlgPack::MatrixNonsing::clone_mns ( ) const
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, and AbstractLinAlgPack::MatrixSymOpNonsing.

Definition at line 68 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
void AbstractLinAlgPack::MatrixNonsing::V_InvMtV ( VectorMutable v_lhs,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice sv_rhs2 
) const
virtual
value_type AbstractLinAlgPack::MatrixNonsing::transVtInvMtV ( const Vector v_rhs1,
BLAS_Cpp::Transp  trans_rhs2,
const Vector v_rhs3 
) const
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.

value_type AbstractLinAlgPack::MatrixNonsing::transVtInvMtV ( const SpVectorSlice sv_rhs1,
BLAS_Cpp::Transp  trans_rhs2,
const SpVectorSlice sv_rhs3 
) const
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.

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

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 121 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

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.

void AbstractLinAlgPack::V_InvMtV ( VectorMutable *  v_lhs,
const MatrixNonsing &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const Vector &  v_rhs2 
)
inline

v_lhs = inv(op(M_rhs1)) * v_rhs2

Definition at line 249 of file AbstractLinAlgPack_MatrixNonsing.hpp.

void AbstractLinAlgPack::V_InvMtV ( VectorMutable *  v_lhs,
const MatrixNonsing &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice &  sv_rhs2 
)
inline

v_lhs = inv(op(M_rhs1)) * sv_rhs2

Definition at line 257 of file AbstractLinAlgPack_MatrixNonsing.hpp.

value_type AbstractLinAlgPack::transVtInvMtV ( const Vector &  v_rhs1,
const MatrixNonsing &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const Vector &  v_rhs3 
)
inline

result = v_rhs1' * inv(op(M_rhs2)) * v_rhs3

Definition at line 265 of file AbstractLinAlgPack_MatrixNonsing.hpp.

value_type AbstractLinAlgPack::transVtInvMtV ( const SpVectorSlice &  sv_rhs1,
const MatrixNonsing &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const SpVectorSlice &  sv_rhs3 
)
inline

result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3

Definition at line 273 of file AbstractLinAlgPack_MatrixNonsing.hpp.

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

m_lhs = alpha * inv(op(mwo_rhs1)) * op(mwo_rhs2) (right)

Definition at line 287 of file AbstractLinAlgPack_MatrixNonsing.hpp.

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

m_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left)

Definition at line 296 of file AbstractLinAlgPack_MatrixNonsing.hpp.

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 
)
inline

v_lhs = alpha * op(M_rhs1) * v_rhs2 + beta * v_lhs (BLAS xGEMV)

Definition at line 857 of file AbstractLinAlgPack_MatrixOp.hpp.

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 
)
inline

v_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * v_lhs (BLAS xGEMV)

Definition at line 866 of file AbstractLinAlgPack_MatrixOp.hpp.

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 
)
inline

v_lhs = alpha * op(P_rhs1) * op(M_rhs2) * v_rhs3 + beta * v_rhs

Definition at line 875 of file AbstractLinAlgPack_MatrixOp.hpp.

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 
)
inline

v_lhs = alpha * op(P_rhs1) * op(M_rhs2) * sv_rhs3 + beta * v_rhs

Definition at line 886 of file AbstractLinAlgPack_MatrixOp.hpp.

value_type AbstractLinAlgPack::transVtMtV ( const Vector &  v_rhs1,
const MatrixOp &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const Vector &  v_rhs3 
)
inline

result = v_rhs1' * op(M_rhs2) * v_rhs3

Definition at line 897 of file AbstractLinAlgPack_MatrixOp.hpp.

value_type AbstractLinAlgPack::transVtMtV ( const SpVectorSlice &  sv_rhs1,
const MatrixOp &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const SpVectorSlice &  sv_rhs3 
)
inline

result = sv_rhs1' * op(M_rhs2) * sv_rhs3

Definition at line 906 of file AbstractLinAlgPack_MatrixOp.hpp.

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 
)
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.

void AbstractLinAlgPack::V_InvMtV ( DVector *  v_lhs,
const MatrixNonsingSerial &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const DVectorSlice &  vs_rhs2 
)
inline

v_lhs = inv(op(M_rhs1)) * vs_rhs2

Definition at line 184 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

void AbstractLinAlgPack::V_InvMtV ( DVectorSlice *  vs_lhs,
const MatrixNonsingSerial &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const DVectorSlice &  vs_rhs2 
)
inline

vs_lhs = inv(op(M_rhs1)) * vs_rhs2

Definition at line 191 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

void AbstractLinAlgPack::V_InvMtV ( DVector *  v_lhs,
const MatrixNonsingSerial &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice &  sv_rhs2 
)
inline

v_lhs = inv(op(M_rhs1)) * sv_rhs2

Definition at line 198 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

void AbstractLinAlgPack::V_InvMtV ( DVectorSlice *  vs_lhs,
const MatrixNonsingSerial &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice &  sv_rhs2 
)
inline

vs_lhs = inv(op(M_rhs1)) * sv_rhs2

Definition at line 205 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

value_type AbstractLinAlgPack::transVtInvMtV ( const DVectorSlice &  vs_rhs1,
const MatrixNonsingSerial &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const DVectorSlice &  sv_rhs3 
)
inline

result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3

Definition at line 212 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

value_type AbstractLinAlgPack::transVtInvMtV ( const SpVectorSlice &  sv_rhs1,
const MatrixNonsingSerial &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const SpVectorSlice &  sv_rhs3 
)
inline

result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3

Definition at line 219 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

gm_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right)

Definition at line 232 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

gms_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right)

Definition at line 242 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

gm_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left)

Definition at line 252 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left)

Definition at line 262 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

gm_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right)

Definition at line 272 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

gms_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right)

Definition at line 282 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

gm_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left)

Definition at line 292 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left)

Definition at line 302 of file AbstractLinAlgPack_MatrixNonsingSerial.hpp.

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 
)
inline

vs_lhs = alpha * op(M_rhs1) * vs_rhs2 + beta * vs_lhs (BLAS xGEMV)

Definition at line 363 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

vs_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * vs_lhs (BLAS xGEMV)

Definition at line 370 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

vs_lhs = alpha * op(P_rhs1) * op(M_rhs2) * vs_rhs3 + beta * vs_rhs

Definition at line 377 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

vs_lhs = alpha * op(P_rhs1) * op(M_rhs2) * sv_rhs3 + beta * vs_rhs

Definition at line 386 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

value_type AbstractLinAlgPack::transVtMtV ( const DVectorSlice &  vs_rhs1,
const MatrixOpSerial &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const DVectorSlice &  vs_rhs3 
)
inline

result = vs_rhs1' * op(M_rhs2) * vs_rhs3

Definition at line 395 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

value_type AbstractLinAlgPack::transVtMtV ( const SpVectorSlice &  sv_rhs1,
const MatrixOpSerial &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const SpVectorSlice &  sv_rhs3 
)
inline

result = sv_rhs1' * op(M_rhs2) * sv_rhs3

Definition at line 402 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(M_rhs1) * op(gms_rhs2) + beta * gms_lhs (right) (xGEMM)

Definition at line 414 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(gms_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xGEMM)

Definition at line 422 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(mwo_rhs1) * op(mwo_rhs2) + beta * gms_lhs (right) (xGEMM)

Definition at line 430 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(M_rhs1) * op(sym_rhs2) + beta * gms_lhs (right) (xSYMM)

Definition at line 438 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(sym_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xSYMM)

Definition at line 446 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(M_rhs1) * op(tri_rhs2) + beta * gms_lhs (right) (xTRMM)

Definition at line 454 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

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 
)
inline

gms_lhs = alpha * op(tri_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xTRMM)

Definition at line 462 of file AbstractLinAlgPack_MatrixOpSerial.hpp.

Friends

void V_InvMtV ( VectorMutable v_lhs,
const MatrixNonsing M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const Vector v_rhs2 
)
friend

Definition at line 249 of file AbstractLinAlgPack_MatrixNonsing.hpp.

void V_InvMtV ( VectorMutable v_lhs,
const MatrixNonsing M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice sv_rhs2 
)
friend

Definition at line 257 of file AbstractLinAlgPack_MatrixNonsing.hpp.

value_type transVtInvMtV ( const Vector v_rhs1,
const MatrixNonsing M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const Vector v_rhs3 
)
friend

Definition at line 265 of file AbstractLinAlgPack_MatrixNonsing.hpp.

value_type transVtInvMtV ( const SpVectorSlice sv_rhs1,
const MatrixNonsing M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
const SpVectorSlice sv_rhs3 
)
friend

Definition at line 273 of file AbstractLinAlgPack_MatrixNonsing.hpp.

void 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 
)
friend

Definition at line 287 of file AbstractLinAlgPack_MatrixNonsing.hpp.

void 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 
)
friend

Definition at line 296 of file AbstractLinAlgPack_MatrixNonsing.hpp.