[Gnucash-changes] Pull dereks carry aptch into the division routines too -- without it,

Linas Vepstas linas at cvs.gnucash.org
Sat Jun 26 02:41:11 EDT 2004


Log Message:
-----------
Pull dereks carry aptch into the division routines too
-- without it, the division tests fail
Also, cut out duplicated test code

Modified Files:
--------------
    gnucash/src/engine:
        gnc-numeric.c

Revision Data
-------------
Index: gnc-numeric.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-numeric.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -Lsrc/engine/gnc-numeric.c -Lsrc/engine/gnc-numeric.c -u -r1.37 -r1.38
--- src/engine/gnc-numeric.c
+++ src/engine/gnc-numeric.c
@@ -828,13 +828,13 @@
   {
     gncint128 nume = mult128(a.num, b.denom);
     gncint128 deno = mult128(b.num, a.denom);
-    if ((0 == nume.hi) && (0 == deno.hi))
+    if ((0 == nume.carry) && (0 == deno.carry))
     {
       quotient.num = nume.lo;
       if (nume.isneg) quotient.num = -quotient.num;
       quotient.denom = deno.lo;
     }
-    else if (0 == deno.hi)
+    else if (0 == deno.carry)
     {
        quotient = reduce128 (nume, deno.lo);
     }
@@ -1385,6 +1385,9 @@
   return(str + num_read);
 }
 
+/********************************************************************
+ *  gnc_numeric misc testing
+ ********************************************************************/
 #ifdef _GNC_NUMERIC_TEST
 
 static char *
@@ -1438,49 +1441,6 @@
          gnc_numeric_print(c),
          gnc_numeric_print(err));
   
-  printf("7/16 as float: %e\n",
-         gnc_numeric_to_double(gnc_numeric_create(7, 16)));
-  
-  printf("add LCM: %s + %s = %s\n",
-         gnc_numeric_print(b), gnc_numeric_print(d),
-         gnc_numeric_print(gnc_numeric_add(b, d, GNC_DENOM_AUTO,
-                                           GNC_DENOM_LCD)));
- 
-  printf("float to 6 sigfigs: %s\n",
-         gnc_numeric_print(double_to_gnc_numeric(1.1234567890123, 
-                                                 GNC_DENOM_AUTO, 
-                                                 GNC_DENOM_SIGFIGS(6) |
-                                                 GNC_RND_ROUND)));
-  printf("float to 6 sigfigs: %s\n",
-         gnc_numeric_print(double_to_gnc_numeric(.011234567890123, 
-                                                 GNC_DENOM_AUTO, 
-                                                 GNC_DENOM_SIGFIGS(6) |
-                                                 GNC_RND_ROUND)));
-  printf("float to 6 sigfigs: %s\n",
-         gnc_numeric_print(double_to_gnc_numeric(1123.4567890123, 
-                                                 GNC_DENOM_AUTO, 
-                                                 GNC_DENOM_SIGFIGS(6) |
-                                                 GNC_RND_ROUND)));
-  printf("float to 6 sigfigs: %s\n",
-         gnc_numeric_print(double_to_gnc_numeric(1.1234567890123e-5, 
-                                                 GNC_DENOM_AUTO, 
-                                                 GNC_DENOM_SIGFIGS(6) |
-                                                 GNC_RND_ROUND)));
-  printf("add to 4 sigfigs: %s + %s = %s\n",
-         gnc_numeric_print(a), gnc_numeric_print(b),
-         gnc_numeric_print(gnc_numeric_add(a, b, 
-                                           GNC_DENOM_AUTO, 
-                                           GNC_DENOM_SIGFIGS(4) |
-                                           GNC_RND_ROUND)));
-  
-   
-  v = 1000000;
-  a = gnc_numeric_create(1*v, v);
-  b = gnc_numeric_create(10000000*v, v);
-  printf("multiply (LCD): %s * %s = %s\n",
-	 gnc_numeric_print(a), gnc_numeric_print(b),
-	 gnc_numeric_print(gnc_numeric_mul(a, b, GNC_DENOM_AUTO, GNC_DENOM_LCD)));
-
   printf("multiply (EXACT): %s * %s = %s\n",
 	 gnc_numeric_print(a), gnc_numeric_print(b),
 	 gnc_numeric_print(gnc_numeric_mul(a, b, GNC_DENOM_AUTO, GNC_DENOM_EXACT)));


More information about the gnucash-changes mailing list