// Hoisted variables
Block __$t35 = x.localBlock (1, N - 2) ; int __$t36 = x.str () ;
int __$t40 = __$t35.glb_bas, __$t41 = __$t35.sub_bas ;
int __$t43 = y.str () ;
int glb_iter = __$t35.glb_bas + iter ;
Block __$t42_1 = y.localBlock (1 + (glb_iter), N - 2, 2) ;
Block __$t42_2 = y.localBlock (1 + (glb_iter + __$t35.glb_stp), N - 2, 2) ;
int a3 = a__$bas.base, a4 = a__$0.stride, a5 = a__$1.stride ;
int a6 = a3 + a4 * __$t41, a7 = a4 * __$t36, a9 = a5 * __$t43 ;
// Main body of Laplace equation using red-black relaxation
int __$t39 = 0 ;
if (__$t39 < __$t35.count) {
int b1 = __$t35.glb_stp, b2 = __$t35.sub_stp ;
do {
int __$t48 = __$t42.sub_bas ;
int __$t46 = 0 ;
if (__$t46 < __$t42.count) {
int a1 = __$t42.glb_stp, a2 = __$t42.sub_stp, ;
int a8 = a5 * __$t48, a10 = a6 + a8 ;
do {
a__$DD [a10] =
(double) 0.25 * (a__$DD [a10 - a7] + a__$DD [a10 + a7] +
a__$DD [a10 - a9] + a__$DD [a10 + a9]) ;
__$t48 += a2 ; __$t46 ++ ;
} while (__$t46 < __$t42.count) ;
}
__$t48 += a2 ; __$t46 = 0 ;
if (__$t46 < __$t42.count) {
int a1 = __$t42.glb_stp, a2 = __$t42.sub_stp, ;
int a8 = a5 * __$t48, a10 = a6 + a8 ;
do {
a__$DD [a10] =
(double) 0.25 * (a__$DD [a10 - a7] + a__$DD [a10 + a7] +
a__$DD [a10 - a9] + a__$DD [a10 + a9]) ;
__$t48 += a2 ; __$t46 ++ ;
} while (__$t46 < __$t42.count) ;
}
__$t40 += 2 * b1 ; __$t41 += 2 * b2 ; __$t39 += 2 ;
} while (__$t39 < __$t35.count) ;
}
|