#include <EquivSubset.h>
Public Types | |
enum | { strided = !DomainTraits<T3>::unitStride } |
Static Public Member Functions | |
static void | equiv (const T1 &a, const T2 &b, T3 &c) |
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.
static void EquivSubsetDomain< T1, T2, T3, Dim >::equiv | ( | const T1 & | a, | |
const T2 & | b, | |||
T3 & | c | |||
) | [inline, static] |
Referenced by EquivSubsetDomain< T1, T2, T3, 1 >::equiv().