#include "Domain/DomainTraits.h"
#include "Utilities/PAssert.h"
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. |
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.
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().
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().
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().