Note that there are some explanatory texts on larger screens.

plurals
  1. POWhich haskell array implementation to use? AKA what are the pros and cons of each
    text
    copied!<p>What do I need? [an unordered list]</p> <ul> <li><strong>VERY</strong> easy parallelization</li> <li>support for map, filter etc.</li> <li>ability to perform array based computations <em>efficiently</em>, like A=B+C, sort of like matlab arrays.</li> <li>Generation of SIMD code. I guess this is out of the question in the near future for anything, but hey, I can ask :)</li> <li>support for matrices should be there at a minimum, higher dimensions are lower priority right now.</li> <li>ability to get a pointer to it and create one from a C pointer.</li> <li>Support from other libraries. IE, bindings to popular C math packages, i/o to disk or images if the arrays are 2D </li> </ul> <p>What do I see?</p> <ul> <li>Array package in haskell-platform. It's the blessed one and can do parallel</li> <li>Data.Vector. Has loop fusion, but not in platform, so its maturity is unknown to me. </li> <li>repa package, contributed by the DPH team, but doesn't work well with any stable ghc <em>today</em>.</li> <li>Lots of variation in the level of support for array implementations. For instance, <a href="https://stackoverflow.com/questions/5191329/which-haskell-library-will-let-me-save-a-2d-array-vector-to-a-png-jpg-gif-file">there doesn't seem</a> to be an easy way to dump a 2D vector to a image file. IOW, the haskell community apparently hasn't settled on an array implementation. </li> </ul> <p>So please, help me choose. </p> <p><strong>EDIT</strong> A=B+C refers to element wise addition, and not list concatenation</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload