| |
| Apache Commons Math 3.4 RELEASE NOTES |
| |
| The Apache Commons Math team is pleased to announce the release of commons-math3-3.4 |
| |
| The Apache Commons Math project is a library of lightweight, self-contained mathematics |
| and statistics components addressing the most common practical problems not immediately |
| available in the Java programming language or commons-lang. |
| |
| This is a minor release: It combines bug fixes and new features. |
| Changes to existing features were made in a backwards-compatible |
| way such as to allow drop-in replacement of the v3.3 JAR file. |
| |
| Most notable among the new features are: |
| new distributions (Gumbel, Laplace, Logistic, Nakagami), and |
| improvements on percentiles algorithms (better handling for NaNs |
| in the regular algorithm, plus a new storeless implementation). |
| Bicubic and tricubic interpolators have been fixed and new |
| implementations added. There have been numerous bug fixes and |
| several improvements on performances or robustness. See below |
| for a full list. |
| |
| The minimum version of the Java platform required to compile and use |
| Apache Commons Math is Java 5. |
| |
| Users are encouraged to upgrade to this version as this release not |
| only includes bug fixes but also deprecates numerous classes and |
| methods that will be deleted from the next major release (4.0). |
| |
| |
| Caveat: |
| 1. The implementation of the BOBYQA optimization algorithm is in alpha |
| state (cf. MATH-621): Many code paths are untested, and we are looking |
| for volunteers to improve the code readability, robustness and performance |
| and to extend the unit tests suite. |
| 2. A few methods in the FastMath class are in fact slower that their |
| counterpart in either Math or StrictMath (cf. MATH-740 and MATH-901). |
| |
| Changes in this version include: |
| |
| New features: |
| o MATH-1066: Added Bessel functions of the first kind, based on NetLib implementation. Thanks to Brian Wignall. |
| o MATH-1180: Method to create a sequence of integers (in "o.a.c.m.util.MathArrays"). |
| o MATH-1172: New class "SimpleCurveFitter": Boiler-plate code to allow fitting of |
| a user-defined parametric function. |
| o MATH-1173: New classes "TricubicInterpolatingFunction" and "TricubicInterpolator" to |
| replace "TricubicSplineInterpolatingFunction" and "TricubicSplineInterpolator". |
| o MATH-1166: New classes "BicubicInterpolatingFunction" and "BicubicInterpolator" to |
| replace "BicubicSplineInterpolatingFunction" and "BicubicSplineInterpolator". |
| o Boundary attributes in regions now provides the BSP tree nodes that |
| were used to split the sub-hyperplane forming the boundary part of the facet. |
| o MATH-1144: Interface to allow parameter validation in "o.a.c.m.fitting.leastsquares": |
| the point computed by by the optimizer can be modified before evaluation. |
| o MATH-1154: Changed classes in the inference package that instantiate distributions to |
| pass null RandomGenerators to avoid initialization overhead for the default |
| generator. |
| o MATH-1156: Added all Java 8 StrictMath methods to FastMath, so FastMath remains compatible |
| with newer Java versions. |
| o MATH-1139: Added Gumbel, Laplace, Logistic and Nakagami distributions. Thanks to Alexey Volkov. |
| o MATH-1120: Added several different estimation types and NaN handling strategies for Percentile. Thanks to Venkatesha Murthy. |
| o MATH-418: Added implementation of PSquare algorithm to estimate percentiles without |
| storing data in memory (i.e. as StorelessUnivariateStatistic). Thanks to Venkatesha Murthy. |
| |
| Fixed Bugs: |
| o MATH-1142: Improve performance of kalman gain calculation in "KalmanFilter" by |
| directly solving a linear system rather than computing the matrix |
| inverse. Thanks to Arne Schwarz. |
| o MATH-1181: Fixed integer overflow in KolmogorovSmirnovTest causing 2-sample test |
| to use exact method when the product of the sample sizes exceeds |
| Integer.MAX_VALUE, resulting in effectively hung execution. |
| o MATH-1178: Fixed example in userguide ("stat" section). Thanks to Dmitriy. |
| o MATH-1175: Fixed inverse cumulative probability of 0 in "LaplaceDistribution". Thanks to Karsten Loesing. |
| o MATH-1174: Fixed a problem with too thin polygons considered to have infinite size. |
| o MATH-1162: Fixed a problem with vanishing cut sub-hyperplanes during BSP tree merging. |
| o MATH-1167: "o.a.c.m.stat.regression.OLSMultipleLinearRegression": Use threshold |
| when performing "QRDecomposition". Thanks to Neil Ireson. |
| o MATH-1165: "FuzzyKMeansClusterer" has thrown an exception in case one of the data |
| points was equal to a cluster center. Thanks to Pashutan Modaresi. |
| o MATH-1160: Provide access to state derivatives in ContinuousOutputModel. |
| o MATH-1138: Fixed bicubic spline interpolator, using Akima splines. Thanks to Hank Grabowski. |
| o MATH-1147: Added statistics missing from toString method in SummaryStatistics. |
| o MATH-1152: Improved performance of "EnumeratedDistribution#sample()" by caching |
| the cumulative probabilities and using binary rather than a linear search. Thanks to Andras Sereny. |
| o MATH-1148: "MonotoneChain" did not take the tolerance factor into account when |
| sorting the input points. In case of collinear points this could result |
| in a "ConvergenceException" when computing the hull. Thanks to Guillaume Marceau. |
| o MATH-1151: Interface "ValueAndJacobianFunction" is a precondition for lazy |
| evaluation (in "o.a.c.m.fitting.leastsquares"). |
| o MATH-1145: Fix potential integer overflows in "MannWhitneyUTest" when providing |
| large sample arrays. Thanks to Anders Conbere. |
| o MATH-1149: Fixed potential null pointer dereferencing in constructor of |
| "DummyStepInterpolator(DummyStepInterpolator)". Thanks to M Kim. |
| o MATH-1136: Fixed BinomialDistribution to deal with degenerate cases correctly. Thanks to Aleksei Dievskii. |
| o MATH-1135: "MonotoneChain" failed to generate a convex hull if only a minimal hull |
| shall be created (includeCollinearPoints=false) and collinear hull points |
| were present in the input. Thanks to Guillaume Marceau. |
| o MATH-1131: Improve performance of "KolmogorovSmirnovTest#kolmogorovSmirnovTest(...)" for |
| large samples. Also changed implementation for large n to use Pelz-Good |
| approximation. Thanks to Schalk W. Cronjé. |
| o MATH-1134: "BicubicSplineInterpolatingFunction": all fields made final and initialized in |
| the constructor. Added flag to request initialization, or not, of the internal |
| data needed for partial derivatives. |
| o MATH-984: Constrained EmpiricalDistribution sample/getNextValue methods to return |
| values within the range of the data; correctly linked RandomGenerator to |
| superclass so that RealDistribution reseedRandomGenerator method works. |
| o MATH-1129: "Percentile": wrong sorting in the presence of NaN. |
| o MATH-1127: Fixed overflow in Precision.equals with ulps (both double and float versions). |
| o MATH-1125: Performance improvements for Student's t-distribution. Thanks to Ajo Fod. |
| o MATH-1123: Fixed NullPointerException when chopping-off a sub-hyperplane |
| that is exactly at a region boundary. Thanks to Aurélien Labrosse. |
| o MATH-1121: "BrentOptimizer": increment base class iteration counter. Thanks to Ajo Fod. |
| |
| Changes: |
| o Spurious vertices in the middle of otherwise straight edges are now |
| filtered out when rebuilding polygons boundaries from BSP trees. |
| o MATH-1128: Added lazy evaluation to "LeastSquaresFactory" (in "o.a.c.m.fitting.leastsquares") |
| to avoid evaluating the model when the optimization algorithm does not actually |
| require it. |
| |
| |
| For complete information on Apache Commons Math, including instructions on how to submit bug reports, |
| patches, or suggestions for improvement, see the Apache Commons Math website: |
| |
| http://commons.apache.org/proper/commons-math/ |
| |
| |