MOOCHO (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces
AbstractLinAlgPack_SparseVectorSliceOp.hpp File Reference
#include "AbstractLinAlgPack_SparseVectorOp.hpp"
#include "DenseLinAlgPack_AssertOp.hpp"
#include "DenseLinAlgPack_DVectorOp.hpp"
Include dependency graph for AbstractLinAlgPack_SparseVectorSliceOp.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 AbstractLinAlgPack
 

Inline functions to call linear algebra operations for SparseVectoSlice<> objects.

These inline functions use the same exact syntax as the DenseLinAlgPack linear algebra operations. They call the generic templated linear algebra operations for the SparseVectorTemplateInterface interface. With these functions the abreaviation for the sparse vector #SV# is replaced with the standard #V#. The assignmet operation #V_SV# is replaced with the more uniform #assign# identifier so as to be compatable with DenseLinAlgPack naming. Also, the suffixes for #dot#, #norm_1#, and the other level one BLAS operations is dropped.

In order to use SparseVector<> objects with these functions the client must perform an explicit conversion. For example the following code will not compile (can not perform conversion from const SparseVector<> to const SparseVectorSlice<>):

SparseVector<element_type> sv; // ... cout << norm_1(sv);

Instead you must perform an explicit conversion for example by using operator()() as follows:

cout << norm_1(sv());

template<class T_Ele >
value_type AbstractLinAlgPack::dot (const DVectorSlice &vs_rhs1, const SparseVectorSlice< T_Ele > &sv_rhs2)
 result = dot(vs_rhs1,sv_rhs2) (BLAS xDOT) More...
 
template<class T_Ele >
value_type AbstractLinAlgPack::dot (const SparseVectorSlice< T_Ele > &sv_rhs1, const DVectorSlice &vs_rhs2)
 result = dot(sv_rhs1,vs_rhs2) (BLAS xDOT) More...
 
template<class T_Ele >
value_type AbstractLinAlgPack::norm_1 (const SparseVectorSlice< T_Ele > &sv_rhs)
 result = ||sv_rhs||1 (BLAS xASUM) More...
 
template<class T_Ele >
value_type AbstractLinAlgPack::norm_2 (const SparseVectorSlice< T_Ele > &sv_rhs)
 result = ||sv_rhs||2 (BLAS xNRM2) More...
 
template<class T_Ele >
value_type AbstractLinAlgPack::norm_inf (const SparseVectorSlice< T_Ele > &sv_rhs)
 result = ||sv_rhs||inf (BLAS IxAMAX) More...
 
template<class T_Ele >
value_type AbstractLinAlgPack::max (const SparseVectorSlice< T_Ele > &sv_rhs)
 result = max(sv_rhs) More...
 
template<class T_Ele >
value_type AbstractLinAlgPack::min (const SparseVectorSlice< T_Ele > &sv_rhs)
 result = min(sv_rhs) More...
 
template<class T_Ele >
void AbstractLinAlgPack::Vp_StV (DVectorSlice *vs_lhs, value_type alpha, const SparseVectorSlice< T_Ele > &sv_rhs)
 vs_lhs += alpha * sv_rhs (BLAS xAXPY) More...
 
template<class T_Ele >
void AbstractLinAlgPack::Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const SparseVectorSlice< T_Ele > &sv_rhs2)
 vs_lhs += alpha * op(gms_rhs1) * sv_rhs2 (BLAS xGEMV) More...
 
template<class T_Ele >
void AbstractLinAlgPack::Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, const DMatrixSliceTri &tri_gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const SparseVectorSlice< T_Ele > &sv_rhs2)
 vs_lhs += alpha * op(tri_gms_rhs1) * sv_rhs2 (BLAS xTRMV) More...
 
template<class T_Ele >
void AbstractLinAlgPack::Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, const DMatrixSliceSym &sym_gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const SparseVectorSlice< T_Ele > &sv_rhs2)
 vs_lhs += alpha * op(sym_gms_rhs1) * sv_rhs2 (BLAS xSYMV) More...
 
template<class M , class T_Ele >
void AbstractLinAlgPack::Vp_StMtSVS (DVectorSlice *vs_lhs, value_type alpha, const M &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SparseVectorSlice< T_Ele > &sv_rhs2, value_type beta)
 vs_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * vs_lhs More...
 
template<class T_Ele >
void AbstractLinAlgPack::Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const SparseVectorSlice< T_Ele > &sv_rhs2, value_type beta)
 vs_lhs = alpha * op(gms_rhs1) * sv_rhs2 + beta * vs_lhs More...
 
template<class T_Ele >
void AbstractLinAlgPack::Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, const DMatrixSliceTri &tri_gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const SparseVectorSlice< T_Ele > &sv_rhs2, value_type beta)
 vs_lhs = alpha * op(tri_gms_rhs1) * sv_rhs2 + beta * vs_lhs More...
 
template<class T_Ele >
void AbstractLinAlgPack::Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, const DMatrixSliceSym &sym_gms_rhs1, BLAS_Cpp::Transp trans_rhs1, const SparseVectorSlice< T_Ele > &sv_rhs2, value_type beta)
 vs_lhs = alpha * op(sym_gms_rhs1) * sv_rhs2 + beta * vs_lhs More...