
pierreetienne.meunier:
Hello Cafe,
Being a complete beginner in the field of numerical analysis, but anyway needing it to solve "real problems", I wrote a few functions recently to solve systems of polynomial equations using the "projected polyhedron" method by Maekawa and Patrikakalis. This requires solving systems of linear equations precisely, thus the simple Gauss method was not enough, and I had to write also an algorithm for the "SVD decomposition".
- The current Array library is definitely not adapted to production code. It makes debugging tricky, requires a heavy use of Debug.Trace to actually see what happens, and does not seem as fast as one could expect.
[snip]
- A numerical analysis library should really take advantage of the parallelism in GHC, especially with the arrival of hardware such as fermi (anyway, I do not know how much haskell is compilable to fermi code). The love for loops and side-effects among this community is hard to understand, but that's more of a cultural problem.
Perhaps you can look at the new array packages of the last few years: * vector An efficient implementation of Int-indexed arrays (both mutable and immutable), with a powerful loop fusion optimization framework . http://hackage.haskell.org/package/vector * Repa High performance, regular, shape polymorphic parallel arrays. http://hackage.haskell.org/package/repa -- Don