Changes Report

Release History

Version Date Description
1.2 2008-02-23 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.
1.1 2005-12-17 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.
1.0 2004-12-06 Apache Commons Math 1.0 - Initial Release


Release 1.2 - 2008-02-23

Type Changes By
fix Fixed numerous warnings in test code. luc
fix Use the initial guess provided by the user in BrentSolver.solve(), thus improving speed. Fixes MATH-156 . Thanks to Tyler Ward. luc
add Added the estimation, optimization, geometry and ode packages from the Mantissa library. luc
fix Made ComplexFormat format double values with a provided NumberFormat instance instead of using the real part format for all values. Fixes MATH-18 . Thanks to Phil Steitz. brentworden
add Added Pascal distribution implementation. Fixes MATH-120 . Thanks to Todd C. Parnell. psteitz
add Added QR Decomposition. Fixes MATH-148 . Thanks to Joni Salonen. psteitz
fix Modified ProperFractionFormat to reject embedded minus signs. Fixes MATH-60 . Thanks to Nhung Nnguyen. psteitz
fix 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. Fixes MATH-151 . Thanks to Luc Maisonobe. psteitz
add Added Fast Fourier Transform implementation. Fixes MATH-140 . Thanks to Xiaogang Zhang. psteitz
fix Modified getSumSquaredErrors method in SimpleRegression to always return a non-negative result. Fixes MATH-85 . Thanks to Mark Osborn, Luc Maisonobe. psteitz
fix Corrected nextInt and nextLong to handle wide value ranges. Fixes MATH-153 . Thanks to Remi Arntzen. brentworden
fix Increased default precision of Gamma and Beta functions. Fixes MATH-166 . Thanks to Lukas Theussl. psteitz
update Added log function to MathUtils. Fixes MATH-158 . Thanks to Hasan Diwan. psteitz
update Added two sample (binned comparison) ChiSquare test. Fixes MATH-160 . Thanks to Matthias Hummel. psteitz
fix Modified NormalDistributionImpl.cumulativeProbablity to catch MaxIterationsExceededException and return 0 or 1, resp. if the argument is more than 20 standard deviations from the mean. Fixes MATH-167 . psteitz
update Added SynchronizedDescriptiveStatistics class. Fixes MATH-170 . Thanks to David J. M. Karlsen. brentworden
update Added addAndCheck, mulAndCheck, and subAndCheck MathUtils methods for long integer arguments. Fixes MATH-154 . Thanks to Remi Arntzen. brentworden
update Merged most functions from ComplexUtils into Complex class, added static factory method to Complex. Fixes MATH-171 . Thanks to Niall Pemberton. psteitz
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. psteitz
fix 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. Fixes MATH-174 . psteitz
fix Added check and rescaling of expected counts to sum to sum of expected counts if necessary in ChiSquare test. Fixes MATH-175 . Thanks to Carl Anderson. psteitz
fix Handle multiplication of Complex numbers with infinite parts specially. Fixes MATH-164 . luc
update Add errors guessing to least-squares estimators. Fixes MATH-176 . Thanks to Kazuhiro Koshino. luc
update Add tests for Fraction constructor using double parameter. Fixes MATH-179 . Thanks to Niall Pemberton. luc
add Added one-way ANOVA implementation. Fixes MATH-173 . Thanks to Bob MacCallum. psteitz
update Add Fraction constructor using max denominator value. Fixes MATH-181 . Thanks to Niall Pemberton. luc
fix Add integer overflow checks in Fraction constructor using double parameter. Fixes MATH-182 . luc
fix Throw EOFException when using empty files with ValueServer in replay and digest modes. Fixes MATH-185 . luc
update Added a equals and hash methods in MathUtils to check for double arrays luc
add Added an angle normalization method in MathUtils to force angles in some user-defined interval luc
add Added vectorial covariance computation (either sample or population covariance) luc
add Added multivariate summary statistics. luc
update Added getSumOfLogs method to SummaryStatistics and made SumOfLogs instance used by GeometricMean configurable. Fixes MATH-191 . psteitz
fix Fixed AbstractIntegerDistribution cumulativeProbablility(-,-) to correctly handle double arguments. Fixes MATH-184 . Thanks to Yegor Bryukhov. psteitz
update 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. Fixes MATH-188 . Thanks to Sebastian Bazley. psteitz

Release 1.1 - 2005-12-17

