FreePOOMA
2.4.1
|
SliceDomainprovides the bulk of the public interface for all sliced domain objects. More...
#include <SliceDomain.h>
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_t & | unwrap () |
const Domain_t & | unwrap () const |
~SliceDomain () | |
const SliceDomain_t & | sliceDomain () const |
SliceDomain_t & | sliceDomain () |
const TotalDomain_t & | totalDomain () const |
TotalDomain_t & | totalDomain () |
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 |
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:
typedef DT::Domain_t SliceDomain< DT >::Domain_t |
typedef DT::SliceDomain_t SliceDomain< DT >::SliceDomain_t |
typedef DT::TotalDomain_t SliceDomain< DT >::TotalDomain_t |
SliceDomain< DT >::SliceDomain | ( | ) | [inline] |
SliceDomain< DT >::SliceDomain | ( | const Pooma::NoInit & | e | ) | [inline] |
SliceDomain< DT >::SliceDomain | ( | const SliceDomain< DT > & | sd | ) | [inline] |
SliceDomain< DT >::SliceDomain | ( | const SliceDomain< DTO > & | sd | ) | [inline] |
SliceDomain< DT >::~SliceDomain | ( | ) | [inline] |
Domain_t& SliceDomain< DT >::unwrap | ( | ) | [inline] |
const Domain_t& SliceDomain< DT >::unwrap | ( | ) | const [inline] |
const SliceDomain_t& SliceDomain< DT >::sliceDomain | ( | ) | const [inline] |
SliceDomain_t& SliceDomain< DT >::sliceDomain | ( | ) | [inline] |
const TotalDomain_t& SliceDomain< DT >::totalDomain | ( | ) | const [inline] |
Referenced by DomainTraits< SliceInterval< TotalDim, SliceDim > >::getDomain(), DomainTraits< SliceRange< TotalDim, SliceDim > >::getDomain(), LayoutBaseViewData< Dim, Dim2, GridLayout< Dim2 > >::LayoutBaseViewData(), SparseTileLayoutViewData< Dim, Dim2 >::SparseTileLayoutViewData(), SubDomainTraits< D1, D2 >::totalDomain(), and ViewIndexer< Dim, OriginalDim >::ViewIndexer().
TotalDomain_t& SliceDomain< DT >::totalDomain | ( | ) | [inline] |
void SliceDomain< DT >::cantIgnoreDomain | ( | int | d | ) | [inline] |
bool& SliceDomain< DT >::ignorable | ( | int | d | ) | [inline] |
Referenced by DomainTraits< SliceInterval< TotalDim, SliceDim > >::getIgnorable(), DomainTraits< SliceRange< TotalDim, SliceDim > >::getIgnorable(), LayoutBaseViewData< Dim, Dim2, GridLayout< Dim2 > >::LayoutBaseViewData(), DomainTraits< SliceRange< TotalDim, SliceDim > >::setIgnorable(), DomainTraits< SliceInterval< TotalDim, SliceDim > >::setIgnorable(), SliceDomain< DomainTraits< SliceInterval< Dim, SliceDim > > >::SliceDomain(), SparseTileLayoutViewData< Dim, Dim2 >::SparseTileLayoutViewData(), and ViewIndexer< Dim, OriginalDim >::ViewIndexer().
bool SliceDomain< DT >::ignorable | ( | int | d | ) | const [inline] |
SliceDomain<DT>& SliceDomain< DT >::operator= | ( | const SliceDomain< DT > & | sd | ) | [inline] |
void SliceDomain< DT >::setSliceFromTotal | ( | ) | [inline] |