Skip to content

v0.3.0.0

Compare
Choose a tag to compare
@leftaroundabout leftaroundabout released this 30 Sep 10:34
· 711 commits to master since this release

http://hackage.haskell.org/package/manifolds-0.3.0.0

This release is a major implementation change: we got rid of hmatrix, in favour of the new linearmap-category package, which implements all the necessary linear algebra fundamentals in native Haskell.

A major motivation for this step was the doubtful reliability of hmatrix (bindings to the GSL library in C) in a multithreaded context – we were experiencing deadlocks in the multithreaded dynamic-plot visualiser.

While it turns out that this point was probably unjustified – the deadlocks still appeared after the switch; the culprit was probably gtk2hs in connection with async (now fixed by a different multithreading strategy) – it also has other benefits, as we now have a proper well-typed interface all the way down instead of basing every local operation on ugly dynamically-sized matrices.

The switch also improves performance somewhat, probably mainly because we don't need all that C-marshalled memory and because we don't need to convert between Haskell-native data and hmatrix data. Though linearmap-category isn't really optimised yet, there may be potential for much faster speeds still.