EquivSubsetDomain< T1, T2, T3, Dim > Struct Template Reference

EquivSubsetDomain implements a basic template meta-program to find the equiv subset of each dimension separately of the multidimensional domains. More...

#include <EquivSubset.h>

List of all members.

Public Types

enum  { strided = !DomainTraits<T3>::unitStride }

Static Public Member Functions

static void equiv (const T1 &a, const T2 &b, T3 &c)


Detailed Description

template<class T1, class T2, class T3, int Dim>
struct EquivSubsetDomain< T1, T2, T3, Dim >

EquivSubsetDomain implements a basic template meta-program to find the equiv subset of each dimension separately of the multidimensional domains.

It uses EquivSubsetDomainSingle to do the single-domain calculations, telling that struct whether the domains have unit stride or not. A general version of EquivSubsetDomain is defined, to calculate the subset in the 'Dim' dimension, and then a specialization is provided for Dim==1 that stops the metaprogram recursion.

Since this is calculating a new domain d given domains c , b, and a so that c --> d in the same way that a --> b, we can set things here so that we first set d == c, and then modify d accordingly. So, this struct assumes that d == c already, and does not need to have c provided in another var.


Member Enumeration Documentation

template<class T1, class T2, class T3, int Dim>
anonymous enum

Enumerator:
strided 


Member Function Documentation

template<class T1, class T2, class T3, int Dim>
static void EquivSubsetDomain< T1, T2, T3, Dim >::equiv ( const T1 &  a,
const T2 &  b,
T3 &  c 
) [inline, static]


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

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