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/RELEASENOTES.txt
commons/proper/math/trunk/src/site/xdoc/changes.xml
Modified: commons/proper/math/trunk/RELEASENOTES.txt
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/RELEASENOTES.txt?rev=1296250&r1=1296249&r2=1296250&view=diff
==============================================================================
 commons/proper/math/trunk/RELEASENOTES.txt (original)
+++ commons/proper/math/trunk/RELEASENOTES.txt Fri Mar 2 15:29:37 2012
@@ 1,142 +1,375 @@

+The Commons Math team is pleased to announce the commonsmath33.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 noargument 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, selfcontained mathematics and statistics components
addressing the most common practical problems not immediately available in the Java programming
language or commonslang.
Changes in this version include:
New features:
o MATH357: 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 MATH323: Added SemiVariance statistic. Thanks to Larry Diamond.
o MATH341: Added a warning in the getCoefficients method documentation for
 PolynomialFunctionLagrangeForm. Computation may be illconditioned
 so this method should be used with care.
o MATH340: Fixed an error in BigFraction multiplication for large numerators that don't
 fit in a primitive int.
o MATH334: Added min/max getters for real vectors (not yet in the RealVector interface
for
 compatibility purposes, but in the AbstractRealVector abstract class).
o MATH321: Singular Value Decomposition now computes either the compact SVD (using only
 positive singular values) or truncated SVD (using a userspecified maximal
 number of singular values).
o MATH300: Added support for multidimensional interpolation using the robust microsphere
algorithm. Thanks to Gilles Sadowski.
o MATH287: 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: MATH710. 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: MATH714.
+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 ChambersMallowsStuck method. Issue: MATH462.
Thanks to Pavel Ryzhof.
+o Method "addToEntry" in "RealVector". Issue: MATH685.
+o Added Jacobi polynomials. Issue: MATH687. 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: MATH683. 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: MATH646. Thanks to SÃ©bastien Brisard.
+o Added a 3D SubLine class. Issue: MATH593.
+o In "SingularValueDecompositionImpl", added accessor for the inverse of the condition number.
Issue: MATH602. 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: MATH637.
+o Added a solver for Dfpbased (i.e. high accuracy) functions. Issue: MATH636.
+o Added a Brentlike solver that has higher (user specified) order and does
+ bracket selection on the result: BracketingNthOrderBrentSolver. Issue: MATH635.
+o Added a few shortcut methods and predicates to Dfp (abs, isZero,
+ negativeOrNull, strictlyNegative, positiveOrNull, strictlyPositive).
+o "AbstractRealMatrix" inherits from "RealLinearOperator". Issue: MATH633. Thanks to SÃ©bastien
Brisard.
+o Linear combination of vectors: "RealVector" interface updated, implemented
+ in "AbstractRealVector" and "ArrayRealVector". Issue: MATH613. 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: MATH577. Thanks to Arne PlÃ¶se.
+o Framework for iterative linear solvers. Issue: MATH581. Thanks to SÃ©bastien Brisard.
+o Modified "SecantSolver" to comply with the original algorithm. Added several
+ secantbased solvers. Added a way to select the side of the root with bracketing
+ solvers. Issue: MATH599. Thanks to Dennis Hendriks.
+o Kmeans++ clustering can now run multiple trials Issue: MATH548.
+o Added a way to compute sublines intersections, considering sublines either
+ as open sets or closed sets Issue: MATH591.
+o Added a way to build a subline from its endpoints, and to retrieve the endpoints
+ from a subline Issue: MATH592.
+o New "filter" package. Initial implementation of Kalman filter. Issue: MATH485. 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: MATH576.
+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:
MATH566.
+o Fixed conversion problems to/from 0 in Decimal Floating Point (Dfp) class. Issue: MATH567.
Thanks to Michel.
+o Added solve methods using double[][] to linear algebra decomposition solvers. Issue: MATH564.
+o Added an interpolator adapter for data with known period. Issue: MATH562.
+o Added a "rectangular" Cholesky decomposition for positive semidefinite matrices. Issue:
MATH541.
+o Added setters allowing to change the step size control parameters of adaptive
+ step size ODE integrators. Issue: MATH563.
+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: MATH557.
+o Added a consistency check for number of points with respect to the number
+ of clusters in Kmeans++ clustering Issue: MATH436. Thanks to Thomas Neidhart.
+o Added two sided KolmogorovSmirnov distribution using modified
+ Marsaglia et al. (2003) implementation and quick decisions for certain
+ parameter areas according to Simard et al. (2011). Issue: MATH437.
+o Added "power" method in "RealMatrix" and "FieldMatrix<T>"
+ interfaces and their default implementations in "AbstractRealMatrix"
+ and "AbstractFieldMatrix". Issue: MATH435.
Fixed Bugs:
o MATH360: Fix use of wrong variable in SmoothingBicubicSplineInterpolatorTest.testPreconditions()
o MATH335: Fraction.hashCode() implementation was not fully consistent with Fraction.equals().
 Changed hashCode() to use fields directly to agree with equals().
