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