[PYTHON MATRIX-SIG] Speed...cg...and more!

Thomas Schwaller et@appl-math.tu-muenchen.de
Mon, 13 Nov 1995 15:40:36 +0100


Sorry for the typos in my last message. Here are some other things I forgot
there.
1) What about a Matrix constructor which can use constant values and
    functions for initailising.
    e.g.

    from math import *
    from Matrix import *

    f=lambda i, j: sin(i)*cos(j)
    a=Matrix(1000,1000, func=f)  #square 1000x1000 matrix
    b=a=Matrix_d(10,10,10, func=lambda i, j, k: sin(i)*cos(j)*exp(k)
    #10x10x10 tensor

   If we do that in the standard way it will not be fast enough. I nearly
always
   have this problem when using some procedure which need functions as input.
   I C-code it's no problem at all and after introducing it in python it's
   just to slow (e.g. minimize a function...). Imagine that the function is
   evaluated 100000 times! What to do. If we could compile simple functions
   on the fly this would be just fine. Not a general Python Compiler, but
   just a tiny one for certain things.
   Other possibility: Dynamic loading (not really acceptable for such things
   (interactivity is lost a little bit)
   Or write some new module for that type of work (Some Parser thigs!)
   The above example would go as
   b=Matrix(1000,1000, "sin(i)*cos(j)")
   or Matrix(1000,1000, "i,j->sin(i)*cos(j)")
   Comments?

Tom








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

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