5995 Commits

Author SHA1 Message Date
Luc Maisonobe
40faa3ef12 Replaced static double array constants with field constants.
This will allow for example setting up ode integrators using Dfp
instances with increased accuracy, including for the ode coefficients
themselves.
2016-01-06 12:40:05 +01:00
Luc Maisonobe
35c99d4dea Prepared tests for field-based ODE. 2016-01-06 12:40:03 +01:00
Luc Maisonobe
121c6b6892 Restrictied fields visibility in tests. 2016-01-06 12:39:46 +01:00
Luc Maisonobe
87d71e9d46 Simplified ODE test harness. 2016-01-06 12:39:35 +01:00
Luc Maisonobe
79c4719396 Use a top level interface for bracketed real field solver. 2016-01-06 12:38:03 +01:00
Luc Maisonobe
e7a46ac6ca Field-based version of Dormand-Prince 5(4) method for solving ODE. 2016-01-06 12:24:44 +01:00
Luc Maisonobe
301b0a8110 Field-based version of Higham-Hall 5(4) method for solving ODE. 2016-01-06 12:24:43 +01:00
Luc Maisonobe
b3c1686093 Field-based version of Dormand-Prince 8(5, 3) method for solving ODE. 2016-01-06 12:24:41 +01:00
Luc Maisonobe
213cb76f59 Added field-based continuous output throughout integration range. 2016-01-06 12:24:39 +01:00
Luc Maisonobe
c83289781a Added forgotten copy method in FieldStepInterpolator interface. 2016-01-06 12:24:37 +01:00
Luc Maisonobe
1a26866d77 Intermediate level implementations of variable-step Runge-Kutta methods. 2016-01-06 12:24:29 +01:00
Luc Maisonobe
637027aa50 Avoid spurious array copy. 2016-01-06 12:24:25 +01:00
Luc Maisonobe
b21b4c8ded The full set of derivatives are needed in Runge-Kutta. 2016-01-06 12:24:24 +01:00
Luc Maisonobe
c4e2ddf266 Added min/max utility methods for RealField elements. 2016-01-06 12:24:21 +01:00
Luc Maisonobe
dbb04c1ccb Field-based version of Luther method for solving ODE. 2016-01-06 12:24:20 +01:00
Luc Maisonobe
c9aa8f334a Field-based version of 3/8 method for solving ODE. 2016-01-06 12:24:19 +01:00
Luc Maisonobe
58e713233d Field-based version of Gill method for solving ODE. 2016-01-06 12:24:18 +01:00
Luc Maisonobe
d67f7e2af9 Field-based version of classical Runge-Kutta method for solving ODE. 2016-01-06 12:24:16 +01:00
Luc Maisonobe
defa2be2ea Field-based version of midpoint method for solving ODE. 2016-01-06 12:24:14 +01:00
Luc Maisonobe
f05e3793ed Fixed javadoc. 2016-01-06 12:24:12 +01:00
Luc Maisonobe
df355deb13 Whitespace. 2016-01-06 12:24:09 +01:00
Luc Maisonobe
738e361a36 Field-based version of Euler method for solving ODE. 2016-01-06 12:24:01 +01:00
Luc Maisonobe
f8fa8259db Intermediate level implementations of fixed-step Rung-Kutta methods. 2016-01-06 12:23:59 +01:00
Luc Maisonobe
12aea84075 Integrator returns the full state, not only the time. 2016-01-06 12:23:57 +01:00
Luc Maisonobe
02641ff729 Step interpolator only needs the mapper, not the full equations. 2016-01-06 12:23:54 +01:00
Luc Maisonobe
7644b5a2bd Initialize primary and secondary equations at integration start. 2016-01-06 12:23:51 +01:00
Luc Maisonobe
152073fa08 Use MapArrays utility methods for building arrays. 2016-01-06 12:23:48 +01:00
Luc Maisonobe
22991a71c6 Added init methods for primary and secondary ODE.
This addition is for consistency with other user-implemented interfaces
as step handlers and event handlers. However, since the equations have
only the state as input and the produce derivatives as output, their
init method also only uses state, as derivatives can be computed only
after equations have been initialized, not before.
2016-01-06 12:23:44 +01:00
Luc Maisonobe
fe8646e83e Separate equations from mapper. 2016-01-06 12:23:38 +01:00
Luc Maisonobe
6da8a0eba0 Implementation of the top level abstract classes in field ode.
This layer implements boilerplate code, mainly step handling and events
handling. It is independent of the type of integrator used. Below this
layer will be the real implementations (Runge-Kutta, embedded
runge-Kutta, Gragg-Bulirsch-Stoer, Adams, ...).
2016-01-06 12:23:19 +01:00
Luc Maisonobe
7bf9d3dbc5 Top level integrator interface.
We have merged together what was initially in an integrator interface
and in an AbstractIntegrator class. The separation was only due to
backward compatibility issues which prevented to push some functions up
in the interface. A consequence was that users needed to use the
abstract class in their declaration as soon as they needed the
additional features ... which was most of the cases. We try to fix this
here. When 4.0 will be out, the same merging will be done in the
double[] implementation of ode.

