42 #ifndef MATRIX_SYM_WITH_OP_H
43 #define MATRIX_SYM_WITH_OP_H
45 #include "AbstractLinAlgPack_MatrixOp.hpp"
47 namespace AbstractLinAlgPack {
75 #ifndef DOXYGEN_COMPILE
172 size_type
cols()
const;
177 mat_mut_ptr_t
clone();
179 mat_ptr_t
clone()
const;
184 {
static_cast<MatrixOp*
>(
this)->
operator=(M);
return *
this; }
201 ,value_type beta = 1.0
204 M.
Mp_StPtMtP(sym_lhs,alpha,dummy_place_holder,gpms_rhs,gpms_rhs_trans,beta);
214 ,value_type beta = 1.0
217 M.
Mp_StMtMtM(sym_lhs,alpha,dummy_place_holder,mwo_rhs,mwo_rhs_trans,beta);
224 #endif // MATRIX_SYM_WITH_OP_H
virtual MatrixSymOp & operator=(const MatrixSymOp &M)
Calls operator=(MatrixOp&)
size_type cols() const
Returns this->rows()
void Mp_StPtMtP(MatrixSymOp *sym_lhs, value_type alpha, MatrixSymOp::EMatRhsPlaceHolder dummy_place_holder, const MatrixSymOp &M, const GenPermMatrixSlice &gpms_rhs, BLAS_Cpp::Transp gpms_rhs_trans, value_type beta=1.0)
sym_lhs = alpha * op(gpms_rhs') * M * op(gpms_rhs) + beta * sym_lhs.
friend void Mp_StPtMtP(MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixSymOp &M, const GenPermMatrixSlice &gpms_rhs, BLAS_Cpp::Transp gpms_rhs_trans, value_type beta)
mat_mut_ptr_t clone()
Returns this->clone_mswo().
virtual mat_mswo_mut_ptr_t clone_mswo()
Clone the non-const matrix object (if supported).
friend void Mp_StPtMtP(MatrixOp *mwo_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans)
Interface adding operations specific for a symmetric matrix {abstract}.
Abstract interface for objects that represent a space for mutable coordinate vectors.
void Mp_StMtMtM(MatrixSymOp *sym_lhs, value_type alpha, MatrixSymOp::EMatRhsPlaceHolder dummy_place_holder, const MatrixSymOp &M, const MatrixOp &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta=1.0)
sym_lhs = alpha * op(mwo_rhs') * M * op(mwo_rhs) + beta * sym_lhs
Base class for all matrices that support basic matrix operations.
friend void Mp_StMtMtM(MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixSymOp &M, const MatrixOp &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta)
const VectorSpace & space_rows() const
Vector space for vectors that are compatible with the rows of the matrix.
Concrete matrix type to represent general permutation (mapping) matrices.