18
|
1
|
|
2
|
|
3 Apache Commons Math 2.1 RELEASE NOTES
|
|
4
|
|
5 This is primarily a maintenance release, but it also includes new features and enhancements.
|
|
6 Users of version 2.0 are encouraged to upgrade to 2.1, as this release includes some important
|
|
7 bug fixes. See the detailed list of changes below for full description of all bug fixes and
|
|
8 enhancements.
|
|
9
|
|
10 This release contains some minor API compatibility breaks with version 2.0:
|
|
11 --------------------------------------------------------------------------
|
|
12 - the return type of RealVector.copy() has been changed to AbstractRealVector
|
|
13 - the no-argument constructor of MatrixUtils() has been made private
|
|
14 - the mapXxxToSelf methods of OpenMapRealVector have been removed and some method return types
|
|
15 have been changed in this class
|
|
16 - new methods have been added to the RealVector interface
|
|
17 - several fields in AdaptiveStepSizeIntegrator have been made final
|
|
18 - DummyStepInterpolator requires an additional argument for one of its constructors
|
|
19 - some protected fields have been removed from AbstractLeastSquaresOptimizer,
|
|
20 AbstractScalarDifferentiableOptimizer and AbstractLinearOptimizer
|
|
21 - the isOptimal(SimplexTableau) method has been removed from SimplexSolver
|
|
22
|
|
23 Changes in this version include:
|
|
24
|
|
25 New features:
|
|
26 o MATH-357: Implementation of bicubic interpolation.
|
|
27 o Added a way to compute both the final state in an Initial Value Problem (IVP)
|
|
28 for Ordinary Differential Equations (ODE) and its derivatives with respect to
|
|
29 initial state and with respect to some problem parameters. This allows wrapping
|
|
30 ODE solvers into optimization or root finding algorithms, which in turn can be
|
|
31 used to solve Boundary Value Problems (BVP). There are no implementations (yet)
|
|
32 of BVP solvers in the library.
|
|
33 o MATH-323: Added SemiVariance statistic. Thanks to Larry Diamond.
|
|
34 o MATH-341: Added a warning in the getCoefficients method documentation for
|
|
35 PolynomialFunctionLagrangeForm. Computation may be ill-conditioned
|
|
36 so this method should be used with care.
|
|
37 o MATH-340: Fixed an error in BigFraction multiplication for large numerators that don't
|
|
38 fit in a primitive int.
|
|
39 o MATH-334: Added min/max getters for real vectors (not yet in the RealVector interface for
|
|
40 compatibility purposes, but in the AbstractRealVector abstract class).
|
|
41 o MATH-321: Singular Value Decomposition now computes either the compact SVD (using only
|
|
42 positive singular values) or truncated SVD (using a user-specified maximal
|
|
43 number of singular values).
|
|
44 o MATH-300: Added support for multidimensional interpolation using the robust microsphere algorithm. Thanks to Gilles Sadowski.
|
|
45 o MATH-287: Added support for weighted descriptive statistics. Thanks to Matthew Rowles.
|
|
46 o Added normalizeArray method to MathUtils.
|
|
47
|
|
48 Fixed Bugs:
|
|
49 o MATH-360: Fix use of wrong variable in SmoothingBicubicSplineInterpolatorTest.testPreconditions()
|
|
50 o MATH-335: Fraction.hashCode() implementation was not fully consistent with Fraction.equals().
|
|
51 Changed hashCode() to use fields directly to agree with equals().
|
|
52 o MATH-282: Resolved multiple problems leading to inaccuracy and/or failure to compute Normal,
|
|
53 ChiSquare and Poisson probabilities, Erf and Gamma functions. Made Brent solver
|
|
54 absolute accuracy configurable for all continuous distributions.
|
|
55 o MATH-347: Fixed too stringent interval check in Brent solver: initial guess is now
|
|
56 allowed to be at either interval end
|
|
57 o MATH-358: Fixed an error in events handling in ODE solvers. In some rare cases, events
|
|
58 occurring close to a step start were handled without truncating the step, making
|
|
59 them appear as is they occurred close to the step end
|
|
60 o Fixed a problem with getInterpolatedDerivatives returning zero derivatives when
|
|
61 an ODE step handler is configured to not use interpolation. It now returns a
|
|
62 constant but non-zero value consistent with at least one point inside the step
|
|
63 o MATH-344: Fixed wrong return values when enpoints are roots in Brent solver with
|
|
64 a user provided initial guess
|
|
65 o MATH-343: Fixed a missing bracketing check of initial interval in Brent solver.
|
|
66 o MATH-342: In SVD, the matrices passed to EigenDecomposition are now symmetric
|
|
67 by construction (rather than simply by definition). In EigenDecomposition,
|
|
68 once the tridiagonal form is obtained, the non-significant elements are
|
|
69 set to 0.
|
|
70 o MATH-333: A EigenDecompositionImpl simplified makes it possible to compute
|
|
71 the SVD of a singular matrix (with the right number of elements in
|
|
72 the diagonal matrix) or a matrix with singular value(s) of multiplicity
|
|
73 greater than 1.
|
|
74 o Fixed a spurious exception in EigenDecompositionImpl when a 3x3 block
|
|
75 had two identical eigenvalues.
|
|
76 o MATH-338: Fixed automatic step initialization in embedded Runge-Kutta integrators.
|
|
77 The relative tolerance setting was never used, only the absolute tolerance
|
|
78 was used. Thanks to Vincent Morand.
|
|
79 o MATH-329: Fixed regression in Frequency.getPct(Object) introduced in 2.0. Cumulative
|
|
80 percent was being returned for Object arguments in place of percent.
|
|
81 o MATH-320: Fixed Singular Value Decomposition solving of singular systems.
|
|
82 o MATH-326: Fixed a wrong implementation of the Linf norm in vectors. Thanks to Jake Mannix.
|
|
83 o MATH-324: Fixed a convergence discrepancy with respect to theory in Gragg-Bulirsch-Stoer
|
|
84 integrator. Thanks to Vincent Morand.
|
|
85 o Fixed a wrong dimension check in SVD solver. Thanks to Dimitri Pourbaix.
|
|
86 o MATH-313: Added composition features for real functions. Thanks to Jake Mannix.
|
|
87 o MATH-312: Added mapping and iteration methods to vectors. Provided a default implementation
|
|
88 for the numerous simple methods in the RealVectorInterface. Thanks to Jake Mannix.
|
|
89 o MATH-322: Fixed an error in handling very close events in ODE integration.
|
|
90 o MATH-305: Fixed an overflow error in MathUtils.distance that was causing KMeansPlusPlusClusterer
|
|
91 to fail with a NullPointerException when component distances between points
|
|
92 exceeded Integer.MAXVALUE. Thanks to Erik van Ingen.
|
|
93 o MATH-318: Fixed an index computation error in eigen decomposition. Once again, kudos to Dimitri
|
|
94 for debugging this. Thanks to Dimitri Pourbaix.
|
|
95 o MATH-308: Fixed an ArrayIndexOutOfBoundsException in eigen decomposition. Kudos to Dimitri
|
|
96 for debugging this, it was really difficult. Thanks to Dimitri Pourbaix.
|
|
97 o MATH-309: Fixed parameter test in RandomDataImpl#nextExponential. The method now throws
|
|
98 IllegalArgumentException for mean = 0. Thanks to Mikkel Meyer Andersen.
|
|
99 o MATH-306: Removed dead code from Complex#divide. Thanks to Joerg Huber.
|
|
100 o MATH-294: Fixed implementation of RandomDataImpl#nextPoisson by implementing an alternative
|
|
101 algorithm for large means.
|
|
102 o MATH-298: Fixed implementation of EmpiricalDistributionImpl#getUpperBounds to match
|
|
103 interface contract. Added getGeneratorUpperBounds method to
|
|
104 EmpiricalDistributionImpl providing previous behavior.
|
|
105 o MATH-296: Fixed wrong results on Loess interpolation, also added a way to set weights
|
|
106 for smoothing and to ignore zero weights for coefficients computation Thanks to Eugene Kirpichov.
|
|
107 o MATH-293: Fixed a OutOfBoundException in simplex solver when some constraints are tight. Thanks to Benjamin McCann.
|
|
108 o MATH-291: Fixed misleading number formats in error messages for adaptive
|
|
109 stepsize integrators. Thanks to Sebb.
|
|
110 o MATH-290: Fixed a NullPointerException in simplex solver when no solution is possible
|
|
111 and some constraints are negative. Thanks to Benjamin McCann.
|
|
112 o MATH-289: Removed an unused argument in a private method in simplex solver.
|
|
113 o MATH-288: Fixed an error induced by entries set to 0 in simplex solver. Thanks to Benjamin McCann.
|
|
114 o MATH-286: Fixed an error leading the simplex solver to compute the right solution
|
|
115 but return another one. Thanks to Benjamin McCann.
|
|
116 o MATH-283: Prevent infinite loops in multi-directional direct optimization method when
|
|
117 the start point is exactly at the optimal point. Thanks to Michael Nischt.
|
|
118 o MATH-297: Prevent possible zero divides on eigenvectors of indefinite matrices Thanks to Axel Kramer.
|
|
119
|
|
120 Changes:
|
|
121 o MATH-356: Added method to clear the list of observations in CurveFitter.
|
|
122 o MATH-332: Added density functions to remaining continuous distributions (F, T, Weibull, Cauchy).
|
|
123 As of Math 2.1, all continuous distributions implement density functions. The HasDensity
|
|
124 interface has been deprecated and in version 3.0, density(double) will be added to the
|
|
125 ContinuousDistribution interface. Thanks to Mikkel Meyer Andersen.
|
|
126 o MATH-337: Changed equals() methods to use instanceof check rather than catching ClassCastException;
|
|
127 this also allows some null checks to be omitted.
|
|
128 o MATH-336: Removed unnecessary null checks in equals methods.
|
|
129 o MATH-239: Added MathUtils methods to compute gcd and lcm for long arguments. Thanks to Christian Semrau.
|
|
130 o MATH-287: Added support for weighted univariate statistics. Thanks to Matthew Rowles.
|
|
131 o MATH-315: Added generationsEvolved property to GeneticAlgorithm to track the number of generations
|
|
132 evolved by the evolve() method before reaching the StoppingCondition. Thanks to Mikkel Meyer Andersen.
|
|
133 o MATH-311: Changed probability calculations for Binomial, Poisson, and Hypergeometric
|
|
134 distributions to use Catherine Loader's saddle point approximations. Thanks to Nipun Jawalkar.
|
|
135
|
|
136
|
|
137 For complete information on Commons Math, including instructions on how to submit bug reports,
|
|
138 patches, or suggestions for improvement, see the Apache Commons Math website:
|
|
139
|
|
140 http://commons.apache.org/math/
|
|
141
|
|
142
|