[Haskell-cafe] matrix computations based on the GSL
Henning Thielemann
lemming at henning-thielemann.de
Thu Jul 7 11:02:17 EDT 2005
On Thu, 7 Jul 2005, David Roundy wrote:
> Also note that if you have several vectors x for which you want to compute
> the dot product with metric A, and if you want to do this efficiently,
> you'll have to convert your list of vectors into a matrix anyways. Writing
> functions of vectors instead as functions of 1xN matrices allows them to be
> efficiently applied to multiple vectors simultaneously, provided they are
> written carefully.
Btw. it is interesting that "source code efficiency" differs from runtime
efficiency for matrix operations:
a*b*c*v
where a, b, c are square matrices and v is a column vector/matrix. This
expression is interpreted as
((a*b)*c)*v
and it need cubic time to multiply matrices. In contrast to that
a*(b*(c*v))
needs only quadratic time.
If we would use matrices as what they are invented for, namely as
representations of linear operators, this efficiency leak would not occur:
mulVec a $ mulVec b $ mulVec c v
(Read mulVec as the mapping from a matrix to the linear operator it
represents.)
More information about the Haskell-Cafe
mailing list