You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2013/01/09 17:09:08 UTC
svn commit: r1430927 - /commons/proper/math/trunk/RELEASE-NOTES.txt
Author: erans
Date: Wed Jan 9 16:09:07 2013
New Revision: 1430927
URL: http://svn.apache.org/viewvc?rev=1430927&view=rev
Log:
Preparing release 3.1.1.
Modified:
commons/proper/math/trunk/RELEASE-NOTES.txt
Modified: commons/proper/math/trunk/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/RELEASE-NOTES.txt?rev=1430927&r1=1430926&r2=1430927&view=diff
==============================================================================
--- commons/proper/math/trunk/RELEASE-NOTES.txt (original)
+++ commons/proper/math/trunk/RELEASE-NOTES.txt Wed Jan 9 16:09:07 2013
@@ -1,205 +1,22 @@
- Apache Commons Math 3.1 RELEASE NOTES
+ Apache Commons Math 3.1.1 RELEASE NOTES
-The Commons Math team is pleased to announce the release of commons-math3-3.1
+The Commons Math team is pleased to announce the release of commons-math3-3.1.1
The 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.0 JAR file.
-
-
-Most notable among the new features are: Framework for automatic
- differentiation, multivariate mixture model distribution, quaternions,
- Gauss integration framework, Hermite polynomial interpolation,
- eigenvalue decomposition of non-symmetric matrices, DBSCAN clustering.
- Most notable among the changes are: Greatly improved precision in
- the implementation of the Gamma and Beta special functions, optimizers
- API, deprecation of the sparse vector implementation.
-
-
-The minimal version of the Java platform required to compile and use
- 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).
+This is a point release: It fixes a bug that renders version 3.1 unusable
+ in some situations (see details below).
Changes in this version include:
-New features:
-o MATH-874: All contents of package "o.a.c.m.optimization" refactored into
- new packages "o.a.c.m.optimization" and "o.a.c.m.fitting".
-o MATH-897: DBSCAN clustering algorithm (in package "o.a.c.m.stat.clustering"). Thanks to Reid Hochstedler.
-o MATH-910: Added element-by-element addition, subtraction, multiplication and division
- (in class "o.a.c.m.util.MathArrays").
-o MATH-902: New constructor in the custom checker classes (package
- "o.a.c.m.optimization") for passing the number of iterations
- after which the "convergence test" will return true.
- This allows an algorithm to return the best solution found (after
- the user-defined number of iterations) even if it does not meet the
- other convergence criteria.
-o MATH-899: Added a new "SynchronizedRandomGenerator" that wraps another
- "RandomGenerator" with all methods being synchronized, thus
- rendering the code thread-safe (at some efficiency cost).
-o MATH-893: Add new "NaNStrategy": FAILED, used in "RankingAlgorithm" implementations.
- Any encountered input value that succeeds a "Double#isNaN" check, results in a
- "NotANumberException". Thanks to Patrick Meyer.
-o MATH-892: Add new constructor to "SpearmansCorrelation" class which allows to specify the
- "RankingAlgorithm" to be used.
-o MATH-889: Added a method to check points in the Interval class, with a tolerance for boundary.
-o MATH-878: Added G-test statistics. Thanks to Radoslav Tsvetkov.
-o MATH-883: New "getSquareRoot" method in class "EigenDecomposition" (package
- "o.a.c.m.linear").
-o MATH-816: New class for generic multivariate mixture model distributions. Thanks to Jared Becksfort.
-o MATH-474: Added new methods "merge(Frequency)", "merge(Collection<Frequency>)",
- "incrementValue(Comparable<?>, long)" and "entrySetIterator()" to the "Frequency" class. Thanks to Dan Checkoway.
-o MATH-860: Added matrix "block inversion" (in "o.a.c.m.linear.MatrixUtils").
-o MATH-863: New "Quaternion" class (package "o.a.c.m.complex"). Thanks to Julien Anxionnat.
-o MATH-866: Added method to test for floating-point numbers equality with a
- relative tolerance (class "o.a.c.m.util.Precision"). Thanks to Yannick Tanguy.
-o Added a NewtonRaphsonSolver that uses the new differentiation package
- to define the function to solve. This class is intended to replace the
- former NewtonSolver which is deprecated.
-o MATH-815: New interface for multivariate distributions.
- Added multivariate normal distribution. Thanks to Jared Becksfort.
-o Added a utility method to compute Stirling numbers of the second kind.
-o Added a new package dealing with differentials, for one or more free
- parameters and derivation order 1 or higher.
-o MATH-777: Added additional crossover policies: "CycleCrossover", "NPointCrossover",
- "OrderedCrossover" and "UniformCrossover". Thanks to Reid Hochstedler.
-o MATH-831: Added a new "RealMatrixFormat" class for input/output of RealMatrix instances.
- Default formatter instances for commons-math and octave have been added to
- "MatrixUtils".
-o MATH-827: New "IterativeLegendreGaussIntegrator" that performs the same automatic
- subdivision of the integration interval as "LegendreGaussIntegrator",
- but uses the classes from package "o.a.c.m.analysis.integration.gauss"
- to perform the Gauss integration on the sub-interval.
- Deprecated "LegendreGaussIntegrator".
-o MATH-797: New framework for Gauss integration schemes (in package
- "o.a.c.m.analysis.integration.gauss").
- Gauss-Legendre quadrature rules (of unlimited order) implemented in
- double precision, and high precision (using "BigDecimal").
-o MATH-764,MATH-823: For all distribution classes (in package "o.a.c.m.distribution"), a new
- constructor takes a "RandomGenerator" parameter.
- The "RandomDataImpl" instance has been superseded by this RNG.
- All "sample()" methods have been modified to use this RNG instead of
- delegating to the methods in "RandomData".
-o MATH-235: Added support for real asymmetric matrices to "EigenDecomposition".
-o MATH-768: Re-instated methods to find all complex roots of a polynomial (class
- "LaguerreSolver" in package "o.a.c.m.analysis.solvers").
-o MATH-810: Added accessors to the "Pair" class (package "o.a.c.m.util").
-o MATH-822: Added new constructors in "EigenDecomposition" and deprecated two constructors
- with unused parameters. Thanks to Jared Becksfort.
-o MATH-807: Added a new constructor to o.a.c.m.utils.IterationManager, allowing
- for the specification of a callback function in case the maximum
- number of iteration is reached.
-o A new HermiteInterpolator class allows interpolation of vector-valued
- functions using both values and derivatives of the function at sample
- points.
-o MATH-773: Added class FixedElapsedTime (new StoppingCondition for evolution of generations) to genetics package. Thanks to Reid Hochstedler.
-o MATH-756: Added classes Decimal64 and Decimal64Field, which are wrapper classes around primitive doubles.
- These classes implement FieldElement and Field, respectively.
Fixed Bugs:
-o MATH-904: Fixed "pow" method in class "FastMath". Thanks to Jeff Hain.
-o MATH-905: Fixed overflow in "sinh" and "cosh" methods in class "FastMath". Thanks to Jeff Hain.
-o MATH-890: Fixed naming inconsistencies between Interval and IntervalsSet classes.
-o MATH-759: Use getter/setter methods of super class for access to field "windowSize" in
- "ListUnivariateImpl". Thanks to sebb.
-o MATH-880: Improved construction of polygons with an additional constructor, more robust numerically.
-o MATH-778: Allow unlimited input values for "Dfp#multiply(int)". Thanks to Sébastien Brisard.
-o MATH-641: Added distance to point to 2D Line and Segment. Thanks to Curtis Jensen.
-o MATH-783: "PowellOptimizer" (package "o.a.c.m.optimization.direct") uses
- "BrentOptimizer" as its internal line search optimizer. The fix
- forces the convergence criterion of "BrentOptimizer" to use
- function values (instead of domain values).
-o MATH-865,MATH-867,MATH-868: Numerical accuracy problems arose in "CMAESOptimizer" (in package
- "o.a.c.m.optimization.direct") when large finite boundaries were
- specified, because the interval of allowed values was mapped to
- [0, 1]. This mapping was not necessary and its removal allows
- finite and infinite boundaries to be used together. Thanks to Nikolaus Hansen, Frank Hess.
-o Fixed some issues in nth root derivatives at 0.
-o MATH-848: Fixed transformation to a Schur matrix for certain input matrices.
-o MATH-864: "CMAESOptimizer": Solution was not constrained to lie within the
- provided boundaries. Thanks to Frank Hess.
-o MATH-666: Deprecated "FieldVector#getData()" in favor of "toArray()".
-o MATH-789: Fixed an error in rectangular Cholesky decomposition.
-o MATH-855: Added a check so that the returned point will always be the best one.
-o MATH-844: Generate an exception for rare ill-conditioned cases in "HarmonicFitter"
- guessing procedure (package "o.a.c.m.optimization.fitting").
-o MATH-828: Improved numerical stability of "SimplexSolver" by introducing Bland's rule
- to prevent cycling and a cutoff threshold to zero out very small values.
-o MATH-836: Fixed overflow detection for negative values in constructor of class "Fraction". Thanks to Baste Nesse Buanes.
-o MATH-835: Fixed overflow in method "percentageValue" in class "Fraction". Thanks to Baste Nesse Buanes.
-o MATH-622: Raised (to 10) the default number of fractional digits to print out.
-o MATH-762: Removed duplicate code.
-o MATH-578: Improve performance of quantile evaluation in "Percentile" class for cases
- with lots of equal values.
-o MATH-798: Added overridden method in "PolynomialFitter" (package
- "o.a.c.m.optimization.fitting") to limit the number of evaluations.
-o MATH-804: Parameterized "CurveFitter" class (package "o.a.c.m.optimization.fitting")
- with the type of the fitting function. Updated subclasses "PolynomialFitter",
- "HarmonicFitter", "GaussianFitter".
-o MATH-801: Fixed a problem when building rotations from two pairs of vectors. In very rare cases,
- due to numerical inaccuracies the computed quaternion was not normalized (some examples
- went as high as 1.0e8) and even after normalization, the quaternion was plain wrong.
-o MATH-644: Fix computation of upperCumulativeProbability in "HypergeometricDistribution" and
- cleanup of duplicate probability mass function. Thanks to marzieh.
-o MATH-791: In GammaDistribution, deprecated getAlpha() and getBeta(). Replaced with
- getShape() and getScale(), respectively.
-o MATH-793: Use inline computation for OrderedTuple hash code. Thanks to Sebb.
-o MATH-718: Use modified Lentz-Thompson algorithm for continued fraction evaluation to avoid
- underflows.
-o MATH-780: Fixed a wrong assumption on BSP tree attributes when boundary collapses to a too
- small polygon at a non-leaf node.
-o MATH-787: Put serialization back for PointValuePair and PointVectorValuePair.
-o MATH-627: Avoid superfluous null check when using iterators in RealVector and ArrayRealVector. Thanks to Arne Plöse.
-o MATH-781: Use epsilon instead of ulp in floating-point comparison when dropping columns after
- phase 1 in SimplexSolver. Thanks to Scheiber ErnÅ.
-o MATH-721: Added a workaround for an OpenJDK issue on sparc solaris with too small constants.
-o MATH-779: Fixed ListPopulation#iterator to return an unmodifiable iterator. Thanks to Reid Hochstedler.
-o MATH-775: Cleanup of ListPopulation to consistently enforce the population limit. Thanks to Reid Hochstedler.
-o MATH-776: Use same range check in constructor for ElitisticListPopulation as in corresponding setter. Thanks to Reid Hochstedler.
-o MATH-767: Fixed unbalanced use of code tags in javadoc of several classes. Thanks to Dennis Hendriks.
-
-Changes:
-o MATH-672: Added methods to EmpiricalDistribution to implement the RealDistribution
- interface.
-o MATH-902: Created a "maximum number of iterations" stopping criterion in the
- convergence checkers (package "o.a.c.m.optimization") that allows the
- optimizers to return the "current best point" even if the convergence
- criteria are not met. Thanks to Bruce A. Johnson.
-o MATH-849: Accuracy improvements of Gamma.logGamma, and implementation of
- Gamma.gamma. Both new implementations are based on the NSWC
- Library of Mathematical Functions.
-o MATH-906: Use "NaNStrategy#FAILED" as default strategy in "NaturalRanking". Thanks to Patrick Meyer.
-o MATH-884: Added "isSymmetric" and "checkSymmetric" in "MatrixUtils" (package
- "o.a.c.m.linear").
-o MATH-885: Moved private array argument validation methods from ChiSquareTest to MathArrays.
-o MATH-859: Clarified definition of isSupportXxxBoundInclusive in RealDistribution
- interface, made code consistent with the definition, and deprecated
- these methods, marking for removal in 4.0.
-o MATH-841: Performance improvement in computation of the greatest common divisor
- (in class "o.a.c.m.util.ArithmeticUtils"). Thanks to Sebastien Riou.
-o MATH-850: Added RandomDataGenerator to replace RandomDataImpl and deprecated
- RandomData interface and RandomDataImpl class. Deprecated
- nextInversionDeviate methods from RandomDataImpl class. Ensured that
- all nextXxx methods in RandomDataImpl/RandomDataGenerator use the
- configured RandomGenerator.
-
-Removed:
-o MATH-796: Removed unused fields LocalizedFormats.ALPHA and LocalizedFormats.BETA. This is
- an acceptable compatibility break, as these fields are only meant for internal use.
+o MATH-924: Added a (minimal) "DiagonalMatrix" implementation, such that the
+ case of a large number of uncorrelated observations is handled
+ efficiently.
+
+
For complete information on Commons Math, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Math website: