[MATRIX-SIG] Matrix class (obviously)

Paul F. Dubois Paul F. Dubois" <dubois1@llnl.gov
Sun, 9 Nov 1997 20:17:34 -0800


Not to start a food fight, Konrad, but to anyone used to using any of the
major linear solver packages, NOT solving the system in place would violate
the principal of least surprise.

I can certainly code up an LU in Python + Numerical as an example. Wouldn't
match the speed of a C version but it might not be too terrible for a big
enough system. And, I could show how to package such things in a proper OO
fashion. I'll assign this to myself as homework.

-----Original Message-----
From: Konrad Hinsen <hinsen@ibs.ibs.fr>
To: dubois1@llnl.gov <dubois1@llnl.gov>
Cc: jim.rucker@jpl.nasa.gov <jim.rucker@jpl.nasa.gov>; matrix-sig@python.org
<matrix-sig@python.org>
Date: Sunday, November 09, 1997 8:09 AM
Subject: Re: [MATRIX-SIG] Matrix class (obviously)


>> Eeek! This is not how to find a determinant! It not only is not going to
>> work for matrices of big numbers, it won't work for big matrices of small
>> numbers.  I'm sure there must be stuff in the Linear Algebra file to find
an
>> LU-decomposition. Then the determinant is the product of the diagonals of
L.
>
>That's how determinants ought to be calculated in LinearAlgebra, but what
>is still there is a first quick hack I did (multiplying the eigenvalues).
>I never got around to do it better because I didn't really need
>determinants...
>
>LU decomposition is not in LinearAlgebra as user-friendly function,
>but looking at the linear equation solver is sufficient to see how
>it's done.
>
>> (An LU decomposition is writing M as a product of a lower triangular
matrix
>> times an upper triangular matrix with a diagonal of 1. The work involved
is
>> the same as the first stage of solving MX = B. No extra storage is
actually
>> involved since you can store L and U in the same n**2 locations as M. The
>> determinant of a triangular matrix is the product of its diagonal
elements.)
>
>Currently all operations in LinearAlgebra allocate additional storage
>to avoid destroying any input data. According to the "principle of
>least surprise" this should be the default behaviour. However, it would
>be nice to have destructive versions as an option...
>--
>---------------------------------------------------------------------------
----
>Konrad Hinsen                          | E-Mail: hinsen@ibs.ibs.fr
>Laboratoire de Dynamique Moleculaire   | Tel.: +33-4.76.88.99.28
>Institut de Biologie Structurale       | Fax:  +33-4.76.88.54.94
>41, av. des Martyrs                    | Deutsch/Esperanto/English/
>38027 Grenoble Cedex 1, France         | Nederlands/Francais
>---------------------------------------------------------------------------
----
>
>_______________
>MATRIX-SIG  - SIG on Matrix Math for Python
>
>send messages to: matrix-sig@python.org
>administrivia to: matrix-sig-request@python.org
>_______________
>


_______________
MATRIX-SIG  - SIG on Matrix Math for Python

send messages to: matrix-sig@python.org
administrivia to: matrix-sig-request@python.org
_______________