
--- Keith Wansbrough
I'm a complete newcomer to Haskell, having learned about only recently. I'm intrigued by the possibility of in using it for numerical applications, specifically linear algebra. I understand that (at least in its present state) Haskell 98 isn't competitive with imperative languages when it comes to primitive matrix-vector operations, which often rely on destructive updating. It strikes me that one approach that takes advantage of the strengths of both paradigms would be create an imperative subsystem to handle primitive operations, then create a functional matrix algebra layer on top of it. [..]
One thing that comes to mind is Barry Jay's FISh language:
http://www-staff.it.uts.edu.au/~cbj/Publications/shapes.html#Array_Programmi...
This compiles code in a functional language with arrays down to C, by using "shape inference" to fix the size of all the arrays.
I believe FFTW (the Fastest Fourier Transform in the West) similarly uses a functional programming language to generate imperative (C) code.
Mr. Austin migfht also want to look at some dated modules at ftp://ftp.cs.chalmers.se/pub/haskell/library/bevan/ and perhaps at Matrix Inversion using Quadtrees Implemented in Gofer (1995) Jeremy D. Frens & David S. Wise http://citeseer.nj.nec.com/frens95matrix.html Auto-Blocking Matrix-Multiplication or Tracking BLAS3 Performance from Source Code (1997) Jeremy D. Frens & David S. Wise http://citeseer.nj.nec.com/frens97autoblocking.html and
From Fast Exponentiation to Square Matrices: An Adventure in Types Chris Okasaki http://www.eecs.usma.edu/Personnel/okasaki/pubs.html#icfp99
Chris ===== Christopher Milton cmiltonperl@yahoo.com __________________________________________________ Do you Yahoo!? Yahoo! Web Hosting - Let the expert host your site http://webhosting.yahoo.com