RVL::StdProductSpace< Scalar > Class Template Reference

Standard construction of product spaces, via an (STL) vector of dynamically allocated Spaces. More...

#include <productspace.hh>

Inheritance diagram for RVL::StdProductSpace< Scalar >:

RVL::ProductSpace< Scalar > RVL::Space< Scalar > RVL::ROProduct< T > RVL::Writeable List of all members.

Public Member Functions

 StdProductSpace (const StdProductSpace< Scalar > &sp)
 Copy construction.
 StdProductSpace (size_t nfac)
 construction for nfac factors, without initialization
 StdProductSpace (Space< Scalar > const &s1)
 constructor for single space - allows one to regard a single space as a (trivial) product space
 StdProductSpace (Space< Scalar > const &s1, Space< Scalar > const &s2)
 constructor for pairs of spaces.
 StdProductSpace (Space< Scalar > const &s1, Space< Scalar > const &s2, Space< Scalar > const &s3)
 constructor for triples of spaces.
 StdProductSpace (Space< Scalar > const &s1, Space< Scalar > const &s2, Space< Scalar > const &s3, Space< Scalar > const &s4)
 constructor for quadruples of spaces.
 ~StdProductSpace ()
virtual DataContainerbuildDataContainer () const
 implements virtual DataContainer build method via StdProductDataContainer class.
size_t getSize () const
Space< Scalar > const & operator[] (size_t i) const
void set (Space< Scalar > const &sp, size_t i)
 assignment to ith factor: only possible once!

Protected Member Functions

Space< Scalar > * clone () const
bool init () const
 checks that factor Spaces are initialized

Detailed Description

template<class Scalar>
class RVL::StdProductSpace< Scalar >

Standard construction of product spaces, via an (STL) vector of dynamically allocated Spaces.

Uses export_clone to copy-construct supplied pattern Spaces. NB: Spaces are supposed to be lightweight objects.

Convenience constructors supplied for 2, 3, and 4 components.

Definition at line 207 of file productspace.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::StdProductSpace< Scalar >::StdProductSpace ( const StdProductSpace< Scalar > &  sp  ) 

Copy construction.

Definition at line 233 of file productspace.hh.

References RVL::Space< Scalar >::export_clone(), and RVL::StdProductSpace< Scalar >::s.

template<class Scalar>
RVL::StdProductSpace< Scalar >::StdProductSpace ( size_t  nfac  ) 

construction for nfac factors, without initialization

Definition at line 241 of file productspace.hh.

template<class Scalar>
RVL::StdProductSpace< Scalar >::StdProductSpace ( Space< Scalar > const &  s1  ) 

constructor for single space - allows one to regard a single space as a (trivial) product space

Definition at line 247 of file productspace.hh.

template<class Scalar>
RVL::StdProductSpace< Scalar >::StdProductSpace ( Space< Scalar > const &  s1,
Space< Scalar > const &  s2 
)

constructor for pairs of spaces.

Definition at line 252 of file productspace.hh.

template<class Scalar>
RVL::StdProductSpace< Scalar >::StdProductSpace ( Space< Scalar > const &  s1,
Space< Scalar > const &  s2,
Space< Scalar > const &  s3 
)

constructor for triples of spaces.

Definition at line 258 of file productspace.hh.

template<class Scalar>
RVL::StdProductSpace< Scalar >::StdProductSpace ( Space< Scalar > const &  s1,
Space< Scalar > const &  s2,
Space< Scalar > const &  s3,
Space< Scalar > const &  s4 
)

constructor for quadruples of spaces.

Definition at line 266 of file productspace.hh.

template<class Scalar>
RVL::StdProductSpace< Scalar >::~StdProductSpace (  ) 

Definition at line 276 of file productspace.hh.

References RVL::StdProductSpace< Scalar >::getSize().


Member Function Documentation

template<class Scalar>
Space<Scalar>* RVL::StdProductSpace< Scalar >::clone (  )  const [protected, virtual]

Implements RVL::Space< Scalar >.

Definition at line 219 of file productspace.hh.

template<class Scalar>
bool RVL::StdProductSpace< Scalar >::init (  )  const [protected]

checks that factor Spaces are initialized

Definition at line 224 of file productspace.hh.

Referenced by RVL::StdProductSpace< Scalar >::buildDataContainer(), and RVL::StdProductSpace< Scalar >::operator[]().

template<class Scalar>
virtual DataContainer* RVL::StdProductSpace< Scalar >::buildDataContainer (  )  const [virtual]

implements virtual DataContainer build method via StdProductDataContainer class.

Made virtual so that subclasses can use specialized subtypes of StdProdDC

Implements RVL::Space< Scalar >.

Definition at line 285 of file productspace.hh.

References RVL::StdProductSpace< Scalar >::getSize(), RVL::StdProductSpace< Scalar >::init(), and RVL::StdProductDataContainer::push().

template<class Scalar>
size_t RVL::StdProductSpace< Scalar >::getSize (  )  const [virtual]

Implements RVL::ROProduct< T >.

Definition at line 303 of file productspace.hh.

Referenced by RVL::StdProductSpace< Scalar >::buildDataContainer(), and RVL::StdProductSpace< Scalar >::~StdProductSpace().

template<class Scalar>
Space<Scalar> const& RVL::StdProductSpace< Scalar >::operator[] ( size_t  i  )  const [virtual]

Implements RVL::ROProduct< T >.

Definition at line 304 of file productspace.hh.

References RVL::StdProductSpace< Scalar >::init().

template<class Scalar>
void RVL::StdProductSpace< Scalar >::set ( Space< Scalar > const &  sp,
size_t  i 
)

assignment to ith factor: only possible once!

Definition at line 314 of file productspace.hh.

References RVL::Space< Scalar >::export_clone().


The documentation for this class was generated from the following file:
Generated on 5 Jan 2017 for RVL by  doxygen 1.4.7