int amax = a[0], bmax = b[0];
int i;
+ /* Annoyingly we have two representations of zero */
+ if (amax == 1 && a[amax] == 0)
+ amax = 0;
+ if (bmax == 1 && b[bmax] == 0)
+ bmax = 0;
+
assert(amax == 0 || a[amax] != 0);
assert(bmax == 0 || b[bmax] != 0);