42 #ifndef MATRIX_COMPOSITE_STD_H
43 #define MATRIX_COMPOSITE_STD_H
53 namespace AbstractLinAlgPack {
532 #ifdef DOXYGEN_COMPILE
553 #endif // MATRIX_COMPOSITE_STD_H
void remove_vector(vector_list_t::iterator itr)
Remove a sub-vector.
release_resource_ptr_t G_release_
Matrix list entry for a sub-matrix.
bool operator==(const SubMatrixEntry m)
void assert_fully_constructed() const
std::deque< SubMatrixEntry > matrix_list_t
Warning! This could be changed to some other STL container!
Abstract interface for immutable, finite dimensional, coordinate vectors {abstract}.
bool operator==(const SubVectorEntry v)
matrix_list_t::iterator matrices_begin()
BLAS_Cpp::Transp A_trans_
release_resource_ptr_t P_release_
RTOp_value_type value_type
void add_matrix(size_type row_offset, size_type col_offset, value_type alpha, const GenPermMatrixSlice *P, const release_resource_ptr_t &P_release, BLAS_Cpp::Transp P_trans, const MatrixOp *A, const release_resource_ptr_t &A_release, BLAS_Cpp::Transp A_trans, const GenPermMatrixSlice *Q, const release_resource_ptr_t &Q_release, BLAS_Cpp::Transp Q_trans)
Add a sub-matrix alpha*op(P)*op(A)*op(Q).
mat_ptr_t sub_view(const Range1D &row_rng, const Range1D &col_rng) const
release_resource_ptr_t Q_release_
BLAS_Cpp::Transp P_trans_
vector_list_t::iterator vectors_begin()
Teuchos::RCP< MemMngPack::ReleaseResource > release_resource_ptr_t
size_type c_l_
column of first element of vector in composite matrix.
virtual void finish_construction(const VectorSpace::space_ptr_t &space_cols, const VectorSpace::space_ptr_t &space_rows)
Call to finish the construction process.
std::deque< SubVectorEntry > vector_list_t
Warning! This could be changed to some other STL container!
vector_list_t::iterator vectors_end()
Teuchos::RCP< const GenPermMatrixSlice > GPMS_ptr_t
. One-based subregion index range class.
RTOp_index_type size_type
Abstract interface for objects that represent a space for mutable coordinate vectors.
Vector list entry for a sub-vector.
matrix_list_t::iterator matrices_end()
Abstract interface for releasing an object when it is not needed anymore {abstract}.
void Vp_StPtMtV(VectorMutable *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_rhs2_trans, const Vector &v_rhs3, value_type beta) const
const VectorSpace & space_cols() const
release_resource_ptr_t A_release_
Base class for all matrices that support basic matrix operations.
release_resource_ptr_t v_release_
MatrixComposite(size_type rows=0, size_type cols=0)
Construct.
void reinitialize(size_type rows=0, size_type cols=0)
Initialize a sized (on unsized) zero matrix to start with.
BLAS_Cpp::Transp G_trans_
Teuchos::RCP< const GenPermMatrixSlice > GPMS_ptr_t
Abstract interface for mutable coordinate vectors {abstract}.
BLAS_Cpp::Transp v_trans_
void remove_matrix(matrix_list_t::iterator itr)
Remove a sub-matrix.
SubMatrixEntry(size_type r_l, size_type r_u, size_type c_l, size_type c_u, value_type alpha, const Range1D &rng_P, const GPMS_ptr_t &P, const release_resource_ptr_t &P_release, BLAS_Cpp::Transp P_trans, const MatrixOp *A, const release_resource_ptr_t &A_release, BLAS_Cpp::Transp A_trans, const Range1D &rng_Q, const GPMS_ptr_t &Q, const release_resource_ptr_t &Q_release, BLAS_Cpp::Transp Q_trans)
BLAS_Cpp::Transp Q_trans_
Matrix class for matrices composed out of a set of other matrices and vectors.
SubVectorEntry(size_type r_l, size_type c_l, value_type beta, const Range1D &rng_G, const GPMS_ptr_t &G, const release_resource_ptr_t &G_release, BLAS_Cpp::Transp G_trans, const Vector *v, const release_resource_ptr_t &v_release, BLAS_Cpp::Transp v_trans)
void add_vector(size_type row_offset, size_type col_offset, value_type beta, const GenPermMatrixSlice *G, const release_resource_ptr_t &G_release, BLAS_Cpp::Transp G_trans, const Vector *v, const release_resource_ptr_t &v_release, BLAS_Cpp::Transp v_trans)
Add a sub-vector beta*op(op(G)*v).
const VectorSpace & space_rows() const
Concrete matrix type to represent general permutation (mapping) matrices.
void Vp_StMtV(VectorMutable *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta) const