comparison libs/commons-math-2.1/RELEASE-NOTES.txt @ 18:a705726863bc

commons-math-2.1 added
author dwinter
date Tue, 04 Jan 2011 10:03:11 +0100
parents
children
comparison
equal deleted inserted replaced
17:e8ccd518555b 18:a705726863bc
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