I started this project in response to the in my opinion flawed design of
several classes and packages in the
commons.math
library of the
Jakarta Project
on
Apache.org
. I ran very quickly into problems with some of the packages, while other just
did not make any sense.
Hereunder, I list the classes that I have derived. When not mentioned here, it
are the original classes but relocated due to programming requirements, such as
inherited protected variables and methods.
Derived classes
-
Matrix
: This is an extended copy of the
RealMatrixImpl
impementation of
commons.math
. The main differences are:
-
"0-based" in stead of "1-based" indexing. The RealMatrixImpl tries to be
consistent with the mathematical notation and that is often the "1-based"
indexing. However, JAVA uses a "0-based" indexing system for their (1d, 2d,
etc) arrays and that makes more sense (and less error prone) than when using both
systems combined. Beyond that, it reduced the computation time of some of the
packages I developed. (This was implemented in the commons.math class several days after I created this class.)
-
No implemented interface with many different methods.
-
Implemented several subMatrix methods, as well as getRowMatrix ,
getColumnMatrix and toSquareString methods.
-
Variances
: Implementation of
Variance
such that it does enable to calculate Sample (dividing by N-1) as well as
Population (dividing by N) variances. I think this is better than defining two
separate classes for both type of variances.
Added classes
-
Distances
: Matrix based class to calculate euclidian and mahalanobis distances.
-
SpecialMatrices
: This class is the home of several special type matrices.
-
SSCP (Sum-of-Squares-Cross-Product) matrix
-
Difference matrices based on row or colum averages
-
Covariance matrix
-
Correlation matrix
Sample (co-)variance estimates are used by default, but population (co-)
variance estimates can be requested by using the extended methods.
There is also a javadoc generated
documentation
and the methods are packaged as a
jar file
. The jar file requires you to download the
commons.math package
.
©
Kim van der Linde.
Last updated 4 August 2004