o MATH282: 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 MATH347: Fixed too stringent interval check in Brent solver: initial guess is now
 allowed to be at either interval end
o MATH358: 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 nonzero value consistent with at least one point inside the step
o MATH344: Fixed wrong return values when enpoints are roots in Brent solver with
 a user provided initial guess
o MATH343: Fixed a missing bracketing check of initial interval in Brent solver.
o MATH342: 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 nonsignificant elements are
 set to 0.
o MATH333: 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 MATH338: Fixed automatic step initialization in embedded RungeKutta integrators.
 The relative tolerance setting was never used, only the absolute tolerance
 was used. Thanks to Vincent Morand.
o MATH329: Fixed regression in Frequency.getPct(Object) introduced in 2.0. Cumulative
 percent was being returned for Object arguments in place of percent.
o MATH320: Fixed Singular Value Decomposition solving of singular systems.
o MATH326: Fixed a wrong implementation of the Linf norm in vectors. Thanks to Jake Mannix.
o MATH324: Fixed a convergence discrepancy with respect to theory in GraggBulirschStoer
 integrator. Thanks to Vincent Morand.
o Fixed a wrong dimension check in SVD solver. Thanks to Dimitri Pourbaix.
o MATH313: Added composition features for real functions. Thanks to Jake Mannix.
o MATH312: Added mapping and iteration methods to vectors. Provided a default implementation
 for the numerous simple methods in the RealVectorInterface. Thanks to Jake Mannix.
o MATH322: Fixed an error in handling very close events in ODE integration.
o MATH305: 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 MATH318: Fixed an index computation error in eigen decomposition. Once again, kudos to
Dimitri
 for debugging this. Thanks to Dimitri Pourbaix.
o MATH308: Fixed an ArrayIndexOutOfBoundsException in eigen decomposition. Kudos to Dimitri
 for debugging this, it was really difficult. Thanks to Dimitri Pourbaix.
o MATH309: Fixed parameter test in RandomDataImpl#nextExponential. The method now throws
 IllegalArgumentException for mean = 0. Thanks to Mikkel Meyer Andersen.
o MATH306: Removed dead code from Complex#divide. Thanks to Joerg Huber.
o MATH294: Fixed implementation of RandomDataImpl#nextPoisson by implementing an alternative
 algorithm for large means.
o MATH298: Fixed implementation of EmpiricalDistributionImpl#getUpperBounds to match
 interface contract. Added getGeneratorUpperBounds method to
 EmpiricalDistributionImpl providing previous behavior.
o MATH296: 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 MATH293: Fixed a OutOfBoundException in simplex solver when some constraints are tight.
Thanks to Benjamin McCann.
o MATH291: Fixed misleading number formats in error messages for adaptive
 stepsize integrators. Thanks to Sebb.
o MATH290: Fixed a NullPointerException in simplex solver when no solution is possible
 and some constraints are negative. Thanks to Benjamin McCann.
o MATH289: Removed an unused argument in a private method in simplex solver.
o MATH288: Fixed an error induced by entries set to 0 in simplex solver. Thanks to Benjamin
McCann.
o MATH286: Fixed an error leading the simplex solver to compute the right solution
 but return another one. Thanks to Benjamin McCann.
