X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/578a86d91941a0f722b87973d88e84ec2cf9a608..a69a3efddbe1261f55e90d4ff477053ab80663a5:/f-prime.c diff --git a/f-prime.c b/f-prime.c index f58bf63..1dcfded 100644 --- a/f-prime.c +++ b/f-prime.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: f-prime.c,v 1.12 2004/04/08 01:36:15 mdw Exp $ + * $Id$ * * Prime fields with Montgomery arithmetic * @@ -59,21 +59,21 @@ static mp *fin(field *ff, mp *d, mp *x) { static mp *fout(field *ff, mp *d, mp *x) { fctx *f = (fctx *)ff; return (mpmont_reduce(&f->mm, d, x)); } -static int fzerop(field *ff, mp *x) { return (!MP_LEN(x)); } +static int fzerop(field *ff, mp *x) { return (MP_ZEROP(x)); } static mp *fneg(field *ff, mp *d, mp *x) { fctx *f = (fctx *)ff; return (mp_sub(d, f->mm.m, x)); } static mp *fadd(field *ff, mp *d, mp *x, mp *y) { fctx *f = (fctx *)ff; d = mp_add(d, x, y); - if (d->f & MP_NEG) d = mp_add(d, d, f->mm.m); + if (MP_NEGP(d)) d = mp_add(d, d, f->mm.m); else if (MP_CMP(d, >, f->mm.m)) d = mp_sub(d, d, f->mm.m); return (d); } static mp *fsub(field *ff, mp *d, mp *x, mp *y) { fctx *f = (fctx *)ff; d = mp_sub(d, x, y); - if (d->f & MP_NEG) d = mp_add(d, d, f->mm.m); + if (MP_NEGP(d)) d = mp_add(d, d, f->mm.m); else if (MP_CMP(d, >, f->mm.m)) d = mp_sub(d, d, f->mm.m); return (d); } @@ -121,7 +121,7 @@ static mp *fqdl(field *ff, mp *d, mp *x) { static mp *fhlv(field *ff, mp *d, mp *x) { fctx *f = (fctx *)ff; - if (!MP_LEN(x)) { MP_COPY(x); MP_DROP(d); return (x); } + if (MP_ZEROP(x)) { MP_COPY(x); MP_DROP(d); return (x); } if (x->v[0] & 1) { d = mp_add(d, x, f->mm.m); x = d; } return (mp_lsr(d, x, 1)); } @@ -151,7 +151,7 @@ field *field_prime(mp *p) { fctx *f; - if (!MP_ISPOS(p) || !MP_ISODD(p)) + if (!MP_POSP(p) || !MP_ODDP(p)) return (0); f = CREATE(fctx); f->f.ops = &fops;