Missed off <ctype.h>\!
[u/mdw/catacomb] / f-niceprime.c
index c34e24e..4ffc028 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: f-niceprime.c,v 1.1 2004/03/27 00:04:46 mdw Exp $
+ * $Id: f-niceprime.c,v 1.3 2004/04/01 12:50:09 mdw Exp $
  *
  * Prime fields with efficient reduction for special-form primes
  *
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: f-niceprime.c,v $
+ * Revision 1.3  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.2  2004/03/27 17:54:11  mdw
+ * Standard curves and curve checking.
+ *
  * Revision 1.1  2004/03/27 00:04:46  mdw
  * Implement efficient reduction for pleasant-looking primes.
  *
@@ -180,7 +190,7 @@ static mp *fhlv(field *ff, mp *d, mp *x)
 
 static field_ops fops = {
   FTY_PRIME, "niceprime",
-  fdestroy, frand,
+  fdestroy, frand, field_stdsamep,
   freduce, field_id,
   fzerop, fneg, fadd, fsub, fmul, fsqr, finv, freduce, fsqrt,
   0,
@@ -203,7 +213,10 @@ field *field_niceprime(mp *p)
   f->f.ops = &fops;
   f->f.zero = MP_ZERO;
   f->f.one = MP_ONE;
+  f->f.nbits = mp_bits(p);
+  f->f.noctets = (f->f.nbits + 7) >> 3;
   mpreduce_create(&f->r, p);
+  f->f.m = f->r.p;
   return (&f->f);
 }