Playa::VectorSpace< Scalar > Class Template Reference

User-level VectorSpace class. More...

Inheritance diagram for Playa::VectorSpace< Scalar >:

Playa::Handle< const VectorSpaceBase< Scalar > >

List of all members.

Public Member Functions

 VectorSpace ()
 Empty ctor.
 VectorSpace (Handleable< const VectorSpaceBase< Scalar > > *rawPtr)
 Construct a VectorSpace<Scalar> with a raw pointer to a const VectorSpaceBase<Scalar>.
 VectorSpace (const RefCountPtr< const VectorSpaceBase< Scalar > > &smartPtr)
 Construct a VectorSpace<Scalar> with a smart pointer to a const VectorSpaceBase<Scalar>.
Vector< Scalar > createMember () const
 Create a new element of this vector space.
int dim () const
 Return the dimension of the space.
int baseGlobalNaturalIndex () const
 Return the lowest global index accessible on this processor.
int numLocalElements () const
 Return the number of elements owned by this processor.
const MPICommcomm () const
 Return the MPI communicator.
bool isCompatible (const VectorSpace< Scalar > &vecSpc) const
 Check compatibility with another space.
bool operator== (const VectorSpace< Scalar > &other) const
 test equality between two spaces
bool operator!= (const VectorSpace< Scalar > &other) const
 test inequality of two spaces
bool contains (const Vector< Scalar > &vec) const
 test whether the space contains a given vector
int numBlocks () const
 return the number of subblocks at the highest level.
bool isBlockSpace () const
 indicate whether I am a block vector space
const VectorSpace< Scalar > & getBlock (int i) const
 get the i-th subblock
const VectorSpace< Scalar > & getBlock (const BlockIterator< Scalar > &iter) const
 get a subblock as specified by a block iterator
const VectorSpace< Scalar > & getBlock (const std::deque< int > &iter) const
 get a subblock as specified by a deque of indices
BlockIterator< Scalar > beginBlock () const
BlockIterator< Scalar > endBlock () const
int mapToGNI (const BlockIterator< Scalar > &b, int indexWithinBlock) const
bool containsGNI (int gni) const
void getBlockAndOffsetFromGNI (int gni, BlockIterator< Scalar > &block, int &indexWithinBlock) const

Related Functions

(Note that these are not member functions.)

template<class Scalar >
VectorSpace< Scalar > blockSpace (const VectorSpace< Scalar > &v1)
template<class Scalar >
VectorSpace< Scalar > blockSpace (const VectorSpace< Scalar > &v1, const VectorSpace< Scalar > &v2)
template<class Scalar >
VectorSpace< Scalar > blockSpace (const VectorSpace< Scalar > &v1, const VectorSpace< Scalar > &v2, const VectorSpace< Scalar > &v3)
template<class Scalar >
VectorSpace< Scalar > blockSpace (const VectorSpace< Scalar > &v1, const VectorSpace< Scalar > &v2, const VectorSpace< Scalar > &v3, const VectorSpace< Scalar > &v4)
template<class Scalar >
VectorSpace< Scalar > blockSpace (const Array< VectorSpace< Scalar > > &x)


Detailed Description

template<class Scalar>
class Playa::VectorSpace< Scalar >

User-level VectorSpace class.

Definition at line 21 of file PlayaVectorSpaceDecl.hpp.


Constructor & Destructor Documentation

template<class Scalar>
Playa::VectorSpace< Scalar >::VectorSpace (  )  [inline]

Empty ctor.

template<class Scalar>
Playa::VectorSpace< Scalar >::VectorSpace ( Handleable< const VectorSpaceBase< Scalar > > *  rawPtr  )  [inline]

Construct a VectorSpace<Scalar> with a raw pointer to a const VectorSpaceBase<Scalar>.

template<class Scalar>
Playa::VectorSpace< Scalar >::VectorSpace ( const RefCountPtr< const VectorSpaceBase< Scalar > > &  smartPtr  )  [inline]

Construct a VectorSpace<Scalar> with a smart pointer to a const VectorSpaceBase<Scalar>.


Member Function Documentation

template<class Scalar >
int Playa::VectorSpace< Scalar >::baseGlobalNaturalIndex (  )  const [inline]

template<class Scalar >
BlockIterator< Scalar > Playa::VectorSpace< Scalar >::beginBlock (  )  const [inline]

template<class Scalar>
const MPIComm& Playa::VectorSpace< Scalar >::comm (  )  const [inline]

Return the MPI communicator.

Definition at line 39 of file PlayaVectorSpaceDecl.hpp.

template<class Scalar>
bool Playa::VectorSpace< Scalar >::contains ( const Vector< Scalar > &  vec  )  const [inline]

test whether the space contains a given vector

Definition at line 93 of file PlayaVectorSpaceImpl.hpp.

References Playa::Vector< Scalar >::space().

