SliceDomain< DT > Class Template Reference

SliceDomain

provides the bulk of the public interface for all sliced domain objects. More...

#include <SliceDomain.h>

Inheritance diagram for SliceDomain< DT >:

Inheritance graph
[legend]

List of all members.

Public Types

typedef DT::Domain_t Domain_t
typedef DT::SliceDomain_t SliceDomain_t
typedef DT::TotalDomain_t TotalDomain_t

Public Member Functions

 SliceDomain ()
 SliceDomain (const Pooma::NoInit &e)
 SliceDomain (const SliceDomain< DT > &sd)
template<class DTO >
 SliceDomain (const SliceDomain< DTO > &sd)
Domain_tunwrap ()
const Domain_tunwrap () const
 ~SliceDomain ()
const SliceDomain_tsliceDomain () const
SliceDomain_tsliceDomain ()
const TotalDomain_ttotalDomain () const
TotalDomain_ttotalDomain ()
void cantIgnoreDomain (int d)
bool & ignorable (int d)
bool ignorable (int d) const
SliceDomain< DT > & operator= (const SliceDomain< DT > &sd)
void setSliceFromTotal ()
template<class Out >
void print (Out &o) const


Detailed Description

template<class DT>
class SliceDomain< DT >

SliceDomain

provides the bulk of the public interface for all sliced domain objects.

The template parameter should be DomainTraits

, where DT is whatever SliceDomain subclass is being set up (e.g., SliceInterval<D,SD>, etc). The DomainTraits for SliceDomain subclasses has a smaller set of requirements than for Domain subclasses, since SliceDomain has a much more restricted set of capabilities and requirements.

A SliceDomain is a special domain class that stores information on a "Total" domain of dimension 'dimensions', and a "Slice" domain of dimension 'sliceDimensions'. The slice domain is a subset of the total domain, with one or more dimensions of the total domain removed (sliced out). This arises when users want to select a subset of an Array or something, by specifying a set of domains of different types - the "singleValued" domains such as Loc or int should refer to sliced dimensions, while the other domains should refer to regions of the domain space as normal. SliceDomain stores the information on what the "total" domain is (the simple combination of all the domain objects as normally occurs when constructing new Domain's) and the "slice" domain (the total domain, with the sliced dimensions taken out).

SliceDomain is only meant for use in constructing the internal objects which refer to a subset of another object, such as an Array which is a slice of a larger-dimensional Array. Thus, the user should not use SliceDomain directly, and it has a much smaller interface. SliceDomain

defines the following interface:


Member Typedef Documentation

template<class DT>
typedef DT::Domain_t SliceDomain< DT >::Domain_t

template<class DT>
typedef DT::SliceDomain_t SliceDomain< DT >::SliceDomain_t

template<class DT>
typedef DT::TotalDomain_t SliceDomain< DT >::TotalDomain_t


Constructor & Destructor Documentation

template<class DT>
SliceDomain< DT >::SliceDomain (  )  [inline]

template<class DT>
SliceDomain< DT >::SliceDomain ( const Pooma::NoInit e  )  [inline]

template<class DT>
SliceDomain< DT >::SliceDomain ( const SliceDomain< DT > &  sd  )  [inline]

template<class DT>
template<class DTO >
SliceDomain< DT >::SliceDomain ( const SliceDomain< DTO > &  sd  )  [inline]

template<class DT>
SliceDomain< DT >::~SliceDomain (  )  [inline]


Member Function Documentation

template<class DT>
Domain_t& SliceDomain< DT >::unwrap (  )  [inline]

template<class DT>
const Domain_t& SliceDomain< DT >::unwrap (  )  const [inline]

template<class DT>
const SliceDomain_t& SliceDomain< DT >::sliceDomain (  )  const [inline]

template<class DT>
SliceDomain_t& SliceDomain< DT >::sliceDomain (  )  [inline]

template<class DT>
const TotalDomain_t& SliceDomain< DT >::totalDomain (  )  const [inline]

template<class DT>
TotalDomain_t& SliceDomain< DT >::totalDomain (  )  [inline]

template<class DT>
void SliceDomain< DT >::cantIgnoreDomain ( int  d  )  [inline]

template<class DT>
bool& SliceDomain< DT >::ignorable ( int  d  )  [inline]

template<class DT>
bool SliceDomain< DT >::ignorable ( int  d  )  const [inline]

template<class DT>
SliceDomain<DT>& SliceDomain< DT >::operator= ( const SliceDomain< DT > &  sd  )  [inline]

template<class DT>
void SliceDomain< DT >::setSliceFromTotal (  )  [inline]

template<class DT >
template<class Out >
void SliceDomain< DT >::print ( Out &  o  )  const [inline]


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

Generated on Wed Mar 16 06:20:35 2011 for FreePOOMA by  doxygen 1.5.9