FreePOOMA  2.4.1
Public Types | Static Public Member Functions
DomainTraits< SliceInterval< TotalDim, SliceDim > > Struct Template Reference

DomainTraits<SliceInterval<Dim,SliceDim>> stores the characteristics and much of the implementation details for SliceInterval domain objects. More...

#include <DomainTraits.SliceInterval.h>

List of all members.

Public Types

enum  { domain = true }
enum  { dimensions = TotalDim, sliceDimensions = SliceDim }
enum  { unitStride = true }
enum  { singleValued = false }
enum  { wildcard = false }
typedef SliceInterval
< TotalDim, SliceDim > 
Domain_t
typedef SliceInterval
< TotalDim, SliceDim > 
NewDomain1_t
typedef Interval< SliceDim > SliceDomain_t
typedef Interval< TotalDim > TotalDomain_t
typedef Interval< 1 > OneDomain_t
typedef Interval< 1 > PointDomain_t

Static Public Member Functions

static OneDomain_tgetDomain (Domain_t &d, int n)
static const OneDomain_tgetDomain (const Domain_t &d, int n)
static OneDomain_tgetSliceDomain (Domain_t &d, int n)
static const OneDomain_tgetSliceDomain (const Domain_t &d, int n)
static PointDomain_tgetPointDomain (Domain_t &d, int n)
static const PointDomain_tgetPointDomain (const Domain_t &d, int n)
static void cantIgnoreDomain (Domain_t &d, int n)
static bool getIgnorable (const Domain_t &d, int n)
static void setIgnorable (Domain_t &d, int n, bool i)

Detailed Description

template<int TotalDim, int SliceDim>
struct DomainTraits< SliceInterval< TotalDim, SliceDim > >

DomainTraits<SliceInterval<Dim,SliceDim>> stores the characteristics and much of the implementation details for SliceInterval domain objects.

A SliceInterval represents a set of two domain objects, one a "total" domain, and the other a "slice" domain which is a subset of the total. SliceInterval stores these two domains as Interval<> objects.

The DomainTraits for slice domains is quite a bit simpler than the DomainTraits for regular domains. This is because SliceDomains have a much simpler interface than regular domains, and are not intended for direct user manipulation. The DomainTraits for SliceDomain subclasses like SliceInterval includes the following interface:

static const int dimensions = # of total dimensions static const int sliceDimensions = # of slice dimensions

typedef SliceInterval<TotalDim,SliceDim> Domain_t; typedef Interval<SliceDim> SliceDomain_t; typedef Interval<TotalDim> TotalDomain_t; typedef Interval<1> OneDomain_t;

static OneDomain_t &getDomain(Domain_t &d, int n); static OneDomain_t &getSliceDomain(Domain_t &d, int n);


Member Typedef Documentation

template<int TotalDim, int SliceDim>
typedef SliceInterval<TotalDim,SliceDim> DomainTraits< SliceInterval< TotalDim, SliceDim > >::Domain_t
template<int TotalDim, int SliceDim>
typedef SliceInterval<TotalDim,SliceDim> DomainTraits< SliceInterval< TotalDim, SliceDim > >::NewDomain1_t
template<int TotalDim, int SliceDim>
typedef Interval<SliceDim> DomainTraits< SliceInterval< TotalDim, SliceDim > >::SliceDomain_t
template<int TotalDim, int SliceDim>
typedef Interval<TotalDim> DomainTraits< SliceInterval< TotalDim, SliceDim > >::TotalDomain_t
template<int TotalDim, int SliceDim>
typedef Interval<1> DomainTraits< SliceInterval< TotalDim, SliceDim > >::OneDomain_t
template<int TotalDim, int SliceDim>
typedef Interval<1> DomainTraits< SliceInterval< TotalDim, SliceDim > >::PointDomain_t

Member Enumeration Documentation

template<int TotalDim, int SliceDim>
anonymous enum
Enumerator:
domain 
template<int TotalDim, int SliceDim>
anonymous enum
Enumerator:
dimensions 
sliceDimensions 
template<int TotalDim, int SliceDim>
anonymous enum
Enumerator:
unitStride 
template<int TotalDim, int SliceDim>
anonymous enum
Enumerator:
singleValued 
template<int TotalDim, int SliceDim>
anonymous enum
Enumerator:
wildcard 

Member Function Documentation

template<int TotalDim, int SliceDim>
static OneDomain_t& DomainTraits< SliceInterval< TotalDim, SliceDim > >::getDomain ( Domain_t d,
int  n 
) [inline, static]
template<int TotalDim, int SliceDim>
static const OneDomain_t& DomainTraits< SliceInterval< TotalDim, SliceDim > >::getDomain ( const Domain_t d,
int  n 
) [inline, static]
template<int TotalDim, int SliceDim>
static OneDomain_t& DomainTraits< SliceInterval< TotalDim, SliceDim > >::getSliceDomain ( Domain_t d,
int  n 
) [inline, static]
template<int TotalDim, int SliceDim>
static const OneDomain_t& DomainTraits< SliceInterval< TotalDim, SliceDim > >::getSliceDomain ( const Domain_t d,
int  n 
) [inline, static]
template<int TotalDim, int SliceDim>
static PointDomain_t& DomainTraits< SliceInterval< TotalDim, SliceDim > >::getPointDomain ( Domain_t d,
int  n 
) [inline, static]
template<int TotalDim, int SliceDim>
static const PointDomain_t& DomainTraits< SliceInterval< TotalDim, SliceDim > >::getPointDomain ( const Domain_t d,
int  n 
) [inline, static]
template<int TotalDim, int SliceDim>
static void DomainTraits< SliceInterval< TotalDim, SliceDim > >::cantIgnoreDomain ( Domain_t d,
int  n 
) [inline, static]
template<int TotalDim, int SliceDim>
static bool DomainTraits< SliceInterval< TotalDim, SliceDim > >::getIgnorable ( const Domain_t d,
int  n 
) [inline, static]
template<int TotalDim, int SliceDim>
static void DomainTraits< SliceInterval< TotalDim, SliceDim > >::setIgnorable ( Domain_t d,
int  n,
bool  i 
) [inline, static]

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