From: mdw Date: Mon, 7 May 2001 17:30:13 +0000 (+0000) Subject: Add an internal-representation no-op function. X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/commitdiff_plain/2685767a6125c1620719c7de6234aedf41857b7e Add an internal-representation no-op function. --- diff --git a/field.c b/field.c new file mode 100644 index 0000000..c7e7559 --- /dev/null +++ b/field.c @@ -0,0 +1,63 @@ +/* -*-c-*- + * + * $Id: field.c,v 1.1 2001/05/07 17:30:13 mdw Exp $ + * + * [Abstract field operations * + * (c) 2001 Straylight/Edgeware + */ + +/*----- Licensing notice --------------------------------------------------* + * + * This file is part of Catacomb. + * + * Catacomb is free software; you can redistribute it and/or modify + * 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: field.c,v $ + * Revision 1.1 2001/05/07 17:30:13 mdw + * Add an internal-representation no-op function. + * + */ + +/*----- Header files ------------------------------------------------------*/ + +#include "field.h" +#include "mp.h" + +/*----- Main code ---------------------------------------------------------*/ + +/* --- @field_id@ --- * + * + * Arguments: @field *f@ = pointer to a field + * @mp *d@ = a destination element + * @mp *x@ = a source element + * + * Returns: The result element. + * + * Use: An identity operation which can be used if your field has no + * internal representation. + */ + +mp *field_id(field *f, mp *d, mp *x) +{ + x = MP_COPY(x); + if (d) MP_DROP(d); + return (x); +} + +/*----- That's all, folks -------------------------------------------------*/ diff --git a/field.h b/field.h index 35e9df0..87d3865 100644 --- a/field.h +++ b/field.h @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: field.h,v 1.1 2001/04/29 18:12:33 mdw Exp $ + * $Id: field.h,v 1.2 2001/05/07 17:30:13 mdw Exp $ * * Definitions for field arithmetic * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: field.h,v $ + * Revision 1.2 2001/05/07 17:30:13 mdw + * Add an internal-representation no-op function. + * * Revision 1.1 2001/04/29 18:12:33 mdw * Prototype version. * @@ -94,6 +97,22 @@ typedef struct field_ops { #define F_TPL(f, d, x) (f)->ops->tpl((f), (d), (x)) #define F_SQRT(f, d, x) (f)->ops->sqrt((f), (d), (x)) +/*----- Helpful field operations ------------------------------------------*/ + +/* --- @field_id@ --- * + * + * Arguments: @field *f@ = pointer to a field + * @mp *d@ = a destination element + * @mp *x@ = a source element + * + * Returns: The result element. + * + * Use: An identity operation which can be used if your field has no + * internal representation. + */ + +extern mp *field_id(field */*f*/, mp */*d*/, mp */*x*/); + /*----- Creating fields ---------------------------------------------------*/ /* --- @field_prime@ --- *