You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ps...@apache.org on 2005/06/26 11:59:17 UTC

svn commit: r201813 - in /jakarta/commons/proper/math/trunk: src/java/org/apache/commons/math/fraction/Fraction.java src/test/org/apache/commons/math/fraction/FractionTest.java xdocs/changes.xml

Author: psteitz
Date: Sat Jun 25 18:52:37 2005
New Revision: 201813

URL: http://svn.apache.org/viewcvs?rev=201813&view=rev
Log:
Changed Fraction(double) to correctly handle near-integral arguments.
PR # 35434
Submitted by: Jörg Weimar

Modified:
    jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/Fraction.java
    jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java
    jakarta/commons/proper/math/trunk/xdocs/changes.xml

Modified: jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/Fraction.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/Fraction.java?rev=201813&r1=201812&r2=201813&view=diff
==============================================================================
--- jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/Fraction.java (original)
+++ jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/fraction/Fraction.java Sat Jun 25 18:52:37 2005
@@ -73,6 +73,14 @@
     {
         double r0 = value;
         int a0 = (int)Math.floor(r0);
+
+        // check for (almost) integer arguments, which should not go
+        // to iterations.
+        if (Math.abs(a0 - value) < epsilon) {
+            this.numerator = a0;
+            this.denominator = 1;
+            return;
+        }
         
         int p0 = 1;
         int q0 = 0;

Modified: jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java?rev=201813&r1=201812&r2=201813&view=diff
==============================================================================
--- jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java (original)
+++ jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/fraction/FractionTest.java Sat Jun 25 18:52:37 2005
@@ -53,6 +53,14 @@
         } catch (ArithmeticException ex) {
             // success
         }
+        try {        
+            assertFraction(0, 1, new Fraction(0.00000000000001));
+            assertFraction(2, 5, new Fraction(0.40000000000001));
+            assertFraction(15, 1, new Fraction(15.0000000000001));
+            
+        } catch (ConvergenceException ex) {
+            fail(ex.getMessage());
+        }
     }
     
     public void testCompareTo() {

Modified: jakarta/commons/proper/math/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/math/trunk/xdocs/changes.xml?rev=201813&r1=201812&r2=201813&view=diff
==============================================================================
--- jakarta/commons/proper/math/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/math/trunk/xdocs/changes.xml Sat Jun 25 18:52:37 2005
@@ -39,13 +39,16 @@
   <body>
     <release version="1.1" date="In Development"  
        description="Jakarta Commons Math 1.1 - Development">
-      <action dev="psteitz" type="fix" issue="32663"  due-to="Mary Ellen Foster">
-        Added factories for TTest, ChiSquareTest and TestUtils class with
-        static methods to create instances and execute tests.
+      <action dev="psteitz" type="update" issue="35434"  due-to="Jörg Weimar">
+        Changed Fraction(double) to correctly handle near-integral arguments.
       </action>
       <action dev="psteitz" type="update" issue="35431"  due-to="Jörg Weimar">
         Changed lcm to throw ArithmeticException (instead of returning bogus
         value) if the result is too large to store as an integer.
+      </action>
+      <action dev="psteitz" type="fix" issue="32663"  due-to="Mary Ellen Foster">
+        Added factories for TTest, ChiSquareTest and TestUtils class with
+        static methods to create instances and execute tests.
       </action>
       <action dev="psteitz" type="update" issue="35042"  due-to="Paul Field">
         Eliminated repeated endpoint function evalutations in BrentSolver, SecantSolver.



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org