Back to Joe's Java Index Back to Math Tools Package page


Math Tools Package

Revision History

 

July 13, 2000

Original reslease of my Math Tools package.

July 20, 2000

Added Polynomial class that represents an arbitrary polynomial equation with real or complex coefficients of arbitrary degree. Includes a general zero finder.

October 13, 2000

Added TaylorSeries class that represents a Taylor series expansion of an arbitrary function f(x) centered about x0.

February 14, 2001

Added log10(), log2(), and roundUpToPlace() to MathTools.java.

May 7, 2002

Added Statistics and LinAlg utility classes. Added more rounding methods, hyperbolic sine, cosine, tangent and their inverses to MathTools.

Nov. 19, 2004
Added "lnGamma()" function to MathTools.

Added Integerator, First-Order Lag, and Washout digital filters.

Added ModelData class for creating curve fits of data.

Added 4-th Order Runge-Kutta ODE integrator and a 4th-5th Order Variable Step Size R-K ODE integrator.
Nov. 20, 2004
Added "equals()" and "hashcode()" methods to org.netlib.math.complex.Complex class.

Improved Polynomial.java by fixing the broken "equals()" method, adding a "hashcode()" method, defensively cloning the input coefficient arrays, and changing the "toString()" output to be consistant with the order of the input coefficients.
Dec. 4, 2004
Fixed numerous inconsistencies in the order of the coefficients in the Polynomial class.  These were mostly errors in the documentation, but some methods were also incorrect.  Also fixed problems with some of the numerical constants used by the Polynomial root finder.  The root finder is now more accurate.
April 3, 2014
Modified Evaluatable1D to be an interface and added an AbstractEvaluatable1D to replace it's old functionality. Corrected spelling in comments, improved formatting, and added missing tags. Corrected an error in the findRootsND() method where exceptions were not being thrown when they should have been. Added MathTools.isApproxEqual() method for comparing two float or double numbers for approximate equality. Set MathTools.EPS to be the machine precision eps (the smallest value eps such that 1.0 + eps > 1.0). Added a new Quadrature method: Adaptive Gauss-Lobatto; which is more robust and faster than simpsonsRule() and more accurate and adaptive than the gaussLegendre() methods. Converted the ModelData classes from "float" to "double". Modified cosh(), sinh(), tanh(), cubeRoot() and log10() to call through to the equivelent standard Math.java methods (which were added in Java 1.5). Corrected poor implementations of equals() and hashCode(). Fixed some incorrect checks for roundoff error. And finally, moved the Complex class from org.netlib.compex to jahuwaldt.tools.math for convenience. In addition, the record of changes between 2004 and 2011 have been lost, so there are likely more changes than this.


Created: July 13, 2000
Modified: April 3, 2014