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 LinAlgOpPack::Vp_V (VectorMutable *v_lhs, const V &V_rhs)
 v_lhs += V_rhs.
template<class V>
void LinAlgOpPack::assign (VectorMutable *v_lhs, const V &V_rhs)
 v_lhs = V_rhs.
template<class V>
void LinAlgOpPack::V_StV (VectorMutable *v_lhs, value_type alpha, const V &V_rhs)
 v_lhs = alpha * V_rhs.
template<class V>
void LinAlgOpPack::V_mV (VectorMutable *v_lhs, const V &V_rhs)
 v_lhs = - V_rhs.
template<class V1, class V2>
void LinAlgOpPack::V_VpV (VectorMutable *v_lhs, const V1 &V1_rhs1, const V2 &V2_rhs2)
template<class V1, class V2>
void LinAlgOpPack::V_VmV (VectorMutable *v_lhs, const V1 &V1_rhs1, const V2 &V2_rhs2)
 v_lhs = V_rhs1 - V_rhs2.
template<class V>
void LinAlgOpPack::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 LinAlgOpPack::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 LinAlgOpPack::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 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.
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.

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 LinAlgOpPack::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 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)
 M_lhs = op(M_rhs1) * op(M_rhs2) + beta * gms_rhs.
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).
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).

Typedefs

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

Functions

void LinAlgOpPack::assign (MatrixOp *M_lhs, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
 M_lhs = op(M_rhs).
void LinAlgOpPack::M_StM (MatrixOp *M_lhs, value_type alpha, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
 gm_lhs = alpha * M_rhs.
void LinAlgOpPack::M_mM (MatrixOp *M_lhs, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
 gm_lhs = - op(M_rhs).
void LinAlgOpPack::M_MpM (MatrixOp *M_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2)
void LinAlgOpPack::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 LinAlgOpPack::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 LinAlgOpPack::Vp_MtV (VectorMutable *v_lhs, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const V &V_rhs2, value_type beta)
void LinAlgOpPack::M_InvMtM (MatrixOp *M_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &M_rhs2, BLAS_Cpp::Transp trans_rhs2)


Generated on Tue Jul 13 09:31:10 2010 for MOOCHO (Single Doxygen Collection) by  doxygen 1.4.7