42 #include "AbstractLinAlgPack_VectorSpace.hpp"
43 #include "AbstractLinAlgPack_VectorSpaceSubSpace.hpp"
44 #include "AbstractLinAlgPack_VectorSpaceFactory.hpp"
45 #include "AbstractLinAlgPack_VectorMutable.hpp"
46 #include "AbstractLinAlgPack_MultiVectorMutable.hpp"
47 #include "AbstractLinAlgPack_InnerProductDot.hpp"
48 #include "AbstractLinAlgPack_GenPermMatrixSlice.hpp"
49 #include "Teuchos_Assert.hpp"
51 namespace AbstractLinAlgPack {
62 if(inner_prod.get()) {
91 namespace mmp = MemMngPack;
100 return Teuchos::null;
106 namespace mmp = MemMngPack;
107 const index_type
dim = this->
dim();
112 ,
"VectorSpace::sub_space(rng): Error, rng = ["<<rng.
lbound()<<
","<<rng.
ubound()<<
"] "
113 "is not in the range [1,this->dim()] = [1,"<<dim<<
"]" );
132 if(vec_spc_fcty.get())
133 return vec_spc_fcty->create_vec_spc(dim);
134 return Teuchos::null;
Concrete subclass for a default sub-space of a vector.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
size_type rows(size_type rows, size_type cols, BLAS_Cpp::Transp _trans)
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_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Teuchos::RCP< const VectorSpace > space_ptr_t
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.
virtual index_type dim() const =0
Return the dimmension of the vector space.
Teuchos::RCP< const InnerProduct > inner_prod_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()
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.