From: mdw Date: Sat, 5 Mar 2005 16:44:11 +0000 (+0000) Subject: Add some fast paths for standard operations. X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/commitdiff_plain/1256557a009c0399ce086335cd35c1bd3f5dfbd2 Add some fast paths for standard operations. --- diff --git a/field.c b/field.c index c8e31d2..c7bbf48 100644 --- a/field.c +++ b/field.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: field.c,v 1.4 2004/04/08 01:36:15 mdw Exp $ + * $Id$ * * Abstract field operations * @@ -47,11 +47,7 @@ */ mp *field_id(field *f, mp *d, mp *x) -{ - x = MP_COPY(x); - if (d) MP_DROP(d); - return (x); -} + { x = MP_COPY(x); if (d) MP_DROP(d); return (x); } /* --- @field_samep@ --- * * @@ -65,9 +61,7 @@ mp *field_id(field *f, mp *d, mp *x) */ int field_samep(field *f, field *g) -{ - return (f->ops == g->ops && F_SAMEP(f, g)); -} + { return (f == g || (f->ops == g->ops && F_SAMEP(f, g))); } /* --- @field_stdsamep@ --- * * @@ -79,9 +73,6 @@ int field_samep(field *f, field *g) * member. */ -int field_stdsamep(field *f, field *g) -{ - return (MP_EQ(f->m, g->m)); -} +int field_stdsamep(field *f, field *g) { return (MP_EQ(f->m, g->m)); } /*----- That's all, folks -------------------------------------------------*/ diff --git a/group-stdops.c b/group-stdops.c index ec30b4d..12005e7 100644 --- a/group-stdops.c +++ b/group-stdops.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: group-stdops.c,v 1.3 2004/04/17 09:58:37 mdw Exp $ + * $Id$ * * Standard group operations * @@ -71,10 +71,10 @@ int group_check(group *g, ge *x) int group_samep(group *g, group *h) { - return (g->ops == h->ops && - MP_EQ(g->r, h->r) && MP_EQ(g->h, h->h) && - G_EQ(g, g->i, h->i) && G_EQ(g, g->g, h->g) && - G_SAMEP(g, h)); + return (g == h || (g->ops == h->ops && + MP_EQ(g->r, h->r) && MP_EQ(g->h, h->h) && + G_EQ(g, g->i, h->i) && G_EQ(g, g->g, h->g) && + G_SAMEP(g, h))); } /*----- Standard implementations ------------------------------------------*/ @@ -115,10 +115,7 @@ void group_stdsqr(group *g, ge *d, ge *x) { G_MUL(g, d, x, x); } */ void group_stddiv(group *g, ge *d, ge *x, ge *y) -{ - G_INV(g, d, y); - G_MUL(g, d, x, d); -} + { G_INV(g, d, y); G_MUL(g, d, x, d); } /* --- @group_stdtoec@ --- * *