JIRA: MATH-1288
2016-01-06 12:23:05 +01:00
Luc Maisonobe
67566fe60b Mapping between primary/secondary equations and flat arrays.
The API is much simpler than the one in the current double[]
implementation. We do not mix anymore the equations and the state.

JIRA: MATH-1288
2016-01-06 12:20:05 +01:00
Luc Maisonobe
7398af4803 Interface and enum for event handling.
This corresponds to an improved g-stop feature. It basically allow to
manage discrete events that occur during ode integration. when the event
occurs, user can decide to log it and continue, or to change the
dynamics of a problem (for example to handle derivatives
discontinuities) or even to stop the integration before its target date
(for example when the exact final date cannot be known beforehand but is
discovered on the fly). It is the second major feature of our ode
package.
2016-01-06 12:19:50 +01:00
Luc Maisonobe
d7f0ca1011 Interfaces and normalizer for step handling.
This corresponds to a continuous output feature. It basically allow to
navigate throughout current step instead of having only discrete grid
points. It is a major feature of our ode package.

JIRA: MATH-1288
2016-01-06 12:19:37 +01:00
Luc Maisonobe
43800e3460 Starting work on Field-based ordinary differential equations.
The base elements are the primary equation that users must implement,
and optional secondary equations to support features like adjoint
parameters or variational equations. Some containers to hold current
state are also introduced to simplify API (these container do not exist
in the double[] version of the API).

JIRA: MATH-1288
2016-01-06 12:18:50 +01:00
Luc Maisonobe
7e1c299da2 Inserting 3.6 into changes history.
The actions that were tagged in 4.0 as "backported in 3.6" because they
were present in both master and MATH_3_X branch have been removed from
the 4.0 specific changes as they already appear below in the 3.6
specific changes.
2016-01-05 23:03:27 +01:00
Gilles
bd557f1b8b Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/commons-math 2016-01-02 21:39:57 +01:00
Phil Steitz
75676e5d4e Fixed ant build. 2016-01-02 10:30:49 -07:00
Gilles
66608db56c Show more info when this unit test fails. 2016-01-02 00:54:30 +01:00
Phil Steitz
8a8ca83f25 Javadoc fixes; added tests to confirm NaN behavior. 2016-01-01 15:17:08 -07:00
Thomas Neidhart
a614e85204 Update developer section. 2016-01-01 21:25:39 +01:00
Luc Maisonobe
41b21f83d9 Updated released howto after change from people to home.apache.org.
Shell access is not possible anymore on home.apache.org, so the site
uploading must be done using sftp only.
2016-01-01 20:01:32 +01:00
Phil Steitz
d7e7b226d8 Updated User Guide to reflect MATH-1310 fix. 2016-01-01 08:50:09 -07:00
Luc Maisonobe
953c23242b Updated release howto to not delete the release branch after release. 2016-01-01 14:17:54 +01:00
Gilles
3e5c248f73 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/commons-math 2016-01-01 00:27:53 +01:00
Gilles
fdc116f0bc Allow zero-length fill (i.e. no-op call). 2015-12-31 23:56:59 +01:00
Phil Steitz
dcd8015fa6 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/commons-math 2015-12-31 15:14:25 -07:00
Phil Steitz
e38bbb9f41 Improved performance and accuracy of 2-sample KS tests. JIRA: MATH-1310. 2015-12-31 15:12:49 -07:00
Gilles
2fcfce3039 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/commons-math 2015-12-31 01:35:30 +01:00
Gilles
8f6bedeb72 MATH-1309
Constructors should not call overridable methods, even indirectly.
2015-12-31 01:31:24 +01:00