X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/3e248c3b5b309bc03eb5f70762d3f5671d51f996..HEAD:/math/mpreduce.h diff --git a/math/mpreduce.h b/math/mpreduce.h index 80fb113a..b6eb2d7c 100644 --- a/math/mpreduce.h +++ b/math/mpreduce.h @@ -70,7 +70,10 @@ typedef struct mpreduce { * Arguments: @gfreduce *r@ = structure to fill in * @mp *x@ = an integer * - * Returns: Zero for success, nonzero on error. + * Returns: Zero if successful; nonzero on failure. The current + * algorithm always succeeds when given positive @x@. Earlier + * versions used to fail on particular kinds of integers, but + * this is guaranteed not to happen any more. * * Use: Initializes a context structure for reduction. */ @@ -90,7 +93,7 @@ extern void mpreduce_destroy(mpreduce */*r*/); /* --- @mpreduce_dump@ --- * * - * Arguments: @mpreduce *r@ = structure to dump + * Arguments: @const mpreduce *r@ = structure to dump * @FILE *fp@ = file to dump on * * Returns: --- @@ -98,7 +101,7 @@ extern void mpreduce_destroy(mpreduce */*r*/); * Use: Dumps a reduction context. */ -extern void mpreduce_dump(mpreduce */*r*/, FILE */*fp*/); +extern void mpreduce_dump(const mpreduce */*r*/, FILE */*fp*/); /* --- @mpreduce_do@ --- * * @@ -109,11 +112,11 @@ extern void mpreduce_dump(mpreduce */*r*/, FILE */*fp*/); * Returns: Destination, @x@ reduced modulo the reduction poly. */ -extern mp *mpreduce_do(mpreduce */*r*/, mp */*d*/, mp */*x*/); +extern mp *mpreduce_do(const mpreduce */*r*/, mp */*d*/, mp */*x*/); /* --- @mpreduce_exp@ --- * * - * Arguments: @mpreduce *mr@ = pointer to reduction context + * Arguments: @const mpreduce *mr@ = pointer to reduction context * @mp *d@ = fake destination * @mp *a@ = base * @mp *e@ = exponent @@ -121,7 +124,8 @@ extern mp *mpreduce_do(mpreduce */*r*/, mp */*d*/, mp */*x*/); * Returns: Result, %$a^e \bmod m$%. */ -extern mp *mpreduce_exp(mpreduce */*mr*/, mp */*d*/, mp */*a*/, mp */*e*/); +extern mp *mpreduce_exp(const mpreduce */*mr*/, mp */*d*/, + mp */*a*/, mp */*e*/); /*----- That's all, folks -------------------------------------------------*/