AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects
Version of the Day
|
Implementation of MatrixOp abstract interface for COOMatrixWithPartitionedView::partition_type. More...
#include <AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp>
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 |
MatrixOp & | operator= (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 VectorSpace & | space_cols () const =0 |
Vector space for vectors that are compatible with the columns of the matrix. More... | |
virtual const VectorSpace & | space_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 | |
M & | m () |
Get the underlying M object. More... | |
const M & | m () 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... | |
Implementation of MatrixOp abstract interface for COOMatrixWithPartitionedView::partition_type.
Definition at line 56 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
typedef COOMatrixWithPartitionedView::partition_type AbstractLinAlgPack::COOMatrixPartitionViewSubclass::M |
Definition at line 61 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
|
inline |
Definition at line 64 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
|
inline |
Definition at line 69 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
|
inline |
Definition at line 74 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
|
inline |
Definition at line 79 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
|
inline |
Definition at line 84 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
|
inline |
Get the underlying M object.
Definition at line 93 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
|
inline |
Definition at line 98 of file AbstractLinAlgPack_COOMatrixPartitionViewSubclass.hpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixBase.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixBase.
|
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
|
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)