2010-03-23 19:45:27 -04:00
|
|
|
|
2008-02-10 23:52:17 -05:00
|
|
|
|
2010-03-24 20:41:40 -04:00
|
|
|
Apache Commons Math 2.1 RELEASE NOTES
|
2008-02-10 23:52:17 -05:00
|
|
|
|
2010-03-24 20:41:40 -04:00
|
|
|
This is primarily a maintenance release, but it also includes new features and enhancements.
|
|
|
|
Users of version 2.0 are encouraged to upgrade to 2.1, as this release includes some important
|
|
|
|
bug fixes. See the detailed list of changes below for full description of all bug fixes and
|
|
|
|
enhancements.
|
2009-07-19 12:47:56 -04:00
|
|
|
|
2010-03-24 11:26:22 -04:00
|
|
|
This release contains some minor API compatibility breaks with version 2.0:
|
2010-03-24 20:41:40 -04:00
|
|
|
--------------------------------------------------------------------------
|
|
|
|
- the return type of RealVector.copy() has been changed to AbstractRealVector
|
|
|
|
- the no-argument constructor of MatrixUtils() has been made private
|
|
|
|
- the mapXxxToSelf methods of OpenMapRealVector have been removed and
|
|
|
|
some method return types have been changed in this class
|
|
|
|
- new methods have been added to the RealVector interface
|
|
|
|
- several fields in AdaptiveStepSizeIntegrator have been made final
|
|
|
|
- DummyStepInterpolator requires an additional argument for one of its constructors
|
|
|
|
- some protected fields have been removed from AbstractLeastSquaresOptimizer,
|
|
|
|
AbstractScalarDifferentiableOptimizer and AbstractLinearOptimizer
|
|
|
|
- the isOptimal(SimplexTableau) method has been removed from SimplexSolver
|
2010-03-24 11:26:22 -04:00
|
|
|
|
2010-03-23 19:45:27 -04:00
|
|
|
Changes in this version include:
|
2008-02-10 23:52:17 -05:00
|
|
|
|
2009-07-19 12:47:56 -04:00
|
|
|
New features:
|
2010-03-24 20:41:40 -04:00
|
|
|
o MATH-357: Implementation of bicubic interpolation.
|
2010-03-23 19:45:27 -04:00
|
|
|
o 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.
|
|
|
|
o MATH-323: Added SemiVariance statistic. Thanks to Larry Diamond.
|
|
|
|
o MATH-341: Added a warning in the getCoefficients method documentation for
|
|
|
|
PolynomialFunctionLagrangeForm. Computation may be ill-conditioned
|
|
|
|
so this method should be used with care.
|
|
|
|
o MATH-340: Fixed an error in BigFraction multiplication for large numerators that don't
|
|
|
|
fit in a primitive int.
|
|
|
|
o MATH-334: Added min/max getters for real vectors (not yet in the RealVector interface for
|
|
|
|
compatibility purposes, but in the AbstractRealVector abstract class).
|
|
|
|
o MATH-321: Singular Value Decomposition now computes either the compact SVD (using only
|
|
|
|
positive singular values) or truncated SVD (using a user-specified maximal
|
|
|
|
number of singular values).
|
|
|
|
o MATH-300: Added support for multidimensional interpolation using the robust microsphere algorithm. Thanks to Gilles Sadowski.
|
|
|
|
o MATH-287: Added support for weighted descriptive statistics. Thanks to Matthew Rowles.
|
|
|
|
o Added normalizeArray method to MathUtils.
|
2009-07-19 12:47:56 -04:00
|
|
|
|
|
|
|
Fixed Bugs:
|
2010-03-23 19:45:27 -04:00
|
|
|
o MATH-335: Fraction.hashCode() implementation was not fully consistent with Fraction.equals().
|
|
|
|
Changed hashCode() to use fields directly to agree with equals().
|
|
|
|
o MATH-282: Resolved multiple problems leading to inaccuracy and/or failure to compute Normal,
|
|
|
|
ChiSquare and Poisson probabilities, Erf and Gamma functions. Made Brent solver
|
|
|
|
absolute accuracy configurable for all continuous distributions.
|
|
|
|
o MATH-347: Fixed too stringent interval check in Brent solver: initial guess is now
|
|
|
|
allowed to be at either interval end
|
2010-03-24 20:41:40 -04:00
|
|
|
o MATH-358: Fixed an error in events handling in ODE solvers. In some rare cases, events
|
|
|
|
occurring close to a step start were handled without truncating the step, making
|
|
|
|
them appear as is they occurred close to the step end
|
2010-03-23 19:45:27 -04:00
|
|
|
o 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
|
|
|
|
o MATH-344: Fixed wrong return values when enpoints are roots in Brent solver with
|
|
|
|
a user provided initial guess
|
|
|
|
o MATH-343: Fixed a missing bracketing check of initial interval in Brent solver.
|
|
|
|
o MATH-342: In SVD, the matrices passed to EigenDecomposition are now symmetric
|
|
|
|
by construction (rather than simply by definition). In EigenDecomposition,
|
|
|
|
once the tridiagonal form is obtained, the non-significant elements are
|
|
|
|
set to 0.
|
|
|
|
o MATH-333: A EigenDecompositionImpl simplified makes it possible to compute
|
|
|
|
the SVD of a singular matrix (with the right number of elements in
|
|
|
|
the diagonal matrix) or a matrix with singular value(s) of multiplicity
|
|
|
|
greater than 1.
|
|
|
|
o Fixed a spurious exception in EigenDecompositionImpl when a 3x3 block
|
|
|
|
had two identical eigenvalues.
|
|
|
|
o MATH-338: Fixed automatic step initialization in embedded Runge-Kutta integrators.
|
|
|
|
The relative tolerance setting was never used, only the absolute tolerance
|
|
|
|
was used. Thanks to Vincent Morand.
|
|
|
|
o MATH-329: Fixed regression in Frequency.getPct(Object) introduced in 2.0. Cumulative
|
|
|
|
percent was being returned for Object arguments in place of percent.
|
|
|
|
o MATH-320: Fixed Singular Value Decomposition solving of singular systems.
|
|
|
|
o MATH-326: Fixed a wrong implementation of the Linf norm in vectors. Thanks to Jake Mannix.
|
|
|
|
o MATH-324: Fixed a convergence discrepancy with respect to theory in Gragg-Bulirsch-Stoer
|
|
|
|
integrator. Thanks to Vincent Morand.
|
|
|
|
o Fixed a wrong dimension check in SVD solver. Thanks to Dimitri Pourbaix.
|
|
|
|
o MATH-313: Added composition features for real functions. Thanks to Jake Mannix.
|
|
|
|
o MATH-312: Added mapping and iteration methods to vectors. Provided a default implementation
|
|
|
|
for the numerous simple methods in the RealVectorInterface. Thanks to Jake Mannix.
|
|
|
|
o MATH-322: Fixed an error in handling very close events in ODE integration.
|
|
|
|
o MATH-305: Fixed an overflow error in MathUtils.distance that was causing KMeansPlusPlusClusterer
|
|
|
|
to fail with a NullPointerException when component distances between points
|
|
|
|
exceeded Integer.MAXVALUE. Thanks to Erik van Ingen.
|
|
|
|
o MATH-318: Fixed an index computation error in eigen decomposition. Once again, kudos to Dimitri
|
|
|
|
for debugging this. Thanks to Dimitri Pourbaix.
|
|
|
|
o MATH-308: Fixed an ArrayIndexOutOfBoundsException in eigen decomposition. Kudos to Dimitri
|
|
|
|
for debugging this, it was really difficult. Thanks to Dimitri Pourbaix.
|
|
|
|
o MATH-309: Fixed parameter test in RandomDataImpl#nextExponential. The method now throws
|
|
|
|
IllegalArgumentException for mean = 0. Thanks to Mikkel Meyer Andersen.
|
|
|
|
o MATH-306: Removed dead code from Complex#divide. Thanks to Joerg Huber.
|
|
|
|
o MATH-294: Fixed implementation of RandomDataImpl#nextPoisson by implementing an alternative
|
|
|
|
algorithm for large means.
|
|
|
|
o MATH-298: Fixed implementation of EmpiricalDistributionImpl#getUpperBounds to match
|
|
|
|
interface contract. Added getGeneratorUpperBounds method to
|
|
|
|
EmpiricalDistributionImpl providing previous behavior.
|
|
|
|
o MATH-296: Fixed wrong results on Loess interpolation, also added a way to set weights
|
|
|
|
for smoothing and to ignore zero weights for coefficients computation Thanks to Eugene Kirpichov.
|
|
|
|
o MATH-293: Fixed a OutOfBoundException in simplex solver when some constraints are tight. Thanks to Benjamin McCann.
|
|
|
|
o MATH-291: Fixed misleading number formats in error messages for adaptive
|
|
|
|
stepsize integrators. Thanks to Sebb.
|
|
|
|
o MATH-290: Fixed a NullPointerException in simplex solver when no solution is possible
|
|
|
|
and some constraints are negative. Thanks to Benjamin McCann.
|
|
|
|
o MATH-289: Removed an unused argument in a private method in simplex solver.
|
|
|
|
o MATH-288: Fixed an error induced by entries set to 0 in simplex solver. Thanks to Benjamin McCann.
|
|
|
|
o MATH-286: Fixed an error leading the simplex solver to compute the right solution
|
|
|
|
but return another one. Thanks to Benjamin McCann.
|
|
|
|
o MATH-283: Prevent infinite loops in multi-directional direct optimization method when
|
|
|
|
the start point is exactly at the optimal point. Thanks to Michael Nischt.
|
|
|
|
o MATH-297: Prevent possible zero divides on eigenvectors of indefinite matrices Thanks to Axel Kramer.
|
2009-08-01 15:01:59 -04:00
|
|
|
|
2009-07-19 12:47:56 -04:00
|
|
|
Changes:
|
2010-03-24 21:23:23 -04:00
|
|
|
o MATH-356: Added method to clear the list of observations in CurveFitter.
|
2010-03-23 19:45:27 -04:00
|
|
|
o MATH-332: Added density functions to remaining continuous distributions (F, T, Weibull, Cauchy).
|
|
|
|
As of Math 2.1, all continuous distributions implement density functions. The HasDensity
|
|
|
|
interface has been deprecated and in version 3.0, density(double) will be added to the
|
|
|
|
ContinuousDistribution interface. Thanks to Mikkel Meyer Andersen.
|
|
|
|
o MATH-337: Changed equals() methods to use instanceof check rather than catching ClassCastException;
|
|
|
|
this also allows some null checks to be omitted.
|
|
|
|
o MATH-336: Removed unnecessary null checks in equals methods.
|
|
|
|
o MATH-239: Added MathUtils methods to compute gcd and lcm for long arguments. Thanks to Christian Semrau.
|
|
|
|
o MATH-287: Added support for weighted univariate statistics. Thanks to Matthew Rowles.
|
|
|
|
o MATH-315: Added generationsEvolved property to GeneticAlgorithm to track the number of generations
|
|
|
|
evolved by the evolve() method before reaching the StoppingCondition. Thanks to Mikkel Meyer Andersen.
|
|
|
|
o MATH-311: Changed probability calculations for Binomial, Poisson, and Hypergeometric
|
|
|
|
distributions to use Catherine Loader's saddle point approximations. Thanks to Nipun Jawalkar.
|
|
|
|
|
|
|
|
|
|
|
|
For complete information on commons-math, including instructions on how to submit bug reports,
|
|
|
|
patches, or suggestions for improvement, see the commons-math website:
|
2009-07-19 12:47:56 -04:00
|
|
|
|
2010-03-23 19:45:27 -04:00
|
|
|
http://commons.apache.org/math/
|
2009-07-19 12:47:56 -04:00
|
|
|
|
|
|
|
|