I would like to do some experiments in computer graphics in Haskell. This will include doing some geometry calculations and ultimately writing a ray tracer. Which library should I pick for easy handling of vectors, matrices and relevant operations on them?
There are few on Hackage including nice looking ones like vect and AC-Vector, but it's easy to miss a good candidate among so many different libraries.
For vectors and matrices that are used for transformations, vect
probably is your best bet. It is optimized for fast, lower-precision (as in Double
precision as opposed to Ratio
precision) transformations like you described, and its role as the matrix stack in lambdacube
(as an example of an application where performance is key) shows that it is fast enough for most applications.
For data matrices - that are used for images, for example - you'd probably want to use repa
, especially when doing data-parallel computations such as ray tracing.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With