2004-03-21 14:06:38 +00:00
|
|
|
#include "os.h"
|
|
|
|
|
#include <mp.h>
|
|
|
|
|
#include "dat.h"
|
|
|
|
|
|
2006-04-01 19:24:03 +00:00
|
|
|
/* remainder = b mod m */
|
|
|
|
|
/* */
|
|
|
|
|
/* knuth, vol 2, pp 398-400 */
|
2004-03-21 14:06:38 +00:00
|
|
|
|
|
|
|
|
void
|
|
|
|
|
mpmod(mpint *b, mpint *m, mpint *remainder)
|
|
|
|
|
{
|
|
|
|
|
mpdiv(b, m, nil, remainder);
|
|
|
|
|
if(remainder->sign < 0)
|
|
|
|
|
mpadd(m, remainder, remainder);
|
|
|
|
|
}
|