5 // diff = abs(b1) - abs(b2), i.e., subtract the magnitudes
7 mpmagsub(mpint *b1, mpint *b2, mpint *diff)
12 // get the sizes right
13 if(mpmagcmp(b1, b2) < 0){
14 assert(((b1->flags | b2->flags | diff->flags) & MPtimesafe) == 0);
20 diff->flags |= (b1->flags | b2->flags) & MPtimesafe;
30 mpbits(diff, n*Dbits);
32 mpvecsub(b1->p, n, b2->p, m, diff->p);
40 mpsub(mpint *b1, mpint *b2, mpint *diff)
44 if(b1->sign != b2->sign){
45 assert(((b1->flags | b2->flags | diff->flags) & MPtimesafe) == 0);
47 mpmagadd(b1, b2, diff);
53 mpmagsub(b1, b2, diff);