nushio3 / Paraiso

a Parallel Integration Scheme Organizer for partial differential equations solvers
http://www.paraiso-lang.org/wiki/
BSD 3-Clause "New" or "Revised" License
49 stars 8 forks source link

Eliminate repeated address shift calculations. #7

Open nushio3 opened 13 years ago

nushio3 commented 13 years ago

These kind of repeated terms may be eliminated anyway by common subexpression eliminator, but is ugly, so let us unify them manually.

const int a5_0_0 = a1[((((i) % size0()) + 1 + size0())%size0()) + size0() * (((((i / size0()) % size1()) + 1 + size1())%size1()))];
const int a7_0_0 = a1[((((i) % size0()) + 0 + size0())%size0()) + size0() * (((((i / size0()) % size1()) + 1 + size1())%size1()))];
const int a9_0_0 = a1[((((i) % size0()) + -1 + size0())%size0()) + size0() * (((((i / size0()) % size1()) + 1 + size1())%size1()))];
const int a11_0_0 = a1[((((i) % size0()) + 1 + size0())%size0()) + size0() * (((((i / size0()) % size1()) + 0 + size1())%size1()))];
const int a13_0_0 = a1[((((i) % size0()) + -1 + size0())%size0()) + size0() * (((((i / size0()) % size1()) + 0 + size1())%size1()))];
const int a15_0_0 = a1[((((i) % size0()) + 1 + size0())%size0()) + size0() * (((((i / size0()) % size1()) + -1 + size1())%size1()))];
const int a17_0_0 = a1[((((i) % size0()) + 0 + size0())%size0()) + size0() * (((((i / size0()) % size1()) + -1 + size1())%size1()))];
const int a19_0_0 = a1[((((i) % size0()) + -1 + size0())%size0()) + size0() * (((((i / size0()) % size1()) + -1 + size1())%size1()))];