/* -*-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
*
/*----- 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.
*
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 --- */
# 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;
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 {