[Haskell-cafe] Is anyone working on a sparse matrix library in Haskell?
wren ng thornton
wren at freegeek.org
Sun Dec 2 04:52:38 CET 2012
On 11/30/12 4:58 PM, Mark Flamer wrote:
> Thanks for all the replies,
> It sounds like there is enough interest and even some potential
> collaborators out there. I have created a few data structures to represent
> sparse vectors and matrices. The vector was a simple binary tree and the
> matrix a quad tree. As I suspected a standard IntMap was around 3X as fast
> as my binary tree, so I have switched to the IntMap for now. I was hoping to
> hold on to my quad tree for the matrix rep. because I like the elegance of
> the recursive algorithms like Strassen’s for multiplication. In the end it
> will most likely be best to have a few different matrix representations
> anyway. For instance, I know that compressed row form is most efficient for
> certain algorithms. I have a Gauss iterative solver working currently and am
> thinking of moving on to a parallel Conjugate gradient or direct solver
> using LU decomposition. I’m no expert in Haskell or numeric methods but I do
> my best.
I've also been working haphazardly on some similar stuff lately.
However, my focus is rather different[1] so I'm afeared not much code
sharing could happen at the moment. While I'm certainly no expert on
numerical methods, I seem to have acquired some experience in that
domain so I may be able to lend a hand from time to time.
[1] In particular my goal has been to revive some old ideas about making
linear algebra well-typed. The vast majority (if not all) of extant
linear algebra systems are poorly typed and will do stupid things to
"resolve" type errors (e.g., automatically padding, truncating, and
reshaping things). Because of the use case I have in mind, this project
also involves setting up a proper numerical type-class hierarchy (i.e.,
one which expresses semirings and other things ignored by the numerical
hierarchies out there today). My goal for all this is in setting up the
type system, not performance. I figure there are other folks who know
and care a lot more about the numerical tricks of giving the actual
implementations.
--
Live well,
~wren
More information about the Haskell-Cafe
mailing list