42 #ifndef ALAP_VECTOR_SPACE_HPP
43 #define ALAP_VECTOR_SPACE_HPP
45 #include "AbstractLinAlgPack_InnerProduct.hpp"
46 #include "Teuchos_AbstractFactory.hpp"
48 namespace AbstractLinAlgPack {
217 virtual index_type
dim()
const = 0;
394 #ifdef DOXYGEN_COMPILE
414 #endif // ALAP_VECTOR_SPACE_HPP
virtual space_ptr_t space(const GenPermMatrixSlice &P, BLAS_Cpp::Transp P_trans) const
Create a vector space for vector to gather the elements into.
virtual bool is_in_core() const
Returns true if the vectors are in core.
virtual space_ptr_t sub_space(const Range1D &rng) const
Create a transient sub-space of the current vector space.
Teuchos::RCP< const VectorSpace > space_ptr_t
Abstract interface for objects that represent a space for mutable coordinate vectors.
obj_ptr_t create() const
Just calls this->create_member() by default!
virtual const inner_prod_ptr_t inner_prod() const
Return the smart pointer to the inner product strategy object.
Teuchos::RCP< MultiVectorMutable > multi_vec_mut_ptr_t
virtual bool is_compatible(const VectorSpace &vec_spc) const =0
Compare the compatibility of two vector spaces.
virtual index_type dim() const =0
Return the dimmension of the vector space.
Abstract interface for inner products.
Thrown if vector spaces are incompatible.
Teuchos::RCP< const InnerProduct > inner_prod_ptr_t
Teuchos::RCP< VectorMutable > vec_mut_ptr_t
virtual vec_mut_ptr_t create_member() const =0
Create a vector member from the vector space.
virtual multi_vec_mut_ptr_t create_members(size_type num_vecs) const
Create a set of vector members (a MultiVectorMutable) from the vector space.
VectorSpace(const inner_prod_ptr_t &inner_prod=Teuchos::null)
Calls inner_prod()
Teuchos::RCP< const VectorSpaceFactory > space_fcty_ptr_t
virtual space_fcty_ptr_t small_vec_spc_fcty() const
Return a VectorSpaceFactory object for the creation of vector spaces with a small dimension...
Concrete matrix type to represent general permutation (mapping) matrices.
virtual space_ptr_t clone() const =0
Create a clone of this vector space object.