bilinear.st 434 Bytes
# Check that the generated code does not contain a loop upper bound
# that depends on the loop iterator.
domain: "[d, w] -> { A[i0] : i0 >= 0 and ((d < 0 and 2*floor((1 + d)/2) < w - i0) or (d >= 0 and 2*floor((d)/2) < w - i0)); B[i0] : i0 >= 0 and d < 0 and 2*floor((d)/2) > 2d - w + i0 }"
child:
  schedule: "[d, w] -> [{ A[i0] -> [(i0)]; B[i0] -> [(i0)] }]"
  child:
    sequence:
    - filter: "{ A[x] }"
    - filter: "{ B[x] }"