blob: 28cd6bacc3d342082f407dd4d4609f3cafad1079 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This file is used by the maven-changes-plugin to generate the release notes.
Useful ways of finding items to add to this file are:
1. Add items when you fix a bug or add a feature (this makes the
release process easy :-).
2. Do a JIRA search for tickets closed since the previous release.
3. Use the report generated by the maven-changelog-plugin to see all
SVN commits.
To generate the file RELEASE-NOTES.txt from this file:
mvn changes:announcement-generate -Prelease-notes [-Dchanges.version]
The <action> type attribute can be add,update,fix,remove.
-->
<!-- NOTE:
The description attribute entries below are specially formatted
so as to improve the layout of the generated text release notes.
The parsing process removes all line feeds, replacing them with a single space.
The Velocity template in src/changes/release-notes.vm has been enhanced to replace pairs of adjacent spaces
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!
-->
<document>
<properties>
<title>Apache Commons Math Release Notes</title>
</properties>
<body>
<release version="TBD" date="TBD" description="TBD">
</release>
<release version="4.0" date="XXXX-XX-XX" description="">
<action dev="erans" type="update" issue="MATH-1562" due-to="Frank Ulbricht">
Add "Automatic-Module-Name" entry to JAR manifest file.
</action>
<action dev="erans" type="fix" issue="MATH-1558" due-to="Sam Ritchie">
"MidPointIntegrator": Fix iterative procedure in order to actually benefit
from evaluations performed at earlier stages.
</action>
<action dev="erans" type="fix" issue="MATH-1555" due-to="Laurent Galluccio">
"Atan2": Documentation issue.
</action>
<action dev="erans" type="add" issue="MATH-1551" due-to="Allen Yu">
"Percentile": Partial support for weighted data.
</action>
<action dev="erans" type="update" issue="MATH-1554">
Remove package "o.a.c.math4.geometry".
</action>
<action dev="erans" type="fix" issue="MATH-1549" due-to="Mohammad Rezaei">
"SimplexTableau": Internally "scale down" the problem definition when the
constraints are defined with large numbers, in order to avoid spurious
exceptions caused by floating-point accuracy errors.
</action>
<action dev="erans" type="fix" issue="MATH-1548">
Avoid inefficiencies in computing the standard quality measures of a SOFM.
</action>
<action dev="erans" type="update" issue="MATH-1547">
More flexible ranking of SOFM.
</action>
<action dev="erans" type="fix" issue="MATH-1537" due-to="Jin Xu">
Clean-up (typos and unused "import" statements).
</action>
<action dev="erans" type="fix" issue="MATH-1531">
"EmpiricalDistribution": Workaround to avoid spurious exception.
</action>
<action dev="erans" type="update" issue="MATH-1530" due-to="Yassine Damerdji">
"SplineInterpolator": Improved performance.
</action>
<action dev="erans" type="add" issue="MATH-1529">
"AkimaSplineInterpolator": Option to use alternative weights.
</action>
<action dev="erans" type="add" issue="MATH-1509" due-to="Chen Tao">
Add "MiniBatchKMeansClusterer" clustering algorithm.
</action>
<action dev="erans" type="update" issue="MATH-1524" due-to="Chen Tao">
Code reuse.
</action>
<action dev="erans" type="fix" issue="MATH-1511">
Issue in site generation and developers documentation.
</action>
<action dev="erans" type="update" issue="MATH-1522" due-to="Chen Tao">
Remove generic parameter in clustering evaluator interfaces.
</action>
<action dev="erans" type="add" issue="MATH-1519" due-to="Chen Tao">
Add "Calinski-Harabsz" clustering evaluator.
</action>
<action dev="erans" type="update" issue="MATH-1523">
Abstract class "ClusterEvaluator" replaced by an interface.
</action>
<action dev="erans" type="fix" issue="MATH-1518">
Remove code duplication by moving method to class "Cluster".
</action>
<action dev="erans" type="add" issue="MATH-1516">
Interface for ranking a list of clusters.
</action>
<action dev="kinow" type="update" issue="MATH-1408">
Do not use exceptions for control flow
</action>
<action dev="erans" type="fix" issue="MATH-1388">
Avoid overflow.
</action>
<action dev="erans" type="update" issue="MATH-1362">
Removed deprecated class "Incrementor" (replaced by "IntegerSequence.Incrementor").
</action>
<action dev="erans" type="update" issue="MATH-1506">
Removed class "MultidimensionalCounter" (ported to "Commons Numbers").
</action>
<action dev="erans" type="update" issue="MATH-1504">
Removed class "BigFraction" (ported to "Commons Numbers").
</action>
<action dev="erans" type="update" issue="MATH-1446">
Removed class "Fraction" (ported to "Commons Numbers").
</action>
<action dev="erans" type="update" issue="MATH-1469">
Removed most codes in package "o.a.c.m.geometry".
"Commons Math" now depends on "Commons Geometry".
</action>
<action dev="erans" type="update" issue="MATH-1481" due-to="Théophile Charmont">
"SobolSequenceGenerator": Update data file.
</action>
<action dev="erans" type="fix" issue="MATH-1401" due-to="Michele De Stefano">
"ClopperPearsonInterval": Missing cases.
</action>
<action dev="erans" type="add" issue="MATH-1477" due-to="Chee Sing Lee">
"MillerUpdatingRegression": Fixed "ArrayIndexOutOfBounds" exception.
</action>
<action dev="erans" type="fix" issue="MATH-1463">
"IntegerSequence.incrementor": Throw "NoSuchElementException" from "next" method.
</action>
<action dev="erans" type="add" issue="MATH-1459" due-to="Adrian Porter">
Create a way to automatically calculate a Jacobian matrix using a differentiator.
</action>
<action dev="erans" type="fix" issue="MATH-1458" due-to="Alex Herbert">
"SimpsonIntegrator": Fixed iteration.
</action>
<action dev="erans" type="add" issue="MATH-1426" due-to="Karl Richter">
"DescriptiveStatistics": allow "Double[]" as initializer.
</action>
<action dev="erans" type="fix" issue="MATH-1419" due-to="Hang Park">
"PolynomialSplineFunction": incorrect usage of exception.
</action>
<action dev="kinow" type="fix" issue="MATH-1413">
add generics to the Frequency class
</action>
<action dev="erans" type="fix" issue="MATH-1417" due-to="Jean-Francois Lecomte">
"RRQRDecomposition": bug in method "performHouseholderReflection".
</action>
<action dev="kinow" type="fix" issue="MATH-1381" due-to="Kexin Xie">
BinomialTest P-value > 1
</action>
<action dev="erans" type="fix" issue="MATH-1382" due-to="Stefan Bunk">
"MultivariateNormalDistribution": performance improvement (by
removing unnecessary copying).
</action>
<action dev="erans" type="fix" issue="MATH-1405" due-to="Daniil Finkel">
"KolmogorovSmirnovTest": bug in "fixTies".
</action>
<action dev="ebourg" type="update" issue="MATH-1389" due-to="Christoph Dibak">
Performance improvement for Array2DRowRealMatrix.getSubMatrix()
</action>
<action dev="erans" type="add" issue="MATH-1383">
Dependency toward the "Commons Rng" component.
</action>
<action dev="erans" type="update" issue="MATH-1377">
"SimplexOptimizer": Slight performance improvement.
</action>
<action dev="erans" type="fix" issue="MATH-1376" due-to="Thomas Weise">
"SimplexOptimizer": Wrong value of iteration number was passed to the convergence checker.
</action>
<action dev="erans" type="fix" issue="MATH-1319">
Major refactoring of package "o.a.c.m.random".
</action>
<action dev="erans" type="fix" issue="MATH-1366">
Removed obsolete RNG API (replaced by classes under "o.a.c.m.rng").
</action>
<action dev="erans" type="add" issue="MATH-1015" due-to="Thomas Neidhart">
Gauss-Laguerre quadrature.
</action>
<action dev="erans" type="update" issue="MATH-1318" due-to="Eric Prescott-Gagnon">
"o.a.c.m.special.Gamma.digamma": Improved performance (through the use of
the reflection formula for negative arguments).
</action>
<action dev="erans" type="add" issue="MATH-1350" due-to="Rob Tompkins">
Improved code coverage (unit tests).
</action>
<action dev="erans" type="add" issue="MATH-1336">
New 64-bits RNG implementations. On 64-bits systems, they are ~35% faster than
"java.util.Random" for generating "long" or "double" values. They also guarantee
much better randomness than "Random" (cf. MATH-1327).
</action>
<action dev="erans" type="add" issue="MATH-1335">
Refactoring of uniform random number generator functionality: new API
implemented in package "o.a.c.m.rng".
</action>
<action dev="erans" type="fix" issue="MATH-1340">
Avoid exception swallowing (in class "TestUtils").
</action>
<action dev="erans" type="fix" issue="MATH-1339">
Avoid redundant object creation.
</action>
<action dev="erans" type="add" issue="MATH-1337">
Adaptor class from new API ("o.a.c.m.rng.RandomSource") to old API
("o.a.c.m.random.RandomGenerator").
</action>
<action dev="erans" type="add" issue="MATH-1327">
Report on performance and correctness of the new RNG implementations.
</action>
<action dev="erans" type="add" issue="MATH-1314">
Javadoc of the new RNG API ("o.a.c.m.rng") mentions the "seed problem".
</action>
<action dev="erans" type="add" issue="MATH-1158">
New interface for sampling from distribution (package "o.a.c.m.distribution").
</action>
<action dev="erans" type="fix" issue="MATH-1356">
"HypergeometricDistribution": Handle special cases that produced NaN.
</action>
<action dev="erans" type="add" issue="MATH-1351">
New sampler API for "MultivariateRealDistribution".
</action>
<action dev="erans" type="add" issue="MATH-1348">
Adaptor for using one of the new RNG implementations where an instance of
"java.util.Random" is required.
</action>
<action dev="erans" type="fix" issue="MATH-1343">
"BetaDistribution": Removed unnecessary recomputation.
</action>
<action dev="erans" type="fix" issue="MATH-1124">
"JDKRandomGenerator": Method "nextInt(int)" now throws a "NotStrictlyPositiveException".
The class now delegates to (rather inherits from) "java.util.Random".
</action>
<action dev="erans" type="update" issue="MATH-1305" due-to="Rostislav Krasny">
"AbstractRandomGenerator" and "BitsStreamGenerator": Slight performance
improvement of the "nextBytes" method (particularly when the number of
requested bytes is a multiple of 4).
</action>
<action dev="erans" type="fix" issue="MATH-1300" due-to="Rostislav Krasny">
"AbstractRandomGenerator" and "BitsStreamGenerator": Remove a redundant call
to the random data provider.
</action>
<action dev="erans" type="add" issue="MATH-1295" due-to="Aleksei Dievskii">
"FactorialLog": Cache-based computation of the "log factorial" function (implemented
as an inner class of "CombinatoricsUtils" in package "o.a.c.m.util").
</action>
<action dev="luc" type="add" issue="MATH-1271" due-to="Qualtagh">
Added divideUnsigned and remainderUnsigned to ArithmeticUtils.
</action>
<action dev="erans" type="fix" issue="MATH-1231">
Lifted unnecessary restriction on constructor's argument of
"MicrosphereInterpolator" (package "o.a.c.m.analysis.interpolation").
</action>
<action dev="tn" type="fix" issue="MATH-1230">
The "SimplexSolver" will now throw a "DimensionMismatchException"
when calling "optimize(...)" with linear constraints whose dimension
does not match the dimension of the objective function.
</action>
<action dev="luc" type="add" >
Added a fast implementation of IEEEremainder in FastMath.
</action>
<action dev="luc" type="fix" issue="MATH-1222" due-to="Benedikt Ritter">
Use Double.isNaN rather than x != x in FastMath.
</action>
<action dev="luc" type="fix" issue="MATH-1143">
Added helper methods to FunctionUtils for univariate and multivariate differentiable functions conversion.
</action>
<action dev="tn" type="fix" issue="MATH-964">
Removed unused package private class PollardRho in package primes.
</action>
<action dev="tn" type="fix" issue="MATH-1221">
Improve performance of "ZipfDistribution" by caching the nth generalized harmonic.
</action>
<action dev="tn" type="update" issue="MATH-853">
"MathRuntimeException" is now the base class for all commons-math
exceptions (except for "NullArgumentException" which extends
"NullPointerException").
</action>
<action dev="tn" type="remove" issue="MATH-1205">
Removed methods "test(...)" from "AbstractUnivariateStatistic".
The already existing methods "MathArrays#verifyValues(...)" shall
be used instead.
</action>
<action dev="tn" type="update" issue="MATH-1205">
The abstract class "AbstractStorelessUnivariateStatistic" does not
extend anymore from "AbstractUnivariateStatistic".
</action>
<action dev="tn" type="update" issue="MATH-1205">
Default implementation of
"AbstractStorelessUnivariateStatistic#equals(Object)"
will only return true if both instances have the same type. Previously
different statistics were considered to be equal if their current state
happened to be equal.
</action>
<action dev="tn" type="update" issue="MATH-1205">
Default implementations of "AbstractStorelessUnivariateStatistic#evaluate(...)"
do not alter the internal state anymore. Instead a temporary copy of
the statistic is created for evaluation purposes.
</action>
<action dev="tn" type="fix" issue="MATH-1205">
Methods "evaluate(...)" of class "Variance" changed the internal state
although it was stated differently in the javadoc.
</action>
<action dev="luc" type="fix" issue="MATH-1191">
Fixed ignored method parameters in QRDecomposition protected methods.
</action>
<action dev="luc" type="fix" issue="MATH-1212">
Changed javadoc as the RandomDataGenerator class does not implement
an interface anymore (the previous interface has been deprecated in
3.X and removed in 4.0).
</action>
<action dev="erans" type="update" issue="MATH-1206">
Added new API methods in "LeastSquaresProblem.Evaluation" (package
"o.a.c.m.fitting.leastsquares").
</action>
<action dev="erans" type="update" issue="MATH-1210">
"QRDecomposition": include information about the condition that
triggers a "SingularMatrixException".
</action>
<action dev="tn" type="update" issue="MATH-757">
Removed broken synchronization support in "ResizableDoubleArray".
</action>
<action dev="tn" type="add" issue="MATH-945">
Added method "T log10()" to interface "RealFieldElement".
</action>
<action dev="tn" type="update" issue="MATH-869">
"SpearmansCorrelation" will now throw an "MathIllegalArgumentException"
if provided with a "NaturalRanking" instance that uses "REMOVED" as "NaNStrategy".
</action>
<action dev="tn" type="update" issue="MATH-869">
"NullArgumentException" extends now "java.lang.NullPointerException"
instead of "MathIllegalArgumentException".
</action>
<action dev="tn" type="update" issue="MATH-839" due-to="Gilles Sadowski">
Renamed "cumulativeProbability(double, double)" to "probability(double, double)"
in "IntegerDistribution" and "RealDistribution".
</action>
<action dev="tn" type="add" issue="MATH-1039" due-to="Aleksei Dievskii">
Added logDensity(double) to RealDistribution and logProbability(int)
to IntegerDistribution interface. The implementations have already been
updated in release 3.3.
</action>
<action dev="tn" type="update" issue="MATH-1155">
WELL type pseudo-random number generators have been refactored:
the cached indirection index tables per instance are now stored
in a static instance. This reduces the initialization cost when
creating a new instance.
</action>
<action dev="tn" type="remove" issue="MATH-1050">
Removed "ArithmeticUtils#pow(int, long)" and "ArithmeticUtils#pow(long, long)".
</action>
<action dev="tn" type="update" issue="MATH-825" due-to="Gilles Sadowski">
Method "LaguerreSolver#laguerre(...)" has been made private.
</action>
<action dev="tn" type="update" issue="MATH-760" due-to="sebb">
Field "windowSize" in "DescriptiveStatistics" has been made private.
</action>
</release>
<release version="3.6.1" date="2016-03-21" description="
This is a minor bug fix release. It incorporates three bug fixes since version 3.6.
The minimum version of the Java platform required to compile and use
Commons Math 3.6.1 is Java 5.
">
<action dev="psteitz" type="update" issue="MATH-1317">
Add uniformity unit tests to "RandomGeneratorAbstractTest".
</action>
<action dev="psteitz" type="fix" issue="MATH-1316">
Fix code example in User Guide > Statistics > Multiple linear regression.
</action>
<action dev="evan" type="fix" issue="MATH-1342">
Fix ODE integrators when multiple events are nearly simultaneous.
</action>
</release>
<release version="3.6" date="2016-01-05" description="
This is a minor release: It combines bug fixes and new features.
Changes to existing features were made in a backwards-compatible
way such as to allow drop-in replacement of the v3.x JAR file.
Most notable among the new features are:
field-based version of Ordinary Differential Equations framework,
numerous improvements in distributions, statistics and neuralnet packages,
refactored implementation of microsphere interpolation algorithm,
explicit specification of rotation convention to use (both vector
operator and frame transform conventions are now available).
The minimum version of the Java platform required to compile and use
Commons Math is Java 5.
Users are encouraged to upgrade to this version as this release not
only includes bug fixes but also deprecates numerous classes and
methods that will be deleted from the next major release (4.0).
Caveat:
1. The implementation of the BOBYQA optimization algorithm is in alpha
state (cf. MATH-621): Many code paths are untested, and we are looking
for volunteers to improve the code readability, robustness and performance
and to extend the unit tests suite.
2. A few methods in the FastMath class are in fact slower that their
counterpart in either Math or StrictMath (cf. MATH-740 and MATH-901).
">
<action dev="psteitz" type="fix" issue="MATH-1310">
Improved performance and accuracy of 2-sample KolmogorovSmirnov tests.
</action>
<action dev="luc" type="fix" issue="MATH-1297">
Detect start failures with multi-step ODE integrators.
</action>
<action dev="luc" type="add" issue="MATH-1302,MATH-1303">
Added a RotationConvention enumerate to allow specifying the semantics
or axis/angle for rotations. This enumerate has two values:
VECTOR_OPERATOR and FRAME_TRANSFORM.
</action>
<action dev="luc" type="fix" due-to="Julien Queyrel">
Fixed stability issues with Adams-Bashforth and Adams-Moulton ODE integrators.
The integrators did not estimate the local error properly and were sometimes
stuck attempting to reduce indefinitely the step size as they thought the
error was too high.
</action>
<action dev="luc" type="add" issue="MATH-1288">
Added a field-based version of Ordinary Differential Equations framework.
This allows integrating ode that refer to RealField elements instead of
primitive double, hence opening the way to use DerivativeStructure to
compute partial differential without using variational equations, or to solve
ode with extended precision using Dfp.
</action>
<action dev="erans" type="fix" issue="MATH-1295" due-to="Luke Lindsay">
Increased default value for number of allowed evaluations in
"o.a.c.m.optim.univariate.BracketFinder".
</action>
<action dev="psteitz" type="update" issue="MATH-1246">
Modified 2-sample KolmogorovSmirnovTest to handle ties in sample data. By default,
ties are broken by adding random jitter to input data. Also added bootstrap method
analogous to ks.boot in R Matching package.
</action>
<action dev="tn" type="fix" issue="MATH-1294" due-to="Kamil Włodarczyk">
Fixed potential race condition in PolynomialUtils#buildPolynomial in
case polynomials are generated from multiple threads. Furthermore, the
synchronization is now performed on the coefficient list instead of the class.
</action>
<action dev="psteitz" type="update" issue="MATH-1246">
Added bootstrap method to KolmogorovSmirnov test.
</action>
<action dev="psteitz" type="update" issue="MATH-1287">
Added constructors taking sample data as arguments to enumerated real and integer distributions.
</action>
<action dev="oertl" type="fix" issue="MATH-1269">
Fixed FastMath.exp that potentially returned NaN for non-NaN argument.
</action>
<action dev="luc" type="add">
Added a nth order Brent solver for general real fields, replacing the former
solver that was restricted to Dfp fields only.
</action>
<action dev="erans" type="add" issue="MATH-1286">
New "Range" inner class of "o.a.c.m.util.IntegerSequence".
</action>
<action dev="oertl" type="fix" issue="MATH-1285" due-to="Pim van der Hoorn ">
Updated reference in ZipfDistribution's javadoc.
</action>
<action dev="tn" type="fix" issue="MATH-1283" due-to="Jean Noel Delavalade">
Fixed "Gamma#gamma(double)" for negative values smaller than -20.
</action>
<action dev="tn" type="fix" issue="MATH-1237" due-to="Ken Williams">
Fixed javadoc of methods {floorDiv,floorMod} in class "FastMath".
</action>
<action dev="tn" type="add" issue="MATH-837">
"AggregateSummaryStatistics" can now aggregate any kind of
"StatisticalSummary".
</action>
<action dev="erans" type="fix" issue="MATH-1279">
Check precondition (class "o.a.c.m.random.EmpiricalDistribution").
</action>
<action dev="erans" type="add" issue="MATH-1278">
Deep copy of "Network" (package "o.a.c.m.ml.neuralnet") to allow evaluation of
of intermediate states during training.
</action>
<action dev="oertl" type="update" issue="MATH-1276">
Improved performance of sampling and inverse cumulative probability calculation
for geometric distributions.
</action>
<action dev="oertl" type="fix" issue="MATH-1277" due-to="Marc Rosen">
Fixed incorrect Kendall's tau coefficient calculation due to internal integer overflow.
</action>
<action dev="oertl" type="update" issue="MATH-1274">
Representation of Kolmogorov-Smirnov statistic as integral value.
</action>
<action dev="luc" type="add" issue="MATH-1273" due-to="Qualtagh">
Added negative zero support in FastMath.pow.
</action>
<action dev="erans" type="add" issue="MATH-1270">
Various SOFM visualizations (in package "o.a.c.m.ml.neuralnet.twod.util"):
Unified distance matrix, hit histogram, smoothed data histograms,
topographic error, quantization error.
</action>
<action dev="erans" type="add" issue="MATH-1268">
New interfaces to be implemented by algorithms that visualizes properties
of a "NeuronSquareMesh2D" (package "o.a.c.m.ml.neuralnet.twod.util").
</action>
<action dev="luc" type="add" >
Reimplemented pow(double, double) in FastMath, for better accuracy in
integral power cases and trying to fix erroneous JIT optimization again.
</action>
<action dev="luc" type="add" >
Added a pow(double, long) method in FastMath.
</action>
<action dev="luc" type="fix" issue="MATH-1266">
Fixed split/side inconsistencies in BSP trees.
</action>
<action dev="erans" type="add" issue="MATH-1265">
"NeuronSquareMesh2D" (package "o.a.c.m.ml.neuralnet.twod") implements "Iterable".
</action>
<action dev="erans" type="add" issue="MATH-1264">
"MapUtils" (package "o.a.c.m.ml.neuralnet"): Method to sort units according to distance
from a given vector.
</action>
<action dev="erans" type="add" issue="MATH-1263">
Accessor (class "o.a.c.m.ml.neuralnet.twod.NeuronSquareMesh2D").
</action>
<action dev="erans" type="add" issue="MATH-1259">
New "IntegerSequence" class (in package "o.a.c.m.util") with "Incrementor" inner class.
</action>
<action dev="oertl" type="update" issue="MATH-1220">
Faster generation of Zipf distributed random numbers by using rejection-inversion sampling.
</action>
<action dev="oertl" type="update" issue="MATH-990">
Improved performance of sort-in-place methods by avoiding boxing.
</action>
<action dev="erans" type="fix" issue="MATH-1261" due-to="Osamu Ikeuchi">
Avoid overflow in "Fraction" (multiplication or division by an int).
</action>
<action dev="oertl" type="fix" issue="MATH-1258" due-to="Gunel Jahangirova">
Added check for equal array lengths to distance measure functions.
</action>
<action dev="erans" type="fix" issue="MATH-1257" due-to="Bill Murphy">
Better accuracy in computation of cumulative probability of "NormalDistribution"
(package "o.a.c.m.distribution").
</action>
<action dev="erans" type="fix" issue="MATH-1256">
Boundary check to construct an "Interval" (package "o.a.c.m.geometry.euclidean.oned").
</action>
<action dev="erans" type="fix" issue="MATH-1255">
Wrong neighbourhood size in class "KohonenUpdateAction" (package "o.a.c.m.ml.neuralnet.sofm").
</action>
<action dev="psteitz" type="fix" issue="MATH-1252" due-to="John Bay">
ResizableDoubleArray constructor does not work with double array of size 1.
</action>
<action dev="erans" type="fix" issue="MATH-1251">
Fixed initial value of "number of calls" counter in class "KohonenUpdateAction"
(package "o.a.c.m.ml.neuralnet.sofm").
</action>
<action dev="erans" type="add" issue="MATH-1250">
"Neuron" class (package "o.a.c.m.ml.neuralnet"): added methods that can be used
to assess concurrency performance.
</action>
<action dev="erans" type="fix" issue="MATH-1248" due-to="Chris Popp">
Removed unnecessary allocations in "BigFraction" (package "o.a.c.m.fraction").
</action>
<action dev="psteitz" type="fix" issue="MATH-1245">
Fixed error in computing discrete distribution of D statistics for small-sample
2-sample Kolmogorov-Smirnov tests. Error was causing incorrect p-values returned
by exactP and monteCarloP methods (used by default for small, mid-size samples).
</action>
<action dev="erans" type="update" issue="MATH-1243">
Refactored implementation of the "miscrosphere projection"
interpolation algorithm.
New classes: "MicrosphereProjectionInterpolator",
"InterpolatingMicrosphere" and "InterpolatingMicrosphere2D"
replace "MicrosphereInterpolator" and "MicrosphereInterpolatingFunction".
(package "o.a.c.m.analysis.interpolation").
</action>
<action dev="erans" type="add" issue="MATH-1244">
Method "cosAngle" in "o.a.c.m.util.MathArrays".
</action>
<action dev="tn" type="fix" issue="MATH-1240">
"KolmogorovSmirnovTest#ksSum(...)" returned wrong result in case the provided
t-parameters was zero. This affected the calculation of "approximateP(...)" for
identical samples.
</action>
<action dev="tn" type="fix" issue="MATH-1242" due-to="Otmar Ertl">
Improved performance to calculate the two-sample Kolmogorov-Smirnov test
via monte carlo simulation ("KolmogorovSmirnovTets#monteCarloP(...)").
</action>
<action dev="tn" type="fix" issue="MATH-1241" due-to="Aleksei Dievskii">
A "StackOverflowException" was thrown when passing Double.NaN or infinity
to "Gamma#digamma(double)" or "Gamma#trigamma(double)". Now the input value
is propagated to the output if it is not a real number.
</action>
<action dev="tn" type="fix" issue="MATH-1232" due-to="Otmar Ertl">
Improved performance of calculating the two-sample Kolmogorov-Smirnov
test statistic.
</action>
<action dev="luc" type="fix" issue="MATH-1232">
Fixed error message for unknown parameter name in ODE.
</action>
<action dev="luc" type="fix" issue="MATH-1226">
Fixed wrong event detection in case of close events pairs.
</action>
<action dev="tn" type="fix">
Fix potential branching errors in "FastMath#pow(double, double)" when
passing special values, i.e. infinity, due to erroneous JIT optimization.
</action>
<action dev="luc" type="fix" issue="MATH-1118" >
Fixed equals/hashcode contract failure for Dfp.
</action>
<action dev="luc" type="fix" issue="MATH-1223" >
Fixed wrong splitting of huge number in extended accuracy algorithms.
</action>
<action dev="tn" type="fix" issue="MATH-1153" due-to="Sergei Lebedev">
Improve performance of "BetaDistribution#sample()" by using Cheng's algorithm.
</action>
<action dev="tn" type="fix" issue="MATH-1197">
Computation of 2-sample Kolmogorov-Smirnov statistic in case of ties
was not correct.
</action>
</release>
<release version="3.5" date="2015-04-17" description="
This is a minor release: It combines bug fixes and new features.
Changes to existing features were made in a backwards-compatible
way such as to allow drop-in replacement of the v3.4.1 JAR file.
Most notable among the new features are:
getQuadraticMean method added to DescriptiveStatistics SummaryStatistics
which calculates the root mean square, and a way to build polyhedrons sets
from list of vertices and the facets they belong too. There have been
numerous bug fixes. See below for a full list.
The minimum version of the Java platform required to compile and use
Apache Commons Math is Java 5.
Users are encouraged to upgrade to this version as this release not
only includes bug fixes but also deprecates numerous classes and
methods that will be deleted from the next major release (4.0).
Caveat:
1. The implementation of the BOBYQA optimization algorithm is in alpha
state (cf. MATH-621): Many code paths are untested, and we are looking
for volunteers to improve the code readability, robustness and performance
and to extend the unit tests suite.
2. A few methods in the FastMath class are in fact slower that their
counterpart in either Math or StrictMath (cf. MATH-740 and MATH-901).
">
<action dev="luc" type="fix" issue="MATH-1195">
Moved FastMathTestPerformance out of the main test tree, as is is
a benchmark rather than a test.
</action>
<action dev="luc" type="add">
Added a way to build polyhedrons sets from a list of vertices and
facets specified using vertices indices.
</action>
<action dev="psteitz" type="update" issue="MATH-1213">
Added Laguerre complex solve methods taking maxEval parameters.
</action>
<action dev="luc" type="fix" issue="MATH-1191">
Fixed ignored method parameters in QRDecomposition protected methods.
</action>
<action dev="luc" type="fix" issue="MATH-1211" due-to="Mike Zimmerman">
Fixed wrong selection of line/polyhedron intersection point.
</action>
<action dev="luc" type="fix" issue="MATH-1162">
Improved fix for corner cases in BSP-tree merging, when cut sub-hyperplanes vanish.
</action>
<action dev="tn" type="fix" issue="MATH-1209" due-to="Jonathan Ogilvie">
Fixed link to algorithm description in "PoissonDistribution#sample()".
</action>
<action dev="psteitz" type="fix" issue="MATH-1208">
EmpiricalDistribution cumulativeProbability can return NaN when evaluated within a constant bin.
</action>
<action dev="psteitz" type="fix" issue="MATH-1203">
EmpiricalDistribution getKernel fails for buckets with only multiple instances of the same value.
</action>
<action dev="evanward" type="fix" issue="MATH-1204">
"UnivariateSolverUtils#bracket(...)" sometimes failed to bracket
if a reached the lower bound.
</action>
<action dev="sebb" type="add" issue="MATH-1198">
Simplified "FastMath#exp(double)" in order to avoid a potential
Java 1.5 JIT bug when calling with negative infinity as argument.
</action>
<action dev="erans" type="add" issue="MATH-1199">
Added method "getQuadraticMean()" to "DescriptiveStatistics"
and "SummaryStatistics" which calculates the root mean square.
</action>
</release>
<release version="3.4.1" date="2015-01-11" description="
This is a maintenance release: It fixes issue MATH-1188.
">
<action dev="sebb" type="fix" issue="MATH-1188">
Fixed non-Java1.5 code in BesselJ.
</action>
</release>
<release version="3.4" date="2014-12-26" description="
This is a minor release: It combines bug fixes and new features.
Changes to existing features were made in a backwards-compatible
way such as to allow drop-in replacement of the v3.3 JAR file.
Most notable among the new features are:
new distributions (Gumbel, Laplace, Logistic, Nakagami), and
improvements on percentiles algorithms (better handling for NaNs
in the regular algorithm, plus a new storeless implementation).
Bicubic and tricubic interpolators have been fixed and new
implementations added. There have been numerous bug fixes and
several improvements on performances or robustness. See below
for a full list.
The minimum version of the Java platform required to compile and use
Apache Commons Math is Java 5.
Users are encouraged to upgrade to this version as this release not
only includes bug fixes but also deprecates numerous classes and
methods that will be deleted from the next major release (4.0).
Caveat:
1. The implementation of the BOBYQA optimization algorithm is in alpha
state (cf. MATH-621): Many code paths are untested, and we are looking
for volunteers to improve the code readability, robustness and performance
and to extend the unit tests suite.
2. A few methods in the FastMath class are in fact slower that their
counterpart in either Math or StrictMath (cf. MATH-740 and MATH-901).
">
<action dev="psteitz" type="add" issue="MATH-1066" due-to="Brian Wignall">
Added Bessel functions of the first kind, based on NetLib implementation.
</action>
<action dev="tn" type="fix" issue="MATH-1142" due-to="Arne Schwarz">
Improve performance of kalman gain calculation in "KalmanFilter" by
directly solving a linear system rather than computing the matrix
inverse.
</action>
<action dev="psteitz" type="fix" issue="MATH-1181">
Fixed integer overflow in KolmogorovSmirnovTest causing 2-sample test
to use exact method when the product of the sample sizes exceeds
Integer.MAX_VALUE, resulting in effectively hung execution.
</action>
<action dev="erans" type="add" issue="MATH-1180">
Method to create a sequence of integers (in "o.a.c.m.util.MathArrays").
</action>
<action dev="erans" type="add" issue="MATH-1172">
New class "SimpleCurveFitter": Boiler-plate code to allow fitting of
a user-defined parametric function.
</action>
<action dev="erans" type="add" issue="MATH-1173">
New classes "TricubicInterpolatingFunction" and "TricubicInterpolator" to
replace "TricubicSplineInterpolatingFunction" and "TricubicSplineInterpolator".
</action>
<action dev="erans" type="fix" issue="MATH-1178" due-to="Dmitriy">
Fixed example in userguide ("stat" section).
</action>
<action dev="erans" type="fix" issue="MATH-1175" due-to="Karsten Loesing">
Fixed inverse cumulative probability of 0 in "LaplaceDistribution".
</action>
<action dev="erans" type="add" issue="MATH-1166">
New classes "BicubicInterpolatingFunction" and "BicubicInterpolator" to
replace "BicubicSplineInterpolatingFunction" and "BicubicSplineInterpolator".
</action>
<action dev="luc" type="update" >
Spurious vertices in the middle of otherwise straight edges are now
filtered out when rebuilding polygons boundaries from BSP trees.
</action>
<action dev="luc" type="fix" issue="MATH-1174" >
Fixed a problem with too thin polygons considered to have infinite size.
</action>
<action dev="luc" type="add" >
Boundary attributes in regions now provides the BSP tree nodes that
were used to split the sub-hyperplane forming the boundary part of the facet.
</action>
<action dev="luc" type="fix" issue="MATH-1162" >
Fixed a problem with vanishing cut sub-hyperplanes during BSP tree merging.
</action>
<action dev="erans" type="fix" issue="MATH-1167" due-to="Neil Ireson">
"o.a.c.m.stat.regression.OLSMultipleLinearRegression": Use threshold
when performing "QRDecomposition".
</action>
<action dev="tn" type="fix" issue="MATH-1165" due-to="Pashutan Modaresi">
"FuzzyKMeansClusterer" has thrown an exception in case one of the data
points was equal to a cluster center.
</action>
<action dev="erans" type="add" issue="MATH-1144">
Interface to allow parameter validation in "o.a.c.m.fitting.leastsquares":
the point computed by by the optimizer can be modified before evaluation.
</action>
<action dev="luc" type="fix" issue="MATH-1160" >
Provide access to state derivatives in ContinuousOutputModel.
</action>
<action dev="luc" type="fix" issue="MATH-1138" due-to="Hank Grabowski">
Fixed bicubic spline interpolator, using Akima splines.
</action>
<action dev="psteitz" type="add" issue="MATH-1154" >
Changed classes in the inference package that instantiate distributions to
pass null RandomGenerators to avoid initialization overhead for the default
generator.
</action>
<action dev="luc" type="add" issue="MATH-1156" >
Added all Java 8 StrictMath methods to FastMath, so FastMath remains compatible
with newer Java versions.
</action>
<action dev="tn" type="add" issue="MATH-1139" due-to="Alexey Volkov">
Added Gumbel, Laplace, Logistic and Nakagami distributions.
</action>
<action dev="psteitz" type="fix" issue="MATH-1147">
Added statistics missing from toString method in SummaryStatistics.
</action>
<action dev="tn" type="fix" issue="MATH-1152" due-to="Andras Sereny">
Improved performance of "EnumeratedDistribution#sample()" by caching
the cumulative probabilities and using binary rather than a linear search.
</action>
<action dev="tn" type="fix" issue="MATH-1148" due-to="Guillaume Marceau">
"MonotoneChain" did not take the tolerance factor into account when
sorting the input points. In case of collinear points this could result
in a "ConvergenceException" when computing the hull.
</action>
<action dev="erans" type="fix" issue="MATH-1151">
Interface "ValueAndJacobianFunction" is a precondition for lazy
evaluation (in "o.a.c.m.fitting.leastsquares").
</action>
<action dev="tn" type="fix" issue="MATH-1145" due-to="Anders Conbere">
Fix potential integer overflows in "MannWhitneyUTest" when providing
large sample arrays.
</action>
<action dev="tn" type="fix" issue="MATH-1149" due-to="M Kim">
Fixed potential null pointer dereferencing in constructor of
"DummyStepInterpolator(DummyStepInterpolator)".
</action>
<action dev="psteitz" type="fix" issue="MATH-1136" due-to="Aleksei Dievskii">
Fixed BinomialDistribution to deal with degenerate cases correctly.
</action>
<action dev="tn" type="fix" issue="MATH-1135" due-to="Guillaume Marceau">
"MonotoneChain" failed to generate a convex hull if only a minimal hull
shall be created (includeCollinearPoints=false) and collinear hull points
were present in the input.
</action>
<action dev="psteitz" type="fix" issue="MATH-1131" due-to="Schalk W. Cronjé">
Improve performance of "KolmogorovSmirnovTest#kolmogorovSmirnovTest(...)" for
large samples. Also changed implementation for large n to use Pelz-Good
approximation.
</action>
<action dev="erans" type="fix" issue="MATH-1134">
"BicubicSplineInterpolatingFunction": all fields made final and initialized in
the constructor. Added flag to request initialization, or not, of the internal
data needed for partial derivatives.
</action>
<action dev="psteitz" type="fix" issue="MATH-984">
Constrained EmpiricalDistribution sample/getNextValue methods to return
values within the range of the data; correctly linked RandomGenerator to
superclass so that RealDistribution reseedRandomGenerator method works.
</action>
<action dev="luc" type="add" issue="MATH-1120" due-to="Venkatesha Murthy">
Added several different estimation types and NaN handling strategies for Percentile.
</action>
<action dev="psteitz" type="add" issue="MATH-418" due-to="Venkatesha Murthy">
Added implementation of PSquare algorithm to estimate percentiles without
storing data in memory (i.e. as StorelessUnivariateStatistic).
</action>
<action dev="erans" type="fix" issue="MATH-1129">
"Percentile": wrong sorting in the presence of NaN.
</action>
<action dev="erans" type="update" issue="MATH-1128">
Added lazy evaluation to "LeastSquaresFactory" (in "o.a.c.m.fitting.leastsquares")
to avoid evaluating the model when the optimization algorithm does not actually
require it.
</action>
<action dev="luc" type="fix" issue="MATH-1127">
Fixed overflow in Precision.equals with ulps (both double and float versions).
</action>
<action dev="tn" type="fix" issue="MATH-1125" due-to="Ajo Fod">
Performance improvements for Student's t-distribution.
</action>
<action dev="luc" type="fix" issue="MATH-1123" due-to="Aurélien Labrosse">
Fixed NullPointerException when chopping-off a sub-hyperplane
that is exactly at a region boundary.
</action>
<action dev="erans" type="fix" issue="MATH-1121" due-to="Ajo Fod">
"BrentOptimizer": increment base class iteration counter.
</action>
</release>
<release version="3.3" date="2014-05-05" description="
This is a minor release: It combines bug fixes and new features.
Changes to existing features were made in a backwards-compatible
way such as to allow drop-in replacement of the v3.x JAR file.
Most notable among the new features are:
Framework for creating artificial neural nets, self organizing feature maps,
computational geometry algorithms (convex hull, enclosing ball), performance
improvements of the linear simplex solver, refactoring of curve fitters,
low-discrepancy random generators (sobol, halton), least-squares fitting.
The minimum version of the Java platform required to compile and use
Commons Math is Java 5.
Users are encouraged to upgrade to this version as this release not
only includes bug fixes but also deprecates numerous classes and
methods that will be deleted from the next major release (4.0).
Caveat:
1. The implementation of the BOBYQA optimization algorithm is in alpha
state (cf. MATH-621): Many code paths are untested, and we are looking
for volunteers to improve the code readability, robustness and performance
and to extend the unit tests suite.
2. A few methods in the FastMath class are in fact slower that their
counterpart in either Math or StrictMath (cf. MATH-740 and MATH-901).
3. A few methods/constructors in the package o.a.c.m.geometry.partitioning
have changed their signature in a non backwards-compatible way. The respective
classes are intended to be package private only and are not supposed to be
used for other purposes.
">
<action dev="tn" type="add" issue="MATH-1110" due-to="Edward Segall">
Added new constructor to "OLSMultipleLinearRegression" to be able
to specify a custom singularity threshold for QR decomposition.
</action>
<action dev="erans" type="fix" issue="MATH-1092">
Extracted class "LineSearch" from "PowellOptimizer", to be used in
"NonLinearConjugateGradientOptimizer" (in place of the implementation
that triggered this issue).
</action>
<action dev="luc" type="fix" issue="MATH-1115">
Build properly empty polyhedrons set when given equal min/max boundaries. Also explained
better in the javadoc about some wrong usage of PolyhedronsSet constructor.
</action>
<action dev="luc" type="fix" issue="MATH-1117">
Build properly empty polygons set when given equal min/max boundaries. Also explained
better in the javadoc about some wrong usage of PolygonsSet constructor.
</action>
<action dev="luc" type="add" issue="MATH-1119">
Added a fast single-step method for fixed-step Runge-Kutta integrators.
</action>
<action dev="erans" type="fix" issue="MATH-1118">
"Complex": Fixed compatibility of "equals(Object)" with "hashCode()".
Added new methods for testing floating-point equality between the real
(resp. imaginary) parts of two complex numbers.
</action>
<action dev="luc" type="add" >
Added an order 6 fixed-step ODE integrator designed by H. A. Luther in 1968.
</action>
<action dev="luc" type="update" >
Bracketing utility for univariate root solvers returns a tighter interval than before.
It also allows choosing the search interval expansion rate, supporting both linear
and asymptotically exponential rates.
</action>
<action dev="luc" type="fix" issue="MATH-1107" due-to="Bruce A Johnson">
Prevent penalties to grow multiplicatively in CMAES for out of bounds points.
</action>
<action dev="psteitz" type="update" issue="MATH-437">
Added KolmogorovSmirnovTest class, deprecating KolmogorovSmirnovDistribution.
</action>
<action dev="luc" type="add" issue="MATH-1101">
Improved documentation of QR decomposition handling of singular matrices.
</action>
<action dev="luc" type="add" issue="MATH-1053" due-to="Sean Owen">
QR decomposition can compute pseudo-inverses for tall matrices.
</action>
<action dev="luc" type="add" issue="MATH-820">
Field vectors now implement the visitor pattern just like real vectors.
</action>
<action dev="luc" type="fix" issue="MATH-875">
Un-deprecated RealVector.sparseIterator, documenting explicitly that entries
not iterated above are the zero ones.
</action>
<action dev="luc" type="fix" issue="MATH-821">
Relaxed specification for function mapping on vectors, thus allowing straightforward
implementation for sparse vectors.
</action>
<action dev="luc" type="update" issue="MATH-1099" due-to="Evan Ward">
Make QR the default in GaussNewtonOptimizer.
</action>
<action dev="luc" type="update" issue="MATH-1099" due-to="Evan Ward">
Add Cholesky option to GaussNewtonOptimizer.
</action>
<action dev="luc" type="update" issue="MATH-1099" due-to="Evan Ward">
Make QR in GaussNewton faster and more accurate.
</action>
<action dev="luc" type="update" issue="MATH-870">
The sparse vector and matrix classes have been un-deprecated. This is a reversal
of a former decision, as we now think we should adopt a generally accepted
behavior which is ... to ignore the problems of NaNs and infinities in
sparse linear algebra entities.
</action>
<action dev="tn" type="add" issue="MATH-749">
Added MonotoneChain algorithm to compute the convex hull of a collection of
points in 2D. Additionally, the AklToussaintHeuristic can be used to speed up
the generation.
</action>
<action dev="tn" type="fix" issue="MATH-1065" due-to="matteodg">
Calculating the inverse cumulative probability of an "EnumeratedRealDistribution"
will now return the correct result according to the selected enumerated probability
mass function.
</action>
<action dev="erans" type="update" issue="MATH-1050">
Deprecated "ArithmeticUtils#pow(int, long)" and "ArithmeticUtils#pow(long, long)"
in favor of corresponding methods "ArithmeticUtils#pow(..., int)".
</action>
<action dev="erans" type="fix" issue="MATH-976">
Create additional artifact "commons-math3-x.y.z-tools.jar" as part of the
release process. This artifact contains useful tools, e.g. for performance testing.
</action>
<action dev="erans" type="fix" issue="MATH-990">
Improved performance of "MathArrays#sortInPlace(...)".
</action>
<action dev="tn" type="fix" issue="MATH-1044" due-to="Sean Owen">
Clarify javadoc of "DecompositionSolver#getInverse()" and corresponding implementations
wrt the actually returned inverse. Several decomposition implementations are able
to return a pseudo-inverse in case of a singular matrix.
</action>
<action dev="luc" type="add" issue="MATH-1095">
Added Emo Welzl algorithm to find the smallest enclosing ball of a collection of points.
</action>
<action dev="erans" type="fix" issue="MATH-985" due-to="Johnathan Kool">
Fixed an indexing problem in "BicubicSplineInterpolatingFunction" which
resulted in wrong interpolations.
</action>
<action dev="tn" type="add" issue="MATH-1072">
Added a constructor to "AbstractListChromosome" that does not copy the
input argument.
</action>
<action dev="luc" type="add" issue="MATH-1091">
BSP tree now provides an API to compute a global signed distance from
a test point to the region. The distance is positive if the point is
outside of the region, negative if the point is inside, and zero
when the point is at the boundary. The distance is continuous
everywhere, so it can be used with a root solver to identify accurately
boundary crossings. This API is available for all BSP trees, in
Euclidean and spherical geometries, and in all dimensions.
</action>
<action dev="luc" type="add">
Added new geometry sub-packages: spherical.oned which deals with geometry
on the 1-sphere (i.e. the circle) and spherical.twod which deals with the
2-sphere (i.e. the regular sphere). BSP trees can be used in these new
spaces, so one can build arcs sets and spherical polygons sets with all
the regular operations (inside/outside/boundary checks, union, intersection,
symetric difference, complement ...).
</action>
<action dev="luc" type="add" issue="MATH-1090">
IntervalsSet now implements Iterable&lt;double[]&gt;, so one can iterate
over the sub-intervals without building a full list containing
a copy of everything beforehand.
</action>
<action dev="tn" type="fix" issue="MATH-1089">
"Precision#round(double, ...)" will now return negative zero for negative
values rounded to zero, similar to the float variant.
</action>
<action dev="erans" type="fix" issue="MATH-1088">
The iterator returned by "MultiDimensionalCounter#iterator()" will now
correctly throw a "NoSuchElementException" when calling "next()" and the
iterator is already exhausted.
</action>
<action dev="luc" type="fix" >
Fixed an issue with noisy functions for ODE events detection.
</action>
<action dev="erans" type="add" issue="MATH-923">
Utilities for creating artificial neural networks (package "o.a.c.m.ml.neuralnet").
Implementation of Kohonen's Self-Organizing Feature Map (SOFM).
</action>
<action dev="tn" type="fix" issue="MATH-1082">
The cutOff mechanism of the "SimplexSolver" in package o.a.c.math3.optim.linear
could lead to invalid solutions. The mechanism has been improved in a way that
the tableau does not need to be updated anymore. Additionally, a new check will
prevent impossible solutions to be returned as valid.
</action>
<action dev="tn" type="fix" issue="MATH-1079">
Improved performance of "SimplexSolver" in package o.a.c.math3.optim.linear by
directly performing row operations and keeping track of the current basic variables.
</action>
<action dev="tn" type="update" issue="MATH-1080">
The "LinearConstraintSet" will now return the enclosed collection of "LinearConstraint"
objects in the same order as they have been added.
</action>
<action dev="tn" type="fix" issue="MATH-842">
Added support for different pivot selection rules to the "SimplexSolver" by introducing
the new "OptimizationData" class "PivotSelectionRule". Currently supported rules are:
Dantzig (default) and Bland (avoids cycles).
</action>
<action dev="tn" type="fix" issue="MATH-1070" due-to="Oleksandr Muliarevych">
Fix "Precision#round(float, int, int)" when using rounding mode "BigDecimal.ROUND_UP"
and the discarded fraction is zero.
</action>
<action dev="tn" type="fix" issue="MATH-1059">
Use "FastMath" instead of "Math" within Commons Math.
</action>
<action dev="tn" type="fix" issue="MATH-1068" due-to="Gal Lalouche">
Avoid overflow when calculating Kendall's correlation for large arrays.
</action>
<action dev="erans" type="fix" issue="MATH-1067" due-to="Florian Erhard">
Avoid infinite recursion in "Beta.regularizedBeta" (package "o.a.c.m.special");
</action>
<action dev="erans" type="add" issue="MATH-1014">
Refactoring of curve fitters (package "o.a.c.m.fitting").
</action>
<action dev="tn" type="add" issue="MATH-970">
Added possibility to retrieve the best found solution of the "SimplexSolver" in case
the iteration limit has been reached. The "optimize(OptimizationData...)" method now
supports a "SolutionCallback" which provides access to the best solution if
a feasible solution could be found (phase 2 of the Two-Phase simplex method has been reached).
</action>
<action dev="tn" type="update" issue="MATH-1031" due-to="Thorsten Schäfer">
Added new class "ClusterEvaluator" to evaluate the result of a clustering algorithm
and refactored existing evaluation code in "MultiKMeansPlusPlusClusterer"
into separate class "SumOfClusterVariances".
</action>
<action dev="psteitz" type="add" issue="MATH-1061">
Added InsufficientDataException.
</action>
<action dev="psteitz" type="fix" issue="MATH-1056" due-to="Sean Owen">
Fixed unintended integer division error in PoissonDistribution sampling method.
</action>
<action dev="tn" type="fix" issue="MATH-1057">
Fixed failing unit tests for "BOBYQAOptimizer" when executed with a Oracle/Sun JVM 1.5.
</action>
<action dev="tn" type="fix" issue="MATH-1062">
A call to "KalmanFilter#correct(...)" may have resulted in "NonSymmetricMatrixException"
as the internally used matrix inversion method was using a too strict symmetry check.
</action>
<action dev="erans" type="fix" issue="MATH-1058" due-to="Sean Owen">
Precision improvements (for small values of the argument) in "Beta" function
and in "LogNormalDistribution" and "WeibullDistribution".
</action>
<action dev="tn" type="fix" issue="MATH-1055" due-to="Sean Owen">
Fixed some invalid links inside javadoc and added missing deprecated annotations.
</action>
<action dev="tn" type="add" issue="MATH-983">
Added a graphical overview of available continuous distributions to the userguide.
</action>
<action dev="tn" type="add" issue="MATH-1051" due-to="Matt Adereth,devl">
Added Kendall's tau correlation (KendallsCorrelation).
</action>
<action dev="tn" type="fix" issue="MATH-1051">
"EigenDecomposition" may have failed to compute the decomposition for certain
non-symmetric matrices. Port of the respective bugfix in Jama-1.0.3.
</action>
<action dev="erans" type="fix" issue="MATH-1047">
Check for overflow in methods "pow" (class "o.a.c.m.util.ArithmeticUtils").
</action>
<action dev="erans" type="fix" issue="MATH-1045" due-to="Sean Owen">
"EigenDecomposition": Using tolerance for detecting whether a matrix is singular.
</action>
<action dev="luc" type="add" issue="MATH-1036" due-to="Ajo Fod">
Added SparseGradient to deal efficiently with first derivatives when the number
of variables is very large but most computations depend only on a few of the
variables.
</action>
<action dev="psteitz" type="update" issue="MATH-1039" due-to="Aleksei Dievskii">
Added logDensity methods to AbstractReal/IntegerDistribution with naive default
implementations and improved implementations for some current distributions.
</action>
<action dev="psteitz" type="add" issue="MATH-1038" due-to="Thorsten Schäfer">
Added ConfidenceInterval class and BinomialConfidenceInterval providing several
estimators for confidence intervals for binomial probabilities.
</action>
<action dev="tn" type="fix" issue="MATH-1035" due-to="derphead">
Simplified and improved performance of "ArithmeticUtils#addAndCheck(long, long)".
</action>
<action dev="tn" type="add" issue="MATH-1004" due-to="Ajo Fod">
Added new methods to compute the inverse of a matrix to "DiagonalMatrix"
and "MatrixUtils".
</action>
<action dev="tn" type="fix" issue="MATH-1029">
The "BigFraction" constructor will throw a "FractionConversionException"
also in case negative values are provided which exceed the allowed range
(+/- Integer.MAX_VALUE).
</action>
<action dev="erans" type="add" issue="MATH-1041" due-to="Sean Owen">
"Pair": added factory method and "toString" method.
</action>
<action dev="sebb" type="add" issue="MATH-1002">
"AbstractUnivariateStatistic.test(...)" methods have uses outside subclasses;
implementation moved to MathArrays.verifyValues(...).
</action>
<action dev="tn" type="fix" issue="MATH-1033" due-to="Yuan Qu">
The "KalmanFilter" wrongly enforced a column dimension of 1 for
the provided control and measurement noise matrix.
</action>
<action dev="tn" type="fix" issue="MATH-1037" due-to="Aleksei Dievskii">
Fix a typo in the test class of "GeometricDistribution" and ensure that a meaningful
tolerance value is used when comparing test results with expected values.
</action>
<action dev="psteitz" type="add" issue="MATH-1034" due-to="Thorsten Schäfer">
Added exact binomial test implementation.
</action>
<action dev="tn" type="add" issue="MATH-1018" due-to="Ajo Fod">
Added overloaded constructors for subclasses of "RealDistribution" implementations
which do not require an explicit "inverseCumulativeAccuracy". The default accuracy will
be used instead.
</action>
<action dev="tn" type="add" issue="MATH-1001" due-to="sebb">
Added overloaded methods for "Frequency#incrementValue(Comparable, long)" with
int, long and char primitive arguments.
</action>
<action dev="tn" type="add" issue="MATH-1030" due-to="Thorsten Schäfer">
Added a section to the userguide for the new package o.a.c.m.ml with an
overview of available clustering algorithms and a code example.
</action>
<action dev="tn" type="fix" issue="MATH-996" due-to="Tim Allison">
Creating a "Fraction" or "BigFraction" object with a maxDenominator parameter
does not throw a "FractionConversionException" anymore in case the value is
very close to fraction.
</action>
<action dev="tn" type="add" issue="MATH-1028" due-to="Thorsten Schäfer">
Added new distance metric "EarthMoversDistance".
</action>
<action dev="tn" type="fix" issue="MATH-999" due-to="Ajo Fod">
Improve performance of "DiagonalMatrix#preMultiply(RealVector)".
</action>
<action dev="psteitz" type="add" issue="MATH-1025">
Added CombinatoricsUtils to the util package, moving binomial
coefficients, factorials and Stirling numbers there and adding
a combinations iterator.
</action>
<action dev="erans" type="add" issue="MATH-991">
"PolynomialSplineFunction": added method "isValidPoint" that
checks whether a point is within the interpolation range.
</action>
<action dev="erans" type="add" issue="MATH-989">
"BicubicSplineInterpolatingFunction": added method "isValidPoint" that
checks whether a point is within the interpolation range.
</action>
<action dev="erans" type="fix" issue="MATH-1021" due-to="Brian Bloniarz">
Fixed overflow in "HypergeometricDistribution".
</action>
<action dev="erans" type="fix" issue="MATH-1020">
Fixed "nextPermutation" method (in "o.a.c.m.random.RandomDataGenerator").
This bug does not affect applications using a previous version of
Commons Math.
</action>
<action dev="erans" type="fix" issue="MATH-1019">
Buggy (private) method "shuffle" in "o.a.c.m.random.RandomDataGenerator"
superseded by "MathArrays.shuffle" (cf. MATH-1010).
</action>
<action dev="erans" type="add" issue="MATH-1010">
Utility to shuffle an array.
</action>
<action dev="erans" type="fix" issue="MATH-1012">
Created "RandomGeneratorFactory" (package "o.a.c.m.random") to reduce
code duplication in "RandomDataGenerator".
</action>
<action dev="erans" type="add" issue="MATH-1008">
Created package ("o.a.c.m.fitting.leastsquares") for least-squares
fitting, with implementations of "LevenbergMarquardtOptimizer" and
"GaussNewtonOptimizer" adapted to a new ("fluent") API.
</action>
<action dev="erans" type="update" issue="MATH-1011">
Improved implementation of "sample" method of "UniformIntegerDistribution".
</action>
<action dev="sebb" type="add" issue="MATH-1007">
Add mode function to StatUtils class.
</action>
<action dev="psteitz" type="update" issue="MATH-1006">
Enabled LaTeX expressions in javadoc and site docs via MathJax.
</action>
<action dev="sebb" type="add" issue="MATH-1000">
Add mode function to Frequency class.
</action>
<action dev="erans" type="fix" issue="MATH-1005" due-to="Roman Werpachowski">
Fixed "MathArrays.linearCombination" when array length is 1.
</action>
<action dev="erans" type="add" issue="MATH-997">
Implemented Gauss-Hermite quadrature scheme (in package
"o.a.c.m.analysis.integration.gauss").
</action>
<action dev="erans" type="update" issue="MATH-995">
Documented limitation of "IterativeLegendreGaussIntegrator" (added
warning about potential wrong usage).
</action>
<action dev="erans" type="fix" issue="MATH-993">
In "GaussNewtonOptimizer", check for convergence before updating the
parameters estimation for the next iteration.
</action>
<action dev="luc" type="add" issue="MATH-967" due-to="Oleksandr Kornieiev">
Added midpoint integration method.
</action>
<action dev="luc" type="fix" issue="MATH-988" due-to="Andreas Huber">
Fixed NullPointerException in 2D and 3D sub-line intersections.
</action>
<action dev="psteitz" type="update" issue="MATH-987" due-to="Ajo Fod">
Added append method to SimpleRegression, making this class map/reducible.
</action>
<action dev="psteitz" type="update" issue="MATH-978" due-to="Ajo Fod">
Added append method to StorelessCovariance, making this class map/reducible.
</action>
<action dev="tn" type="add" issue="MATH-851" due-to="Clemens Novak">
Added method "MathArrays#convolve(double[], double[])" to compute the
discrete, linear convolution of two sequences.
</action>
<action dev="tn" type="add" issue="MATH-977">
Added low-discrepancy random generator "HaltonSequenceGenerator".
</action>
<action dev="tn" type="add" issue="MATH-826" due-to="Sam Halliday">
Added low-discrepancy random generator "SobolSequenceGenerator".
</action>
<action dev="tn" type="add" issue="MATH-973" due-to="Mauro Tortonesi">
Added "GeometricDistribution" to "o.a.c.m.distribution" package.
</action>
<action dev="tn" type="add" issue="MATH-968" due-to="Alex Gryzlov">
Added "ParetoDistribution" to "o.a.c.m.distribution" package.
</action>
<action dev="tn" type="fix" issue="MATH-962">
Added clarification to the javadoc of "VectorFormat" and derived classes
in case "," is used as a separator.
</action>
<action dev="tn" type="add" issue="MATH-898">
Added "FuzzyKMeansClusterer" to "o.a.c.m.ml.clustering" package.
</action>
<action dev="luc" type="fix" issue="MATH-965" >
Fixed inconsistent dimensions preventing use of secondary states
in ODE events.
</action>
</release>
<release version="3.2" date="2013-04-06" description="
This is a minor release: It combines bug fixes and new features.
Changes to existing features were made in a backwards-compatible
way such as to allow drop-in replacement of the v3.1[.1] JAR file.
Most notable among the new features are: Framework for automatic
differentiation, Lévy distribution, prime numbers, enumerated
distributions, real field allowing to use several algorithms
(solvers, linear algebra, 3D geometry) with different real-like
classes (high accuracy or automatic differentiation), spherical
coordinates with gradients and Hessians, reorganized clustering
package with different distance implementations.
The minimum version of the Java platform required to compile and use
Commons Math is Java 5.
Users are encouraged to upgrade to this version as this release not
only includes bug fixes but also deprecates numerous classes and
methods that will be deleted from the next major release (4.0).
Caveat:
1. The implementation of the BOBYQA optimization algorithm is in alpha
state (cf. MATH-621): Many code paths are untested, and we are looking
for volunteers to improve the code readability, robustness and performance
and to extend the unit tests suite.
2. A few methods in the FastMath class are in fact slower that their
counterpart in either Math or StrictMath (cf. MATH-740 and MATH-901).
">
<action dev="luc" type="fix" issue="MATH-961" >
Fixed wrong array dimensions in secondary equations handling in some cases.
</action>
<action dev="luc" type="fix" issue="MATH-960" >
Fixed missing side effects of secondary equations on main state in
Ordinary Differential Equations integration.
</action>
<action dev="luc" type="fix" issue="MATH-957" due-to="Evan Ward">
Fixed inverse cumulative probability for uniform distribution.
</action>
<action dev="tn" type="add" issue="MATH-917,MATH-918,MATH-919,MATH-920" due-to="Reid Hochstedler">
All contents of package "o.a.c.m.stat.clustering" refactored into
new package "o.a.c.m.ml.clustering" and added support for additional
distance measures in package "o.a.c.m.ml.distance": "CanberraDistance",
"ChebyshevDistance", "EuclideanDistance" and "ManhattanDistance".
</action>
<action dev="tn" type="fix" issue="MATH-891">
"SpearmansCorrelation" now works correctly in case of a provided
"NaturalRanking" with a "NaNStrategy.REMOVED" strategy and the input
data contains NaN values. From version 4.0 onwards this strategy will
not be supported anymore.
</action>
<action dev="erans" type="update" issue="MATH-956">
Replaced hard-coded numbers in "LevenbergMarquardtOptimizer".
</action>
<action dev="luc" type="update" issue="MATH-955" due-to="Evan Ward">
Fixed loading of test file when path contains a space.
</action>
<action dev="luc" type="update" issue="MATH-954" due-to="Charles Cooper">
Improved speed of FastMath.abs methods for all signatures, by removing branching.
</action>
<action dev="luc" type="update" issue="MATH-953" due-to="Charles Cooper">
Improved speed of several FastMath methods.
</action>
<action dev="luc" type="fix" issue="MATH-934">
Fixed Complex.reciprocal() for zero argument.
</action>
<action dev="luc" type="update" issue="MATH-951" due-to="Charles Cooper">
Improved speed of FastMath copysign methods.
</action>
<action dev="erans" type="add" issue="MATH-817" due-to="Jared Becksfort">
Added Multivariate Normal Mixture Model Fitting by Expectation Maximization.
</action>
<action dev="tn" type="fix" issue="MATH-862">
AbstractRealMatrix will now check for rectangular input arrays in
its copySubMatrix methods.
</action>
<action dev="erans" type="fix" issue="MATH-949">
Increment iteration counter in optimization algorithms.
</action>
<action dev="luc" type="add" issue="MATH-811" >
Added a way to trigger only increasing or decreasing events in ODE integration.
</action>
<action dev="luc" type="fix" issue="MATH-950" >
Fixed missing update in ODE event handlers, when a RESET_STATE is triggered.
</action>
<action dev="psteitz" type="update" issue="MATH-671">
Made EmpiricalDisribution smoothing kernel pluggable.
</action>
<action dev="psteitz" type="add" issue="MATH-946" due-to="Jared Becksfort">
Added array-scaling methods to MathArrays.
</action>
<action dev="luc" type="update" issue="MATH-877" due-to="Peter Andrews">
Allow direct use of SummaryStatistics in one-way ANOVA.
</action>
<action dev="luc" type="fix" issue="MATH-947" >
Fixed infinite loop when NaN occurs in singular value decomposition.
</action>
<action dev="luc" type="add" issue="MATH-460" due-to="Andrew Waterman">
Added the Lévy distribution.
</action>
<action dev="luc" type="update" >
Normal distribution now uses a direct implementation of the
inverse error function to compute inverse cumulative probability
instead of relying on a numerical solver. This is much faster,
more accurate and does not need convergence threshold.
</action>
<action dev="luc" type="add" issue="MATH-948" >
Implementations for inverse error function and inverse complementary
error functions have been added.
</action>
<action dev="luc" type="fix" issue="MATH-580" >
Extended ranges for FastMath performance tests.
</action>
<action dev="luc" type="fix" issue="MATH-925" >
Finalized implementation of diagonal matrix.
</action>
<action dev="luc" type="fix" issue="MATH-630" due-to="Christopher Nix" >
Added rank revealing QR decomposition.
</action>
<action dev="luc" type="fix" issue="MATH-570" due-to="Arne Plöse" >
ArrayFieldVector can now be constructed from any FieldVector.
</action>
<action dev="luc" type="fix" issue="MATH-861" due-to="Sébastien Brisard" >
Improved checking of null vector elements.
</action>
<action dev="luc" type="add" issue="MATH-845" due-to="Sébastien Riou" >
Added utilities for prime numbers.
</action>
<action dev="luc" type="fix" issue="MATH-936" >
Fixed generation of long random numbers between two bounds.
</action>
<action dev="luc" type="fix" issue="MATH-942" due-to="Piotr Wydrych" >
Fixed creation of generic array.
</action>
<action dev="luc" type="add" issue="MATH-914" >
Check bounds in multi-start vector optimizers.
</action>
<action dev="luc" type="add" issue="MATH-941" due-to="Piotr Wydrych" >
Added discrete distributions.
</action>
<action dev="luc" type="fix" issue="MATH-940" due-to="Piotr Wydrych" >
Fixed abstract test class naming that broke ant builds.
</action>
<action dev="luc" type="fix" issue="MATH-939" due-to="Piotr Wydrych" >
Allow covariance to be computed for one-dimensional variables.
</action>
<action dev="luc" type="fix" issue="MATH-938" >
Fixed accuracy of 3D Line.revert().
</action>
<action dev="luc" type="fix" issue="MATH-937" >
Improved javadoc to explain how switching functions should
behave across events in ODE events detection.
</action>
<action dev="luc" type="add" >
Added Hermite interpolator for RealFieldElement instances.
</action>
<action dev="luc" type="add" >
Added RealFieldElement interface to represent anything that is
real number like, implemented by both Decimal64, Dfp and DerivativeStructure.
</action>
<action dev="luc" type="add" >
Added partial derivatives computation for 3D vectors and rotations.
</action>
<action dev="luc" type="fix" issue="MATH-935" >
Fixed DerivativeStructure.atan2 for special cases when both arguments are +/-0.
</action>
<action dev="luc" type="add" >
Added accurate linear combination of DerivativeStructure instances,
avoiding cancellation.
</action>
<action dev="erans" type="update" issue="MATH-933">
Throw "MathUnsupportedOperationException" from optimizers that do
not support constraints (previous behaviour was to silently ignore
the "SimpleBounds" argument).
</action>
<action dev="luc" type="add" >
Added conversion of gradients and Hessians from spherical to Cartesian
coordinates in 3D.
</action>
<action dev="erans" type="update" issue="MATH-931" due-to="Sean Owen">
Greater efficiency in "UnitSphereRandomVectorGenerator".
</action>
<action dev="tn" type="fix" issue="MATH-930">
Improved class javadoc wrt convergence criteria and added
additional constructors to override the default epsilon and cut-off
values in class "SimplexSolver".
</action>
<action dev="erans" type="fix" issue="MATH-929" due-to="Piotr Wydrych">
Fixed truncated value in "MultivariateNormalDistribution".
</action>
<action dev="erans" type="fix" issue="MATH-927" due-to="Dennis Hendriks">
Made "BitStreamGenerator" implement the "Serializable" interface.
</action>
</release>
<release version="3.1.1" date="2013-01-14" description="
This is a point release: It fixes a bug that renders version 3.1 unusable
in some situations (see details below).
">
<action dev="erans" type="fix" issue="MATH-924">
Added a (minimal) "DiagonalMatrix" implementation, such that the
case of a large number of uncorrelated observations is handled
efficiently.
</action>
</release>
<release version="3.1" date="2012-12-23" description="
This is a minor release: It combines bug fixes and new features.
Changes to existing features were made in a backwards-compatible
way such as to allow drop-in replacement of the v3.0 JAR file.
Most notable among the new features are: Framework for automatic
differentiation, multivariate mixture model distribution, quaternions,
Gauss integration framework, Hermite polynomial interpolation,
eigenvalue decomposition of non-symmetric matrices, DBSCAN clustering.
Most notable among the changes are: Greatly improved precision in
the implementation of the Gamma and Beta special functions, optimizers
API, deprecation of the sparse vector implementation.
The minimal version of the Java platform required to compile and use
Commons Math is Java 5.
Users are encouraged to upgrade to this version as this release not
only includes bug fixes but also deprecates numerous classes and
methods that will be deleted from the next major release (4.0).
Caveat:
1. The implementation of the BOBYQA optimization algorithm is in alpha
state (cf. MATH-621): Many code paths are untested, and we are looking
for volunteers to improve the code readability, robustness and performance
and to extend the unit tests suite.
2. A few methods in the FastMath class are in fact slower that their
counterpart in either Math or StrictMath (cf. MATH-740 and MATH-901).
">
<action dev="erans" type="add" issue="MATH-874">
All contents of package "o.a.c.m.optimization" refactored into
new packages "o.a.c.m.optimization" and "o.a.c.m.fitting".
</action>
<action dev="psteitz" type="update" issue="MATH-672">
Added methods to EmpiricalDistribution to implement the RealDistribution
interface.
</action>
<action dev="tn" type="add" issue="MATH-897" due-to="Reid Hochstedler">
DBSCAN clustering algorithm (in package "o.a.c.m.stat.clustering").
</action>
<action dev="erans" type="add" issue="MATH-910">
Added element-by-element addition, subtraction, multiplication and division
(in class "o.a.c.m.util.MathArrays").
</action>
<action dev="erans" type="fix" issue="MATH-904" due-to="Jeff Hain">
Fixed "pow" method in class "FastMath".
</action>
<action dev="erans" type="update" issue="MATH-902" due-to="Bruce A. Johnson">
Created a "maximum number of iterations" stopping criterion in the
convergence checkers (package "o.a.c.m.optimization") that allows the
optimizers to return the "current best point" even if the convergence
criteria are not met.
</action>
<action dev="erans" type="fix" issue="MATH-905" due-to="Jeff Hain">
Fixed overflow in "sinh" and "cosh" methods in class "FastMath".
</action>
<action dev="celestin" type="update" issue="MATH-849">
Accuracy improvements of Gamma.logGamma, and implementation of
Gamma.gamma. Both new implementations are based on the NSWC
Library of Mathematical Functions.
</action>
<action dev="erans" type="add" issue="MATH-902">
New constructor in the custom checker classes (package
"o.a.c.m.optimization") for passing the number of iterations
after which the "convergence test" will return true.
This allows an algorithm to return the best solution found (after
the user-defined number of iterations) even if it does not meet the
other convergence criteria.
</action>
<action dev="tn" type="update" issue="MATH-906" due-to="Patrick Meyer">
Use "NaNStrategy#FAILED" as default strategy in "NaturalRanking".
</action>
<action dev="erans" type="add" issue="MATH-899">
Added a new "SynchronizedRandomGenerator" that wraps another
"RandomGenerator" with all methods being synchronized, thus
rendering the code thread-safe (at some efficiency cost).
</action>
<action dev="tn" type="add" issue="MATH-893" due-to="Patrick Meyer">
Add new "NaNStrategy": FAILED, used in "RankingAlgorithm" implementations.
Any encountered input value that succeeds a "Double#isNaN" check, results in a
"NotANumberException".
</action>
<action dev="tn" type="add" issue="MATH-892">
Add new constructor to "SpearmansCorrelation" class which allows to specify the
"RankingAlgorithm" to be used.
</action>
<action dev="luc" type="fix" issue="MATH-890">
Fixed naming inconsistencies between Interval and IntervalsSet classes.
</action>
<action dev="luc" type="add" issue="MATH-889">
Added a method to check points in the Interval class, with a tolerance for boundary.
</action>
<action dev="psteitz" type="add" issue="MATH-878" due-to="Radoslav Tsvetkov">
Added G-test statistics.
</action>
<action dev="erans" type="add" issue="MATH-883">
New "getSquareRoot" method in class "EigenDecomposition" (package
"o.a.c.m.linear").
</action>
<action dev="erans" type="update" issue="MATH-884">
Added "isSymmetric" and "checkSymmetric" in "MatrixUtils" (package
"o.a.c.m.linear").
</action>
<action dev="psteitz" type="update" issue="MATH-885">
Moved private array argument validation methods from ChiSquareTest to MathArrays.
</action>
<action dev="erans" type="add" issue="MATH-816" due-to="Jared Becksfort">
New class for generic multivariate mixture model distributions.
</action>
<action dev="tn" type="fix" issue="MATH-759" due-to="sebb">
Use getter/setter methods of super class for access to field "windowSize" in
"ListUnivariateImpl".
</action>
<action dev="luc" type="fix" issue="MATH-880">
Improved construction of polygons with an additional constructor, more robust numerically.
</action>
<action dev="tn" type="add" issue="MATH-474" due-to="Dan Checkoway">
Added new methods "merge(Frequency)", "merge(Collection&lt;Frequency&gt;)",
"incrementValue(Comparable&lt;?&gt;, long)" and "entrySetIterator()" to the "Frequency" class.
</action>
<action dev="tn" type="fix" issue="MATH-778" due-to="Sébastien Brisard">
Allow unlimited input values for "Dfp#multiply(int)".
</action>
<action dev="luc" type="fix" issue="MATH-641" due-to="Curtis Jensen">
Added distance to point to 2D Line and Segment.
</action>
<action dev="erans" type="fix" issue="MATH-783">
"PowellOptimizer" (package "o.a.c.m.optimization.direct") uses
"BrentOptimizer" as its internal line search optimizer. The fix
forces the convergence criterion of "BrentOptimizer" to use
function values (instead of domain values).
</action>
<action dev="erans" type="fix" issue="MATH-865,MATH-867,MATH-868" due-to="Nikolaus Hansen, Frank Hess">
Numerical accuracy problems arose in "CMAESOptimizer" (in package
"o.a.c.m.optimization.direct") when large finite boundaries were
specified, because the interval of allowed values was mapped to
[0, 1]. This mapping was not necessary and its removal allows
finite and infinite boundaries to be used together.
</action>
<action dev="luc" type="fix" >
Fixed some issues in nth root derivatives at 0.
</action>
<action dev="tn" type="fix" issue="MATH-848">
Fixed transformation to a Schur matrix for certain input matrices.
</action>
<action dev="erans" type="add" issue="MATH-860">
Added matrix "block inversion" (in "o.a.c.m.linear.MatrixUtils").
</action>
<action dev="erans" type="fix" issue="MATH-864" due-to="Frank Hess">
"CMAESOptimizer": Solution was not constrained to lie within the
provided boundaries.
</action>
<action dev="erans" type="add" issue="MATH-863" due-to="Julien Anxionnat">
New "Quaternion" class (package "o.a.c.m.complex").
</action>
<action dev="erans" type="add" issue="MATH-866" due-to="Yannick Tanguy">
Added method to test for floating-point numbers equality with a
relative tolerance (class "o.a.c.m.util.Precision").
</action>
<action dev="tn" type="fix" issue="MATH-666">
Deprecated "FieldVector#getData()" in favor of "toArray()".
</action>
<action dev="luc" type="fix" issue="MATH-789">
Fixed an error in rectangular Cholesky decomposition.
</action>
<action dev="psteitz" type="update" issue="MATH-859">
Clarified definition of isSupportXxxBoundInclusive in RealDistribution
interface, made code consistent with the definition, and deprecated
these methods, marking for removal in 4.0.
</action>
<action dev="erans" type="update" issue="MATH-841" due-to="Sebastien Riou">
Performance improvement in computation of the greatest common divisor
(in class "o.a.c.m.util.ArithmeticUtils").
</action>
<action dev="erans" type="fix" issue="MATH-855">
Added a check so that the returned point will always be the best one.
</action>
<action dev="luc" type="add" >
Added a NewtonRaphsonSolver that uses the new differentiation package
to define the function to solve. This class is intended to replace the
former NewtonSolver which is deprecated.
</action>
<action dev="psteitz" type="update" issue="MATH-850">
Added RandomDataGenerator to replace RandomDataImpl and deprecated
RandomData interface and RandomDataImpl class. Deprecated
nextInversionDeviate methods from RandomDataImpl class. Ensured that
all nextXxx methods in RandomDataImpl/RandomDataGenerator use the
configured RandomGenerator.
</action>
<action dev="erans" type="fix" issue="MATH-844">
Generate an exception for rare ill-conditioned cases in "HarmonicFitter"
guessing procedure (package "o.a.c.m.optimization.fitting").
</action>
<action dev="erans" type="add" issue="MATH-815" due-to="Jared Becksfort">
New interface for multivariate distributions.
Added multivariate normal distribution.
</action>
<action dev="luc" type="add" >
Added a utility method to compute Stirling numbers of the second kind.
</action>
<action dev="luc" type="add" >
Added a new package dealing with differentials, for one or more free
parameters and derivation order 1 or higher.
</action>
<action dev="tn" type="add" issue="MATH-777" due-to="Reid Hochstedler">
Added additional crossover policies: "CycleCrossover", "NPointCrossover",
"OrderedCrossover" and "UniformCrossover".
</action>
<action dev="tn" type="fix" issue="MATH-828">
Improved numerical stability of "SimplexSolver" by introducing Bland's rule
to prevent cycling and a cutoff threshold to zero out very small values.
</action>
<action dev="tn" type="fix" issue="MATH-836" due-to="Baste Nesse Buanes">
Fixed overflow detection for negative values in constructor of class "Fraction".
</action>
<action dev="erans" type="fix" issue="MATH-835" due-to="Baste Nesse Buanes">
Fixed overflow in method "percentageValue" in class "Fraction".
</action>
<action dev="erans" type="fix" issue="MATH-622">
Raised (to 10) the default number of fractional digits to print out.
</action>
<action dev="erans" type="fix" issue="MATH-762">
Removed duplicate code.
</action>
<action dev="tn" type="add" issue="MATH-831">
Added a new "RealMatrixFormat" class for input/output of RealMatrix instances.
Default formatter instances for commons-math and octave have been added to
"MatrixUtils".
</action>
<action dev="erans" type="add" issue="MATH-827">
New "IterativeLegendreGaussIntegrator" that performs the same automatic
subdivision of the integration interval as "LegendreGaussIntegrator",
but uses the classes from package "o.a.c.m.analysis.integration.gauss"
to perform the Gauss integration on the sub-interval.
Deprecated "LegendreGaussIntegrator".
</action>
<action dev="tn" type="fix" issue="MATH-578">
Improve performance of quantile evaluation in "Percentile" class for cases
with lots of equal values.
</action>
<action dev="erans" type="add" issue="MATH-797">
New framework for Gauss integration schemes (in package
"o.a.c.m.analysis.integration.gauss").
Gauss-Legendre quadrature rules (of unlimited order) implemented in
double precision, and high precision (using "BigDecimal").
</action>
<action dev="erans" type="add" issue="MATH-764,MATH-823">
For all distribution classes (in package "o.a.c.m.distribution"), a new
constructor takes a "RandomGenerator" parameter.
The "RandomDataImpl" instance has been superseded by this RNG.
All "sample()" methods have been modified to use this RNG instead of
delegating to the methods in "RandomData".
</action>
<action dev="tn" type="add" issue="MATH-235">
Added support for real asymmetric matrices to "EigenDecomposition".
</action>
<action dev="erans" type="add" issue="MATH-768">
Re-instated methods to find all complex roots of a polynomial (class
"LaguerreSolver" in package "o.a.c.m.analysis.solvers").
</action>
<action dev="erans" type="add" issue="MATH-810">
Added accessors to the "Pair" class (package "o.a.c.m.util").
</action>
<action dev="tn" type="add" issue="MATH-822" due-to="Jared Becksfort">
Added new constructors in "EigenDecomposition" and deprecated two constructors
with unused parameters.
</action>
<action dev="erans" type="fix" issue="MATH-798">
Added overridden method in "PolynomialFitter" (package
"o.a.c.m.optimization.fitting") to limit the number of evaluations.
</action>
<action dev="celestin" type="add" issue="MATH-807">
Added a new constructor to o.a.c.m.utils.IterationManager, allowing
for the specification of a callback function in case the maximum
number of iteration is reached.
</action>
<action dev="luc" type="add">
A new HermiteInterpolator class allows interpolation of vector-valued
functions using both values and derivatives of the function at sample
points.
</action>
<action dev="erans" type="fix" issue="MATH-804">
Parameterized "CurveFitter" class (package "o.a.c.m.optimization.fitting")
with the type of the fitting function. Updated subclasses "PolynomialFitter",
"HarmonicFitter", "GaussianFitter".
</action>
<action dev="luc" type="fix" issue="MATH-801">
Fixed a problem when building rotations from two pairs of vectors. In very rare cases,
due to numerical inaccuracies the computed quaternion was not normalized (some examples
went as high as 1.0e8) and even after normalization, the quaternion was plain wrong.
</action>
<action dev="celestin" type="remove" issue="MATH-796">
Removed unused fields LocalizedFormats.ALPHA and LocalizedFormats.BETA. This is
an acceptable compatibility break, as these fields are only meant for internal use.
</action>
<action dev="tn" type="fix" issue="MATH-644" due-to="marzieh">
Fix computation of upperCumulativeProbability in "HypergeometricDistribution" and
cleanup of duplicate probability mass function.
</action>
<action dev="celestin" type="fix" issue="MATH-791">
In GammaDistribution, deprecated getAlpha() and getBeta(). Replaced with
getShape() and getScale(), respectively.
</action>
<action dev="luc" type="fix" issue="MATH-793" due-to="Sebb">
Use inline computation for OrderedTuple hash code.
</action>
<action dev="tn" type="fix" issue="MATH-718" >
Use modified Lentz-Thompson algorithm for continued fraction evaluation to avoid
underflows.
</action>
<action dev="luc" type="fix" issue="MATH-780" >
Fixed a wrong assumption on BSP tree attributes when boundary collapses to a too
small polygon at a non-leaf node.
</action>
<action dev="luc" type="fix" issue="MATH-787" >
Put serialization back for PointValuePair and PointVectorValuePair.
</action>
<action dev="tn" type="fix" issue="MATH-627" due-to="Arne Plöse">
Avoid superfluous null check when using iterators in RealVector and ArrayRealVector.
</action>
<action dev="tn" type="fix" issue="MATH-781" due-to="Scheiber Ernő">
Use epsilon instead of ulp in floating-point comparison when dropping columns after
phase 1 in SimplexSolver.
</action>
<action dev="luc" type="fix" issue="MATH-721">
Added a workaround for an OpenJDK issue on sparc solaris with too small constants.
</action>
<action dev="tn" type="fix" issue="MATH-779" due-to="Reid Hochstedler">
Fixed ListPopulation#iterator to return an unmodifiable iterator.
</action>
<action dev="tn" type="fix" issue="MATH-775" due-to="Reid Hochstedler">
Cleanup of ListPopulation to consistently enforce the population limit.
</action>
<action dev="tn" type="fix" issue="MATH-776" due-to="Reid Hochstedler">
Use same range check in constructor for ElitisticListPopulation as in corresponding setter.
</action>
<action dev="tn" type="fix" issue="MATH-767" due-to="Dennis Hendriks">
Fixed unbalanced use of code tags in javadoc of several classes.
</action>
<action dev="tn" type="add" issue="MATH-773" due-to="Reid Hochstedler">
Added class FixedElapsedTime (new StoppingCondition for evolution of generations) to genetics package.
</action>
<action dev="celestin" type="add" issue="MATH-756">
Added classes Decimal64 and Decimal64Field, which are wrapper classes around primitive doubles.
These classes implement FieldElement and Field, respectively.
</action>
</release>
<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.
Most notable among the new features are: Iterative solvers, Kalman filter,
ISAAC RNG, Illinois and Pegasus root finders, enhanced ODE framework,
refactored geometry package, Binary Space Partition trees.
Most notable among the changes are: Exclusive use of unchecked exceptions,
removal of interfaces for which a single implementation is assumed to exist,
improved coding and API consistency across packages, performance (matrix
product, FFT) and robustness (SVD).
Because of the base package name change, this release can be used together
with earlier versions of Commons Math.
The minimal version of the Java platform required to compile and use
Commons Math is Java 5.
Users are encouraged to upgrade to this version as, in addition to new
features, this release includes numerous bug fixes.
Users of Commons Math 2.0-2 should recompile their code against the 3.0 JAR
file and must adjust the import statements to use the appropriate
org.apache.commons.math3 base package.
Most of the compilation errors users will encounter after the switch will
be due to moved or deleted classes/interfaces resulting from package
reorganization.
Caveat:
1. The implementation of the BOBYQA optimization algorithm is in alpha state
(cf. MATH-621): Many code paths are untested, and we are looking
for volunteers to improve the code readability, robustness and performance
and to extend the unit tests suite.
2. A few methods in the FastMath class are in fact slower that their
counterpart in either Math or StrictMath (cf. MATH-740).
">
<action dev="mikl" type="add" issue="MATH-431">
Added statistical hypothesis tests "MannWhitneyUTest" and
"WilcoxonSignedRankTest".
</action>
<action dev="erans" type="update" issue="MATH-698">
Classes "CMAESOptimizer" and "BOBYQAOptimizer" inherit from
"BaseAbstractMultivariateSimpleBoundsOptimizer" (in package
"o.a.c.m.optimization.direct").
</action>
<action dev="sebb" type="fix" issue="MATH-650" >
Added pre-computed arrays to speed up initial loading time for FastMath.
</action>
<action dev="luc" type="update">
Resources for error messages translations have been moved out of META-INF
folder in the jar, to avoid interferences with some build systems.
</action>
<action dev="erans" type="fix" issue="MATH-744" due-to="Thundre">
Fixed "doubleValue" and "floatValue" method in "BigFraction" when
numerator and denominator are larger than the range of the
corresponding primitive type.
</action>
<action dev="erans" type="update" issue="MATH-488">
Removed "MathException" (from package "o.a.c.math").
</action>
<action dev="erans" type="update" issue="MATH-459">
Removed "MathRuntimeException" (from package "o.a.c.math").
</action>
<action dev="tn" type="fix" issue="MATH-739">
Merged interface and implementation of statistical tests in
o.a.c.m.stat.inference package.
</action>
<action dev="tn" type="update" issue="MATH-670">
Merged interface and implementation of EmpiricalDistribution.
</action>
<action dev="tn" type="fix" issue="MATH-588">
Relaxed test for equality in UnivariateStatisticAbstractTest.
</action>
<action dev="tn" type="update" issue="MATH-575">
Modified the genetics package to use localized exception messages.
</action>
<action dev="tn" type="fix" issue="MATH-652" due-to="Greg Sterijevski">
Fixed a faulty test for zero in TridiagonalTransformer.
</action>
<action dev="erans" type="fix" issue="MATH-664">
Changed algorithm in computation of the covariance matrix in
"AbstractLeastSquares" (package "optimization.general"), from
"LUDecomposition" to "QRDecomposition".
</action>
<action dev="psteitz" type="fix" issue="MATH-724" due-to="Dennis Hendriks">
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.
</action>
<action dev="erans" type="fix" issue="MATH-728" due-to="Bruce A. Johnson">
Fixed "offset by one" bug in "BOBYQAOptimizer".
</action>
<action dev="luc" type="fix" issue="MATH-727">
Check first step size in embedded Runge-Kutta integrators, and truncate it if needed.
</action>
<action dev="psteitz" type="fix" issue="MATH-723">
Modified setSeed methods in Bitstream generators (MersenneTwister and Well
generators) to clear the cache of normal deviates used by nextGaussian.
</action>
<action dev="luc" type="fix" issue="MATH-716">
Fixed bracketing interval balancing in BracketingNthOrderBrentSolver.
</action>
<action dev="erans" type="fix" issue="MATH-690">
Removed unused or duplicate utility methods from "MathUtils".
Math functions with "double" arguments were moved to class "FastMath".
</action>
<action dev="erans" type="fix" issue="MATH-689">
Broke up bloated "MathUtils" class into "MathArrays", "Precision",
"ArithmeticUtils" classes.
</action>
<action dev="psteitz" type="fix" issue="MATH-704" due-to="Thomas Neidhart">
Fixed array indexing error in Variance evaluate method for
computing the weighted variance of an array segment.
</action>
<action dev="luc" type="fix" issue="MATH-713" due-to="Thomas Neidhart">
Fixed case of unconstrained variables that still occur in the objective function
in simplex solver.
</action>
<action dev="luc" type="add" issue="MATH-710" due-to="Eldar Agalarov">
The fast cryptographically secure pseudorandom number generator ISAAC has been added.
</action>
<action dev="luc" type="add" issue="MATH-714">
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.
</action>
<action dev="luc" type="fix" issue="MATH-705">
Improved accuracy of Runge-Kutta based step interpolators near step start.
</action>
<action dev="psteitz" type="fix" issue="MATH-691">
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.
</action>
<action dev="psteitz" type="update" issue="MATH-694">
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.
</action>
<action dev="psteitz" type="update" issue="MATH-693">
Added support for population variance in StatUtils, SummaryStatistics
and DescriptiveStatistics and clarified javadoc to make it clear that
'variance' means sample variance.
</action>
<action dev="luc" type="fix" issue="MATH-709">
Fixed BigFraction percentage method which did not work at all.
</action>
<action dev="erans" type="update" issue="MATH-697">
Added interface and abstract class for supporting optimizers classes
that can take simple constraints into account.
</action>
<action dev="luc" type="fix" due-to="MATH-706" >
Fixed a bad interaction between step handlers and event handlers in
ODE integrators.
</action>
<action dev="luc" type="add" due-to="Jan Kotek" >
Added array constructor and getter for Vector2D and Vector3D.
</action>
<action dev="luc" type="add" due-to="Jan Kotek" >
Added applyTo and applyInverseTo methods in the Rotation class that
handle directly arrays instead of Vector3D instances.
</action>
<action dev="luc" type="fix" issue="MATH-196" >
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.
</action>
<action dev="luc" type="fix" issue="MATH-702" >
CMA-ES optimizer input sigma is now consistent with boundaries range units.
</action>
<action dev="psteitz" type="add" issue="MATH-462" due-to="Pavel Ryzhof">
Added stable random generator based on Chambers-Mallows-Stuck method.
</action>
<action dev="psteitz" type="update" issue="MATH-701">
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.
</action>
<action dev="luc" type="fix" issue="MATH-695">
Fixed an event resetting issue in ODE.
</action>
<action dev="erans" type="update" issue="MATH-696">
Default implementation for "addToEntry" and "multiplyEntry" in
"AbstractRealMatrix".
</action>
<action dev="erans" type="add" issue="MATH-685">
Method "addToEntry" in "RealVector".
</action>
<action dev="psteitz" type="update" issue="MATH-612" due-to="Christopher Nix">
Replaced temporary matrices and entry mutators with double[][] arrays to speed computation
in loops within QRDecomposition, Bi- and TriDiagonalTransformer implementations.
</action>
<action dev="luc" type="fix" issue="MATH-679" due-to="Christopher Berner">
Fixed an integer overflow in OpenMapRealMatrix.
</action>
<action dev="erans" type="fix" issue="MATH-688">
"FastMath": Use constant fields instead of recomputing them at method
call.
</action>
<action dev="luc" type="add" issue="MATH-687" due-to="Romain di Costanzo">
Added Jacobi polynomials.
</action>
<action dev="erans" type="add" issue="MATH-683" due-to="Romain di Costanzo">
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.
</action>
<action dev="erans" type="fix" issue="MATH-676">
Faster "multiply" method in "Array2DRowRealMatrix". Code inspired
from the Jama project.
</action>
<action dev="luc" type="fix" issue="MATH-445" >
Replaced package.html with package-info.java for package documentation.
</action>
<action dev="luc" type="fix" issue="MATH-284" due-to="Klaus Hartlage">
Added a getRuntimeClass method to the Field interface allowing to use a
complete hierarchy of fields sharing a common interface.
</action>
<action dev="luc" type="fix" issue="MATH-457" >
The last remaining uses of OptimizationException have been replaced by unchecked
exceptions (UnboundSolutionException, NoFeasibleSolutionException,
MaxCountExceededException ...)
</action>
<action dev="luc" type="fix" issue="MATH-487" >
The checked ConvergenceException has been replaced by an unchecked ConvergenceException.
</action>
<action dev="luc" type="fix" issue="MATH-381" due-to="Pascal Parraud">
ODE step interpolation with Jacobians is now fully merged with
classical step interpolation.
</action>
<action dev="luc" type="fix" issue="MATH-380" due-to="Pascal Parraud">
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.
</action>
<action dev="gregs" type="update" issue="MATH-607">
SimpleRegression implements UpdatingMultipleLinearRegression interface.
</action>
<action dev="gregs" type="update" issue="MATH-675">
Added isMonotone methods in MathUtils. Optimized checkOrder method.
</action>
<action dev="erans" type="fix" issue="MATH-664">
In class "AbstractLeastSquaresOptimizer": Allow to specify a singularity
threshold in call to "getCovariances" method.
</action>
<action dev="gregs" type="update" issue="MATH-649">
Added the ability to suppress the estimation of the intercept in SimpleRegression.
</action>
<action dev="sebb" type="fix" issue="MATH-658" due-to="Yannick TANGUY">
Dead code in FastMath.pow(double, double) and some improvement in test coverage.
</action>
<action dev="erans" type="fix" issue="MATH-663">
Removed "getData()" method from "RealVector" as it was redundant with
"toArray()".
</action>
<action dev="luc" type="update" issue="MATH-195" >
Removed completely MathUserException.
</action>
<action dev="luc" type="update" issue="MATH-488" >
Use the refactored exceptions framework for ODE.
</action>
<action dev="luc" type="add" >
Added a getter to allow retrieving the exception related to an exception context
provider.
</action>
<action dev="psteitz" type="update" issue="MATH-364" due-to="Christian Winter">
Added erf(double,double) to Erf and used this to improve tail probability
accuracy in NormalDistributionImpl.
</action>
<action dev="psteitz" type="fix" issue="MATH-654">
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.
</action>
<action dev="erans" type="fix" issue="MATH-653">
Renamed "AbstractRealVector" to "RealVector". The interface was removed
in favour of its unique (abstract) implementation. Also removed several
methods with double[] arguments from AbstractRealVector.
</action>
<action dev="erans" type="add" issue="MATH-646" due-to="Sébastien Brisard">
Unmodifiable view of a "RealVector".
</action>
<action dev="luc" type="fix" issue="MATH-501" >
Refactored integration API for consistency with solvers API. Now the main convergence
parameters are set in the constructor and remain fixed.
</action>
<action dev="luc" type="fix" issue="MATH-464" >
Added a maximal number of function evaluations to the integration method, similar
to what is done in the solvers API.
</action>
<action dev="psteitz" type="update" issue="MATH-449" due-to="Patrick Meyer">
Added storeless covariance implementation.
</action>
<action dev="psteitz" type="update" issue="MATH-648">
Eliminated extraneous constructor from SimpleRegression.
</action>
<action dev="psteitz" type="update" issue="MATH-506">
Eliminated pluggability of ChiSquaredDistribution used by ChiSquaredDistributionTest.
</action>
<action dev="psteitz" type="update" issue="MATH-634">
Made RandomGenerator configurable and reseedable in EmpiricalDistributionImpl.
</action>
<action dev="luc" type="add" issue="MATH-593">
Added a 3D SubLine class.
</action>
<action dev="erans" type="fix" issue="MATH-645">
Fixed exceptions generated by "ebeMultiply" and "ebeDivide" in "OpenMapRealVector".
</action>
<action dev="erans" type="add" issue="MATH-602" due-to="Greg Serijevski">
In "SingularValueDecompositionImpl", added accessor for the inverse of the condition number.
</action>
<action dev="psteitz" type="fix" issue="MATH-601" due-to="Chris Nix and Greg Serijevski">
Made pseudo-inverse consistent with rank computation in SingularValueDecompositionImpl.
</action>
<action dev="psteitz" type="update" issue="MATH-624" due-to="Greg Sterijevski">
Added methods to solve upper and lower triangular systems to MatrixUtils.
</action>
<action dev="psteitz" type="update" issue="MATH-642">
Improved performance of nextInt(int) in BitsStreamGenerator.
</action>
<action dev="luc" type="fix" issue="MATH-639" >
Fixed a wrong detection of rotation axis versus vectors plane in Rotation constructor
using two vectors pairs.
</action>
<action dev="luc" type="add" >
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.
</action>
<action dev="psteitz" type="fix" issue="MATH-640">
Fixed bugs in AbstractRandomGenerator nextInt() and nextLong() default
implementations. Prior to the fix for this issue, these methods
generated only positive values.
</action>
<action dev="erans" type="add" issue="MATH-637">
Simple benchmark utility (new class "PerfTestUtils" added to test sources in src/test).
</action>
<action dev="luc" type="add" issue="MATH-636" >
Added a solver for Dfp-based (i.e. high accuracy) functions.
</action>
<action dev="luc" type="add" issue="MATH-635" >
Added a Brent-like solver that has higher (user specified) order and does
bracket selection on the result: BracketingNthOrderBrentSolver.
</action>
<action dev="luc" type="add" >
Added a few shortcut methods and predicates to Dfp (abs, isZero,
negativeOrNull, strictlyNegative, positiveOrNull, strictlyPositive).
</action>
<action dev="erans" type="add" issue="MATH-633" due-to="Sébastien Brisard">
"AbstractRealMatrix" inherits from "RealLinearOperator".
</action>
<action dev="erans" type="add" issue="MATH-613" due-to="Sébastien Brisard">
Linear combination of vectors: "RealVector" interface updated, implemented
in "AbstractRealVector" and "ArrayRealVector".
</action>
<action dev="erans" type="update" issue="MATH-623" due-to="Arne Plöse">
Slightly more efficient implementation of basic operations in
"ArrayRealVector".
</action>
<action dev="erans" type="add" issue="MATH-577" due-to="Arne Plöse">
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.
</action>
<action dev="mikl" type="fix" issue="MATH-585">
Implemented faster generation of random gamma distributed values with
algorithm from Ahrens and Dieter (1972) for shape &lt; 1 and
Marsaglia and Tsang (2001) otherwise.
</action>
<action dev="luc" type="fix" issue="MATH-605" due-to="Dennis Hendriks">
Allow discrete events to be detected by ODE solvers also at step start.
</action>
<action dev="luc" type="fix" issue="MATH-327,MATH-383,MATH-465,MATH-583,MATH-611" due-to="Christopher Nix">
Rewritten SVD decomposition based on JAMA code.
</action>
<action dev="psteitz" type="fix" issue="MATH-618" due-to="Arne Plose">
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.
</action>
<action dev="erans" type="add" issue="MATH-581" due-to="Sébastien Brisard">
Framework for iterative linear solvers.
</action>
<action dev="psteitz" type="update" issue="MATH-609" due-to="Dave Brosius">
Improved efficiency in RandomDataImpl, LaguerreSolver, FastMath and OutlineExtractor by
moving conditional code into blocks where it is needed.
</action>
<action dev="luc" type="fix" issue="MATH-603" due-to="Dennis Hendriks">
Prevent step normalizer to output twice the last point in MULTIPLES mode.
</action>
<action dev="luc" type="fix" issue="MATH-596,MATH-604">
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.
</action>
<action dev="erans" type="add" issue="MATH-599" due-to="Dennis Hendriks">
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.
</action>
<action dev="luc" type="fix" issue="MATH-600">
Fixed javadoc for ODEIntegrator interface
</action>
<action dev="luc" type="fix" issue="MATH-595" due-to="Dennis Hendriks" >
Extended StepNormalizer with normalization mode and bounds settings.
</action>
<action dev="mikl" type="fix" issue="MATH-597">
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.
</action>
<action dev="luc" type="add" issue="MATH-548">
K-means++ clustering can now run multiple trials
</action>
<action dev="luc" type="add" issue="MATH-591">
Added a way to compute sub-lines intersections, considering sub-lines either
as open sets or closed sets
</action>
<action dev="luc" type="add" issue="MATH-592">
Added a way to build a sub-line from its endpoints, and to retrieve the endpoints
from a sub-line
</action>
<action dev="luc" type="fix" issue="MATH-594" due-to="Dennis Hendriks">
Javadoc fixes in ODE.
</action>
<action dev="luc" type="fix" issue="MATH-586" due-to="Dennis Hendriks">
Added a way to specify a custom root solver to find events in ODE integration.
</action>
<action dev="psteitz" type="fix" issue="MATH-540">
Fixed error in javadoc describing Integer distribution inverse cumulative
probability API.
</action>
<action dev="psteitz" type="fix" issue="MATH-582" due-to="Christopher Nix">
Fixed error in javadoc describing the behavior of the Percentile algorithm for
small percentiles in small datasets.
</action>
<action dev="erans" type="add" issue="MATH-485" due-to="Thomas Neidhart">
New "filter" package. Initial implementation of Kalman filter.
</action>
<action dev="luc" type="fix" issue="MATH-584" due-to="Randall Scarberry">
Improved k-means++ clustering performances and initial cluster center choice.
</action>
<action dev="luc" type="fix" issue="MATH-504" due-to="X. B.">
Fixed tricube function implementation in Loess interpolator.
</action>
<action dev="luc" type="fix" issue="MATH-568" due-to="Christoph M. Friedrich">
Fixed documentation of statistics examples.
</action>
<action dev="luc" type="fix" issue="MATH-507" due-to="Ole Ersoy">
Improved documentation of general optimization with a thorough example.
</action>
<action dev="luc" type="fix" issue="MATH-403">
Replaced NullPointerException by NullArgumentException.
</action>
<action dev="luc" type="add">
Added a consistent classes hierarchy for Euclidean spaces in dimension 1, 2 and 3.
</action>
<action dev="luc" type="fix" issue="MATH-579">
Improved javadoc for FastMath explaining the overhead at class loading and
the targeted use cases.
</action>
<action dev="erans" type="fix" issue="MATH-574">
Allow outer product of vectors of different sizes.
</action>
<action dev="luc" type="add" issue="MATH-576">
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.
</action>
<action dev="luc" type="fix" issue="MATH-573">
Avoid some array copying in add and subtract ArrayFieldVector.
</action>
<action dev="luc" type="fix" issue="MATH-572">
Fixed an unused constructor parameter in ArrayFieldVector.
</action>
<action dev="erans" type="add" issue="MATH-566">
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").
</action>
<action dev="luc" type="add" issue="MATH-567" due-to="Michel">
Fixed conversion problems to/from 0 in Decimal Floating Point (Dfp) class.
</action>
<action dev="luc" type="fix" >
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.
</action>
<action dev="luc" type="add" issue="MATH-564">
Added solve methods using double[][] to linear algebra decomposition solvers.
</action>
<action dev="erans" type="add" issue="MATH-562">
Added an interpolator adapter for data with known period.
</action>
<action dev="luc" type="add" issue="MATH-541" >
Added a "rectangular" Cholesky decomposition for positive semidefinite matrices.
</action>
<action dev="luc" type="add" issue="MATH-563" >
Added setters allowing to change the step size control parameters of adaptive
step size ODE integrators.
</action>
<action dev="luc" type="add" issue="MATH-557" >
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.
</action>
<action dev="luc" type="fix" issue="MATH-434" due-to="Thomas Neidhart">
Fixed two errors in simplex solver when entries are close together or
when variables are not restricted to non-negative.
</action>
<action dev="luc" type="fix" issue="MATH-547" due-to="Thomas Neidhart">
Improved robustness of k-means++ algorithm, by tracking changes in points assignments
to clusters.
</action>
<action dev="psteitz" type="update" issue="MATH-555">
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.
</action>
<action dev="luc" type="fix" issue="MATH-554" >
Reduced cancellation errors in Vector3D.crossProduct
</action>
<action dev="erans" type="fix" issue="MATH-552" due-to="James Bence">
Fixed bug in "MultidimensionalCounter".
</action>
<action dev="luc" type="fix" issue="MATH-423" due-to="Gilles Sadowski" >
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)
</action>
<action dev="luc" type="fix" issue="MATH-500" due-to="Gilles Sadowski" >
Removed the ConvergingAlgorithm interface and ConvergingAlgorithmImpl class
</action>
<action dev="luc" type="add" issue="MATH-436" due-to="Thomas Neidhart">
Added a consistency check for number of points with respect to the number
of clusters in Kmeans++ clustering
</action>
<action dev="mikl" type="add" issue="MATH-437">
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).
</action>
<action dev="mikl" type="add" issue="MATH-435">
Added "power" method in "RealMatrix" and "FieldMatrix&lt;T&gt;"
interfaces and their default implementations in "AbstractRealMatrix"
and "AbstractFieldMatrix".
</action>
<action dev="erans" type="update" issue="MATH-545">
Added "cosine" method in "RealVector" interface and default implementation
in "AbstractRealVector".
</action>
<action dev="erans" type="fix" issue="MATH-546" due-to="Nate Paymer">
Fixed bug in "KMeansPlusPlusClusterer".
</action>
<action dev="erans" type="update" issue="MATH-542">
All exceptions defined in Commons Math provide a context and a compound
message list.
</action>
<action dev="erans" type="update" issue="MATH-534">
Refactored "PolynomialFitter" (in package "optimization.fitting").
Added parametric function in "PolynomialFunction" (in package
"analysis.polynomials").
</action>
<action dev="erans" type="fix" issue="MATH-518">
Removed "HarmonicFunction" (in package "optimization.fitting");
superseded by class "HarmonicOscillator" (in package "analysis.function").
</action>
<action dev="erans" type="update" issue="MATH-517">
Refactored "HarmonicFitter" (in package "optimization.fitting").
"HarmonicCoefficientsGuesser" removed.
</action>
<action dev="erans" type="fix" issue="MATH-516">
Removed "GaussianFunction" and "GaussianDerivativeFunction" (in package
"optimization.fitting"); functionality moved to class "Gaussian" (in
package "analysis.function").
</action>
<action dev="erans" type="fix" issue="MATH-514">
Removed "ParametricGaussianFunction" (in package "optimization.fitting");
functionality moved to class "Gaussian" (in package "analysis.function").
</action>
<action dev="erans" type="update" issue="MATH-512" due-to="Ole Ersoy">
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).
</action>
<action dev="erans" type="fix" issue="MATH-442" due-to="Dietmar Wolz">
Implementation of the CMA-ES optimization algorithm.
</action>
<action dev="erans" type="fix" issue="MATH-513">
The interface "ParametricRealFunction" (in package "optimization.fitting") has
been renamed to "ParametricUnivariateRealFunction" and moved to package "analysis".
</action>
<action dev="sebb" type="fix" issue="MATH-505">
TestUtils is thread-hostile. Remove getters and setters, and make static variables final.
</action>
<action dev="sebb" type="update" issue="MATH-496">
Create FastMath copySign methods
</action>
<action dev="sebb" type="fix" issue="MATH-494">
FastMath atan2 does not agree with StrictMath for special cases
</action>
<action dev="erans" type="fix" issue="MATH-492">
Removed checked "MaxIterationsExceededException" (superseded by
"MaxCountExceededException" from package "exception").
</action>
<action dev="erans" type="fix" issue="MATH-491">
Removed checked "DimensionMismatchException". Replaced all occurrences by its
equivalent from package "exception".
</action>
<action dev="sebb" type="fix" issue="MATH-489">
FastMath acos fails when input abs value is less than about 5.7851920321187236E-300 - returns NaN
</action>
<action dev="sebb" type="fix" issue="MATH-486">
FastMath toRadian and toDegree don't handle large double numbers well
</action>
<action dev="sebb" type="fix" issue="MATH-483">
FastMath does not handle all special cases correctly
</action>
<action dev="sebb" type="fix" issue="MATH-480">
Fix ulp(Infinity) to return Infinity rather than NaN
</action>
<action dev="sebb" type="fix" issue="MATH-479">
FastMath.signum(-0.0) does not agree with Math.signum(-0.0)
</action>
<action dev="sebb" type="fix" issue="MATH-478">
FastMath is not an exact replacement for StrictMath
(partially fixed) Add signum(float), ulp(float)
</action>
<action dev="sebb" type="fix" issue="MATH-482">