AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
AbstractLinAlgPack::VectorSpaceSubSpace Class Reference

Concrete subclass for a default sub-space of a vector. More...

#include <AbstractLinAlgPack_VectorSpaceSubSpace.hpp>

Inheritance diagram for AbstractLinAlgPack::VectorSpaceSubSpace:
Inheritance graph
[legend]

Public Member Functions

 VectorSpaceSubSpace ()
 Constructs to uninitialized. More...
 
 VectorSpaceSubSpace (const space_ptr_t &full_space, const Range1D &rng)
 Calls this->initialize(). More...
 
void initialize (const space_ptr_t &full_space, const Range1D &rng)
 Initialize. More...
 
void set_uninitialized ()
 Set uninitilized. More...
 
const space_ptr_tfull_space () const
 
const Range1Drng () const
 
void validate_range (const Range1D &rng) const
 Validate rng. More...
 
- Public Member Functions inherited from AbstractLinAlgPack::VectorSpace
space_ptr_t sub_space (const index_type il, const index_type iu) const
 Inlined to call this->sub_space(Range1D(il,iu)). More...
 
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. More...
 
 VectorSpace (const inner_prod_ptr_t &inner_prod=Teuchos::null)
 Calls inner_prod() More...
 
virtual void inner_prod (const inner_prod_ptr_t &inner_prod)
 Initialize with an inner product object. More...
 
virtual const inner_prod_ptr_t inner_prod () const
 Return the smart pointer to the inner product strategy object. More...
 
virtual space_fcty_ptr_t small_vec_spc_fcty () const
 Return a VectorSpaceFactory object for the creation of vector spaces with a small dimension. More...
 
virtual vec_mut_ptr_t create_member (const value_type &alpha) const
 Create a vector member from the vector space initialized to a scalar. More...
 
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. More...
 
obj_ptr_t create () const
 Just calls this->create_member() by default! More...
 

Overridden from VectorSpace

bool is_compatible (const VectorSpace &) const
 
bool is_in_core () const
 
index_type dim () const
 
vec_mut_ptr_t create_member () const
 
space_ptr_t clone () const
 
space_ptr_t sub_space (const Range1D &rng) const
 

Additional Inherited Members

- Public Types inherited from AbstractLinAlgPack::VectorSpace
typedef Teuchos::RCP< const
InnerProduct
inner_prod_ptr_t
 
typedef Teuchos::RCP< const
VectorSpace
space_ptr_t
 
typedef Teuchos::RCP< const
VectorSpaceFactory
space_fcty_ptr_t
 
typedef Teuchos::RCP
< VectorMutable
vec_mut_ptr_t
 
typedef Teuchos::RCP
< MultiVectorMutable
multi_vec_mut_ptr_t
 

Detailed Description

Concrete subclass for a default sub-space of a vector.

There is not much to this subclass. It basically implements all of its methods based on the external VectorSpace interface to implement is_compatible() and sub_space() and and relys on a default subclass VectorMutableSubView to implement create_member().

The default constructor, copy constructor and assignment operator functions are allowed and have the correct behavior.

Definition at line 60 of file AbstractLinAlgPack_VectorSpaceSubSpace.hpp.

Constructor & Destructor Documentation

AbstractLinAlgPack::VectorSpaceSubSpace::VectorSpaceSubSpace ( )
inline

Constructs to uninitialized.

Postconditions: see set_uninitialized().

Definition at line 139 of file AbstractLinAlgPack_VectorSpaceSubSpace.hpp.

AbstractLinAlgPack::VectorSpaceSubSpace::VectorSpaceSubSpace ( const space_ptr_t full_space,
const Range1D rng 
)

Calls this->initialize().

Definition at line 50 of file AbstractLinAlgPack_VectorSpaceSubSpace.cpp.

Member Function Documentation

void AbstractLinAlgPack::VectorSpaceSubSpace::initialize ( const space_ptr_t full_space,
const Range1D rng 
)

Initialize.

Constructs a sub-space of the vector space this = space.sub_space(rng).

Preconditions:

  • full_space.get() != NULL (throw std::invalid_argument).
  • [rng.full_range() == false] rng.lbound() <= full_space->dim() (throw std::out_of_range).

Postconditions:

  • [&& rng.full_range() == true] this->dim() == full_space->dim()
  • [&& rng.full_range() == false] this->dim() == rng.size()
Parameters
full_space[in] The original full vector space (must be full_space.get() != NULL).
rng[in] The range of element that this vector sub-space will represent.

Definition at line 55 of file AbstractLinAlgPack_VectorSpaceSubSpace.cpp.

void AbstractLinAlgPack::VectorSpaceSubSpace::set_uninitialized ( )

Set uninitilized.

Postconditions:

Definition at line 74 of file AbstractLinAlgPack_VectorSpaceSubSpace.cpp.

const VectorSpace::space_ptr_t & AbstractLinAlgPack::VectorSpaceSubSpace::full_space ( ) const
inline

Definition at line 144 of file AbstractLinAlgPack_VectorSpaceSubSpace.hpp.

const Range1D & AbstractLinAlgPack::VectorSpaceSubSpace::rng ( ) const
inline

Definition at line 150 of file AbstractLinAlgPack_VectorSpaceSubSpace.hpp.

void AbstractLinAlgPack::VectorSpaceSubSpace::validate_range ( const Range1D rng) const
inline

Validate rng.

Definition at line 157 of file AbstractLinAlgPack_VectorSpaceSubSpace.hpp.

bool AbstractLinAlgPack::VectorSpaceSubSpace::is_compatible ( const VectorSpace another_space) const
virtual
bool AbstractLinAlgPack::VectorSpaceSubSpace::is_in_core ( ) const
virtual

Reimplemented from AbstractLinAlgPack::VectorSpace.

Definition at line 111 of file AbstractLinAlgPack_VectorSpaceSubSpace.cpp.

index_type AbstractLinAlgPack::VectorSpaceSubSpace::dim ( ) const
virtual
VectorSpace::vec_mut_ptr_t AbstractLinAlgPack::VectorSpaceSubSpace::create_member ( ) const
virtual
VectorSpace::space_ptr_t AbstractLinAlgPack::VectorSpaceSubSpace::clone ( ) const
virtual
VectorSpace::space_ptr_t AbstractLinAlgPack::VectorSpaceSubSpace::sub_space ( const Range1D rng) const
virtual

Reimplemented from AbstractLinAlgPack::VectorSpace.

Definition at line 140 of file AbstractLinAlgPack_VectorSpaceSubSpace.cpp.


The documentation for this class was generated from the following files: