Author: luc Date: Mon Apr 11 17:43:40 2011 New Revision: 1091143 URL: http://svn.apache.org/viewvc?rev=1091143&view=rev Log: replaced remaining getEpsilon by using ulps in double comparisons
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java commons/proper/math/trunk/src/test/java/org/apache/commons/math/optimization/linear/SimplexSolverTest.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java?rev=1091143&r1=1091142&r2=1091143&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java Mon Apr 11 17:43:40 2011 @@ -33,7 +33,6 @@ import org.apache.commons.math.linear.Re import org.apache.commons.math.linear.RealVector; import org.apache.commons.math.optimization.GoalType; import org.apache.commons.math.optimization.RealPointValuePair; -import org.apache.commons.math.util.FastMath; import org.apache.commons.math.util.MathUtils; /** @@ -312,9 +311,9 @@ class SimplexTableau implements Serializ Integer row = null; for (int i = 0; i < getHeight(); i++) { final double entry = getEntry(i, col); - if (MathUtils.equals(entry, 1d, getEpsilon(entry)) && (row == null)) { + if (MathUtils.equals(entry, 1d, maxUlps) && (row == null)) { row = i; - } else if (!MathUtils.equals(entry, 0d, getEpsilon(entry))) { + } else if (!MathUtils.equals(entry, 0d, maxUlps)) { return null; } } @@ -336,7 +335,7 @@ class SimplexTableau implements Serializ // positive cost non-artificial variables for (int i = getNumObjectiveFunctions(); i < getArtificialVariableOffset(); i++) { final double entry = tableau.getEntry(0, i); - if (MathUtils.compareTo(entry, 0d, getEpsilon(entry)) > 0) { + if (MathUtils.compareTo(entry, 0d, maxUlps) > 0) { columnsToDrop.add(i); } } @@ -615,14 +614,5 @@ class SimplexTableau implements Serializ throws ClassNotFoundException, IOException { ois.defaultReadObject(); MatrixUtils.deserializeRealMatrix(this, "tableau", ois); - } - - /** - * Get an epsilon that is adjusted to the magnitude of the given value. - * @param value the value for which to get the epsilon - * @return magnitude-adjusted epsilon using {@link FastMath.ulp} - */ - private double getEpsilon(double value) { - return FastMath.ulp(value) * (double) maxUlps; } } Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/optimization/linear/SimplexSolverTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/optimization/linear/SimplexSolverTest.java?rev=1091143&r1=1091142&r2=1091143&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/optimization/linear/SimplexSolverTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/optimization/linear/SimplexSolverTest.java Mon Apr 11 17:43:40 2011 @@ -31,7 +31,7 @@ import org.junit.Test; public class SimplexSolverTest { @Test - public void test434NegativeVariable() throws OptimizationException + public void testMath434NegativeVariable() throws OptimizationException { LinearObjectiveFunction f = new LinearObjectiveFunction(new double[] {0.0, 0.0, 1.0}, 0.0d); ArrayList<LinearConstraint> constraints = new ArrayList<LinearConstraint>(); @@ -49,7 +49,7 @@ public class SimplexSolverTest { } @Test(expected = NoFeasibleSolutionException.class) - public void test434UnfeasibleSolution() throws OptimizationException + public void testMath434UnfeasibleSolution() throws OptimizationException { double epsilon = 1e-6; @@ -64,7 +64,7 @@ public class SimplexSolverTest { } @Test - public void test434PivotRowSelection() throws OptimizationException + public void testMath434PivotRowSelection() throws OptimizationException { LinearObjectiveFunction f = new LinearObjectiveFunction(new double[] {1.0}, 0.0); @@ -81,7 +81,7 @@ public class SimplexSolverTest { } @Test - public void test434PivotRowSelection2() throws OptimizationException + public void testMath434PivotRowSelection2() throws OptimizationException { LinearObjectiveFunction f = new LinearObjectiveFunction(new double[] {0.0d, 1.0d, 1.0d, 0.0d, 0.0d, 0.0d, 0.0d}, 0.0d);