Provide macros for array looping and indexing for GridData. More...
#include "generic.h"
Go to the source code of this file.
Defines | |
#define | for_2(i, j, r, s) |
#define | BeginFastIndex2(a, b, d, type) |
#define | FastIndex2(a, i, j) name2(a,_D)[name2(a,_B)+((i)/name2(a,_s0))+name2(a,_e0)*((j)/name2(a,_s1))] |
#define | EndFastIndex2(a) } |
Provide macros for array looping and indexing for GridData.
Adaptation from LPARX developed by Scott Kohn (skohn-at-cs.ucsd.edu)
#define BeginFastIndex2 | ( | a, | |||
b, | |||||
d, | |||||
type | ) |
{ \ const int name2(a,_B) = b.bottom(); \ type *const name2(a,_D) = d; \ const int name2(a,_e0) = b.extents(0); \ const int name2(a,_s0) = b.stepsize(0); \ const int name2(a,_s1) = b.stepsize(1)
Referenced by GridData< Type, 2 >::lin_interp(), GridData< Type, 2 >::maxabs(), GridData< Type, 2 >::maxval(), GridData< Type, 2 >::minval(), GridData< Type, 2 >::moment1(), GridData< Type, 2 >::PackRegion(), GridData< Type, 2 >::product(), GridData< Type, 2 >::sum(), GridData< Type, 2 >::sumabs(), GridData< Type, 2 >::sumsqrd(), and GridData< Type, 2 >::UnPackRegion().
#define EndFastIndex2 | ( | a | ) | } |
Referenced by GridData< Type, 2 >::lin_interp(), GridData< Type, 2 >::maxabs(), GridData< Type, 2 >::maxval(), GridData< Type, 2 >::minval(), GridData< Type, 2 >::moment1(), GridData< Type, 2 >::PackRegion(), GridData< Type, 2 >::product(), GridData< Type, 2 >::sum(), GridData< Type, 2 >::sumabs(), GridData< Type, 2 >::sumsqrd(), and GridData< Type, 2 >::UnPackRegion().
#define FastIndex2 | ( | a, | |||
i, | |||||
j | ) | name2(a,_D)[name2(a,_B)+((i)/name2(a,_s0))+name2(a,_e0)*((j)/name2(a,_s1))] |
Referenced by GridData< Type, 2 >::lin_interp(), GridData< Type, 2 >::maxabs(), GridData< Type, 2 >::maxval(), GridData< Type, 2 >::minval(), GridData< Type, 2 >::moment1(), GridData< Type, 2 >::PackRegion(), GridData< Type, 2 >::product(), GridData< Type, 2 >::sum(), GridData< Type, 2 >::sumabs(), GridData< Type, 2 >::sumsqrd(), and GridData< Type, 2 >::UnPackRegion().
#define for_2 | ( | i, | |||
j, | |||||
r, | |||||
s | ) |
{ \ const int name2(j,_L) = (((r).lower(1)+((r).lower(1)<0?-s(1)+1:s(1)-1))/s(1))*s(1); \ const int name2(j,_U) = (r).upper(1); \ const int name2(i,_L) = (((r).lower(0)+((r).lower(0)<0?-s(0)+1:s(0)-1))/s(0))*s(0); \ const int name2(i,_U) = (r).upper(0); \ const int name2(sj,_S) = (s(1)); \ const int name2(si,_S) = (s(0)); \ for (register int j = name2(j,_L); j <= name2(j,_U); j+=name2(sj,_S)) \ for (register int i = name2(i,_L); i <= name2(i,_U); i+=name2(si,_S)) {
Referenced by GridHierarchy::DAGH_CreateGridUnitList(), DAGHCluster(), GridData< Type, 2 >::lin_interp(), GridData< Type, 2 >::maxabs(), GridData< Type, 2 >::maxval(), GridData< Type, 2 >::minval(), GridData< Type, 2 >::moment1(), GridData< Type, 2 >::PackRegion(), GridData< Type, 2 >::product(), GridData< Type, 2 >::sum(), GridData< Type, 2 >::sumabs(), GridData< Type, 2 >::sumsqrd(), and GridData< Type, 2 >::UnPackRegion().