[PYTHON MATRIX-SIG] linear algebra

Jim Hugunin hugunin@mit.edu
Mon, 19 Aug 1996 12:50:14 -0400


Konrad HINSEN wrote:
> 
> > All of the current interface routines (from LinAlg.py) do the following:
> >
> > return transpose(lapackfunction(transpose(input_matrix)))
> >
> > Should these two transpositions be there?  This is obviously related to
> > the different index order between NumPy and FORTRAN.  Still, I've always
> > personally considered it a superficial difference that is best ignored.
> >
> > If I remember by Linear Algebra correctly
> > transpose(inverse(transpose(m))) == inverse(m).
> 
> True for inversion, but for little else, except in the special case of
> symmetric matrices.
> 
> Personally I think it is important to work with the "right" index
> order that everyone is used to. Python users should not have to know
> anything about implementation details.
> 
> Besides, if I understand everything correctly, transposition should
> cost almost nothing, right?

Transposition costs almost nothing.  Transposition followed by a copy is
O(n).  These FORTRAN routines expect contiguous arrays, which requires
the transposed array to be copied before calling them.  Therefore this
is a non-trivial amount of computation.

I agree that python users should not have to know anything about
implementation details.  I'm just wondering why the transposed order is
more natural than the native one.

-Jim

=================
MATRIX-SIG  - SIG on Matrix Math for Python

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