54 namespace AbstractLinAlgPack {
111 i_k = P_trans ==
no_trans ? P_itr->row_i() : P_itr->col_j(),
112 j_k = P_trans ==
no_trans ? P_itr->col_j() : P_itr->row_i();
153 ,gpms_rhs, gpms_rhs_trans
167 ,dyn_cast<const MatrixOpSerial>(mwo_rhs), mwo_rhs_trans
virtual void Mp_StPtMtP(DMatrixSliceSym *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const GenPermMatrixSlice &gpms_rhs, BLAS_Cpp::Transp gpms_rhs_trans, value_type beta) const
sym_lhs = alpha * op(gpms_rhs') * M * op(gpms_rhs) + beta * sym_lhs.
void Vp_StV(DVectorSlice *vs_lhs, value_type alpha, const DVectorSlice &vs_rhs)
vs_lhs += alpha * vs_rhs (BLAS xAXPY)
void MtM_assert_sizes(size_type m_rhs1_rows, size_type m_rhs1_cols, BLAS_Cpp::Transp trans_rhs1, size_type m_rhs2_rows, size_type m_rhs2_cols, BLAS_Cpp::Transp trans_rhs2)
op(m_lhs) += op(m_rhs1)
void Vp_StPtMtV(VectorMutable *v_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &M_rhs2, BLAS_Cpp::Transp M_rhs2_trans, const Vector &v_rhs3, value_type beta=1.0)
v_lhs = alpha * op(P_rhs1) * op(M_rhs2) * v_rhs3 + beta * v_rhs
RTOp_value_type value_type
const_iterator end() const
Return the end of this->const_iterator_begin().
void Mp_M_assert_sizes(size_type m_lhs_rows, size_type m_lhs_cols, BLAS_Cpp::Transp trans_lhs, size_type m_rhs_rows, size_type m_rhs_cols, BLAS_Cpp::Transp trans_rhs)
op(m_lhs) += op op(m_rhs)
BLAS_Cpp::Uplo uplo() const
Base class for all matrices implemented in a shared memory address space.
Interface adding operations specific for a symmetric matrix {abstract}.
const VectorSpace & space_rows() const
Must be overridden to call MatrixOpSerial::space_rows()
This is a full random access iterator for accessing row and colunmn indices.
RTOp_index_type size_type
Abstract interface for objects that represent a space for mutable coordinate vectors.
T_To & dyn_cast(T_From &from)
const_iterator begin() const
Return a random access iterator for accessing which row and column that each nonzero 1...
Helper class type that simplifies the usage of the MatrixSymOpGetGMSSymMutable interface for clients...
void Mt_S(DMatrixSlice *gms_lhs, value_type alpha)
gms_lhs *= alpha (BLAS xSCAL)
Create an eta vector (scaled by alpha = default 1).
f_dbl_prec f_dbl_prec f_dbl_prec * S
DMatrixSliceTriEle nonconst_tri_ele(DMatrixSlice gms, BLAS_Cpp::Uplo uplo)
Return a triangular element-wise matrix.
const f_int f_dbl_prec a[]
Base class for all matrices that support basic matrix operations.
const VectorSpace & space_rows() const
Transp trans_not(Transp _trans)
Return the opposite of the transpose argument.
size_type cols() const
Returns this->rows()
virtual size_type rows() const
Return the number of rows in the matrix.
DVectorSlice col(size_type j)
Return DVectorSlice object representing the jth column (1-based; 1,2,..,#this->cols()#, or throw std::out_of_range)
virtual void Mp_StMtMtM(DMatrixSliceSym *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixOpSerial &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta) const
sym_lhs = alpha * op(mwo_rhs') * M * op(mwo_rhs).
size_type cols(size_type rows, size_type cols, BLAS_Cpp::Transp _trans)
Return columns of a possible transposed matrix.
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
Concrete matrix type to represent general permutation (mapping) matrices.