Example: Point, RectDomain, Array
RectDomainɚ> R = [lb : ub : [2, 2]];
double [2d] A = new double[R]; // (no distributed arrays)
foreach (p in A.domain()) {
Standard optimizations:
- strength reduction
- common subexpression elimination
- invariant code motion
- removing bounds checks from body