manifold-random v0.3.0.0 Release Notes

Release Date: 2016-09-30 // about 5 years ago
  • ๐Ÿ“ฆ

    ๐Ÿš€ 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.