X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/ae747c9bab929bc794ddad9f59c381657d347d1f..298182ad446aaced14dea7ed0e7c968946787288:/gfx-kmul.c diff --git a/gfx-kmul.c b/gfx-kmul.c index dc2e524..940243d 100644 --- a/gfx-kmul.c +++ b/gfx-kmul.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: gfx-kmul.c,v 1.1 2000/10/08 15:49:37 mdw Exp $ + * $Id$ * * Karatsuba's multiplication algorithm on binary polynomials * @@ -27,14 +27,6 @@ * MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: gfx-kmul.c,v $ - * Revision 1.1 2000/10/08 15:49:37 mdw - * First glimmerings of binary polynomial arithmetic. - * - */ - /*----- Header files ------------------------------------------------------*/ #include @@ -130,17 +122,14 @@ void gfx_kmul(mpw *dv, mpw *dvl, avm = avl; } - assert(((void)"Destination too small for Karatsuba gf-multiply", - dvl - dv >= 4 * m)); - assert(((void)"Not enough workspace for Karatsuba gf-multiply", - svl - sv >= 4 * m)); - /* --- Sort out the middle term --- */ { mpw *bsv = sv + m, *ssv = bsv + m; mpw *rdv = dv + m, *rdvl = rdv + 2 * m; + assert(rdvl <= dvl); + assert(ssv <= svl); UXOR2(sv, bsv, av, avm, avm, avl); UXOR2(bsv, ssv, bv, bvm, bvm, bvl); if (m > GFK_THRESH) @@ -240,7 +229,7 @@ static int mul(dstr *v) ok = 0; } - free(a); free(b); free(c); free(d); free(s); + xfree(a); xfree(b); xfree(c); xfree(d); xfree(s); return (ok); }