> perl -e 'print join q( ), map 1000003*(1<<$_) % 1001 % 4, (0..7)' 0 0 0 0 0 0 0 0 #### // C D M values are all 0 (modulo 4). int step_cdm[1001] = { 0,0,0,0, 0,1,1,1, 0,2,2,2, 0,3, ... , 0,2,2,2, 0,1,1,1, 0,0,0,0, 0 }; int step_cdm2[2002] = {...}; // (above)x2 #define step_ok(v) (2U* ((v) & ~127)*hp < -2U* 127*hp) // *2 to discard sign ... step = step_cdm2[d9 % 1001 + 1001]; if (step && step_ok(d7)) { q8 += step - 1; continue; } // loop q8 if (d != 500) continue; ...