o MATH283: Prevent infinite loops in multidirectional direct optimization method when
 the start point is exactly at the optimal point. Thanks to Michael Nischt.
o MATH297: Prevent possible zero divides on eigenvectors of indefinite matrices Thanks
to Axel Kramer.
+o Added precomputed arrays to speed up initial loading time for FastMath. Issue: MATH650.
+o Fixed "doubleValue" and "floatValue" method in "BigFraction" when
+ numerator and denominator are larger than the range of the
+ corresponding primitive type. Issue: MATH744. Thanks to Thundre.
+o Merged interface and implementation of statistical tests in
+ o.a.c.m.stat.inference package. Issue: MATH739.
+o Relaxed test for equality in UnivariateStatisticAbstractTest. Issue: MATH588.
+o Fixed a faulty test for zero in TridiagonalTransformer. Issue: MATH652. Thanks to Greg
Sterijevski.
+o Changed algorithm in computation of the covariance matrix in
+ "AbstractLeastSquares" (package "optimization.general"), from
+ "LUDecomposition" to "QRDecomposition". Issue: MATH664.
+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: MATH724. Thanks to Dennis Hendriks.
+o Fixed "offset by one" bug in "BOBYQAOptimizer". Issue: MATH728. Thanks to Bruce A. Johnson.
+o Check first step size in embedded RungeKutta integrators, and truncate it if needed.
Issue: MATH727.
+o Modified setSeed methods in Bitstream generators (MersenneTwister and Well
+ generators) to clear the cache of normal deviates used by nextGaussian. Issue: MATH723.
+o Fixed bracketing interval balancing in BracketingNthOrderBrentSolver. Issue: MATH716.
+o Removed unused or duplicate utility methods from "MathUtils".
+ Math functions with "double" arguments were moved to class "FastMath". Issue: MATH690.
+o Broke up bloated "MathUtils" class into "MathArrays", "Precision",
+ "ArithmeticUtils" classes. Issue: MATH689.
+o Fixed array indexing error in Variance evaluate method for
+ computing the weighted variance of an array segment. Issue: MATH704. Thanks to
Thomas Niedhart.
+o Fixed case of unconstrained variables that still occur in the objective function
+ in simplex solver. Issue: MATH713. Thanks to Thomas Neidhart.
+o Improved accuracy of RungeKutta based step interpolators near step start. Issue: MATH705.
+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 commonsmath supplied implementations. Issue: MATH691.
+o Fixed BigFraction percentage method which did not work at all. Issue: MATH709.
+o Fixed a bad interaction between step handlers and event handlers in
+ ODE integrators. Thanks to MATH706.
+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: MATH196.
+o CMAES optimizer input sigma is now consistent with boundaries range units. Issue: MATH702.
+o Fixed an event resetting issue in ODE. Issue: MATH695.
+o Fixed an integer overflow in OpenMapRealMatrix. Issue: MATH679. Thanks to Christopher
Berner.
+o "FastMath": Use constant fields instead of recomputing them at method
+ call. Issue: MATH688.
+o Faster "multiply" method in "Array2DRowRealMatrix". Code inspired
+ from the Jama project. Issue: MATH676.
+o Replaced package.html with packageinfo.java for package documentation. Issue: MATH445.
+o Added a getRuntimeClass method to the Field interface allowing to use a
+ complete hierarchy of fields sharing a common interface. Issue: MATH284. Thanks
to Klaus Hartlage.
+o The last remaining uses of OptimizationException have been replaced by unchecked
+ exceptions (UnboundSolutionException, NoFeasibleSolutionException,
+ MaxCountExceededException ...) Issue: MATH457.
+o The checked ConvergenceException has been replaced by an unchecked ConvergenceException.
Issue: MATH487.
+o ODE step interpolation with Jacobians is now fully merged with
+ classical step interpolation. Issue: MATH381. 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: MATH380. Thanks to Pascal Parraud.
+o In class "AbstractLeastSquaresOptimizer": Allow to specify a singularity
+ threshold in call to "getCovariances" method. Issue: MATH664.
+o Dead code in FastMath.pow(double, double) and some improvement in test coverage. Issue:
MATH658. Thanks to Yannick TANGUY.
+o Removed "getData()" method from "RealVector" as it was redundant with
+ "toArray()". Issue: MATH663.
+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: MATH654.
+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: MATH653.
+o Refactored integration API for consistency with solvers API. Now the main convergence
+ parameters are set in the constructor and remain fixed. Issue: MATH501.
+o Added a maximal number of function evaluations to the integration method, similar
+ to what is done in the solvers API. Issue: MATH464.
+o Fixed exceptions generated by "ebeMultiply" and "ebeDivide" in "OpenMapRealVector". Issue:
MATH645.
+o Made pseudoinverse consistent with rank computation in SingularValueDecompositionImpl.
Issue: MATH601. 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: MATH639.
+o Fixed bugs in AbstractRandomGenerator nextInt() and nextLong() default
+ implementations. Prior to the fix for this issue, these methods
+ generated only positive values. Issue: MATH640.
+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: MATH585.
+o Allow discrete events to be detected by ODE solvers also at step start. Issue: MATH605.
Thanks to Dennis Hendriks.
+o Rewritten SVD decomposition based on JAMA code. Issue: MATH327,MATH383,MATH465,MATH583,MATH611.
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: MATH618. Thanks to Arne Plose.
+o Prevent step normalizer to output twice the last point in MULTIPLES mode. Issue: MATH603.
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: MATH596,MATH604.
+o Fixed javadoc for ODEIntegrator interface Issue: MATH600.
+o Extended StepNormalizer with normalization mode and bounds settings. Issue: MATH595.
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: MATH597.
+o Javadoc fixes in ODE. Issue: MATH594. Thanks to Dennis Hendriks.
+o Added a way to specify a custom root solver to find events in ODE integration. Issue:
MATH586. Thanks to Dennis Hendriks.
+o Fixed error in javadoc describing Integer distribution inverse cumulative
+ probability API. Issue: MATH540.
+o Fixed error in javadoc describing the behavior of the Percentile algorithm for
+ small percentiles in small datasets. Issue: MATH582. Thanks to Christopher Nix.
+o Improved kmeans++ clustering performances and initial cluster center choice. Issue: MATH584.
Thanks to Randall Scarberry.
+o Fixed tricube function implementation in Loess interpolator. Issue: MATH504. Thanks to
X. B..
+o Fixed documentation of statistics examples. Issue: MATH568. Thanks to Christoph M. Friedrich.
+o Improved documentation of general optimization with a thorough example. Issue: MATH507.
Thanks to Ole Ersoy.
+o Replaced NullPointerException by NullArgumentException. Issue: MATH403.
+o Improved javadoc for FastMath explaining the overhead at class loading and
+ the targeted use cases. Issue: MATH579.
+o Allow outer product of vectors of different sizes. Issue: MATH574.
+o Avoid some array copying in add and subtract ArrayFieldVector. Issue: MATH573.
+o Fixed an unused constructor parameter in ArrayFieldVector. Issue: MATH572.
+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 nonnegative. Issue: MATH434. Thanks to Thomas
Neidhart.
+o Improved robustness of kmeans++ algorithm, by tracking changes in points assignments
+ to clusters. Issue: MATH547. Thanks to Thomas Neidhart.
+o Reduced cancellation errors in Vector3D.crossProduct Issue: MATH554.
+o Fixed bug in "MultidimensionalCounter". Issue: MATH552. 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: MATH423.
Thanks to Gilles Sadowski.
+o Removed the ConvergingAlgorithm interface and ConvergingAlgorithmImpl class Issue: MATH500.
Thanks to Gilles Sadowski.
+o Fixed bug in "KMeansPlusPlusClusterer". Issue: MATH546. Thanks to Nate Paymer.
+o Removed "HarmonicFunction" (in package "optimization.fitting");
+ superseded by class "HarmonicOscillator" (in package "analysis.function"). Issue:
MATH518.
+o Removed "GaussianFunction" and "GaussianDerivativeFunction" (in package
+ "optimization.fitting"); functionality moved to class "Gaussian" (in
+ package "analysis.function"). Issue: MATH516.
+o Removed "ParametricGaussianFunction" (in package "optimization.fitting");
+ functionality moved to class "Gaussian" (in package "analysis.function"). Issue:
MATH514.
+o Implementation of the CMAES optimization algorithm. Issue: MATH442. Thanks to Dietmar
Wolz.
+o The interface "ParametricRealFunction" (in package "optimization.fitting") has
+ been renamed to "ParametricUnivariateRealFunction" and moved to package "analysis".
Issue: MATH513.
+o TestUtils is threadhostile. Remove getters and setters, and make static variables final.
Issue: MATH505.
+o FastMath atan2 does not agree with StrictMath for special cases Issue: MATH494.
+o Removed checked "MaxIterationsExceededException" (superseded by
+ "MaxCountExceededException" from package "exception"). Issue: MATH492.
+o Removed checked "DimensionMismatchException". Replaced all occurrences by its
+ equivalent from package "exception". Issue: MATH491.
+o FastMath acos fails when input abs value is less than about 5.7851920321187236E300  returns
NaN Issue: MATH489.
+o FastMath toRadian and toDegree don't handle large double numbers well Issue: MATH486.
+o FastMath does not handle all special cases correctly Issue: MATH483.
+o Fix ulp(Infinity) to return Infinity rather than NaN Issue: MATH480.
+o FastMath.signum(0.0) does not agree with Math.signum(0.0) Issue: MATH479.
+o FastMath is not an exact replacement for StrictMath
+ (partially fixed) Add signum(float), ulp(float) Issue: MATH478.
+o FastMath.max(50.0f, 50.0f) => 50.0f; should be +50.0f
+ Fixed FastMath.max(float, float) so it returns correct value. Issue: MATH482.
+o MATH491 MathUtils.equals(double, double) does not work properly for floats
+  add equivalent (float, float) methods and basic tests Issue: MATH471.
+o Removed "MathException" from the "throws" clause of the "interpolate" method
+ of the interpolators interfaces (package "analysis.interpolation"). Issue: MATH458.
+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: MATH461.
+o By policy, all Commons Math exceptions must inherit from class
+ "MathRuntimeException". Issue: MATH447.
+o For optimizers (package "optimization"), the number of allowed function
+ evaluations is passed as a parameter to the "optimize" method. Issue: MATH454.
+o For solvers (package "analysis.solvers"), the number of allowed function
+ evaluations is passed as a parameter to the "solve" method. Issue: MATH451.
+o Created a "MathRuntimeException" to serve as a base class for exception
+ types that need to wrap another (lowerlevel) exception. Issue: MATH447.
+o Removed the ode.jacobians package. Issue: MATH380.
+o Created a generic "Pair" class to replace the "AbstractMap.SimpleEntry"
+ that is only available in Java 6 and later. Issue: MATH432.
+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: MATH428.
+o All distribution classes (in package "distribution") are immutable. Issue: MATH349.
Changes:
o MATH356: Added method to clear the list of observations in CurveFitter.
o MATH332: 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 MATH337: Changed equals() methods to use instanceof check rather than catching ClassCastException;
 this also allows some null checks to be omitted.
