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