commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1296250 - in /commons/proper/math/trunk: RELEASE-NOTES.txt src/site/xdoc/changes.xml
Date Fri, 02 Mar 2012 15:29:37 GMT
Author: erans
Date: Fri Mar  2 15:29:37 2012
New Revision: 1296250

Preparing release 3.0.


Modified: commons/proper/math/trunk/RELEASE-NOTES.txt
--- 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
-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
-   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
-        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 + ... + 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
+o Linear combination of vectors: "RealVector" interface updated, implemented
+        in "AbstractRealVector" and "ArrayRealVector".  Issue: MATH-613. Thanks to Sébastien
+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:
+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:
+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
-        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
-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
-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
+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
+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 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:
+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
+        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
+        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
+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:
+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:
+o Implementation of the CMA-ES optimization algorithm.  Issue: MATH-442. Thanks to Dietmar
+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. 
-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,
-        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
-        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
-        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
-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
+        "").  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:
+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:
+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. 
+Have fun!
+-Commons Math team

Modified: commons/proper/math/trunk/src/site/xdoc/changes.xml
--- 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.

View raw message