progs/perftest.c: Use from Glibc syscall numbers.
[catacomb] / math / mpreduce.h
index 80fb113..b6eb2d7 100644 (file)
@@ -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 -------------------------------------------------*/