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 2012/03/02 16:29:37 UTC
svn commit: r1296250 - in /commons/proper/math/trunk: RELEASE-NOTES.txt
src/site/xdoc/changes.xml
Author: erans
Date: Fri Mar 2 15:29:37 2012
New Revision: 1296250
URL: http://svn.apache.org/viewvc?rev=1296250&view=rev
Log:
Preparing release 3.0.
Modified:
commons/proper/math/trunk/RELEASE-NOTES.txt
commons/proper/math/trunk/src/site/xdoc/changes.xml
Modified: commons/proper/math/trunk/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/RELEASE-NOTES.txt?rev=1296250&r1=1296249&r2=1296250&view=diff
==============================================================================
--- commons/proper/math/trunk/RELEASE-NOTES.txt (original)
+++ commons/proper/math/trunk/RELEASE-NOTES.txt Fri Mar 2 15:29:37 2012
@@ -1,142 +1,375 @@
-
+The Commons Math team is pleased to announce the commons-math3-3.0 release!
- Apache Commons Math 2.1 RELEASE NOTES
-
-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.
-
-This release contains some minor API compatibility breaks with version 2.0:
- --------------------------------------------------------------------------
- - 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
+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.
Changes in this version include:
New features:
-o MATH-357: Implementation of bicubic interpolation.
-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.
+o The fast cryptographically secure pseudorandom number generator ISAAC has been added. Issue: MATH-710. Thanks to Eldar Agalarov.
+o The reset method in StepHandler interface has been renamed init and is provided
+ more information on the integration by the calling integrator. A similar init method
+ has been added to the EventHandler interface. Issue: MATH-714.
+o Added array constructor and getter for Vector2D and Vector3D. Thanks to Jan Kotek.
+o Added applyTo and applyInverseTo methods in the Rotation class that
+ handle directly arrays instead of Vector3D instances. Thanks to Jan Kotek.
+o Added stable random generator based on Chambers-Mallows-Stuck method. Issue: MATH-462. Thanks to Pavel Ryzhof.
+o Method "addToEntry" in "RealVector". Issue: MATH-685.
+o Added Jacobi polynomials. Issue: MATH-687. Thanks to Romain di Costanzo.
+o Added "shift" method to compute the coefficients of a new polynomial
+ whose values are the same as those of another polynomial but computed
+ at a shifted point. Issue: MATH-683. Thanks to Romain di Costanzo.
+o Added a getter to allow retrieving the exception related to an exception context
+ provider.
+o Unmodifiable view of a "RealVector". Issue: MATH-646. Thanks to Sébastien Brisard.
+o Added a 3D SubLine class. Issue: MATH-593.
+o In "SingularValueDecompositionImpl", added accessor for the inverse of the condition number. Issue: MATH-602. Thanks to Greg Serijevski.
+o Added a few linearCombination utility methods in MathUtils to compute accurately
+ linear combinations a1.b1 + a2.b2 + ... + an.bn taking great care to compensate
+ for cancellation effects. This both improves and simplify several methods in
+ euclidean geometry classes, including linear constructors, dot product and cross
+ product.
+o Simple benchmark utility (new class "PerfTestUtils" added to test sources in src/test). Issue: MATH-637.
+o Added a solver for Dfp-based (i.e. high accuracy) functions. Issue: MATH-636.
+o Added a Brent-like solver that has higher (user specified) order and does
+ bracket selection on the result: BracketingNthOrderBrentSolver. Issue: MATH-635.
+o Added a few shortcut methods and predicates to Dfp (abs, isZero,
+ negativeOrNull, strictlyNegative, positiveOrNull, strictlyPositive).
+o "AbstractRealMatrix" inherits from "RealLinearOperator". Issue: MATH-633. Thanks to Sébastien Brisard.
+o Linear combination of vectors: "RealVector" interface updated, implemented
+ in "AbstractRealVector" and "ArrayRealVector". Issue: MATH-613. Thanks to Sébastien Brisard.
+o Overloaded methods (add, subtract, multiply, divide) to take a "double" parameter
+ (as a complex number with zero imaginary part).
+ Code and Javadoc cleanup.
+ Added "valueOf" methods. Issue: MATH-577. Thanks to Arne Plöse.
+o Framework for iterative linear solvers. Issue: MATH-581. Thanks to Sébastien Brisard.
+o Modified "SecantSolver" to comply with the original algorithm. Added several
+ secant-based solvers. Added a way to select the side of the root with bracketing
+ solvers. Issue: MATH-599. Thanks to Dennis Hendriks.
+o K-means++ clustering can now run multiple trials Issue: MATH-548.
+o Added a way to compute sub-lines intersections, considering sub-lines either
+ as open sets or closed sets Issue: MATH-591.
+o Added a way to build a sub-line from its endpoints, and to retrieve the endpoints
+ from a sub-line Issue: MATH-592.
+o New "filter" package. Initial implementation of Kalman filter. Issue: MATH-485. Thanks to Thomas Neidhart.
+o Added a consistent classes hierarchy for Euclidean spaces in dimension 1, 2 and 3.
+o A complete generic implementation of Binary Space Partitioning Trees (BSP trees)
+ has been added. A few specializations of this implementation are also provided
+ for 1D, 2D and 3D Euclidean geometry. This allows support for arbitrary
+ intervals sets (1D), polygons sets (2D) and polyhedrons sets (3D) with all
+ sets operations (union, intersection, symmetric difference, difference, complement),
+ with predicates (point inside/outside/on boundary, emptiness, other region contained),
+ with geometrical computation (barycenter, size, boundary size) and with conversions
+ from and to boundary representation. Issue: MATH-576.
+o Created an "ExceptionContext" class: It provides the customization feature of
+ "MathRuntimeException" without imposing a singly rooted hierarchy of the Comons
+ Math exceptions.
+ Thus, those exceptions now inherit from their Java standard counterparts (e.g.
+ "MathIllegalArgumentException" inherits from "IllegalArgumentException"). Issue: MATH-566.
+o Fixed conversion problems to/from 0 in Decimal Floating Point (Dfp) class. Issue: MATH-567. Thanks to Michel.
+o Added solve methods using double[][] to linear algebra decomposition solvers. Issue: MATH-564.
+o Added an interpolator adapter for data with known period. Issue: MATH-562.
+o Added a "rectangular" Cholesky decomposition for positive semidefinite matrices. Issue: MATH-541.
+o Added setters allowing to change the step size control parameters of adaptive
+ step size ODE integrators. Issue: MATH-563.
+o Added a compareTo method to MathUtils that uses a number of ulps as a
+ tolerance error, and works well on all numbers, including normals, subnormals,
+ signed zeroes, infinities and NaNs. Issue: MATH-557.
+o Added a consistency check for number of points with respect to the number
+ of clusters in Kmeans++ clustering Issue: MATH-436. Thanks to Thomas Neidhart.
+o Added two sided Kolmogorov-Smirnov distribution using modified
+ Marsaglia et al. (2003) implementation and quick decisions for certain
+ parameter areas according to Simard et al. (2011). Issue: MATH-437.
+o Added "power" method in "RealMatrix" and "FieldMatrix<T>"
+ interfaces and their default implementations in "AbstractRealMatrix"
+ and "AbstractFieldMatrix". Issue: MATH-435.
Fixed Bugs:
-o MATH-360: Fix use of wrong variable in SmoothingBicubicSplineInterpolatorTest.testPreconditions()
-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
-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
-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.
+o Added pre-computed arrays to speed up initial loading time for FastMath. Issue: MATH-650.
+o Fixed "doubleValue" and "floatValue" method in "BigFraction" when
+ numerator and denominator are larger than the range of the
+ corresponding primitive type. Issue: MATH-744. Thanks to Thundre.
+o Merged interface and implementation of statistical tests in
+ o.a.c.m.stat.inference package. Issue: MATH-739.
+o Relaxed test for equality in UnivariateStatisticAbstractTest. Issue: MATH-588.
+o Fixed a faulty test for zero in TridiagonalTransformer. Issue: MATH-652. Thanks to Greg Sterijevski.
+o Changed algorithm in computation of the covariance matrix in
+ "AbstractLeastSquares" (package "optimization.general"), from
+ "LUDecomposition" to "QRDecomposition". Issue: MATH-664.
+o Fixed rounding error in RandomDataImpl nextInt, nextLong methods causing lower
+ endpoints to be excluded when negative. Also improved robustness of nextUniform
+ for extreme values and changed its contract to throw IAE when provided bounds
+ are infinite or NaN. Issue: MATH-724. Thanks to Dennis Hendriks.
+o Fixed "offset by one" bug in "BOBYQAOptimizer". Issue: MATH-728. Thanks to Bruce A. Johnson.
+o Check first step size in embedded Runge-Kutta integrators, and truncate it if needed. Issue: MATH-727.
+o Modified setSeed methods in Bitstream generators (MersenneTwister and Well
+ generators) to clear the cache of normal deviates used by nextGaussian. Issue: MATH-723.
+o Fixed bracketing interval balancing in BracketingNthOrderBrentSolver. Issue: MATH-716.
+o Removed unused or duplicate utility methods from "MathUtils".
+ Math functions with "double" arguments were moved to class "FastMath". Issue: MATH-690.
+o Broke up bloated "MathUtils" class into "MathArrays", "Precision",
+ "ArithmeticUtils" classes. Issue: MATH-689.
+o Fixed array indexing error in Variance evaluate method for
+ computing the weighted variance of an array segment. Issue: MATH-704. Thanks to Thomas Niedhart.
+o Fixed case of unconstrained variables that still occur in the objective function
+ in simplex solver. Issue: MATH-713. Thanks to Thomas Neidhart.
+o Improved accuracy of Runge-Kutta based step interpolators near step start. Issue: MATH-705.
+o Fixed errors in SummaryStatistics addValue causing variance, mean, or
+ geometric mean statistics not to be updated if they have been overridden
+ using instances of commons-math supplied implementations. Issue: MATH-691.
+o Fixed BigFraction percentage method which did not work at all. Issue: MATH-709.
+o Fixed a bad interaction between step handlers and event handlers in
+ ODE integrators. Thanks to MATH-706.
+o Added adapters for simple bound constraints optimization that can be
+ used for all direct optimization methods, including the ones that do not
+ support constraints by themselves. Issue: MATH-196.
+o CMA-ES optimizer input sigma is now consistent with boundaries range units. Issue: MATH-702.
+o Fixed an event resetting issue in ODE. Issue: MATH-695.
+o Fixed an integer overflow in OpenMapRealMatrix. Issue: MATH-679. Thanks to Christopher Berner.
+o "FastMath": Use constant fields instead of recomputing them at method
+ call. Issue: MATH-688.
+o Faster "multiply" method in "Array2DRowRealMatrix". Code inspired
+ from the Jama project. Issue: MATH-676.
+o Replaced package.html with package-info.java for package documentation. Issue: MATH-445.
+o Added a getRuntimeClass method to the Field interface allowing to use a
+ complete hierarchy of fields sharing a common interface. Issue: MATH-284. Thanks to Klaus Hartlage.
+o The last remaining uses of OptimizationException have been replaced by unchecked
+ exceptions (UnboundSolutionException, NoFeasibleSolutionException,
+ MaxCountExceededException ...) Issue: MATH-457.
+o The checked ConvergenceException has been replaced by an unchecked ConvergenceException. Issue: MATH-487.
+o ODE step interpolation with Jacobians is now fully merged with
+ classical step interpolation. Issue: MATH-381. Thanks to Pascal Parraud.
+o Completely revamped the computation of Jacobians in ODE. This computation is now
+ included in the mainstream class hierarchy, not in a separate package anymore,
+ and it allows adding other types of equations to a main ODE, not only variational
+ equations for Jacobians computation. Issue: MATH-380. Thanks to Pascal Parraud.
+o In class "AbstractLeastSquaresOptimizer": Allow to specify a singularity
+ threshold in call to "getCovariances" method. Issue: MATH-664.
+o Dead code in FastMath.pow(double, double) and some improvement in test coverage. Issue: MATH-658. Thanks to Yannick TANGUY.
+o Removed "getData()" method from "RealVector" as it was redundant with
+ "toArray()". Issue: MATH-663.
+o Enabled reseeding of the random generators used by EmpiricalDistributionImpl
+ and ValueServer. Modified ValueServer to pass its RandomData instance to
+ the EmpiricalDistributionImpl that it creates when used in DIGEST_MODE, so
+ reseeding ValueServer works as expected. Issue: MATH-654.
+o Renamed "AbstractRealVector" to "RealVector". The interface was removed
+ in favour of its unique (abstract) implementation. Also removed several
+ methods with double[] arguments from AbstractRealVector. Issue: MATH-653.
+o Refactored integration API for consistency with solvers API. Now the main convergence
+ parameters are set in the constructor and remain fixed. Issue: MATH-501.
+o Added a maximal number of function evaluations to the integration method, similar
+ to what is done in the solvers API. Issue: MATH-464.
+o Fixed exceptions generated by "ebeMultiply" and "ebeDivide" in "OpenMapRealVector". Issue: MATH-645.
+o Made pseudo-inverse consistent with rank computation in SingularValueDecompositionImpl. Issue: MATH-601. Thanks to Chris Nix and Greg Serijevski.
+o Fixed a wrong detection of rotation axis versus vectors plane in Rotation constructor
+ using two vectors pairs. Issue: MATH-639.
+o Fixed bugs in AbstractRandomGenerator nextInt() and nextLong() default
+ implementations. Prior to the fix for this issue, these methods
+ generated only positive values. Issue: MATH-640.
+o Implemented faster generation of random gamma distributed values with
+ algorithm from Ahrens and Dieter (1972) for shape < 1 and
+ Marsaglia and Tsang (2001) otherwise. Issue: MATH-585.
+o Allow discrete events to be detected by ODE solvers also at step start. Issue: MATH-605. Thanks to Dennis Hendriks.
+o Rewritten SVD decomposition based on JAMA code. Issue: MATH-327,MATH-383,MATH-465,MATH-583,MATH-611. Thanks to Christopher Nix.
+o Complex add javadoc says that if either addend has NaN parts, the result
+ should be Complex.NaN. Prior to the fix for this issue, NaNs were propagated
+ only in real and imaginary parts individually. Issue: MATH-618. Thanks to Arne Plose.
+o Prevent step normalizer to output twice the last point in MULTIPLES mode. Issue: MATH-603. Thanks to Dennis Hendriks.
+o Removed the requiresDenseOutput method from the StepHandler interface. Now integrators always
+ consider dense output is required and set up the appropriate state interpolators, so step
+ handlers can rely on them. Issue: MATH-596,MATH-604.
+o Fixed javadoc for ODEIntegrator interface Issue: MATH-600.
+o Extended StepNormalizer with normalization mode and bounds settings. Issue: MATH-595. Thanks to Dennis Hendriks.
+o Implemented faster generation of random exponential distributed values with
+ algorithm from Ahrens and Dieter (1972): Computer methods for sampling
+ from the exponential and normal distributions. Issue: MATH-597.
+o Javadoc fixes in ODE. Issue: MATH-594. Thanks to Dennis Hendriks.
+o Added a way to specify a custom root solver to find events in ODE integration. Issue: MATH-586. Thanks to Dennis Hendriks.
+o Fixed error in javadoc describing Integer distribution inverse cumulative
+ probability API. Issue: MATH-540.
+o Fixed error in javadoc describing the behavior of the Percentile algorithm for
+ small percentiles in small datasets. Issue: MATH-582. Thanks to Christopher Nix.
+o Improved k-means++ clustering performances and initial cluster center choice. Issue: MATH-584. Thanks to Randall Scarberry.
+o Fixed tricube function implementation in Loess interpolator. Issue: MATH-504. Thanks to X. B..
+o Fixed documentation of statistics examples. Issue: MATH-568. Thanks to Christoph M. Friedrich.
+o Improved documentation of general optimization with a thorough example. Issue: MATH-507. Thanks to Ole Ersoy.
+o Replaced NullPointerException by NullArgumentException. Issue: MATH-403.
+o Improved javadoc for FastMath explaining the overhead at class loading and
+ the targeted use cases. Issue: MATH-579.
+o Allow outer product of vectors of different sizes. Issue: MATH-574.
+o Avoid some array copying in add and subtract ArrayFieldVector. Issue: MATH-573.
+o Fixed an unused constructor parameter in ArrayFieldVector. Issue: MATH-572.
+o Fixed initialization of multistep ODE integrators. Relying on the interpolation model
+ of the starter integrator inside only one step was wrong. The model may have a too
+ low order to compute high degrees derivatives in the Nordsieck vector. Now we use several
+ steps and use only grid points instead of interpolated points.
+o Fixed two errors in simplex solver when entries are close together or
+ when variables are not restricted to non-negative. Issue: MATH-434. Thanks to Thomas Neidhart.
+o Improved robustness of k-means++ algorithm, by tracking changes in points assignments
+ to clusters. Issue: MATH-547. Thanks to Thomas Neidhart.
+o Reduced cancellation errors in Vector3D.crossProduct Issue: MATH-554.
+o Fixed bug in "MultidimensionalCounter". Issue: MATH-552. Thanks to James Bence.
+o All unit tests have been converted to Junit 4. They need at least Junit 4.5 to run
+ (the ant and maven build systems are currently set to use Junit 4.8.2) Issue: MATH-423. Thanks to Gilles Sadowski.
+o Removed the ConvergingAlgorithm interface and ConvergingAlgorithmImpl class Issue: MATH-500. Thanks to Gilles Sadowski.
+o Fixed bug in "KMeansPlusPlusClusterer". Issue: MATH-546. Thanks to Nate Paymer.
+o Removed "HarmonicFunction" (in package "optimization.fitting");
+ superseded by class "HarmonicOscillator" (in package "analysis.function"). Issue: MATH-518.
+o Removed "GaussianFunction" and "GaussianDerivativeFunction" (in package
+ "optimization.fitting"); functionality moved to class "Gaussian" (in
+ package "analysis.function"). Issue: MATH-516.
+o Removed "ParametricGaussianFunction" (in package "optimization.fitting");
+ functionality moved to class "Gaussian" (in package "analysis.function"). Issue: MATH-514.
+o Implementation of the CMA-ES optimization algorithm. Issue: MATH-442. Thanks to Dietmar Wolz.
+o The interface "ParametricRealFunction" (in package "optimization.fitting") has
+ been renamed to "ParametricUnivariateRealFunction" and moved to package "analysis". Issue: MATH-513.
+o TestUtils is thread-hostile. Remove getters and setters, and make static variables final. Issue: MATH-505.
+o FastMath atan2 does not agree with StrictMath for special cases Issue: MATH-494.
+o Removed checked "MaxIterationsExceededException" (superseded by
+ "MaxCountExceededException" from package "exception"). Issue: MATH-492.
+o Removed checked "DimensionMismatchException". Replaced all occurrences by its
+ equivalent from package "exception". Issue: MATH-491.
+o FastMath acos fails when input abs value is less than about 5.7851920321187236E-300 - returns NaN Issue: MATH-489.
+o FastMath toRadian and toDegree don't handle large double numbers well Issue: MATH-486.
+o FastMath does not handle all special cases correctly Issue: MATH-483.
+o Fix ulp(Infinity) to return Infinity rather than NaN Issue: MATH-480.
+o FastMath.signum(-0.0) does not agree with Math.signum(-0.0) Issue: MATH-479.
+o FastMath is not an exact replacement for StrictMath
+ (partially fixed) Add signum(float), ulp(float) Issue: MATH-478.
+o FastMath.max(50.0f, -50.0f) => -50.0f; should be +50.0f
+ Fixed FastMath.max(float, float) so it returns correct value. Issue: MATH-482.
+o MATH-491 MathUtils.equals(double, double) does not work properly for floats
+ - add equivalent (float, float) methods and basic tests Issue: MATH-471.
+o Removed "MathException" from the "throws" clause of the "interpolate" method
+ of the interpolators interfaces (package "analysis.interpolation"). Issue: MATH-458.
+o In order to comply with the new runtime exceptions policy, the classes
+ "RealVectorFormat", "ComplexFormat", "Vector3DFormat" and "CompositeFormat"
+ do not inherit anymore from the Java standard "Format" class. Failed parsing
+ will result in the throwing of a "MathParseException".
+ "CompositeFormat" is now a utility class ("private" constructor). Issue: MATH-461.
+o By policy, all Commons Math exceptions must inherit from class
+ "MathRuntimeException". Issue: MATH-447.
+o For optimizers (package "optimization"), the number of allowed function
+ evaluations is passed as a parameter to the "optimize" method. Issue: MATH-454.
+o For solvers (package "analysis.solvers"), the number of allowed function
+ evaluations is passed as a parameter to the "solve" method. Issue: MATH-451.
+o Created a "MathRuntimeException" to serve as a base class for exception
+ types that need to wrap another (lower-level) exception. Issue: MATH-447.
+o Removed the ode.jacobians package. Issue: MATH-380.
+o Created a generic "Pair" class to replace the "AbstractMap.SimpleEntry"
+ that is only available in Java 6 and later. Issue: MATH-432.
+o Class "DirectSearchOptimizer" (and subclasses "NelderMead"
+ and "MultiDirectional") was refactored into new classes:
+ "SimplexOptimizer" and "AbstractSimplex" (and subclasses
+ "NelderMeadSimplex" and "MultiDirectionalSimplex"). The old
+ classes were deprecated and removed. Issue: MATH-428.
+o All distribution classes (in package "distribution") are immutable. Issue: MATH-349.
Changes:
-o MATH-356: Added method to clear the list of observations in CurveFitter.
-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 Apache Commons Math website:
+o Classes "CMAESOptimizer" and "BOBYQAOptimizer" inherit from
+ "BaseAbstractMultivariateSimpleBoundsOptimizer" (in package
+ "o.a.c.m.optimization.direct"). Issue: MATH-698.
+o Resources for error messages translations have been moved out of META-INF
+ folder in the jar, to avoid interferences with some build systems.
+o Removed "MathException" (from package "o.a.c.math"). Issue: MATH-488.
+o Removed "MathRuntimeException" (from package "o.a.c.math"). Issue: MATH-459.
+o Merged interface and implementation of EmpiricalDistribution. Issue: MATH-670.
+o Modified the genetics package to use localized exception messages. Issue: MATH-575.
+o Removed First, Third, Fourth moments from the public API.
+ These internally used statistics have non-standard definitions.
+ The classes remain, but now have package scope. Issue: MATH-694.
+o Added support for population variance in StatUtils, SummaryStatistics
+ and DescriptiveStatistics and clarified javadoc to make it clear that
+ 'variance' means sample variance. Issue: MATH-693.
+o Added interface and abstract class for supporting optimizers classes
+ that can take simple constraints into account. Issue: MATH-697.
+o Changed the default seed used for RandomDataImpl, AbstractWell and MersenneTwister
+ PRNGs to add the system identity hash code of the instance to the current system
+ time, so generators initialized with default seeds within system clock resolution
+ will generate different sequences. Changed the default non-secure generator used
+ by RandomDataImpl to Well19937c. Issue: MATH-701.
+o Default implementation for "addToEntry" and "multiplyEntry" in
+ "AbstractRealMatrix". Issue: MATH-696.
+o Replaced temporary matrices and entry mutators with double[][] arrays to speed computation
+ in loops within QRDecomposition, Bi- and TriDiagonalTransformer implementations. Issue: MATH-612. Thanks to Christopher Nix.
+o SimpleRegression implements UpdatingMultipleLinearRegression interface. Issue: MATH-607.
+o Added isMonotone methods in MathUtils. Optimized checkOrder method. Issue: MATH-675.
+o Added the ability to suppress the estimation of the intercept in SimpleRegression. Issue: MATH-649.
+o Removed completely MathUserException. Issue: MATH-195.
+o Use the refactored exceptions framework for ODE. Issue: MATH-488.
+o Added erf(double,double) to Erf and used this to improve tail probability
+ accuracy in NormalDistributionImpl. Issue: MATH-364. Thanks to Christian Winter.
+o Added storeless covariance implementation. Issue: MATH-449. Thanks to Patrick Meyer.
+o Eliminated extraneous constructor from SimpleRegression. Issue: MATH-648.
+o Eliminated pluggability of ChiSquaredDistribution used by ChiSquaredDistributionTest. Issue: MATH-506.
+o Made RandomGenerator configurable and reseedable in EmpiricalDistributionImpl. Issue: MATH-634.
+o Added methods to solve upper and lower triangular systems to MatrixUtils. Issue: MATH-624. Thanks to Greg Sterijevski.
+o Improved performance of nextInt(int) in BitsStreamGenerator. Issue: MATH-642.
+o Slightly more efficient implementation of basic operations in
+ "ArrayRealVector". Issue: MATH-623. Thanks to Arne Plöse.
+o Improved efficiency in RandomDataImpl, LaguerreSolver, FastMath and OutlineExtractor by
+ moving conditional code into blocks where it is needed. Issue: MATH-609. Thanks to Dave Brosius.
+o Changed MathUtils.round(double,int,int) to propagate rather than
+ wrap runtime exceptions. Instead of MathRuntimeException, this method
+ now throws IllegalArgumentException or ArithmeticException under
+ the conditions specified in the javadoc. Issue: MATH-555.
+o Added "cosine" method in "RealVector" interface and default implementation
+ in "AbstractRealVector". Issue: MATH-545.
+o All exceptions defined in Commons Math provide a context and a compound
+ message list. Issue: MATH-542.
+o Refactored "PolynomialFitter" (in package "optimization.fitting").
+ Added parametric function in "PolynomialFunction" (in package
+ "analysis.polynomials"). Issue: MATH-534.
+o Refactored "HarmonicFitter" (in package "optimization.fitting").
+ "HarmonicCoefficientsGuesser" removed. Issue: MATH-517.
+o Refactored "GaussianFitter" (in package "optimization.fitting").
+ The class now really fits a Gaussian function (whereas previously it was
+ fitting the sum of a constant and a Gaussian). Issue: MATH-512. Thanks to Ole Ersoy.
+o Create FastMath copySign methods Issue: MATH-496.
+o Replaced "ComposableFunction" and "BinaryFunction" (in package "analysis")
+ by a set of utilities in the new class "FunctionUtils" together with
+ independent function objects in the new "analysis.function" package.
+ Removed redundant "mapXxx" and "mapXxxToSelf" methods in "RealVector" and
+ "AbstractRealVector" (in package "linear"). Issue: MATH-430.
+o Refactoring of the "analysis.solvers" package. Issue: MATH-439.
+o Removed classes "FunctionEvaluationException", "MatrixVisitorException"
+ and "DerivativeException" (superseded by the new "MathUserException"). Issue: MATH-440.
+o Created "MatrixDimensionMismatchException" to replace
+ "InvalidMatrixException" (when the latter is used to signal that
+ matrices are not compatible for some operation).
+ Replaced "MatrixIndexException" with "OutOfRangeException" (when the
+ former is used to signal a row or column dimension mismatch). Issue: MATH-425.
+o Made "sample" methods part of the "IntegerDistribution" and
+ "ContinuousDistribution" interfaces. Issue: MATH-310.
+o Created an unchecked "FunctionEvaluationException".
+ Modified the "UnivariateRealFunction" interface: Removed the checked
+ "FunctionEvaluationException" from the signature of the "value" method. Issue: MATH-195.
+o Modified semantics: "equals" methods now consider that NaNs are not
+ equal (compliant with IEEE754).
+ Also, two adjacent floating point numbers are considered equal (this
+ is consistent with the fact that all real numbers between them can be
+ represented by either of the two). One consequence of that is that
+ "equals" is not transitive. Issue: MATH-370.
+o Removed methods referring to the concept of "iteration".
+ Removed interface methods to access the number of evaluations of the
+ gradient and Jacobian.
+ Added new "Incrementor" utility to be used as a bounded counter for
+ objective function evaluations.
+ Removed all references to "OptimizationException" (replaced by
+ "ConvergenceException"). Issue: MATH-397.
+o Modified "AbstractUnivariateRealOptimizer" to make it more similar to
+ "BaseAbstractScalarOptimizer".
+ Added utility methods in "ConvergingAlgorithmImpl". Issue: MATH-397.
+o Refactoring of some classes in package "optimization.general" to remove
+ code duplication and to allow the implementation of optimization algorithms
+ that do not use derivatives.
+ Created interface "BaseMultivariateRealOptimizer".
+ Created classes "BaseAbstractScalarOptimizer" and "AbstractScalarOptimizer".
+ "MultivariateRealOptimizer" and "DifferentiableMultivariateRealOptimizer"
+ both extend "BaseMultivariateRealOptimizer".
+ "AbstractScalarOptimizer" extends "BaseAbstractScalarOptimizer" and
+ "AbstractScalarDifferentiableOptimizer" inherits from "AbstractScalarOptimizer". Issue: MATH-389.
-http://commons.apache.org/math/
+Have fun!
+-Commons Math team
Modified: commons/proper/math/trunk/src/site/xdoc/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/changes.xml?rev=1296250&r1=1296249&r2=1296250&view=diff
==============================================================================
--- commons/proper/math/trunk/src/site/xdoc/changes.xml (original)
+++ commons/proper/math/trunk/src/site/xdoc/changes.xml Fri Mar 2 15:29:37 2012
@@ -51,7 +51,7 @@ The <action> type attribute can be add,u
with a new-line in the release notes. (These spaces are ignored when displaying HTML).
If the output is not quite correct, check for invisible trailing spaces!
-->
- <release version="3.0" date="TBD" description="
+ <release version="3.0" date="2012-03-07" description="
This is a major release: It combines bug fixes, new features and
changes to existing features.