X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/6f80d39fee0e2c8756d0e57fee709d9deffd9503..908ebb29ff621f582b34d48fd4278b60b78379b6:/prim.c diff --git a/prim.c b/prim.c index 31ef919..4767912 100644 --- a/prim.c +++ b/prim.c @@ -1,13 +1,13 @@ /* -*-c-*- * - * $Id: prim.c,v 1.2 2000/07/29 09:57:42 mdw Exp $ + * $Id: prim.c,v 1.4 2004/04/08 01:36:15 mdw Exp $ * * Finding primitive elements * * (c) 1999 Straylight/Edgeware */ -/*----- Licensing notice --------------------------------------------------* +/*----- Licensing notice --------------------------------------------------* * * This file is part of Catacomb. * @@ -15,31 +15,18 @@ * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. - * + * * Catacomb is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. - * + * * You should have received a copy of the GNU Library General Public * License along with Catacomb; if not, write to the Free * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: prim.c,v $ - * Revision 1.2 2000/07/29 09:57:42 mdw - * Improve primitive-element testing a lot. Now much more sensible and - * orthogonal: you can find a generator for any given subgroup order by - * putting in the appropriate parameters. - * - * Revision 1.1 1999/12/22 15:58:59 mdw - * Search for primitive elements using prime-search equipment. - * - */ - /*----- Header files ------------------------------------------------------*/ #include "mp.h" @@ -66,21 +53,21 @@ int prim_test(int rq, pgen_event *ev, void *p) rc = PGEN_FAIL; if (!c->exp) - x = mp_copy(ev->m); + x = mp_copy(ev->m); else { x = mpmont_exp(&c->mm, MP_NEW, ev->m, c->exp); - if (MP_CMP(x, ==, MP_ONE)) + if (MP_EQ(x, MP_ONE)) goto done; } if (c->n == 0) - goto ok; + goto ok; else { size_t n = c->n; mp **f = c->f; mp *y = MP_NEW; while (n) { y = mpmont_exp(&c->mm, y, x, *f); - if (MP_CMP(y, ==, MP_ONE)) { + if (MP_EQ(y, MP_ONE)) { mp_drop(y); goto done; }