How to replace "iter" keyword of Brook language with that in Brook+ language
Here is a code in Brook programming language, which needs a replacement of "iter" keyword with respect to Brook+ programming language.
kernel void process(float Hx[][], float Chxh[][], float Chxe[][], float Ez[][], iter float2 it<>, out float o_img<>
{
float2 t0 = float2(0.0f,1.0f);
o_img = (Chxh[it] * Hx [it]) + (Chxe[it] * (Ez[it] - Ez[it + t0]));
}
int main(int argc, char* argv[])
{
----------
----------
for(i = 0; i < 100; i++)
{
aHx = 0.0f;
aEz = 0.0f;
aChxh = 1.0f;
aChxe = 1.0f;
}
streamRead(Hx, aHx);
streamRead(Ez, aEz);
streamRead(Chxhx, aChxh);
streamRead(Chxe, aChxe);
iter float2 it<110,110> = iter(float2(1.0f, 1.0f), float2 (499.0f, 499.0f));
float Hx<100,100>, Ez<100,100>
float Chxh<100,100>, Chxe<100,100>;
float o_Hx<100,100>;
process(Hx, Chxh, Chxe, Ez, it, o_Hx);
streamWrite(Hx, outputHx); //outputHx is an array
streamWrite(Ez, outputEz); //outputEz is an array
-----------
-----------
}