X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/45c0fd363937c6e9b05da04a9167e9912c05ca0c..7280f7f44cfae62f6d34761ac88aa19da7da5dd8:/mpbarrett.c diff --git a/mpbarrett.c b/mpbarrett.c index 8b0ee88..13210b3 100644 --- a/mpbarrett.c +++ b/mpbarrett.c @@ -119,6 +119,7 @@ mp *mpbarrett_reduce(mpbarrett *mb, mp *d, mp *m) m = MP_COPY(m); if (d) MP_DROP(d); + MP_DROP(q); return (m); } } @@ -136,7 +137,7 @@ mp *mpbarrett_reduce(mpbarrett *mb, mp *d, mp *m) mvl = m->v + k + 1; r = mp_new(k + 1, (q->f | mb->m->f) & MP_BURN); mpx_umul(r->v, r->vl, q->v + k + 1, q->vl, mb->m->v, mb->m->vl); - MP_DEST(d, k + 1, r->f); + MP_DEST(d, k + 1, r->f | MP_UNDEF); mpx_usub(d->v, d->vl, m->v, mvl, r->v, r->vl); d->f = (m->f | r->f) & (MP_BURN | MP_NEG); MP_DROP(r);