template<class Scalar >
bool Playa::VectorSpace< Scalar >::containsGNI ( int  gni  )  const [inline]

template<class Scalar >
Vector< Scalar > Playa::VectorSpace< Scalar >::createMember (  )  const [inline]

template<class Scalar>
int Playa::VectorSpace< Scalar >::dim (  )  const [inline]

template<class Scalar >
BlockIterator< Scalar > Playa::VectorSpace< Scalar >::endBlock (  )  const [inline]

template<class Scalar>
const VectorSpace< Scalar > & Playa::VectorSpace< Scalar >::getBlock ( const std::deque< int > &  iter  )  const [inline]

get a subblock as specified by a deque of indices

Definition at line 148 of file PlayaVectorSpaceImpl.hpp.

template<class Scalar>
const VectorSpace< Scalar > & Playa::VectorSpace< Scalar >::getBlock ( const BlockIterator< Scalar > &  iter  )  const [inline]

get a subblock as specified by a block iterator

Definition at line 135 of file PlayaVectorSpaceImpl.hpp.

References Playa::BlockIterator< Scalar >::atEnd(), and Playa::BlockIterator< Scalar >::blockIndex().

template<class Scalar >
const VectorSpace< Scalar > & Playa::VectorSpace< Scalar >::getBlock ( int  i  )  const [inline]

template<class Scalar>
void Playa::VectorSpace< Scalar >::getBlockAndOffsetFromGNI ( int  gni,
BlockIterator< Scalar > &  block,
int &  indexWithinBlock 
) const [inline]

template<class Scalar >
bool Playa::VectorSpace< Scalar >::isBlockSpace (  )  const [inline]

indicate whether I am a block vector space

Definition at line 109 of file PlayaVectorSpaceImpl.hpp.

References Playa::Handle< const VectorSpaceBase< Scalar > >::ptr().

Referenced by Playa::BlockIterator< Scalar >::goToStart().

template<class Scalar>
bool Playa::VectorSpace< Scalar >::isCompatible ( const VectorSpace< Scalar > &  vecSpc  )  const [inline]

Check compatibility with another space.

Definition at line 80 of file PlayaVectorSpaceImpl.hpp.

References Playa::Handle< const VectorSpaceBase< Scalar > >::ptr().

Referenced by Playa::VectorSpace< Scalar >::operator==().

template<class Scalar>
int Playa::VectorSpace< Scalar >::mapToGNI ( const BlockIterator< Scalar > &  b,
int  indexWithinBlock 
) const [inline]

template<class Scalar >
int Playa::VectorSpace< Scalar >::numBlocks (  )  const [inline]

template<class Scalar >
int Playa::VectorSpace< Scalar >::numLocalElements (  )  const [inline]

template<class Scalar>
bool Playa::VectorSpace< Scalar >::operator!= ( const VectorSpace< Scalar > &  other  )  const [inline]

test inequality of two spaces

Definition at line 43 of file PlayaVectorSpaceImpl.hpp.

References Playa::VectorSpace< Scalar >::operator==().

template<class Scalar>
bool Playa::VectorSpace< Scalar >::operator== ( const VectorSpace< Scalar > &  other  )  const [inline]

test equality between two spaces

Definition at line 35 of file PlayaVectorSpaceImpl.hpp.

References Playa::VectorSpace< Scalar >::isCompatible().

Referenced by Playa::VectorSpace< Scalar >::operator!=().


Friends And Related Function Documentation

template<class Scalar >
VectorSpace< Scalar > blockSpace ( const Array< VectorSpace< Scalar > > &  x  )  [related]

Definition at line 117 of file PlayaDefaultBlockVectorSpaceImpl.hpp.

template<class Scalar >
VectorSpace< Scalar > blockSpace ( const VectorSpace< Scalar > &  v1,
const VectorSpace< Scalar > &  v2,
const VectorSpace< Scalar > &  v3,
const VectorSpace< Scalar > &  v4 
) [related]

Definition at line 101 of file PlayaDefaultBlockVectorSpaceImpl.hpp.

template<class Scalar >
VectorSpace< Scalar > blockSpace ( const VectorSpace< Scalar > &  v1,
const VectorSpace< Scalar > &  v2,
const VectorSpace< Scalar > &  v3 
) [related]

Definition at line 87 of file PlayaDefaultBlockVectorSpaceImpl.hpp.

template<class Scalar >
VectorSpace< Scalar > blockSpace ( const VectorSpace< Scalar > &  v1,
const VectorSpace< Scalar > &  v2 
) [related]

Definition at line 75 of file PlayaDefaultBlockVectorSpaceImpl.hpp.

template<class Scalar >
VectorSpace< Scalar > blockSpace ( const VectorSpace< Scalar > &  v1  )  [related]

Definition at line 64 of file PlayaDefaultBlockVectorSpaceImpl.hpp.

Site Contact