Subject: Matrix.java ??

From: Michael Altmann <[email-masked]>
Date: Thu, 30 Jan 1997 13:40:41 -0600 (CST)

Does anyone know of a basic java Matrix class that includes the
ability to solve systems?

-- 
Michael Altmann
U of M   mailto:[email-masked]        phone: (612) 625-9938
HSII     mailto:[email-masked]       phone: (612) 858-1724

---

From: Paul Houle <[email-masked]>
Date: Thu, 30 Jan 1997 15:07:04 -0500

> ability to solve systems?
	I've been writing Matrix classes that I'm willing to share
with anyone who is interested.  So far I've been extending them
only in the directions that I need for my work,  but I'd be glad
to work with people to add more features.  I don't have system
solving done,  but adding it would not be a difficult product.
The source is really a mess but it could be improved.  It has
some interesting features

* The base class "Matrix" is abstract,  allowing one to define
subclasses that represent matrices in different ways.  At the
moment I have "JavaMatrix" which represents matrices as a
double[i][j] and "FortranMatrix" which represents matrices as
double[i*n+j].  One could also make subclasses to represent
various sorts of sparse matrices,  symmetric matrices.

* Matrix (in theory) would contain general implementations of
matrix operations using the abstract access methods.  Subclasses
of matrix could override these operations to use more efficient
algorithms -- that take advantage of the sparseness of the matrix
or use native code,  or whatever.

* The only really fancy matrix operation I've defined so far
is getting eigenvalues and eigenvectors and I've implemented a
native method interface to EISPAK.  I've done this for AIX and
from what I've been told it's easier to compile shared libraries
on any other system.  At the moment eigenstuff can only be done
on "NativeMatrix" which is a subclass of "FortranMatrix";
it's almost effortless trading "FortranMatrices" with FORTRAN
code.

Anyway,  left to my own devices "Matrix" is only going to grow
in the directions I need.  If anybody wants to use it as the base
for a set of more general classes or just add code to do the
things they need,  I'd be tickled pink and could possibly contribute
towards maintaining it.

If anybody wants a copy,  just ask.