You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2008/07/14 17:16:12 UTC
svn commit: r676622 -
/commons/proper/math/branches/MATH_2_0/src/test/org/apache/commons/math/ode/nonstiff/TestProblemHandler.java
Author: luc
Date: Mon Jul 14 08:16:11 2008
New Revision: 676622
URL: http://svn.apache.org/viewvc?rev=676622&view=rev
Log:
preparing test to work with multistep integrators
Modified:
commons/proper/math/branches/MATH_2_0/src/test/org/apache/commons/math/ode/nonstiff/TestProblemHandler.java
Modified: commons/proper/math/branches/MATH_2_0/src/test/org/apache/commons/math/ode/nonstiff/TestProblemHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/math/branches/MATH_2_0/src/test/org/apache/commons/math/ode/nonstiff/TestProblemHandler.java?rev=676622&r1=676621&r2=676622&view=diff
==============================================================================
--- commons/proper/math/branches/MATH_2_0/src/test/org/apache/commons/math/ode/nonstiff/TestProblemHandler.java (original)
+++ commons/proper/math/branches/MATH_2_0/src/test/org/apache/commons/math/ode/nonstiff/TestProblemHandler.java Mon Jul 14 08:16:11 2008
@@ -70,7 +70,7 @@
maxValueError = 0;
maxTimeError = 0;
lastError = 0;
- expectedStepStart = problem.getInitialTime();
+ expectedStepStart = Double.NaN;
}
public void handleStep(StepInterpolator interpolator,
@@ -78,8 +78,14 @@
throws DerivativeException {
double start = integrator.getCurrentStepStart();
- maxTimeError = Math.max(maxTimeError, Math.abs(start - expectedStepStart));
- expectedStepStart = start + integrator.getCurrentSignedStepsize();
+ if (Math.abs((start - problem.getInitialTime()) / integrator.getCurrentSignedStepsize()) > 0.001) {
+ // multistep integrators do not handle the first steps themselves
+ // so we have to make sure the integrator we look at has really started its work
+ if (!Double.isNaN(expectedStepStart)) {
+ maxTimeError = Math.max(maxTimeError, Math.abs(start - expectedStepStart));
+ }
+ expectedStepStart = start + integrator.getCurrentSignedStepsize();
+ }
double pT = interpolator.getPreviousTime();
double cT = interpolator.getCurrentTime();