From a9c8f3d63588c8497aa5b3d95fa8a8d9d4c29fa8 Mon Sep 17 00:00:00 2001 From: mdw Date: Sun, 12 Oct 2003 15:03:35 +0000 Subject: [PATCH] Merge fix from other branch. --- mp-arith.c | 10 ++++++++-- tests/mp | 10 +++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/mp-arith.c b/mp-arith.c index 3d565ae..53584e7 100644 --- a/mp-arith.c +++ b/mp-arith.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: mp-arith.c,v 1.16 2003/05/16 09:09:24 mdw Exp $ + * $Id: mp-arith.c,v 1.17 2003/10/12 15:03:35 mdw Exp $ * * Basic arithmetic on multiprecision integers * @@ -30,6 +30,12 @@ /*----- Revision history --------------------------------------------------* * * $Log: mp-arith.c,v $ + * Revision 1.17 2003/10/12 15:03:35 mdw + * Merge fix from other branch. + * + * Revision 1.16.2.1 2003/06/10 13:21:10 mdw + * Fix bug dividing small things by large ones. + * * Revision 1.16 2003/05/16 09:09:24 mdw * Fix @mp_lsl2c@. Turns out to be surprisingly tricky. * @@ -619,7 +625,7 @@ void mp_div(mp **qq, mp **rr, mp *a, mp *b) if (r) MP_DROP(r); r = a; - MP_DEST(r, MP_LEN(a) + 2, a->f | b->f); + MP_DEST(r, MAX(MP_LEN(a), MP_LEN(b)) + 2, a->f | b->f); /* --- Fix up the quotient too --- */ diff --git a/tests/mp b/tests/mp index 767bd0d..f66795e 100644 --- a/tests/mp +++ b/tests/mp @@ -1,6 +1,6 @@ # Test vectors for MP functions # -# $Id: mp,v 1.15 2003/05/16 09:09:24 mdw Exp $ +# $Id: mp,v 1.16 2003/10/12 15:03:35 mdw Exp $ add { 5 4 9; 5 -4 1; -5 4 -1; -5 -4 -9; @@ -19,6 +19,14 @@ mul { div { 9 4 2 1; -9 4 -3 3; 9 -4 -3 -3; -9 -4 2 -1; + -3 6277101735386680763835789423207666416083908700390324961279 + -1 6277101735386680763835789423207666416083908700390324961276; + 3131675836296406071791252329528905062261497366991742517193 + 1110875761630725856340142297645383444629395595869672555585 + 2 909924313034954359110967734238138173002706175252397406023; + 3131675836296406071791252329528905062261497366991742517193 + 53 + 59088223326347284373419855274130284193613157867768726739 26; } bin2c { -- 2.11.0