separation_class2.c 518 Bytes
{
  for (int c0 = 0; c0 < -(n % 8) + n; c0 += 8) {
    for (int c1 = 0; c1 < -(n % 8) + n; c1 += 8)
      for (int c2 = 0; c2 <= 7; c2 += 1)
        for (int c3 = 0; c3 <= 7; c3 += 1)
          A(c0 + c2, c1 + c3);
    for (int c2 = 0; c2 <= 7; c2 += 1)
      for (int c3 = 0; c3 < n % 8; c3 += 1)
        A(c0 + c2, -(n % 8) + n + c3);
  }
  for (int c1 = 0; c1 < n; c1 += 8)
    for (int c2 = 0; c2 < n % 8; c2 += 1)
      for (int c3 = 0; c3 <= min(7, n - c1 - 1); c3 += 1)
        A(-(n % 8) + n + c2, c1 + c3);
}