Preparing release 3.0.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1296250 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b83da333fd
commit
4bf04186dd
|
@ -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:
|
||||
|
||||
http://commons.apache.org/math/
|
||||
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.
|
||||
|
||||
|
||||
Have fun!
|
||||
-Commons Math team
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ The <action> type attribute can be add,update,fix,remove.
|
|||
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.
|
||||
|
||||
|
|
Loading…
Reference in New Issue