blob: 8221b23e6c266c5b2af4e4b7769f2dc69b5d891d [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 bugzilla search for tickets closed since the previous release.
3. Use the report generated by the maven-changelog-plugin to see all
CVS commits. Set the project.properties' maven.changelog.range
property to the number of days since the last release.
The <action> type attribute can be add,update,fix,remove.
-->
<document>
<properties>
<title>Commons Math Release Notes</title>
</properties>
<body>
<release version="2.0" date="TBD" description="TBD">
<action dev="psteitz" type="add" issue="MATH-212" due-to="Jason C. HandUber">
Added support for copying statistics. Changes to stats classes
include copy constructor, static copy(-,-) and instance copy()
methods. Added copy() to UnivariateStatistic and StorelessUnivariateStatistic
interfaces.
</action>
<action dev="luc" type="add" issue="MATH-229" due-to="Cyril Briquet">
Added a removal feature for observations in descriptive statistics.
</action>
<action dev="luc" type="add" >
Added a scalb method in MathUtils. This method is similar to the method
with same name added in java.lang.Math as of Java 6.
</action>
<action dev="brentworden" type="fix" issue="MATH-227" due-to="Joerg Henning">
Fixed F distribution inverse CDF computation for small denominator degrees of freedom.
</action>
<action dev="luc" type="fix" issue="MATH-226" due-to="Stuart Siegel">
Fixed an error in CorrelatedRandomVectorGenerator leading to a component of
the generated vector being constant.
</action>
<action dev="luc" type="fix" issue="MATH-223" due-to="John Mulcahy">
Greatly improved QR-decomposition speed using transposed matrices internally.
</action>
<action dev="luc" type="fix" due-to="Pascal Parraud">
Fixed an infinite loop encountered in some backward integration cases for ODE solvers.
</action>
<action dev="luc" type="add" issue="MATH-222" due-to="Ted Dunning">
Added beta distribution.
</action>
<action dev="luc" type="add" issue="MATH-222" due-to="Ted Dunning">
Added probability density functions computation for distributions for which
it is feasible.
</action>
<action dev="luc" type="fix" issue="MATH-221" due-to="Dieter Roth">
Changed the Complex.equals() method so that it considers +0 and -0 are equal,
as required by IEEE-754 standard.
</action>
<action dev="luc" type="add" issue="MATH-220">
Added JAMA-like interfaces for eigen/singular problems. The implementation
of eigen-decomposition is based on the very quick dqd/dqds algorithms and some
parts of the MRRR algorithm. This leads to very fast and accurate solutions.
</action>
<action dev="luc" type="add" issue="MATH-220" >
Added JAMA-like interfaces for decomposition algorithms. These interfaces
decompose a matrix as a product of several other matrices with predefined
properties and shapes depending on the algorithm. These algorithms allow to
solve the equation A * X = B, either for an exact linear solution
(LU-decomposition) or an exact or least-squares solution (QR-decomposition).
</action>
<action dev="luc" type="add" issue="MATH-219" due-to="Andrew Berry">
Added removeData methods for the SimpleRegression class. This allows
to support regression calculations across a sliding window of (time-based)
observations without having to recalculate for the entire window every time.
</action>
<action dev="luc" type="add" due-to="Andreas Rieger">
Support for one dimensional vectors has been added to the linear algebra
package with a RealVector interface, a RealVectorImpl default implementation
using a single double array to store elements and a RealVectorFormat for
input/output.
</action>
<action dev="psteitz" type="update" issue="MATH-217">
Changed OLS regression implementation added in MATH-203 to use
QR decomposition to solve the normal equations.
</action>
<action dev="luc" type="add">
New ODE integrators have been added: the explicit Adams-Bashforth and implicit
Adams-Moulton multistep methods. These methods support customizable starter
integrators and support discrete events even during the start phase.
All these methods provide the same rich features has the existing ones:
continuous output, step handlers, discrete events, G-stop ...
</action>
<action dev="luc" type="fix" issue="MATH-214" >
Replaced size adjustment of all steps of fixed steps Runge-Kutta integrators by
a truncation of the last step only.
</action>
<action dev="luc" type="update">
The ODE integrators now support several step handlers at once, instead of just one.
This is more consistent with event handlers management.
The setStepHandler method has therefore been replaced by addStephandler, the
getStepHandler method has been replaced by getStepHandlers which returns a Collection
and a clearStepHandlers method has been added.
</action>
<action dev="luc" type="add">
All step interpolators for ODE integrators now provide interpolation for
both the state and its time derivatives. The interpolated derivatives are
the exact derivatives of the interpolated state, thus preserving consistency.
The general step handlers hence do not need to call the derivation function
anymore. The fixed step handlers also get the time derivative of the state
as an additional argument along with the state when they are called.
</action>
<action dev="luc" type="fix" issue="MATH-213" >
Changed return type for FirstOrderIntegrator.integrate() to double
in order to retrieve exact stop time. This allows to handle properly
integration interruption due to an EventHandler instance asking to
stop the integration when its associated event is triggered. The state
was already set to the current state at interruption time, but it was
difficult to get the corresponding time (it involved setting a step
handler monitoring the last step specially).
</action>
<action dev="luc" type="update">
Clarified the ODE package by breaking in into several sub-packages and renaming
classes (SwitchingFunctions/EventHandler, SwitchingFunctionsHandler/CombinedEventsManager)
</action>
<action dev="luc" type="fix" issue="MATH-210" >
Changed return type for FirstOrderIntegrator.getSwitchingFunctions()
to a collection of SwitchingFunction instances. This better suits the
intended use of the method and fixes a visibility error since the
previous return type referenced the package private SwitchState class.
</action>
<action dev="luc" type="fix" issue="MATH-209" due-to="Thomas Chust">
Fixed dimension error on output vector for the operate method
in RealMatrixImpl and BigMatrixImpl classes.
</action>
<action dev="luc" type="update">
The FirstOrderDifferentialEquations, FirstOrderIntegrator and FixedStepHandler
interfaces now extends Serializable, allowing integrators, problems and
handlers to be embedded into users Serializable classes.
</action>
<action dev="luc" type="add">
Added several convenience methods and constants for Vector3D and Rotation.
</action>
<action dev="luc" type="update">
Replaced public no argument constructors with IDENTITY or ZERO
static instances for immutable classes Vector3D and Rotation.
</action>
<action dev="luc" type="fix">
Fixed inconsistencies in the naming scheme for static fields in
Vector3D and Rotation with respect to the overall library.
</action>
<action dev="luc" type="update" >
Greatly improved RealMatrixImpl and BigMatrixImpl performances,
both in terms of speed and in terms of temporary memory footprint.
</action>
<action dev="luc" type="add" issue="MATH-203" due-to="Mauro Talevi">
Added Mauro's patch to support multiple regression.
</action>
<action dev="luc" type="update" >
Starting with version 2.0 of the library, the minimal version of the Java
platform required to compile and use commons-math is Java 5. This version
is widely deployed now on many systems. It brings new important features
for specific mathematical developments, for example new functions (log10,
cbrt, ulp, signum, cosh, sinh, tanh, hypot, expm1, log1p), autoboxing,
MathContext or RoundingMode. It also brings important features for general
development, for example enums, generics or annotations.
</action>
<action dev="luc" type="add" >
Switching functions can now throw dedicated SwitchException from all their
method. At upper call level, the various ODE integrators handle these new
exceptions and wrap them into IntegratorException instances, hence the
integrators methods signature did not change.
</action>
<action dev="luc" type="add" issue="MATH-202">
Added the getSwitchingFunctions and clearSwitchingFunctions to the
FirstOrderIntegrator interface and all its implementations
</action>
<action dev="luc" type="update" >
Removed deprecated features. This includes the following changes. Factory-based
instantiation replaced by setter injection in 1.2 in several classes have been
removed. Protected fields in matrices implementations have been declared final
and private. Identity factory methods moved to MatrixUtils class have been
removed. Complex utilities methods that have been superseded by Complex instance
methods have been removed.
</action>
</release>
<release version="1.3-SNAPSHOT" date="TBD" description="TBD">
<action dev="luc" type="fix" issue="MATH-205" due-to="Roman Werpachowski">
Fixed formula in fast cosine transformer javadoc comments.
</action>
<action dev="brentworden" type="fix" issue="MATH-193" due-to="Michael Heuer and Sebb">
Javadoc and style fixes.
</action>
<action dev="luc" type="fix" issue="MATH-198" due-to="Frederick Salardi">
Added an error detection for missing imaginary character while parsing complex string
</action>
<action dev="luc" type="fix" issue="MATH-199" due-to="Mick">
Detect numerical problems in Q.R decomposition for Levenberg-Marquardt estimator
and report them appropriately
</action>
<action dev="luc" type="fix" issue="MATH-200" due-to="Plamen Petrov">
Fixed several crashes in getCovariances() and guessParametersErrors() in
AbstractEstimator when some parameters are bound. The methods now explicitly
give result only about unbound parameters.
</action>
<action dev="brentworden" type="fix" issue="MATH-201" due-to="Peter Wyngaard">
Fixed truncation error in t-test classes for large t values.
</action>
<action dev="brentworden" type="fix" issue="MATH-204" due-to="Mick">
Added root checks for the endpoints.
</action>
</release>
<release version="1.2" date="2008-02-24"
description="This release combines bug fixes and new features. Most notable
among the new features are the estimation, optimization, geometry and ode
packages added from the Mantissa library. Implementations of fast Fourier
transform, QR decomposition and several numerical integration algorithms
have also been added, along with enhancements and extensions to packages
included in Commons Math 1.1. This release is source and binary compatible
with earlier versions of Commons Math.">
<action dev="luc" type="fix">
Fixed numerous warnings in test code.
</action>
<action dev="luc" type="fix" issue="MATH-156" due-to="Tyler Ward">
Use the initial guess provided by the user in BrentSolver.solve(), thus
improving speed.
</action>
<action dev="luc" type="add">
Added the estimation, optimization, geometry and ode packages from the
Mantissa library.
</action>
<action dev="brentworden" type="fix" issue="MATH-18" due-to="Phil Steitz">
Made ComplexFormat format double values with a provided NumberFormat
instance instead of using the real part format for all values.
</action>
<action dev="psteitz" type="add" issue="MATH-120" due-to="Todd C. Parnell">
Added Pascal distribution implementation.
</action>
<action dev="psteitz" type="add" issue="MATH-148" due-to="Joni Salonen">
Added QR Decomposition.
</action>
<action dev="psteitz" type="fix" issue="MATH-60" due-to="Nhung Nnguyen">
Modified ProperFractionFormat to reject embedded minus signs.
</action>
<action dev="psteitz" type="fix" issue="MATH-151" due-to="Luc Maisonobe">
Added a nextAfter method in MathUtils to return the next
machine-representable number in a specified direction from a given
floating point number. Used this to ensure that MathUtils.round does
not return incorrect results for numbers with bad IEEE754
representations.
</action>
<action dev="psteitz" type="add" issue="MATH-140" due-to="Xiaogang Zhang">
Added Fast Fourier Transform implementation.
</action>
<action dev="psteitz" type="fix" issue="MATH-85" due-to="Mark Osborn, Luc Maisonobe">
Modified getSumSquaredErrors method in SimpleRegression to always
return a non-negative result.
</action>
<action dev="brentworden" type="fix" issue="MATH-153" due-to="Remi Arntzen">
Corrected nextInt and nextLong to handle wide value ranges.
</action>
<action dev="psteitz" type="fix" issue="MATH-166" due-to="Lukas Theussl">
Increased default precision of Gamma and Beta functions.
</action>
<action dev="psteitz" type="update" issue="MATH-158" due-to="Hasan Diwan">
Added log function to MathUtils.
</action>
<action dev="psteitz" type="update" issue="MATH-160" due-to="Matthias Hummel">
Added two sample (binned comparison) ChiSquare test.
</action>
<action dev="psteitz" type="fix" issue="MATH-167">
Modified NormalDistributionImpl.cumulativeProbablity to catch
MaxIterationsExceededException and return 0 or 1, resp. if the argument
is more than 20 standard deviations from the mean.
</action>
<action dev="brentworden" type="update" issue="MATH-170" due-to="David J. M. Karlsen">
Added SynchronizedDescriptiveStatistics class.
</action>
<action dev="brentworden" type="update" issue="MATH-154" due-to="Remi Arntzen">
Added addAndCheck, mulAndCheck, and subAndCheck MathUtils methods for
long integer arguments.
</action>
<action dev="psteitz" type="update" issue="MATH-171" due-to="Niall Pemberton">
Merged most functions from ComplexUtils into Complex class, added
static factory method to Complex.
</action>
<action dev="psteitz" type="update">
Deprecated abstract factory methods and made DescriptiveStatistics and
and SummaryStatistics concrete classes. Pushed implementations up
from DescriptiveStatisticsImpl, SummaryStatisticsImpl. Made
implementations of statistics configurable via setters.
</action>
<action dev="psteitz" type="fix" issue="MATH-174">
Changed Mean.evaluate() to use a two-pass algorithm, improving accuracy
by exploiting the the fact that this method has access to the full
array of data values.
</action>
<action dev="psteitz" type="fix" issue="MATH-175" due-to="Carl Anderson">
Added check and rescaling of expected counts to sum to sum of expected
counts if necessary in ChiSquare test.
</action>
<action dev="luc" type="fix" issue="MATH-164">
Handle multiplication of Complex numbers with infinite parts specially.
</action>
<action dev="luc" type="update" issue="MATH-176" due-to="Kazuhiro Koshino">
Add errors guessing to least-squares estimators.
</action>
<action dev="luc" type="update" issue="MATH-179" due-to="Niall Pemberton">
Add tests for Fraction constructor using double parameter.
</action>
<action dev="psteitz" type="add" issue="MATH-173" due-to="Bob MacCallum">
Added one-way ANOVA implementation.
</action>
<action dev="luc" type="update" issue="MATH-181" due-to="Niall Pemberton">
Add Fraction constructor using max denominator value.
</action>
<action dev="luc" type="fix" issue="MATH-182">
Add integer overflow checks in Fraction constructor using double parameter.
</action>
<action dev="luc" type="fix" issue="MATH-185">
Throw EOFException when using empty files with ValueServer in replay and
digest modes.
</action>
<action dev="luc" type="update" >
Added a equals and hash methods in MathUtils to check for double arrays
</action>
<action dev="luc" type="add" >
Added an angle normalization method in MathUtils to force angles in some
user-defined interval
</action>
<action dev="luc" type="add" >
Added vectorial covariance computation (either sample or population
covariance)
</action>
<action dev="luc" type="add" >
Added multivariate summary statistics.
</action>
<action dev="psteitz" type="update" issue="MATH-191">
Added getSumOfLogs method to SummaryStatistics and made SumOfLogs
instance used by GeometricMean configurable.
</action>
<action dev="psteitz" type="fix" issue="MATH-184" due-to="Yegor Bryukhov">
Fixed AbstractIntegerDistribution cumulativeProbablility(-,-)
to correctly handle double arguments.
</action>
<action dev="psteitz" type="update" issue="MATH-188" due-to="Sebastian Bazley">
Made numerator and denominator final in Fraction and
deprecated protected real and imaginary parts fields in Complex,
making Fraction immutable and preparing Complex to become fully
immutable in 2.0.
</action>
</release>
<release version="1.1" date="2005-12-17"
description="This is a maintenance release containing bug fixes and enhancements.
All API changes are binary compatible with version 1.0. The enhancements
include some new probability distributions, a Fraction class, new matrix
and numerical utilities, and a PRNG pluggability framework making it
possible to replace the JDK-supplied random number generator in
commons-math (and elsewhere) with alternative PRNG implementations.">
<action dev="psteitz" type="fix" issue="MATH-74">
Made NewtonSolver derivative field transient and implemented readObject to
initialize.
</action>
<action dev="psteitz" type="fix" issue="MATH-74">
Made sampleStats field private and changed getUpperBounds to return a fresh
copy in EmpiricalDistributionImpl.
</action>
<action dev="psteitz" type="update">
Added polar2Complex method to ComplexUtils to create Complex numbers
from polar representations.
</action>
<action dev="psteitz" type="fix" issue="MATH-49" due-to="Elliotte Harold">
Made all serialVersionUIDs private.
</action>
<action dev="psteitz" type="fix" issue="MATH-5">
Improved documentation and test cases related to handling of infinite
and NaN values in Complex, ComplexUtils classes.
</action>
<action dev="psteitz" type="fix" issue="MATH-57" due-to="Mauro Talevi">
Fixed incorrect NaN handling in o.a.m.s.d.rank.Min, Max
</action>
<action dev="psteitz" type="fix" issue="MATH-74">
Changed RealMatrixImpl.equals to use Double.doubleToLongBits to compare
corresponding matrix entries.
</action>
<action dev="psteitz" type="fix" issue="MATH-74">
Eliminated floating point equals comparison in Percentile.evaluate.
</action>
<action dev="psteitz" type="fix" issue="MATH-74">
Eliminated unnecessary assignment statements in Skewness.getResult
method.
</action>
<action dev="psteitz" type="fix" issue="MATH-74">
Synchronized getters in ResizeableDoubleArray.
</action>
<action dev="psteitz" type="fix" issue="MATH-74">
Eliminated unnecessary assignment statement in BisectionSolver.solve
method.
</action>
<action dev="psteitz" type="fix" issue="MATH-74">
Implemented hashCode in the Complex class and changed the semantics of
equals to make all instances with real or imaginary part NaN equal.
</action>
<action dev="psteitz" type="fix" issue="MATH-12" due-to="Keith McDonald">
Fixed bin index overflow problem in EmpiricalDistributionImpl.
</action>
<action dev="brentworden" type="fix" issue="MATH-108" due-to="Xiaogang Zhang">
Added protection against numerical overflow and underflow in the
isBracketing method.
</action>
<action dev="brentworden" type="fix" issue="MATH-47" due-to="Nikhil Gupte">
Fixed division by zero error in rounding methods.
</action>
<action dev="brentworden" type="fix" issue="MATH-100" due-to="Mike Hu">
Added upper tail cumulative probability method to HypergeometricDistributionImpl.
</action>
<action dev="brentworden" type="fix" issue="MATH-22" due-to="Xiaogang Zhang">
Added better handling of numerical overflow and division by zero in
Complex calculations.
</action>
<action dev="brentworden" type="fix" issue="MATH-92" due-to="Mikael Weigelt">
Changed ContinuedFraction to better handle infinite convergents that
resulted in divergent continued fraction evaluations.
</action>
<action dev="brentworden" type="fix" issue="MATH-32" due-to="Srinivas Vemury">
Changed rounding methods to not rely on BigDecimal conversions which
was causing numerical error.
</action>
<action dev="psteitz" type="fix" issue="MATH-3" due-to="Jörg Weimar">
Changed Fraction(double) to correctly handle near-integral arguments.
</action>
<action dev="psteitz" type="fix" issue="MATH-143" due-to="Jörg Weimar">
Changed lcm to throw ArithmeticException (instead of returning bogus
value) if the result is too large to store as an integer.
</action>
<action dev="psteitz" type="fix" issue="MATH-70" due-to="Mary Ellen Foster">
Added factories for TTest, ChiSquareTest and TestUtils class with
static methods to create instances and execute tests.
</action>
<action dev="psteitz" type="update" issue="MATH-95" due-to="Paul Field">
Eliminated repeated endpoint function evalutations in BrentSolver, SecantSolver.
</action>
<action dev="psteitz" type="update" issue="MATH-137" due-to="Rodrigo di Lorenzo Lopes">
Added setSubMatrix methods to RealMatrixImpl, BigMatrixImpl. To
Preserve backward compatibility with version 1.0, these methods were
not added to the RealMatrix, BigMatrix interfaces.
</action>
<action dev="psteitz" type="update">
Added createXIdentityMatrix methods to MatrixUtils and deprecated
getIdentity methods in RealMatrixImpl, BigMatrixImpl.
Modified RealMatrixImpl, BigMatrixImpl constructors to throw
IllegalArgumentExceptions instead of ArrayIndexOutOfBounds when
dimension arguments are not positive.
</action>
<action dev="psteitz" type="update">
Made PRNG pluggable for classes in the random package. Added
RandomGenerator interface extracted from java.util.random and abstract
implementation, AbstractRandomGenerator providing default
implementations of methods based on nextDouble(). Added a constructor
taking a RandomGenerator as an argument to RandomDataImpl. Changed
ValueServer to use a RandomData in its constructor. Changes to
1.0 classes should be backward compatible (including serialization).
</action>
<action dev="psteitz" type="update" due-to="C. Scott Ananian">
Added utility methods for overflow-checked integer arithmetic and
improved gcd method in MathUtils.
</action>
<action dev="psteitz" type="fix" issue="MATH-79" due-to="Gilles Gaillard">
Fixed error in TTestImpl.homoscedasticTtest. Implementation was
incorrectly using heteroscedastic t statistic. Also improved
sensitivity of test cases.
</action>
<action dev="psteitz" type="fix" issue="MATH-44" due-to="Gilles Gaillard">
Fixed javadoc errors. One-sided t-test significance adjustment was
reversed in javadoc for boolean-valued test methods.
</action>
<action dev="brentworden" type="fix" due-to="Ben Litchfield">
Fixed bug in PolynomialSplineFunction to allow evaluation of the
function at the last knot point.
</action>
<action dev="brentworden" type="add">
Added Weibull distribution implementation.
</action>
<action dev="brentworden" type="add">
Added Cauchy distribution implementation.
</action>
<action dev="brentworden" type="add">
Added convenience methods for rounding.
</action>
<action dev="brentworden" type="add" due-to="C. Scott Ananian">
Added Fraction class based on commons-lang implementation. With the
fraction class, FractionFormat and ProperFractionFormat classes were
added to provide fraction formatting and parsing.
</action>
</release>
<release version="1.0" date="2004-12-06"
description="Apache Commons Math 1.0 - Initial Release">
</release>
</body>
</document>