Blame


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