o MATH336: Removed unnecessary null checks in equals methods.
o MATH239: Added MathUtils methods to compute gcd and lcm for long arguments. Thanks to
Christian Semrau.
o MATH287: Added support for weighted univariate statistics. Thanks to Matthew Rowles.
o MATH315: 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 MATH311: 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: MATH698.
+o Resources for error messages translations have been moved out of METAINF
+ folder in the jar, to avoid interferences with some build systems.
+o Removed "MathException" (from package "o.a.c.math"). Issue: MATH488.
+o Removed "MathRuntimeException" (from package "o.a.c.math"). Issue: MATH459.
+o Merged interface and implementation of EmpiricalDistribution. Issue: MATH670.
+o Modified the genetics package to use localized exception messages. Issue: MATH575.
+o Removed First, Third, Fourth moments from the public API.
+ These internally used statistics have nonstandard definitions.
+ The classes remain, but now have package scope. Issue: MATH694.
+o Added support for population variance in StatUtils, SummaryStatistics
+ and DescriptiveStatistics and clarified javadoc to make it clear that
+ 'variance' means sample variance. Issue: MATH693.
+o Added interface and abstract class for supporting optimizers classes
+ that can take simple constraints into account. Issue: MATH697.
+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 nonsecure generator used
+ by RandomDataImpl to Well19937c. Issue: MATH701.
+o Default implementation for "addToEntry" and "multiplyEntry" in
+ "AbstractRealMatrix". Issue: MATH696.
+o Replaced temporary matrices and entry mutators with double[][] arrays to speed computation
+ in loops within QRDecomposition, Bi and TriDiagonalTransformer implementations.
Issue: MATH612. Thanks to Christopher Nix.
+o SimpleRegression implements UpdatingMultipleLinearRegression interface. Issue: MATH607.
+o Added isMonotone methods in MathUtils. Optimized checkOrder method. Issue: MATH675.
+o Added the ability to suppress the estimation of the intercept in SimpleRegression. Issue:
MATH649.
+o Removed completely MathUserException. Issue: MATH195.
+o Use the refactored exceptions framework for ODE. Issue: MATH488.
+o Added erf(double,double) to Erf and used this to improve tail probability
+ accuracy in NormalDistributionImpl. Issue: MATH364. Thanks to Christian Winter.
+o Added storeless covariance implementation. Issue: MATH449. Thanks to Patrick Meyer.
+o Eliminated extraneous constructor from SimpleRegression. Issue: MATH648.
+o Eliminated pluggability of ChiSquaredDistribution used by ChiSquaredDistributionTest.
Issue: MATH506.
+o Made RandomGenerator configurable and reseedable in EmpiricalDistributionImpl. Issue:
MATH634.
+o Added methods to solve upper and lower triangular systems to MatrixUtils. Issue: MATH624.
Thanks to Greg Sterijevski.
+o Improved performance of nextInt(int) in BitsStreamGenerator. Issue: MATH642.
+o Slightly more efficient implementation of basic operations in
+ "ArrayRealVector". Issue: MATH623. 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: MATH609. 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: MATH555.
+o Added "cosine" method in "RealVector" interface and default implementation
+ in "AbstractRealVector". Issue: MATH545.
+o All exceptions defined in Commons Math provide a context and a compound
+ message list. Issue: MATH542.
+o Refactored "PolynomialFitter" (in package "optimization.fitting").
+ Added parametric function in "PolynomialFunction" (in package
+ "analysis.polynomials"). Issue: MATH534.
+o Refactored "HarmonicFitter" (in package "optimization.fitting").
+ "HarmonicCoefficientsGuesser" removed. Issue: MATH517.
+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: MATH512. Thanks to Ole Ersoy.
+o Create FastMath copySign methods Issue: MATH496.
+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: MATH430.
+o Refactoring of the "analysis.solvers" package. Issue: MATH439.
+o Removed classes "FunctionEvaluationException", "MatrixVisitorException"
+ and "DerivativeException" (superseded by the new "MathUserException"). Issue: MATH440.
+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: MATH425.
+o Made "sample" methods part of the "IntegerDistribution" and
+ "ContinuousDistribution" interfaces. Issue: MATH310.
+o Created an unchecked "FunctionEvaluationException".
+ Modified the "UnivariateRealFunction" interface: Removed the checked
+ "FunctionEvaluationException" from the signature of the "value" method. Issue: MATH195.
+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: MATH370.
+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: MATH397.
+o Modified "AbstractUnivariateRealOptimizer" to make it more similar to
+ "BaseAbstractScalarOptimizer".
+ Added utility methods in "ConvergingAlgorithmImpl". Issue: MATH397.
+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: MATH389.
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 newline 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="20120307" description="
This is a major release: It combines bug fixes, new features and
changes to existing features.
