mpmod.c 247 B

123456789101112131415
  1. #include "os.h"
  2. #include <mp.h>
  3. #include "dat.h"
  4. // remainder = b mod m
  5. //
  6. // knuth, vol 2, pp 398-400
  7. void
  8. mpmod(mpint *b, mpint *m, mpint *remainder)
  9. {
  10. mpdiv(b, m, nil, remainder);
  11. if(remainder->sign < 0)
  12. mpadd(m, remainder, remainder);
  13. }