X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/e40955b56456a6191ebff48b00c667a0674b3bdb..f4535c6454395e6d56ce0091a07b6d4f7d54a47f:/mpbarrett.c diff --git a/mpbarrett.c b/mpbarrett.c index ffd2649..b5e604e 100644 --- a/mpbarrett.c +++ b/mpbarrett.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: mpbarrett.c,v 1.10 2004/04/08 01:36:15 mdw Exp $ + * $Id$ * * Barrett modular reduction * @@ -40,18 +40,19 @@ * @mp *m@ = modulus to work to * * - * Returns: --- + * Returns: Zero on success, nonzero on error. * * Use: Initializes a Barrett reduction context ready for use. */ -void mpbarrett_create(mpbarrett *mb, mp *m) +int mpbarrett_create(mpbarrett *mb, mp *m) { mp *b; /* --- Validate the arguments --- */ - assert(((void)"Barrett modulus must be positive", (m->f & MP_NEG) == 0)); + if (!MP_POSP(m)) + return (-1); /* --- Compute %$\mu$% --- */ @@ -63,6 +64,7 @@ void mpbarrett_create(mpbarrett *mb, mp *m) b->vl[-1] = 1; mp_div(&b, 0, b, m); mb->mu = b; + return (0); } /* --- @mpbarrett_destroy@ --- *