Jakarta Commons Math Version 1.1 RELEASE NOTES 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. For more information on Jakarta Commons Math, see http://jakarta.apache.org/commons/math/ Changes in this version include: New Features: o Added Weibull distribution implementation. o Added Cauchy distribution implementation. o Added convenience methods for rounding. o 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. Fixed bugs: o Made NewtonSolver derivative field transient and implemented readObject to initialize. Issue: 36491. o Made sampleStats field private and changed getUpperBounds to return a fresh copy in EmpiricalDistributionImpl. Issue: 36491. o Made all serialVersionUIDs private. Issue: 37162. Thanks to Elliotte Harold. o Improved documentation and test cases related to handling of infinite and NaN values in Complex, ComplexUtils classes. Issue: 37086. o Fixed incorrect NaN handling in o.a.m.s.d.rank.Min, Max Issue: 37019. Thanks to Mauro Talevi. o Changed RealMatrixImpl.equals to use Double.doubleToLongBits to compare corresponding matrix entries. Issue: 36491. o Eliminated floating point equals comparison in Percentile.evaluate. Issue: 36491. o Eliminated unnecessary assignment statements in Skewness.getResult method. Issue: 36491. o Synchronized getters in ResizeableDoubleArray. Issue: 36491. o Eliminated unnecessary assignment statement in BisectionSolver.solve method. Issue: 36491. o Implemented hashCode in the Complex class and changed the semantics of equals to make all instances with real or imaginary part NaN equal. Issue: 36491. o Fixed bin index overflow problem in EmpiricalDistributionImpl. Issue: 36450. Thanks to Keith McDonald. o Added protection against numerical overflow and underflow in the isBracketing method. Issue: 36232. Thanks to Xiaogang Zhang. o Fixed division by zero error in rounding methods. Issue: 36300. Thanks to Nikhil Gupte. o Added upper tail cumulative probability method to HypergeometricDistributionImpl. Issue: 36215. Thanks to Mike Hu. o Added better handling of numerical overflow and division by zero in Complex calculations. Issue: 36205. Thanks to Xiaogang Zhang. o Changed ContinuedFraction to better handle infinite convergents that resulted in divergent continued fraction evaluations. Issue: 36105. Thanks to Mikael Weigelt. o Changed rounding methods to not rely on BigDecimal conversions which was causing numerical error. Issue: 35904. Thanks to Srinivas Vemury. o Changed Fraction(double) to correctly handle near-integral arguments. Issue: 35434. Thanks to Jörg Weimar. o Changed lcm to throw ArithmeticException (instead of returning bogus value) if the result is too large to store as an integer. Issue: 35431. Thanks to Jörg Weimar. o Added factories for TTest, ChiSquareTest and TestUtils class with static methods to create instances and execute tests. Issue: 32663. Thanks to Mary Ellen Foster. o Fixed error in TTestImpl.homoscedasticTtest. Implementation was incorrectly using heteroscedastic t statistic. Also improved sensitivity of test cases. Issue: 34677. Thanks to Gilles Gaillard. o Fixed javadoc errors. One-sided t-test significance adjustment was reversed in javadoc for boolean-valued test methods. Issue: 34448. Thanks to Gilles Gaillard. o Fixed bug in PolynomialSplineFunction to allow evaluation of the function at the last knot point. Thanks to Ben Litchfield. Changes: o Added polar2Complex method to ComplexUtils to create Complex numbers from polar representations. o Eliminated repeated endpoint function evalutations in BrentSolver, SecantSolver. Issue: 35042. Thanks to Paul Field. o Added setSubMatrix methods to RealMatrixImpl, BigMatrixImpl. To Preserve backward compatibility with version 1.0, these methods were not added to the RealMatrix, BigMatrix interfaces. Issue: 35007. Thanks to Rodrigo di Lorenzo Lopes. o 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. o 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). o Added utility methods for overflow-checked integer arithmetic and improved gcd method in MathUtils. Thanks to C. Scott Ananian.