Type Changes By
fix Made NewtonSolver derivative field transient and implemented readObject to initialize. Fixes MATH-74 . psteitz
fix Made sampleStats field private and changed getUpperBounds to return a fresh copy in EmpiricalDistributionImpl. Fixes MATH-74 . psteitz
update Added polar2Complex method to ComplexUtils to create Complex numbers from polar representations. psteitz
fix Made all serialVersionUIDs private. Fixes MATH-49 . Thanks to Elliotte Harold. psteitz
fix Improved documentation and test cases related to handling of infinite and NaN values in Complex, ComplexUtils classes. Fixes MATH-5 . psteitz
fix Fixed incorrect NaN handling in o.a.m.s.d.rank.Min, Max Fixes MATH-57 . Thanks to Mauro Talevi. psteitz
fix Changed RealMatrixImpl.equals to use Double.doubleToLongBits to compare corresponding matrix entries. Fixes MATH-74 . psteitz
fix Eliminated floating point equals comparison in Percentile.evaluate. Fixes MATH-74 . psteitz
fix Eliminated unnecessary assignment statements in Skewness.getResult method. Fixes MATH-74 . psteitz
fix Synchronized getters in ResizeableDoubleArray. Fixes MATH-74 . psteitz
fix Eliminated unnecessary assignment statement in BisectionSolver.solve method. Fixes MATH-74 . psteitz
fix Implemented hashCode in the Complex class and changed the semantics of equals to make all instances with real or imaginary part NaN equal. Fixes MATH-74 . psteitz
fix Fixed bin index overflow problem in EmpiricalDistributionImpl. Fixes MATH-12 . Thanks to Keith McDonald. psteitz
fix Added protection against numerical overflow and underflow in the isBracketing method. Fixes MATH-108 . Thanks to Xiaogang Zhang. brentworden
fix Fixed division by zero error in rounding methods. Fixes MATH-47 . Thanks to Nikhil Gupte. brentworden
fix Added upper tail cumulative probability method to HypergeometricDistributionImpl. Fixes MATH-100 . Thanks to Mike Hu. brentworden
fix Added better handling of numerical overflow and division by zero in Complex calculations. Fixes MATH-22 . Thanks to Xiaogang Zhang. brentworden
fix Changed ContinuedFraction to better handle infinite convergents that resulted in divergent continued fraction evaluations. Fixes MATH-92 . Thanks to Mikael Weigelt. brentworden
fix Changed rounding methods to not rely on BigDecimal conversions which was causing numerical error. Fixes MATH-32 . Thanks to Srinivas Vemury. brentworden
fix Changed Fraction(double) to correctly handle near-integral arguments. Fixes MATH-3 . Thanks to Jörg Weimar. psteitz
fix Changed lcm to throw ArithmeticException (instead of returning bogus value) if the result is too large to store as an integer. Fixes MATH-143 . Thanks to Jörg Weimar. psteitz
fix Added factories for TTest, ChiSquareTest and TestUtils class with static methods to create instances and execute tests. Fixes MATH-70 . Thanks to Mary Ellen Foster. psteitz
update Eliminated repeated endpoint function evalutations in BrentSolver, SecantSolver. Fixes MATH-95 . Thanks to Paul Field. psteitz
update Added setSubMatrix methods to RealMatrixImpl, BigMatrixImpl. To Preserve backward compatibility with version 1.0, these methods were not added to the RealMatrix, BigMatrix interfaces. Fixes MATH-137 . Thanks to Rodrigo di Lorenzo Lopes. psteitz
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. psteitz
update Made PRNG pluggable for classes in the random package. Added RandomGenerator interface extracted from java.util.random and abstract implementation, AbstractRandomGenerator provi ding 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). psteitz
update Added utility methods for overflow-checked integer arithmetic and improved gcd method in MathUtils. Thanks to C. Scott Ananian. psteitz
fix Fixed error in TTestImpl.homoscedasticTtest. Implementation was incorrectly using heteroscedastic t statistic. Also improved sensitivity of test cases. Fixes MATH-79 . Thanks to Gilles Gaillard. psteitz
fix Fixed javadoc errors. One-sided t-test significance adjustment was reversed in javadoc for boolean-valued test methods. Fixes MATH-44 . Thanks to Gilles Gaillard. psteitz
fix Fixed bug in PolynomialSplineFunction to allow evaluation of the function at the last knot point. Thanks to Ben Litchfield. brentworden
add Added Weibull distribution implementation. brentworden
add Added Cauchy distribution implementation. brentworden
add Added convenience methods for rounding. brentworden
add Added Fraction class based on commons-lang implementation. With the fraction class, FractionFormat and ProperFractionFormat classes were added to provide fraction formatting and parsing. Thanks to C. Scott Ananian. brentworden

Release 1.0 - 2004-12-06

Type Changes By