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