X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/30d09778225eda3093d3ab77921c2e6c4c7f845a..a6d8eb54f8da26e372aa56951e4731ec00903f77:/math/mpreduce.c diff --git a/math/mpreduce.c b/math/mpreduce.c index b148dd5a..871d3a42 100644 --- a/math/mpreduce.c +++ b/math/mpreduce.c @@ -47,7 +47,7 @@ DA_DECL(instr_v, mpreduce_instr); * * Suppose %$x = x' + z 2^k$%, where %$k \ge n$%; then * %$x \equiv x' + d z 2^{k-n} \pmod p$%. We can use this to trim the - * representation of %$x$%; each time, we reduce %$x$% by a mutliple of + * representation of %$x$%; each time, we reduce %$x$% by a multiple of * %$2^{k-n} p$%. We can do this in two passes: firstly by taking whole * words off the top, and then (if necessary) by trimming the top word. * Finally, if %$p \le x < 2^n$% then %$0 \le x - p < p$% and we're done. @@ -210,7 +210,7 @@ int mpreduce_create(mpreduce *r, mp *p) * a perfect power of two, and %$d = 0$%, so again there is nothing to do. * * In the remaining case, we have decomposed @x@ as %$2^{n-1} + d$%, for - * some positive %$d%, which is unfortuante: if we're asked to reduce + * some positive %$d%, which is unfortunate: if we're asked to reduce * %$2^n$%, say, we'll end up with %$-d$% (or would do, if we weren't * sticking to unsigned arithmetic for good performance). So instead, we * rewrite this as %$2^n - 2^{n-1} + d$% and everything will be good. @@ -443,11 +443,8 @@ mp *mpreduce_exp(mpreduce *mr, mp *d, mp *a, mp *e) /*----- Test rig ----------------------------------------------------------*/ - #ifdef TEST_RIG -#define MP(x) mp_readstring(MP_NEW, #x, 0, 0) - static int vreduce(dstr *v) { mp *d = *(mp **)v[0].buf;