commons-math/RELEASE-NOTES.txt

162 lines
6.4 KiB
Plaintext
Raw Normal View History

Apache Commons Math Version 1.2-RC2
RELEASE NOTES
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.
For more information on Apache Commons Math, see
http://commons.apache.org/math/
SUMMARY OF CHANGES
ADDITIONS
* Added the estimation, optimization, geometry and ode packages from the
Mantissa library.
* MATH-120. Added Pascal distribution implementation. Thanks to Todd C.
Parnell.
* MATH-148. Added QR Decomposition. Thanks to Joni Salonen.
* MATH-140. Added Fast Fourier Transform implementation. Thanks to Xiaogang
Zhang.
* MATH-173. Added one-way ANOVA implementation. Thanks to Bob MacCallum.
* Added an angle normalization method in MathUtils to force angles in some
user-defined interval
* Added vectorial covariance computation (either sample or population
covariance)
* Added multivariate summary statistics.
BUG FIXES
* Fixed numerous warnings in test code.
* MATH-156. Use the initial guess provided by the user in
BrentSolver.solve(), thus improving speed. Thanks to Tyler Ward.
* MATH-18. Made ComplexFormat format double values with a provided
NumberFormat instance instead of using the real part format for all values.
Thanks to Phil Steitz.
* MATH-60. Modified ProperFractionFormat to reject embedded minus signs.
Thanks to Nhung Nnguyen.
* MATH-151. 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. Thanks to
Luc Maisonobe.
* MATH-85. Modified getSumSquaredErrors method in SimpleRegression to always
return a non-negative result. Thanks to Mark Osborn, Luc Maisonobe.
* MATH-153. Corrected nextInt and nextLong to handle wide value ranges.
Thanks to Remi Arntzen.
* MATH-166. Increased default precision of Gamma and Beta functions. Thanks
to Lukas Theussl.
* 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.
* 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.
* MATH-175. Added check and rescaling of expected counts to sum to sum of
expected counts if necessary in ChiSquare test. Thanks to Carl Anderson.
* MATH-164. Handle multiplication of Complex numbers with infinite parts
specially.
* MATH-182. Add integer overflow checks in Fraction constructor using double
parameter.
* MATH-185. Throw EOFException when using empty files with ValueServer in
replay and digest modes.
* MATH-184. Fixed AbstractIntegerDistribution cumulativeProbablility(-,-) to
correctly handle double arguments. Thanks to Yegor Bryukhov.
UPDATES
* MATH-158. Added log function to MathUtils. Thanks to Hasan Diwan.
* MATH-160. Added two sample (binned comparison) ChiSquare test. Thanks to
Matthias Hummel.
* MATH-170. Added SynchronizedDescriptiveStatistics class. Thanks to David J.
M. Karlsen.
* MATH-154. Added addAndCheck, mulAndCheck, and subAndCheck MathUtils methods
for long integer arguments. Thanks to Remi Arntzen.
* MATH-171. Merged most functions from ComplexUtils into Complex class, added
static factory method to Complex. Thanks to Niall Pemberton.
* 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.
* MATH-176. Add errors guessing to least-squares estimators. Thanks to
Kazuhiro Koshino.
* MATH-179. Add tests for Fraction constructor using double parameter. Thanks
to Niall Pemberton.
* MATH-181. Add Fraction constructor using max denominator value. Thanks to
Niall Pemberton.
* Added a equals and hash methods in MathUtils to check for double arrays
* MATH-191. Added getSumOfLogs method to SummaryStatistics and made SumOfLogs
instance used by GeometricMean configurable.
* MATH-188. 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. Thanks to
Sebastian Bazley.
DEPRECATIONS SUMMARY
* The abstract factory pattern used to enable pluggable implementations in the
statistics, analysis and distributions packages has been deprecated and
replaced by setter injection.
* Non-localized exception messages and associated constructors have been
deprecated and replaced by localized versions.
* Most methods from the ComplexUtils class have been deprecated, with
implementations moved to the Complex class.
See "clirr-report.html" included in the docs directory of the binary
distribution for a detailed list of API changes. The "errors" reported at the
top of the report are due to protected fields being moved to superclasses.
These fields are still available, so there is no backward compatibility issue.
BUILDING COMMONS MATH
Commons math can be built from the source distribution using Maven 1, Maven 2,
or Ant, launching any one of these from the top-level directory of the unpacked
zip or tarball. For detailed build instructions and information about how to
contribute to Commons Math, see "developers.html" in the docs directory of the
binary distribution.