AbstractLinAlgPack::MatrixBasisNonbasis Class Reference

This is the interface to a basis and an nonbasis matrix. More...

#include <AbstractLinAlgPack_MatrixBasisNonbasis.hpp>

Inheritance diagram for AbstractLinAlgPack::MatrixBasisNonbasis:

[legend]
List of all members.

Public Member Functions

virtual const MatrixOpC () const =0
 Get reference to basis Matrix C ([m,m] = size(C)).
virtual const MatrixFactorized & C_nonsingular () const =0
 Get reference to nonsingular version of the basis Matrix C ([m,m] = size(C)).
virtual const MatrixOpN () const =0
 Get reference to non-basis Matrix N ([n-m,n] = size(N)).
void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta) const
 vs_lhs = alpha * op(M_rhs1) * vs_rhs2 + beta * vs_lhs (BLAS xGEMV)
void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta) const
 vs_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * vs_lhs (BLAS xGEMV)

Detailed Description

This is the interface to a basis and an nonbasis matrix.

The form of this matrix is:

M = [ C' ; N' ]

It is also allowed that N = NULL and therefore:

M = [ C' ]

If this matrix is not initialized then rows() == cols() == 0. If rows() > 0 then all of the MatrixOp functions can be called with success.

Note that it is not required that the nonsigular version of C be available. However if C_nonsingular is available, then it is assumed of course that b == op(C) * inv(op(C_nonsingular)) * b so that they are consistent.

Definition at line 55 of file AbstractLinAlgPack_MatrixBasisNonbasis.hpp.


Member Function Documentation

virtual const MatrixOp& AbstractLinAlgPack::MatrixBasisNonbasis::C  )  const [pure virtual]
 

Get reference to basis Matrix C ([m,m] = size(C)).

Only call if rows() > 0 otherwise throws std::logic_error

Implemented in AbstractLinAlgPack::MatrixBasisNonbasisStd.

virtual const MatrixFactorized& AbstractLinAlgPack::MatrixBasisNonbasis::C_nonsingular  )  const [pure virtual]
 

Get reference to nonsingular version of the basis Matrix C ([m,m] = size(C)).

Only call if rows() > 0 otherwise throws std::logic_error/ If the factorization is not available, then a MatrixNotAvailable exception will be thrown.

Implemented in AbstractLinAlgPack::MatrixBasisNonbasisStd.

virtual const MatrixOp& AbstractLinAlgPack::MatrixBasisNonbasis::N  )  const [pure virtual]
 

Get reference to non-basis Matrix N ([n-m,n] = size(N)).

Only call if cols() > rows() otherwise throws std::logic_error

Implemented in AbstractLinAlgPack::MatrixBasisNonbasisStd.

void AbstractLinAlgPack::MatrixBasisNonbasis::Vp_StMtV DVectorSlice vs_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const DVectorSlice vs_rhs2,
value_type  beta
const
 

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

Definition at line 41 of file AbstractLinAlgPack_MatrixBasisNonbasis.cpp.

void AbstractLinAlgPack::MatrixBasisNonbasis::Vp_StMtV DVectorSlice vs_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice sv_rhs2,
value_type  beta
const
 

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

Definition at line 98 of file AbstractLinAlgPack_MatrixBasisNonbasis.cpp.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:36:10 2008 for MOOCHO (Single Doxygen Collection) by doxygen 1.3.9.1