42 #ifndef ALAP_MULTI_VECTOR_H
43 #define ALAP_MULTI_VECTOR_H
45 #include "AbstractLinAlgPack_MatrixOp.hpp"
46 #include "RTOpPack_RTOpT.hpp"
49 namespace AbstractLinAlgPack {
64 ,
const RTOpPack::RTOp &primary_op
65 ,
const size_t num_multi_vecs
66 ,
const MultiVector* multi_vecs[]
67 ,
const size_t num_targ_multi_vecs
68 ,MultiVectorMutable* targ_multi_vecs[]
70 ,
const index_type primary_first_ele = 1
71 ,
const index_type primary_sub_dim = 0
72 ,
const index_type primary_global_offset = 0
73 ,
const index_type secondary_first_ele = 1
74 ,
const index_type secondary_sub_dim = 0
84 ,
const RTOpPack::RTOp &primary_op
85 ,
const RTOpPack::RTOp &secondary_op
86 ,
const size_t num_multi_vecs
87 ,
const MultiVector* multi_vecs[]
88 ,
const size_t num_targ_multi_vecs
89 ,MultiVectorMutable* targ_multi_vecs[]
91 ,
const index_type primary_first_ele = 1
92 ,
const index_type primary_sub_dim = 0
93 ,
const index_type primary_global_offset = 0
94 ,
const index_type secondary_first_ele = 1
95 ,
const index_type secondary_sub_dim = 0
197 ,
const RTOpPack::RTOp &primary_op
198 ,
const size_t num_multi_vecs
200 ,
const size_t num_targ_multi_vecs
203 ,
const index_type primary_first_ele
204 ,
const index_type primary_sub_dim
205 ,
const index_type primary_global_offset
206 ,
const index_type secondary_first_ele
207 ,
const index_type secondary_sub_dim
212 ,
const RTOpPack::RTOp &primary_op
213 ,
const RTOpPack::RTOp &secondary_op
214 ,
const size_t num_multi_vecs
216 ,
const size_t num_targ_multi_vecs
219 ,
const index_type primary_first_ele
220 ,
const index_type primary_sub_dim
221 ,
const index_type primary_global_offset
222 ,
const index_type secondary_first_ele
223 ,
const index_type secondary_sub_dim
291 const index_type& rl,
const index_type& ru
292 ,
const index_type& cl,
const index_type& cu
316 EApplyBy apply_by,
const RTOpPack::RTOp& primary_op
317 ,
const size_t num_multi_vecs,
const MultiVector* multi_vecs[]
320 ,
const index_type primary_first_ele,
const index_type primary_sub_dim,
const index_type primary_global_offset
321 ,
const index_type secondary_first_ele,
const index_type secondary_sub_dim
338 EApplyBy apply_by,
const RTOpPack::RTOp& primary_op,
const RTOpPack::RTOp& secondary_op
339 ,
const size_t num_multi_vecs,
const MultiVector* multi_vecs[]
342 ,
const index_type primary_first_ele,
const index_type primary_sub_dim,
const index_type primary_global_offset
343 ,
const index_type secondary_first_ele,
const index_type secondary_sub_dim
355 mat_ptr_t
clone()
const;
405 #ifdef DOXYGEN_COMPILE
419 const index_type& rl,
const index_type& ru
420 ,
const index_type& cl,
const index_type& cu
428 #endif // ALAP_MULTI_VECTOR_H
mat_ptr_t clone() const
Returns this->mv_clone().
Abstract interface for immutable, finite dimensional, coordinate vectors {abstract}.
virtual access_by_t access_by() const =0
Return a bit field for the types of access that are the most convenient.
virtual mat_mut_ptr_t clone()
Clone the non-const matrix object (if supported).
mat_ptr_t sub_view(const Range1D &row_rng, const Range1D &col_rng) const
Returns this->mv_sub_view(row_rng,col_rng) casted to a MatrixOp.
Teuchos::RCP< const Vector > vec_ptr_t
bool Mp_StMtM(MatrixOp *mwo_lhs, value_type alpha, const MatrixOp &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2, value_type beta) const
Provides a specialized implementation for mwo_rhs1 of type MatrixSymDiag.
Teuchos::RCP< const MultiVector > multi_vec_ptr_t
friend void Mp_StMtM(MatrixOp *mwo_lhs, value_type alpha, const MatrixOp &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta)
virtual vec_ptr_t diag(int k) const =0
Get a non-mutable diagonal vector.
Base class for all matrices that support basic matrix operations.
Interface for a collection of non-mutable vectors (multi-vector, matrix).
virtual multi_vec_ptr_t mv_sub_view(const Range1D &row_rng, const Range1D &col_rng) const
Returns a sub-view of the multi vector.
Interface for a collection of mutable vectors (multi-vector, matrix).
friend void apply_op(EApplyBy apply_by, const RTOpPack::RTOp &primary_op, const size_t num_multi_vecs, const MultiVector *multi_vecs[], const size_t num_targ_multi_vecs, MultiVectorMutable *targ_multi_vecs[], RTOpPack::ReductTarget *reduct_objs[], const index_type primary_first_ele, const index_type primary_sub_dim, const index_type primary_global_offset, const index_type secondary_first_ele, const index_type secondary_sub_dim)
virtual size_type rows() const
Return the number of rows in the matrix.
virtual multi_vec_ptr_t mv_clone() const
Clone the non-const multi-vector object.
virtual vec_ptr_t col(index_type j) const =0
Get a non-mutable column vector.
virtual vec_ptr_t row(index_type i) const =0
Get a non-mutable row vector.