00001
00002
00003 #ifndef _included_IndexGridData1_h
00004 #define _included_IndexGridData1_h
00005
00012 #include "generic.h"
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef for_1
00027 #define for_1(i, r, s) { \
00028 const int name2(i,_L) = (((r).lower(0)+((r).lower(0)<0?-s(0)+1:s(0)-1))/s(0))*s(0); \
00029 const int name2(i,_U) = (r).upper(0); \
00030 const int name2(si,_S) = (s(0)); \
00031 for (register int i = name2(i,_L); i <= name2(i,_U); i+=name2(si,_S)) {
00032 #endif
00033 #ifndef end_for
00034 #define end_for } }
00035 #endif
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 #ifndef BeginFastIndex1
00058 #define BeginFastIndex1(a, b, d, type) { \
00059 const int name2(a,_B) = b.bottom(); \
00060 type *const name2(a,_D) = d; \
00061 const int name2(a,_s0) = b.stepsize(0)
00062 #define FastIndex1(a, i) \
00063 name2(a,_D)[name2(a,_B)+((i)/name2(a,_s0))]
00064 #define EndFastIndex1(a) }
00065 #endif
00066
00067 #endif