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

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, 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]

Definition at line 236 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]

Definition at line 244 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]

Definition at line 252 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]

Definition at line 260 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]

Definition at line 274 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]

Definition at line 283 of file AbstractLinAlgPack_MatrixNonsing.hpp.


Generated on Wed May 12 21:31:38 2010 for AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects by  doxygen 1.4.7