Matrix and Vector classes.

The matrix and vector classes support three different numeric types. These are integer (for speed), double (for accuracy) and complex.

The square matrix classes introduce the following methods:

Where ever possible, the abstract matrix/vector API should be used in preference to a particular matrix/vector implementation API. That is, use code like AbstractDoubleVector vec = new DoubleVector(dim);. This philosophy is similar to that of the Java Collections Framework.