AbstractLinAlgPack_LinAlgOpPack.hpp File Reference

#include "AbstractLinAlgPack_Types.hpp"
#include "AbstractLinAlgPack_MatrixOpNonsing.hpp"
#include "AbstractLinAlgPack_VectorMutable.hpp"
#include "AbstractLinAlgPack_VectorStdOps.hpp"
#include "AbstractLinAlgPack_AssertOp.hpp"

Include dependency graph for AbstractLinAlgPack_LinAlgOpPack.hpp:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  LinAlgOpPack

Level 1 BLAS for Vectors

For these functions to work for the type V the following function must be defined:
  // v_lhs += alpha * V_rhs
  void Vp_StV(VectorMutable* v_lhs, value_type alpha, const V& V_rhs);
The rest of these level 1 BLAS functions implement the variations.

template<class V>
void Vp_V (VectorMutable *v_lhs, const V &V_rhs)
 v_lhs += V_rhs.
template<class V>
void assign (VectorMutable *v_lhs, const V &V_rhs)
 v_lhs = V_rhs.
template<class V>
void V_StV (VectorMutable *v_lhs, value_type alpha, const V &V_rhs)
 v_lhs = alpha * V_rhs.
template<class V>
void V_mV (VectorMutable *v_lhs, const V &V_rhs)
 v_lhs = - V_rhs.
template<class V1, class V2>
void V_VpV (VectorMutable *v_lhs, const V1 &V1_rhs1, const V2 &V2_rhs2)
template<class V1, class V2>
void V_VmV (VectorMutable *v_lhs, const V1 &V1_rhs1, const V2 &V2_rhs2)
 v_lhs = V_rhs1 - V_rhs2.
template<class V>
void V_StVpV (VectorMutable *v_lhs, value_type alpha, const V &V_rhs1, const Vector &vs_rhs2)
 v_lhs = alpha * V_rhs1 + vs_rhs2.

Level 1 BLAS for Matrices

For these functions to work for the type M the following function must be defined:

// M_lhs += alpha * op(M_rhs) \ void Mp_StM(MatrixOp* v_lhs, value_type alpha, const V& V_rhs, BLAS_Cpp::Transp);

The rest of these level 1 BLAS functions implement the variations.

