AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | List of all members
AbstractLinAlgPack::COOMatrixPartitionViewSubclass Class Reference

Implementation of MatrixOp abstract interface for COOMatrixWithPartitionedView::partition_type. More...

#include <AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp>

Inheritance diagram for AbstractLinAlgPack::COOMatrixPartitionViewSubclass:
Inheritance graph
[legend]

Public Types

typedef
COOMatrixWithPartitionedView::partition_type 
M
 
- Public Types inherited from AbstractLinAlgPack::MatrixOp
enum  EMatNormType { MAT_NORM_INF, MAT_NORM_2, MAT_NORM_1, MAT_NORM_FORB }
 Type of matrix norm. More...
 

Public Member Functions

 COOMatrixPartitionViewSubclass ()
 
 COOMatrixPartitionViewSubclass (BLAS_Cpp::Transp trans)
 
 COOMatrixPartitionViewSubclass (const M &m)
 
 COOMatrixPartitionViewSubclass (const M &m, BLAS_Cpp::Transp trans)
 
void set_trans (BLAS_Cpp::Transp trans)
 
size_type rows () const
 
size_type cols () const
 
MatrixOpoperator= (const MatrixOp &m)
 
- Public Member Functions inherited from AbstractLinAlgPack::MatrixOp
virtual void zero_out ()
 M_lhs = 0 : Zero out the matrix. More...
 
virtual void Mt_S (value_type alpha)
 M_lhs *= alpha : Multiply a matrix by a scalar. More...
 
virtual mat_mut_ptr_t clone ()
 Clone the non-const matrix object (if supported). More...
 
virtual mat_ptr_t clone () const
 Clone the const matrix object (if supported). More...
 
virtual std::ostream & output (std::ostream &out) const
 Virtual output function. More...
 
const MatNorm calc_norm (EMatNormType requested_norm_type=MAT_NORM_1, bool allow_replacement=false) const
 Compute a norm of this matrix. More...
 
virtual mat_ptr_t sub_view (const Range1D &row_rng, const Range1D &col_rng) const
 Create a transient constant sub-matrix view of this matrix (if supported). More...
 
mat_ptr_t sub_view (const index_type &rl, const index_type &ru, const index_type &cl, const index_type &cu) const
 Inlined implementation calls this->sub_view(Range1D(rl,ru),Range1D(cl,cu)). More...
 
virtual mat_ptr_t perm_view (const Permutation *P_row, const index_type row_part[], int num_row_part, const Permutation *P_col, const index_type col_part[], int num_col_part) const
 Create a permuted view: M_perm = P_row' * M * P_col. More...
 
virtual mat_ptr_t perm_view_update (const Permutation *P_row, const index_type row_part[], int num_row_part, const Permutation *P_col, const index_type col_part[], int num_col_part, const mat_ptr_t &perm_view) const
 Reinitialize a permuted view: M_perm = P_row' * M * P_col. More...
 
- Public Member Functions inherited from AbstractLinAlgPack::MatrixBase
virtual ~MatrixBase ()
 Virtual destructor. More...
 
virtual const VectorSpacespace_cols () const =0
 Vector space for vectors that are compatible with the columns of the matrix. More...
 
virtual const VectorSpacespace_rows () const =0
 Vector space for vectors that are compatible with the rows of the matrix. More...
 
virtual size_type nz () const
 Return the number of nonzero elements in the matrix. More...
 

Representation access

Mm ()
 Get the underlying M object. More...
 
const Mm () const
 

Level-1 BLAS

void Mp_StM (DMatrixSlice *gms_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs) const
 (1) gms_lhs += alpha * op(M_rhs) (BLAS xAXPY) More...
 

Level-2 BLAS

void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta) const
 (2) vs_lhs = alpha * op(M_rhs1) * vs_rhs2 + beta * vs_lhs (BLAS xGEMV) More...
 
void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta) const
 (3) vs_lhs = alpha * op(M_rhs1) * sv_rhs2 + beta * vs_lhs (BLAS xGEMV) More...
 
value_type transVtMtV (const DVectorSlice &vs_rhs1, BLAS_Cpp::Transp trans_rhs2, const DVectorSlice &vs_rhs3) const
 (4) result = vs_rhs1' * op(M_rhs2) * vs_rhs3 More...
 
value_type transVtMtV (const SpVectorSlice &sv_rhs1, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) const
 (5) result = sv_rhs1' * op(M_rhs2) * sv_rhs3 More...
 

