<?xml version="1.0"?>
<!--
   Copyright 2004-2005 The Apache Software Foundation

   Licensed 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="1.1-RC1" date="TBD"  
 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="35434"  due-to="Jörg Weimar">
        Changed Fraction(double) to correctly handle near-integral arguments.
      </action>
      <action dev="psteitz" type="fix" issue="35431"  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="32663"  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="35042"  due-to="Paul Field">
        Eliminated repeated endpoint function evalutations in BrentSolver, SecantSolver.
      </action>
      <action dev="psteitz" type="update" issue="35007"  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">
        Ported numerics improvements in commons lang Fraction implementation.
        Added utility methods for overflow-checked integer arithmetic and
        improved gcd method in MathUtils.
      </action>
       <action dev="psteitz" type="fix" issue="34677" 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="34448" 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="Jakarta Commons Math 1.0 - General Availability Release">
      <action dev="psteitz" type="fix" due-to="Hans van der Heijden"
       issue="32531">
        Fixed error in ChiSquareTestImpl.  Tables containing zeros were
        (incorrectly) causing IllegalArgumentExceptions to be thrown.
      </action>
      <action dev="psteitz" type="fix" issue="32538">
        Removed JDK 1.4-dependent code from CertifiedDataAbstractTest, 
        InvalidMatrixException and MatrixIndexException.  Also dropped 
        BeanTransformer, BeanTransformerTest from the release.
      </action>
    </release>  
    <release version="1.0-RC2" date="2004-11-07"
       description="Jakarta Commons Math 1.0 - Release Candidate 2">
      <action dev="psteitz" type="fix">
        Fixed cumulative frequency and cumulative percentage problem reported
        to the commons-dev list by Jon Langlois on 9/14. Integer arguments to 
        getCumXxx were always returning 0 due to type conversion problems.
      </action>
      <action dev="brentworden" type="fix" issue="31325">
        Fixed locale-dependency in ComplexFormat.
      </action>
      <action dev="psteitz" type="update">
        Renamed univariate package to descriptive and multivariate to
        regression.
      </action>
      <action dev="psteitz" type="update" due-to="Ken Geis" issue="31522">
        Improved efficiency of logGamma method in o.a.c.m.special.Gamma
      </action>
      <action dev="psteitz" type="update" due-to="Kim van der Linde"
       issue="30897">
        Added subMatrix and matrix-valued row and column accessor methods to 
        RealMatrix, BigMatrix interfaces and RealMatrixImpl, BigMatrixImpl.
      </action>
      <action dev="psteitz" type="update">
        Implemented equals and hashCode in RealMatrixImpl and BigMatrixImpl.
      </action>
      <action dev="psteitz" type="fix">
        Fixed RealMatrixImpl, BigMatrixImpl toString methods to handle empty
        matrix.
      </action>
      <action dev="psteitz" type="update">
        Added support for "population" variance and standard deviation in
        Variance (resp. StandardDeviation) classes.
      </action>
      <action dev="psteitz" type="update">
        Removed data mutators from RealMatrix, BigMatrix interfaces and
        RealMatrixImpl, BigMatrixImpl.  RealMatrix and BigMatrix instances
        are now immutable.
      </action>
      <action dev="psteitz" type="update">
        Added MatrixUtils class, including static factory methods to create
        RealMatrix and BigMatrix instances from arrays of various types.
      </action>
      <action dev="psteitz" type="fix" due-to="Fredrik Norin" issue="31687">
        Changed factorial methods to return 1 for argument = 0, instead of
        (incorrectly) throwing IllegalArgumentException.
      </action> 
      <action dev="psteitz" type="fix" due-to="Kim van der Linde" 
       issue="31860">
        Fixed error in SimpleRegression.getSignificance.  Value returned was
        off by a factor of 2 (did not match javadoc).
      </action>
      <action dev="psteitz" type="update">
        Refactored distribution package so that mixed distributions and
        discrete distributions with non-integer values can be represented.
        Added Distribution base interface as well as IntegerDistribution
        extending DiscreteDistribution.  Previously existing discrete
        distributions now implement IntegerDistribution.
      </action>
      <action dev="psteitz" type="update" due-to="Fredrik Norin" issue="31688">
        Added Poisson distribution implementation.
      </action>
      <action dev="psteitz" type="fix" issue="31713">
        Eliminated unecessary array copy operations in RealMatrixImpl, 
        BigMatrixImpl add, multiply, solve and subtract operations.
      </action>
    </release>
    
    <release version="1.0-RC1" date="2004-09-07" 
      description="Jakarta Commons Math 1.0 - Release Candidate 1
      This is the first release of Commons Math. Commons Math is a library
      of lightweight, self-contained mathematics and statistics components. 
      The release candidate is being made available so that users can test
      the release and provide feedback.">
    </release>
    
  </body>
</document>
