From: mdw Date: Wed, 1 Dec 2004 01:29:48 +0000 (+0000) Subject: Fix bogus comparison revealed by mp_cmp fix. X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/commitdiff_plain/0c9d150dcd7482b5deaa0c379aee1a44c51e928d Fix bogus comparison revealed by mp_cmp fix. --- diff --git a/mp-sqrt.c b/mp-sqrt.c index d18d183..2e35158 100644 --- a/mp-sqrt.c +++ b/mp-sqrt.c @@ -59,7 +59,7 @@ mp *mp_sqrt(mp *d, mp *a) /* --- Deal with trivial cases --- */ MP_SHRINK(a); - if (a->v == a->vl) { + if (MP_ZEROP(a)) { mp_drop(d); return (MP_ZERO); } @@ -84,12 +84,12 @@ mp *mp_sqrt(mp *d, mp *a) for (;;) { q = mp_sqr(q, d); q = mp_sub(q, q, a); - if (q->v == q->vl) + if (MP_ZEROP(q)) break; if (MP_NEGP(q)) { r = mp_lsl(r, d, 1); r->f |= MP_NEG; - if (MP_CMP(q, <=, r)) + if (MP_CMP(q, >=, r)) break; } mp_div(&r, &q, q, d);