Bot releases are hidden (Show)
Published by leftaroundabout over 2 years ago
Published by leftaroundabout over 7 years ago
http://hackage.haskell.org/package/manifolds-0.4.0.0
The two most basic classes – Semimanifold
and PseudoAffine
– have been put in a small standalone package, manifolds-core. The main reason it to allow linearmap-category to depend on these classes, so we now have a proper hierarchy in which every vector space is also a manifold.
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.