X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/932f6ca7358aee875a5f6fc0c6a33ead4100fa30..8404fd750e8d1a635ccb3895e4f0e155e5f5e3cf:/mpmont.h diff --git a/mpmont.h b/mpmont.h index 7544e70..913f6f5 100644 --- a/mpmont.h +++ b/mpmont.h @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: mpmont.h,v 1.5 2001/06/16 13:00:04 mdw Exp $ + * $Id: mpmont.h,v 1.7 2004/04/01 12:50:09 mdw Exp $ * * Montgomery reduction * @@ -30,6 +30,16 @@ /*----- Revision history --------------------------------------------------* * * $Log: mpmont.h,v $ + * Revision 1.7 2004/04/01 12:50:09 mdw + * Add cyclic group abstraction, with test code. Separate off exponentation + * functions for better static linking. Fix a buttload of bugs on the way. + * Generally ensure that negative exponents do inversion correctly. Add + * table of standard prime-field subgroups. (Binary field subgroups are + * currently unimplemented but easy to add if anyone ever finds a good one.) + * + * Revision 1.6 2002/01/13 13:49:25 mdw + * Make @const@-correct. + * * Revision 1.5 2001/06/16 13:00:04 mdw * Moved @mpmont_factor@ to . Documented interface change to * @mpmont_expr@ and @mpmont_mexpr@ -- the arguments are now in Montgomery @@ -186,7 +196,7 @@ extern mp *mpmont_exp(mpmont */*mm*/, mp */*d*/, mp */*a*/, mp */*e*/); * * Arguments: @mpmont *mm@ = pointer to Montgomery reduction context * @mp *d@ = fake destination - * @mp_expfactor *f@ = pointer to array of factors + * @const mp_expfactor *f@ = pointer to array of factors * @size_t n@ = number of factors supplied * * Returns: If the bases are %$g_0, g_1, \ldots, g_{n-1}$% and the @@ -200,13 +210,13 @@ extern mp *mpmont_exp(mpmont */*mm*/, mp */*d*/, mp */*a*/, mp */*e*/); */ extern mp *mpmont_mexpr(mpmont */*mm*/, mp */*d*/, - mp_expfactor */*f*/, size_t /*n*/); + const mp_expfactor */*f*/, size_t /*n*/); /* --- @mpmont_mexp@ --- * * * Arguments: @mpmont *mm@ = pointer to Montgomery reduction context * @mp *d@ = fake destination - * @mp_expfactor *f@ = pointer to array of factors + * @const mp_expfactor *f@ = pointer to array of factors * @size_t n@ = number of factors supplied * * Returns: Product of bases raised to exponents, all mod @m@. @@ -215,7 +225,7 @@ extern mp *mpmont_mexpr(mpmont */*mm*/, mp */*d*/, */ extern mp *mpmont_mexp(mpmont */*mm*/, mp */*d*/, - mp_expfactor */*f*/, size_t /*n*/); + const mp_expfactor */*f*/, size_t /*n*/); /*----- That's all, folks -------------------------------------------------*/