kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

i128_13_signed_div_mod.c (756B)


      1 typedef __int128 i128;
      2 
      3 int test_main(void) {
      4   i128 a = -(((i128)1 << 90) + 123456789);
      5   i128 b = ((i128)1 << 30) + 7;
      6   i128 q = a / b;
      7   i128 r = a % b;
      8 
      9   if (q != -(((i128)1 << 60) - (((i128)7 << 30) - 49))) return 11;
     10   if (r != -123456446) return 12;
     11   if (q * b + r != a) return 13;
     12   if (r >= 0) return 14;
     13 
     14   b = -(((i128)1 << 33) + 5);
     15   q = a / b;
     16   r = a % b;
     17   if (q != (((i128)1 << 57) - ((i128)80 << 20))) return 15;
     18   if (r != -542887189) return 16;
     19   if (q * b + r != a) return 17;
     20   if (r >= 0) return 18;
     21 
     22   a = ((i128)1 << 90) + 123456789;
     23   q = a / b;
     24   r = a % b;
     25   if (q != -(((i128)1 << 57) - ((i128)80 << 20))) return 19;
     26   if (r != 542887189) return 20;
     27   if (q * b + r != a) return 21;
     28   if (r <= 0) return 22;
     29 
     30   return 61;
     31 }