+#ifdef PARANOID_CHECKING /* Turn this on to check the shortcut */
+ {
+ unsigned long cc;
+ size_t ii, jj;
+ if (cycle) { jj = 0; ii = nn - 1; }
+ else { jj = nn - 1; ii = jj - 1; }
+ cc = 0;
+ t = r[i]; r[i] = r[j]; r[j] = t;
+ for (;;) {
+ cc += a[r[ii] * n + r[jj]];
+ if (!ii)
+ break;
+ jj = ii;
+ ii--;
+ }
+ t = r[i]; r[i] = r[j]; r[j] = t;
+ if (c != cc) {
+ printf("i = %u; j = %u; c = %lu; cc = %lu\n", i, j, c, cc);
+ abort();
+ }
+ }
+#endif
+