Hi all,

From the subject of emails of the git commits (e.g. 'git commit: fixed too long first step in fixed Runge-Kutta integrators.'), it can no longer be seen that the commit is for a specific sub component of commons (e.g. 'commons-math'). It can be seen from the first line of the email itself ('Repository: commons-math'). Would it be possible to include the repository name as prefix of the subject? Something like: '[commons-math] git commit: ...'? That would make email client filtering rules etc possible.

When commons-math used Subversion in the past, it could be seen from the path. That is, the subject of the email was 'svn commit: r1554646 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math3/geometry/ main/java/org/apache/commons/math3/geometry/euclidean/oned/ main/java/org/apache/commons/math3/geometry/euclidean/threed/ main/java/org/apache/common...' or so, and included '/commons/proper/math' near the beginning, usually making filtering possible.

Best regards,
Dennis


On 10/08/2014 02:40 PM, l...@apache.org wrote:
Repository: commons-math
Updated Branches:
   refs/heads/master 86b92b4e5 -> 69273dca6


fixed too long first step in fixed Runge-Kutta integrators.

This change is similar to the one done two years ago for adaptive step sizes 
integrator.

JIRA: MATH-727


Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/69273dca
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/69273dca
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/69273dca

Branch: refs/heads/master
Commit: 69273dca6188a3d7d629d0d32dcf9cdb5b6c1036
Parents: 86b92b4
Author: Luc Maisonobe <l...@apache.org>
Authored: Wed Oct 8 14:25:05 2014 +0200
Committer: Luc Maisonobe <l...@apache.org>
Committed: Wed Oct 8 14:25:05 2014 +0200

----------------------------------------------------------------------
  .../ode/nonstiff/RungeKuttaIntegrator.java      | 14 +++++++++++-
  .../ClassicalRungeKuttaIntegratorTest.java      | 24 ++++++++++++++++++++
  2 files changed, 37 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/69273dca/src/main/java/org/apache/commons/math3/ode/nonstiff/RungeKuttaIntegrator.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math3/ode/nonstiff/RungeKuttaIntegrator.java 
b/src/main/java/org/apache/commons/math3/ode/nonstiff/RungeKuttaIntegrator.java
index 68bd8b0..5f7d5d8 100644
--- 
a/src/main/java/org/apache/commons/math3/ode/nonstiff/RungeKuttaIntegrator.java
+++ 
b/src/main/java/org/apache/commons/math3/ode/nonstiff/RungeKuttaIntegrator.java
@@ -119,7 +119,19 @@ public abstract class RungeKuttaIntegrator extends 
AbstractIntegrator {

      // set up integration control objects
      stepStart = equations.getTime();
-    stepSize  = forward ? step : -step;
+    if (forward) {
+        if (stepStart + step >= t) {
+            stepSize = t - stepStart;
+        } else {
+            stepSize = step;
+        }
+    } else {
+        if (stepStart - step <= t) {
+            stepSize = t - stepStart;
+        } else {
+            stepSize = -step;
+        }
+    }
      initIntegration(equations.getTime(), y0, t);

      // main integration loop

http://git-wip-us.apache.org/repos/asf/commons-math/blob/69273dca/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
 
b/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
index 8136596..c527680 100644
--- 
a/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
+++ 
b/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
@@ -310,4 +310,28 @@ public class ClassicalRungeKuttaIntegratorTest {
        }, 0.0, new double[] { 0.0 }, 5.0, new double[1]);
    }

+  @Test
+  public void testTooLargeFirstStep() {
+
+      RungeKuttaIntegrator integ = new ClassicalRungeKuttaIntegrator(0.5);
+      final double start = 0.0;
+      final double end   = 0.001;
+      FirstOrderDifferentialEquations equations = new 
FirstOrderDifferentialEquations() {
+
+          public int getDimension() {
+              return 1;
+          }
+
+          public void computeDerivatives(double t, double[] y, double[] yDot) {
+              Assert.assertTrue(t >= FastMath.nextAfter(start, 
Double.NEGATIVE_INFINITY));
+              Assert.assertTrue(t <= FastMath.nextAfter(end,   
Double.POSITIVE_INFINITY));
+              yDot[0] = -100.0 * y[0];
+          }
+
+      };
+
+      integ.integrate(equations, start, new double[] { 1.0 }, end, new 
double[1]);
+
+  }
+
  }


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

Reply via email to