void Mp_M (MatrixOp *M_lhs, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
 M_lhs += op(M_rhs).

Level 2 BLAS

These operations implement variations on the Level-2 BLAS operation:\

v_lhs = alpha * op(M_rhs1) * V_rhs2 + beta * v_lhs

template<class V>
void Vp_MtV (VectorMutable *v_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const V &V_rhs2)
 v_lhs += op(M_rhs1) * V_rhs2.
template<class V>
void V_StMtV (VectorMutable *v_lhs, value_type alpha, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const V &V_rhs2)
 v_lhs = alpha * op(M_rhs1) * V_rhs2.
template<class V>
void V_MtV (VectorMutable *v_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const V &V_rhs2)
 v_lhs = op(M_rhs1) * V_rhs2.

Level 3 BLAS

These operations are based on the Level-3 BLAS operation:

M_lhs = alpha * op(M_rhs1) * op(M_rhs2) + beta * M_lhs

void Mp_MtM (MatrixOp *M_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2)
 M_lhs += op(M_rhs1) * op(M_rhs2).
void Mp_MtM (MatrixOp *M_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta)
 M_lhs = op(M_rhs1) * op(M_rhs2) + beta * gms_rhs.
void M_StMtM (MatrixOp *M_lhs, value_type alpha, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2)
 M_lhs = alpha * op(M_rhs1) * op(M_rhs2).
void M_MtM (MatrixOp *M_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2)
 M_lhs = op(M_rhs1) * op(M_rhs2).

Typedefs

typedef AbstractLinAlgPack::size_type size_type
 
typedef AbstractLinAlgPack::value_type value_type
 

Functions

void assign (MatrixOp *M_lhs, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
 M_lhs = op(M_rhs).
void M_StM (MatrixOp *M_lhs, value_type alpha, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
 gm_lhs = alpha * M_rhs.
void M_mM (MatrixOp *M_lhs, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
 gm_lhs = - op(M_rhs).
void M_MpM (MatrixOp *M_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2)
void M_MmM (MatrixOp *M_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2)
 M_lhs = op(M_rhs1) - op(M_rhs2).
void M_StMpM (MatrixOp *M_lhs, value_type alpha, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &gms_rhs2, BLAS_Cpp::Transp trans_rhs2)
 M_lhs = alpha * op(M_rhs1) + op(gms_rhs2).
template<class V>
void Vp_MtV (VectorMutable *v_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const V &V_rhs2, value_type beta)
void M_InvMtM (MatrixOp *M_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2)


Typedef Documentation

typedef AbstractLinAlgPack::size_type LinAlgOpPack::size_type
 

Definition at line 41 of file AbstractLinAlgPack_LinAlgOpPack.hpp.

typedef DenseLinAlgPack::value_type LinAlgOpPack::value_type
 

Definition at line 43 of file AbstractLinAlgPack_LinAlgOpPack.hpp.


Function Documentation

template<class V>
void LinAlgOpPack::Vp_MtV VectorMutable *  v_lhs,
const MatrixOp &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const V &  V_rhs2
[inline]
 

v_lhs += op(M_rhs1) * V_rhs2.

Calls: Vp_StMtV(v_lhs,1.0,M_rhs1,trans_rhs1,V_rhs2);

Definition at line 361 of file AbstractLinAlgPack_LinAlgOpPack.hpp.

template<class V>
void LinAlgOpPack::V_StMtV VectorMutable *  v_lhs,
value_type  alpha,
const MatrixOp &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const V &  V_rhs2
 

v_lhs = alpha * op(M_rhs1) * V_rhs2.

Calls: Vp_StMtV(v_lhs,alpha,M_rhs1,trans_rhs1,V_rhs2);

Definition at line 478 of file AbstractLinAlgPack_LinAlgOpPack.hpp.

template<class V>
void LinAlgOpPack::V_MtV VectorMutable *  v_lhs,
const MatrixOp &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const V &  V_rhs2
 

v_lhs = op(M_rhs1) * V_rhs2.

Calls: Vp_MtV(v_lhs,M_rhs1,trans_rhs1,V_rhs2);

Definition at line 487 of file AbstractLinAlgPack_LinAlgOpPack.hpp.

void LinAlgOpPack::Mp_MtM MatrixOp *  M_lhs,
const MatrixOp &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const MatrixOp &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2
[inline]
 

M_lhs += op(M_rhs1) * op(M_rhs2).

Calls: Mp_StMtM(M_lhs,1.0,M_rhs1,trans_rhs1,M_rhs2,trans_rhs2);

Definition at line 381 of file AbstractLinAlgPack_LinAlgOpPack.hpp.

void LinAlgOpPack::Mp_MtM MatrixOp *  M_lhs,
const MatrixOp &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const MatrixOp &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
value_type  beta
[inline]
 

M_lhs = op(M_rhs1) * op(M_rhs2) + beta * gms_rhs.

Calls: Mp_StMtM(M_lhs,1.0,M_rhs1,trans_rhs1,M_rhs2,trans_rhs2,beta);

Definition at line 389 of file AbstractLinAlgPack_LinAlgOpPack.hpp.

void LinAlgOpPack::M_StMtM MatrixOp *  M_lhs,
value_type  alpha,
const MatrixOp &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const MatrixOp &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2
 

M_lhs = alpha * op(M_rhs1) * op(M_rhs2).

Calls: Mp_StMtM(M_lhs,alpha,M_rhs1,trans_rhs1,M_rhs2,trans_rhs2);

Definition at line 90 of file AbstractLinAlgPack_AbstractLinAlgOpPack.cpp.

void LinAlgOpPack::M_MtM MatrixOp *  M_lhs,
const MatrixOp &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const MatrixOp &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2
 

M_lhs = op(M_rhs1) * op(M_rhs2).

Calls: Mp_MtM(M_lhs,M_rhs1,trans_rhs1,M_rhs2,trans_rhs2);

Definition at line 99 of file AbstractLinAlgPack_AbstractLinAlgOpPack.cpp.

template<class V>
void Vp_MtV VectorMutable *  v_lhs,
const MatrixOp &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const V &  V_rhs2,
value_type  beta
[inline]
 

Definition at line 370 of file AbstractLinAlgPack_LinAlgOpPack.hpp.

void M_InvMtM MatrixOp *  M_lhs,
const MatrixNonsing &  M_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
const MatrixOp &  M_rhs2,
BLAS_Cpp::Transp  trans_rhs2
[inline]
 

Definition at line 397 of file AbstractLinAlgPack_LinAlgOpPack.hpp.


Generated on Thu Sep 18 12:35:24 2008 for MOOCHO (Single Doxygen Collection) by doxygen 1.3.9.1