Level-3 BLAS

void Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DMatrixSlice &gms_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta) const
 (6) gms_lhs = alpha * op(M_rhs1) * op(gms_rhs2) + beta * gms_lhs (right) (xGEMM) More...
 
void Mp_StMtM (DMatrixSlice *gms_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2, value_type beta) const
 (7) gms_lhs = alpha * op(gms_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xGEMM) More...
 

Detailed Description

Implementation of MatrixOp abstract interface for COOMatrixWithPartitionedView::partition_type.

Definition at line 56 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.

Member Typedef Documentation

Constructor & Destructor Documentation

AbstractLinAlgPack::COOMatrixPartitionViewSubclass::COOMatrixPartitionViewSubclass ( )
inline
AbstractLinAlgPack::COOMatrixPartitionViewSubclass::COOMatrixPartitionViewSubclass ( BLAS_Cpp::Transp  trans)
inline
AbstractLinAlgPack::COOMatrixPartitionViewSubclass::COOMatrixPartitionViewSubclass ( const M m)
inline
AbstractLinAlgPack::COOMatrixPartitionViewSubclass::COOMatrixPartitionViewSubclass ( const M m,
BLAS_Cpp::Transp  trans 
)
inline

Member Function Documentation

void AbstractLinAlgPack::COOMatrixPartitionViewSubclass::set_trans ( BLAS_Cpp::Transp  trans)
inline
M& AbstractLinAlgPack::COOMatrixPartitionViewSubclass::m ( )
inline

Get the underlying M object.

Definition at line 93 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.

const M& AbstractLinAlgPack::COOMatrixPartitionViewSubclass::m ( ) const
inline
size_type AbstractLinAlgPack::COOMatrixPartitionViewSubclass::rows ( ) const
virtual

Reimplemented from AbstractLinAlgPack::MatrixBase.

size_type AbstractLinAlgPack::COOMatrixPartitionViewSubclass::cols ( ) const
virtual

Reimplemented from AbstractLinAlgPack::MatrixBase.

MatrixOp& AbstractLinAlgPack::COOMatrixPartitionViewSubclass::operator= ( const MatrixOp m)
virtual

Reimplemented from AbstractLinAlgPack::MatrixOp.

void AbstractLinAlgPack::COOMatrixPartitionViewSubclass::Mp_StM ( DMatrixSlice gms_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs 
) const

(1) gms_lhs += alpha * op(M_rhs) (BLAS xAXPY)

void AbstractLinAlgPack::COOMatrixPartitionViewSubclass::Vp_StMtV ( DVectorSlice vs_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const DVectorSlice vs_rhs2,
value_type  beta 
) const

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

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

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

value_type AbstractLinAlgPack::COOMatrixPartitionViewSubclass::transVtMtV ( const DVectorSlice vs_rhs1,
BLAS_Cpp::Transp  trans_rhs2,
const DVectorSlice vs_rhs3 
) const

(4) result = vs_rhs1' * op(M_rhs2) * vs_rhs3

value_type AbstractLinAlgPack::COOMatrixPartitionViewSubclass::transVtMtV ( const SpVectorSlice sv_rhs1,
BLAS_Cpp::Transp  trans_rhs2,
const SpVectorSlice sv_rhs3 
) const
virtual

(5) result = sv_rhs1' * op(M_rhs2) * sv_rhs3

Reimplemented from AbstractLinAlgPack::MatrixOp.

void AbstractLinAlgPack::COOMatrixPartitionViewSubclass::Mp_StMtM ( DMatrixSlice gms_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const DMatrixSlice gms_rhs2,
BLAS_Cpp::Transp  trans_rhs2,
value_type  beta 
) const

(6) gms_lhs = alpha * op(M_rhs1) * op(gms_rhs2) + beta * gms_lhs (right) (xGEMM)

void AbstractLinAlgPack::COOMatrixPartitionViewSubclass::Mp_StMtM ( DMatrixSlice gms_lhs,
value_type  alpha,
const DMatrixSlice gms_rhs1,
BLAS_Cpp::Transp  trans_rhs1,
BLAS_Cpp::Transp  trans_rhs2,
value_type  beta 
) const

(7) gms_lhs = alpha * op(gms_rhs1) * op(M_rhs2) + beta * gms_lhs (left) (xGEMM)


The documentation for this class was generated from the following file: