Commit Graph

2154 Commits

Author SHA1 Message Date
Phil Steitz 09a4643e10 Resolved multiple problems leading to inaccuracy and/or failure to compute Normal, ChiSquare and
Poisson probabilities, Erf and Gamma functions.

JIRA: MATH-282
JIRA: MATH-301

Summary of changes:

* BrentSolver has been changed to expose its configured absolute accuracy. This solver is used by
  the default inverse cum implementation in AbstractContinuousDistribution and the hard-coded setting
  (1E-6) was limiting accuracy in inverse cumulative probability estimates. AbstractContinuousDistribution
  was changed to allow distributions to set this value and NormalDistributionImpl was changed to set it to
  1E-9 by default and allow users to configure it via a constructor argument.

* AbstractContinuousDistribution and AbstractIntegerDistribution inverseCumulativeProbability methods
  have been modified to check for NaN values returned by cumulativeProbability and throw MathExceptions
  when this happens.

* The criteria for choosing between the Lanczos series and continued fraction expansion when computing
  regularized gamma functions has been changed to (x >= a + 1). When using the series approximation
  (regularizedGammaP), divergence to infinity is checked and when this happens, 1 is returned.

* When scaling continued fractions to (try to) avoid divergence to infinity, the larger of a and b is
  used as a scale factor and the attempt to scale is repeated up to 5 times, using successive powers
  of the scale factor.

* The maximum number of iterations used in estimating cumulative probabilities for PoissonDistributionImpl
  has been decreased from Integer.MAX_VALUE to 10000000 and made configurable.


git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@920558 13f79535-47bb-0310-9956-ffa450edef68
2010-03-08 22:57:32 +00:00
Niall Pemberton 79a0ac99bc Re-generate the download pages using the new commons-build-plugin .12 (via commons-parent version 13)
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@920156 13f79535-47bb-0310-9956-ffa450edef68
2010-03-08 00:11:50 +00:00
Niall Pemberton e742f9553f Upgrade to version 13 of commons-parent
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@920154 13f79535-47bb-0310-9956-ffa450edef68
2010-03-08 00:05:47 +00:00
Luc Maisonobe fbecc3ecbf fixed wrong subscript
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@920132 13f79535-47bb-0310-9956-ffa450edef68
2010-03-07 22:22:24 +00:00
Luc Maisonobe ed40ebc5cd improved documentation of ODE package, including the new jacobians part
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@920131 13f79535-47bb-0310-9956-ffa450edef68
2010-03-07 22:19:18 +00:00
Luc Maisonobe 7a7eb1dccc separated ODEWithJacobians from ParameterizedODE:
when jacobians are already available, there is no need to have a setParameter method

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919963 13f79535-47bb-0310-9956-ffa450edef68
2010-03-07 10:59:33 +00:00
Luc Maisonobe 484fc6330b suppressed a warning for unused constructor
the constructor is called only by externalization

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919856 13f79535-47bb-0310-9956-ffa450edef68
2010-03-06 21:33:42 +00:00
Luc Maisonobe 70586e476e fixed findbugs errors
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919855 13f79535-47bb-0310-9956-ffa450edef68
2010-03-06 21:30:37 +00:00
Luc Maisonobe d381e12f99 fixed javadoc errors
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919848 13f79535-47bb-0310-9956-ffa450edef68
2010-03-06 20:50:02 +00:00
Luc Maisonobe f5f8956448 added event handling to ODE integrators with jacobians
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919844 13f79535-47bb-0310-9956-ffa450edef68
2010-03-06 20:38:55 +00:00
Luc Maisonobe 9034808411 added miscellaneous methods to get some feedback on the integration process
(step start, step size, number of evaluations ...)

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919829 13f79535-47bb-0310-9956-ffa450edef68
2010-03-06 19:39:17 +00:00
Luc Maisonobe fdd038890a Set up a named Wrapper inner class to map state plus jacobians into compound state
for ODE integration with added variational equations

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919815 13f79535-47bb-0310-9956-ffa450edef68
2010-03-06 18:54:27 +00:00
Luc Maisonobe 018daf4d96 improved test coverage
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919481 13f79535-47bb-0310-9956-ffa450edef68
2010-03-05 16:39:10 +00:00
Luc Maisonobe 4e13f9660b fixed handling of the time-derivatives of jacobians
simplified copy and serialization

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919480 13f79535-47bb-0310-9956-ffa450edef68
2010-03-05 16:38:02 +00:00
Luc Maisonobe 81e8b4f0d1 Fixed a problem with getInterpolatedDerivatives returning zero derivatives when
an ODE step handler is configured to not use interpolation. It now returns a
constant but non-zero value consistent with at least one point inside the step


git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919479 13f79535-47bb-0310-9956-ffa450edef68
2010-03-05 16:35:56 +00:00
Luc Maisonobe 1bb6d2ad6b typos
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919178 13f79535-47bb-0310-9956-ffa450edef68
2010-03-04 20:56:26 +00:00
Luc Maisonobe 11a792efbe explained test rationale
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919172 13f79535-47bb-0310-9956-ffa450edef68
2010-03-04 20:50:08 +00:00
Luc Maisonobe 74cb951d91 added package.html for ode.jacobians
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919167 13f79535-47bb-0310-9956-ffa450edef68
2010-03-04 20:41:42 +00:00
Luc Maisonobe 21c37897f0 fixed an index error in dy/dy0 computation
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@919166 13f79535-47bb-0310-9956-ffa450edef68
2010-03-04 20:40:49 +00:00
Luc Maisonobe 5256967cf7 Simplified names of ODE with Jacobians integration classes
Added step handling for this feature

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@918702 13f79535-47bb-0310-9956-ffa450edef68
2010-03-03 21:28:16 +00:00
Luc Maisonobe 57c45aca3d Fixed too stringent interval check in Brent solver:
initial guess is now allowed to be at either interval end
JIRA: MATH-347

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917668 13f79535-47bb-0310-9956-ffa450edef68
2010-03-01 19:38:34 +00:00
Luc Maisonobe 46abbb40e1 Added a way to compute both the final state in an Initial Value Problem (IVP)
for Ordinary Differential Equations (ODE) and its derivatives with respect to
initial state and with respect to some problem parameters. This allows wrapping
ODE solvers into optimization or root finding algorithms, which in turn can be
used to solve Boundary Value Problems (BVP). There are no implementations (yet)
of BVP solvers in the library.


git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917592 13f79535-47bb-0310-9956-ffa450edef68
2010-03-01 17:07:47 +00:00
Luc Maisonobe a579b0d8bd updated an exclusion filter for findbugs after recent changes in eigen decomposition
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917280 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:55:07 +00:00
Luc Maisonobe 5340f4c335 fixed a checkstyle warning concerning extra parentheses
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917277 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:44:49 +00:00
Luc Maisonobe 3a028a2a94 fixed variables declaration order to match checkstyle rules
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917275 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:43:11 +00:00
Luc Maisonobe 71819532ac removed tab
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917272 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:39:21 +00:00
Luc Maisonobe 0ff118952a fixed javadoc
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917271 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:38:15 +00:00
Phil Steitz 1c9a550569 Removed trailing spaces.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917270 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:37:53 +00:00
Phil Steitz ccc24d8913 Removed trailing spaces.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917269 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:35:36 +00:00
Luc Maisonobe 08d7253039 removed personal webpages URL
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917262 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:27:22 +00:00
Luc Maisonobe 37bef8b8f3 added a test that was used some time ago while looking at MATH-341
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@917261 13f79535-47bb-0310-9956-ffa450edef68
2010-02-28 19:24:01 +00:00
Luc Maisonobe 8a687cc604 removed a compilation warning about unused variable
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@915816 13f79535-47bb-0310-9956-ffa450edef68
2010-02-24 15:18:37 +00:00
Luc Maisonobe b97285ee1b removed unreachable code
JIRA: MATH-343

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@915756 13f79535-47bb-0310-9956-ffa450edef68
2010-02-24 11:33:22 +00:00
Luc Maisonobe a0b4b4b798 Fixed wrong return values when enpoints are roots in Brent solver with a user provided initial guess
JIRA: MATH-344

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@915522 13f79535-47bb-0310-9956-ffa450edef68
2010-02-23 21:09:25 +00:00
Luc Maisonobe f6dd42b4fc Fixed a missing bracketing check of initial interval in Brent solver
JIRA: MATH-343

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@915517 13f79535-47bb-0310-9956-ffa450edef68
2010-02-23 21:01:38 +00:00
Dimitri Pourbaix 05361c5a34 MATH-432 fixed
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@912413 13f79535-47bb-0310-9956-ffa450edef68
2010-02-21 21:46:12 +00:00
Phil Steitz ccf7732750 Added test utility inadvertently omitted from r910264. JIRA: MATH-323.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@910784 13f79535-47bb-0310-9956-ffa450edef68
2010-02-17 00:25:19 +00:00
Dimitri Pourbaix c1ce0e39e0 Dummy tests removed after revision 910475
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@910479 13f79535-47bb-0310-9956-ffa450edef68
2010-02-16 11:20:17 +00:00
Dimitri Pourbaix 95627968c1 MATH-333 fixed
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@910475 13f79535-47bb-0310-9956-ffa450edef68
2010-02-16 11:12:55 +00:00
Phil Steitz f822b3285a Added SemiVariance. JIRA: MATH-323. Reported and patched by Larry Diamond.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@910264 13f79535-47bb-0310-9956-ffa450edef68
2010-02-15 17:10:54 +00:00
Phil Steitz 993dcad4b1 Eliminated trailing spaces.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@908626 13f79535-47bb-0310-9956-ffa450edef68
2010-02-10 18:44:42 +00:00
Luc Maisonobe 69e227356d Added a warning in the getCoefficients method documentation for
PolynomialFunctionLagrangeForm. Computation may be ill-conditioned
so this method should be used with care.
JIRA: MATH-341


git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@908190 13f79535-47bb-0310-9956-ffa450edef68
2010-02-09 20:07:36 +00:00
Luc Maisonobe 5e879a5b15 Fixed an error in BigFraction multiplication for large numerators that don't fit in a primitive int.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@906251 13f79535-47bb-0310-9956-ffa450edef68
2010-02-03 21:19:54 +00:00
Luc Maisonobe 1e52e71b14 fixed a spurious exception in EigenDecompositionImpl when a 3x3 block had two identical eigenvalues
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@904561 13f79535-47bb-0310-9956-ffa450edef68
2010-01-29 17:08:28 +00:00
Luc Maisonobe 73e340ab6e added min/max getters for real vectors
For compatibility reasons, these methods have been put in the topmost abstract class but not in the interface yet. It could be pushed to the interface when next major version will be released.
JIRA: MATH-334

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@904231 13f79535-47bb-0310-9956-ffa450edef68
2010-01-28 19:42:31 +00:00
Luc Maisonobe 8dd2239074 Fixed automatic step initialization in embedded Runge-Kutta integrators.
The relative tolerance setting was never used, only the absolute tolerance was used.
JIRA: MATH-338


git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@904112 13f79535-47bb-0310-9956-ffa450edef68
2010-01-28 15:01:55 +00:00
Luc Maisonobe e00564e3b7 removed unused import
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@903446 13f79535-47bb-0310-9956-ffa450edef68
2010-01-26 21:57:13 +00:00
Luc Maisonobe c3b2a19353 typos
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@903442 13f79535-47bb-0310-9956-ffa450edef68
2010-01-26 21:56:20 +00:00
Luc Maisonobe 4119c35554 added Eugene Kirpichov's patch to ignore zero weights in Loess interpolation
JIRA: MATH-296

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@903440 13f79535-47bb-0310-9956-ffa450edef68
2010-01-26 21:53:59 +00:00
Phil Steitz 25f0b04809 Disabled testNextPoissonConsistency pending resolution of MATH-282.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@903156 13f79535-47bb-0310-9956-ffa450edef68
2010-01-26 10:28:12 +00:00