[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
=================