Go to the documentation of this file.
24 #define GENFORALL(iter,src,dest,numelem) memcpy(dest, src, numelem*sizeof(src[0]))
25 #define GENFORALLOVERLAP(iter,src,dest,numelem) memmove(dest, src, numelem*sizeof(src[0]))
28 #define GENFORALL(iter,src,dest,numelem) \
29 for (iter = 0; iter < numelem; iter++) \
31 dest[iter] = src[iter]; \
33 #define GENFORALLOVERLAP(iter,src,dest,numelem) GENFORALL(iter,src,dest,numelem)
55 #define LOOPF3 for(k=INFULL3;k<=OUTFULL3;k++)
56 #define LOOPF2 for(j=INFULL2;j<=OUTFULL2;j++)
57 #define LOOPF1 for(i=INFULL1;i<=OUTFULL1;i++)
60 #define LOOPFPM3 for(k=INFULL3-SHIFT3;k<=OUTFULL3+SHIFT3;k++)
61 #define LOOPFPM2 for(j=INFULL2-SHIFT2;j<=OUTFULL2+SHIFT2;j++)
62 #define LOOPFPM1 for(i=INFULL1-SHIFT1;i<=OUTFULL1+SHIFT1;i++)
66 #define LOOPFP13 for(k=INFULL3;k<=OUTFULLP13;k++)
67 #define LOOPFP12 for(j=INFULL2;j<=OUTFULLP12;j++)
68 #define LOOPFP11 for(i=INFULL1;i<=OUTFULLP11;i++)
81 #define LOOPH3 for(k=INHALF3;k<=OUTHALF3;k++)
82 #define LOOPH2 for(j=INHALF2;j<=OUTHALF2;j++)
83 #define LOOPH1 for(i=INHALF1;i<=OUTHALF1;i++)
85 #define LOOPP13 for(k=INP13;k<=OUTP13;k++)
86 #define LOOPP12 for(j=INP12;j<=OUTP12;j++)
87 #define LOOPP11 for(i=INP11;i<=OUTP11;i++)
89 #define LOOPN3 for(k=0;k<=N3-1;k++)
90 #define LOOPN2 for(j=0;j<=N2-1;j++)
91 #define LOOPN1 for(i=0;i<=N1-1;i++)
93 #define LOOPFMHP3 for(k=INFULL3;k<=OUTHALF3;k++)
94 #define LOOPFMHP2 for(j=INFULL2;j<=OUTHALF2;j++)
95 #define LOOPFMHP1 for(i=INFULL1;i<=OUTHALF1;i++)
97 #define LOOPHMFP3 for(k=INHALF3;k<=OUTFULL3;k++)
98 #define LOOPHMFP2 for(j=INHALF2;j<=OUTFULL2;j++)
99 #define LOOPHMFP1 for(i=INHALF1;i<=OUTFULL1;i++)
101 #define LOOPHP3 for(k=0;k<=OUTHALF3;k++)
102 #define LOOPHP2 for(j=0;j<=OUTHALF2;j++)
103 #define LOOPHP1 for(i=0;i<=OUTHALF1;i++)
105 #define LOOPINT3 for(k=intix3;k<intox3;k++)
106 #define LOOPINT2 for(j=intix2;j<intox2;j++)
107 #define LOOPINT1 for(i=intix1;i<intox1;i++)
113 #define SUPERGENLOOP1(i,istart,istop,di) for((i)=(istart);(di>0 ? (i)<=(istop) : (i)>=(istop)); (i)+=(di))
114 #define SUPERGENLOOP2(j,jstart,jstop,dj) for((j)=(jstart);(dj>0 ? (j)<=(jstop) : (j)>=(jstop)); (j)+=(dj))
115 #define SUPERGENLOOP3(k,kstart,kstop,dk) for((k)=(kstart);(dk>0 ? (k)<=(kstop) : (k)>=(kstop)); (k)+=(dk))
117 #define GENLOOP1(i,istart,istop) SUPERGENLOOP1(i,istart,istop,1)
118 #define GENLOOP2(j,jstart,jstop) SUPERGENLOOP2(j,jstart,jstop,1)
119 #define GENLOOP3(k,kstart,kstop) SUPERGENLOOP3(k,kstart,kstop,1)
121 #define ZSLOOP1(istart,istop) SUPERGENLOOP1(i,istart,istop,1)
122 #define ZSLOOP2(jstart,jstop) SUPERGENLOOP2(j,jstart,jstop,1)
123 #define ZSLOOP3(kstart,kstop) SUPERGENLOOP3(k,kstart,kstop,1)
125 #define LOOPC3 LOOPN3
126 #define LOOPC2 LOOPN2
127 #define LOOPC1 LOOPN1
143 #define SUPERGENLOOP(i,j,k,istart,istop,jstart,jstop,kstart,kstop,di,dj,dk) LOOPORDER1(SUPERGENLOOP1(i,istart,istop,di),SUPERGENLOOP2(j,jstart,jstop,dj),SUPERGENLOOP3(k,kstart,kstop,dk)) LOOPORDER2(SUPERGENLOOP1(i,istart,istop,di),SUPERGENLOOP2(j,jstart,jstop,dj),SUPERGENLOOP3(k,kstart,kstop,dk)) LOOPORDER3(SUPERGENLOOP1(i,istart,istop,di),SUPERGENLOOP2(j,jstart,jstop,dj),SUPERGENLOOP3(k,kstart,kstop,dk))
145 #define GENLOOP(i,j,k,istart,istop,jstart,jstop,kstart,kstop) LOOPORDER1(GENLOOP1(i,istart,istop),GENLOOP2(j,jstart,jstop),GENLOOP3(k,kstart,kstop)) LOOPORDER2(GENLOOP1(i,istart,istop),GENLOOP2(j,jstart,jstop),GENLOOP3(k,kstart,kstop)) LOOPORDER3(GENLOOP1(i,istart,istop),GENLOOP2(j,jstart,jstop),GENLOOP3(k,kstart,kstop))
147 #define ZSLOOP(istart,istop,jstart,jstop,kstart,kstop) LOOPORDER1(ZSLOOP1(istart,istop),ZSLOOP2(jstart,jstop),ZSLOOP3(kstart,kstop)) LOOPORDER2(ZSLOOP1(istart,istop),ZSLOOP2(jstart,jstop),ZSLOOP3(kstart,kstop)) LOOPORDER3(ZSLOOP1(istart,istop),ZSLOOP2(jstart,jstop),ZSLOOP3(kstart,kstop))
149 #define LOOPF LOOPORDER1(LOOPF1,LOOPF2,LOOPF3) LOOPORDER2(LOOPF1,LOOPF2,LOOPF3) LOOPORDER3(LOOPF1,LOOPF2,LOOPF3)
151 #define LOOPFPM LOOPORDER1(LOOPF1,LOOPFPM2,LOOPFPM3) LOOPORDER2(LOOPFPM1,LOOPFPM2,LOOPFPM3) LOOPORDER3(LOOPFPM1,LOOPFPM2,LOOPFPM3)
153 #define FULLLOOPPM LOOPFPM
155 #define LOOPF_12 LOOPORDER1(LOOPF1,LOOPF2,) LOOPORDER2(LOOPF1,LOOPF2,) LOOPORDER3(LOOPF1,LOOPF2,)
156 #define LOOPF_13 LOOPORDER1(LOOPF1,,LOOPF3) LOOPORDER2(LOOPF1,,LOOPF3) LOOPORDER3(LOOPF1,,LOOPF3)
157 #define LOOPF_23 LOOPORDER1(,LOOPF2,LOOPF3) LOOPORDER2(,LOOPF2,LOOPF3) LOOPORDER3(,LOOPF2,LOOPF3)
158 #define LOOPH LOOPORDER1(LOOPH1,LOOPH2,LOOPH3) LOOPORDER2(LOOPH1,LOOPH2,LOOPH3) LOOPORDER3(LOOPH1,LOOPH2,LOOPH3)
159 #define LOOPP1 LOOPORDER1(LOOPP11,LOOPP12,LOOPP13) LOOPORDER2(LOOPP11,LOOPP12,LOOPP13) LOOPORDER3(LOOPP11,LOOPP12,LOOPP13)
160 #define LOOP LOOPORDER1(LOOPN1,LOOPN2,LOOPN3) LOOPORDER2(LOOPN1,LOOPN2,LOOPN3) LOOPORDER3(LOOPN1,LOOPN2,LOOPN3)
161 #define LOOPFMHP LOOPORDER1(LOOPFMHP1,LOOPFMHP2,LOOPFMHP3) LOOPORDER2(LOOPFMHP1,LOOPFMHP2,LOOPFMHP3) LOOPORDER3(LOOPFMHP1,LOOPFMHP2,LOOPFMHP3)
162 #define LOOPHMFP LOOPORDER1(LOOPHMFP1,LOOPHMFP2,LOOPHMFP3) LOOPORDER2(LOOPHMFP1,LOOPHMFP2,LOOPHMFP3) LOOPORDER3(LOOPHMFP1,LOOPHMFP2,LOOPHMFP3)
163 #define LOOPHP LOOPORDER1(LOOPHP1,LOOPHP2,LOOPHP3) LOOPORDER2(LOOPHP1,LOOPHP2,LOOPHP3) LOOPORDER3(LOOPHP1,LOOPHP2,LOOPHP3)
164 #define LOOPC LOOPORDER1(LOOPC1,LOOPC2,LOOPC3) LOOPORDER2(LOOPC1,LOOPC2,LOOPC3) LOOPORDER3(LOOPC1,LOOPC2,LOOPC3)
165 #define FULLLOOP LOOPF
167 #define FULLLOOPP1 LOOPORDER1(LOOPFP11,LOOPFP12,LOOPFP13) LOOPORDER2(LOOPFP11,LOOPFP12,LOOPFP13) LOOPORDER3(LOOPFP11,LOOPFP12,LOOPFP13)
171 #define LOOPDIVB LOOPORDER1(LOOPC1,LOOPC2,LOOPC3) LOOPORDER2(LOOPC1,LOOPC2,LOOPC3) LOOPORDER3(LOOPC1,LOOPC2,LOOPC3)
188 #define LOOPFMHPC LOOPFMHP
189 #define LOOPHMFPC LOOPHMFP
190 #define LOOPHPC LOOPHP
191 #define ZLOOP ZSLOOP(0,N1-1,0,N2-1,0,N3-1)