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 b3f61791 2004-03-21 devnull // remainder = b mod m
6 b3f61791 2004-03-21 devnull //
7 b3f61791 2004-03-21 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 }