FreePOOMA  2.4.1
Classes | Functions
Split.h File Reference

void split(domain,domain,domain) is a global function which splits the first argument into two separate domains, roughly in the moddle. More...

#include "Domain/DomainTraits.h"
#include "Utilities/PAssert.h"
Include dependency graph for Split.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  SplitDomainSingle< T, Dim, strided >
 SplitDomainSingle<T,Dim,bool strided>::split(a,b,c) splits just the Dim dimension of the first argument into the second and third argument. More...
struct  SplitDomainSingle< T, Dim, true >
 The non-unit-stride version of SplitDomainSingle. More...
struct  SplitDomainSingle< int, Dim, strided >
 Special version of SplitDomainSingle for int's, which must be handled uniquely. More...
struct  SplitDomain< T, Dim >
 SplitDomain implements a basic template meta-program to split each dimension separately of the multidimensional domain. More...
struct  SplitDomain< T, 1 >

Functions

template<class T >
void split (const T &a, T &b, T &c)
 void split(domain,domain,domain) is a global function which splits the first argument into two separate domains, roughly in the middle.
template<class T >
void split (const T &a, int axis, T &b, T &c)
 void split(domain,axis,domain,domain) is a global function which splits the first argument into two separate domains just along the Nth axis instead of along all axes.
template<class T >
void split (const T &a, int axis, int leftLength, T &b, T &c)
 void split(domain,axis,leftLength,domain,domain) is a global function which splits the first argument into two separate domains just along the Nth axis with specified size of the left part of the domain.

Detailed Description

void split(domain,domain,domain) is a global function which splits the first argument into two separate domains, roughly in the moddle.

If the first argument has zero length, this does nothing. If the first argument has a length of one, the second argument is a copy of the first, and the second is set to be empty.


Function Documentation

template<class T >
void split ( const T &  a,
T &  b,
T &  c 
) [inline]

void split(domain,domain,domain) is a global function which splits the first argument into two separate domains, roughly in the middle.

If the first argument has zero length, this does nothing. If the first argument has a length of one, the second argument is a copy of the first, and the second is set to be empty.

The implementation of split is deferred to the SplitDomain struct, which performs the split for each dimension.

Referenced by DomainMapNode< Dom, T >::insert(), and split().

template<class T >
void split ( const T &  a,
int  axis,
T &  b,
T &  c 
) [inline]

void split(domain,axis,domain,domain) is a global function which splits the first argument into two separate domains just along the Nth axis instead of along all axes.

Otherwise it is the same as the other global split.

References split().

template<class T >
void split ( const T &  a,
int  axis,
int  leftLength,
T &  b,
T &  c 
) [inline]

void split(domain,axis,leftLength,domain,domain) is a global function which splits the first argument into two separate domains just along the Nth axis with specified size of the left part of the domain.

Otherwise it is the same as the other global split.

References split().