dunai 0.9.2 → 0.10.0
raw patch · 3 files changed
+15/−5 lines, 3 filesdep ~simple-affine-space
Dependency ranges changed: simple-affine-space
Files
- CHANGELOG +4/−0
- dunai.cabal +1/−1
- src/Data/MonadicStreamFunction/Instances/VectorSpace.hs +10/−4
CHANGELOG view
@@ -1,3 +1,7 @@+2023-02-21 Ivan Perez <ivan.perez@keera.co.uk>+ * Version bump (0.10.0) (#342).+ * Implement dot in MSF's instance of VectorSpace (#298).+ 2022-12-21 Ivan Perez <ivan.perez@keera.co.uk> * Version bump (0.9.2) (#340). * Bump version bounds for MonadRandom (#337).
dunai.cabal view
@@ -30,7 +30,7 @@ build-type: Simple name: dunai-version: 0.9.2+version: 0.10.0 author: Ivan Perez, Manuel Bärenz maintainer: ivan.perez@keera.co.uk homepage: https://github.com/ivanperez-keera/dunai
src/Data/MonadicStreamFunction/Instances/VectorSpace.hs view
@@ -43,12 +43,18 @@ import Data.MonadicStreamFunction.Core (MSF) -- | Vector-space instance for 'MSF's.-instance (Monad m, VectorSpace v s, Eq s, Floating s)- => VectorSpace (MSF m a v) s+instance (Monad m, Eq s, Num s, VectorSpace v s, Floating (MSF m a s))+ => VectorSpace (MSF m a v) (MSF m a s) where zeroVector = constantly zeroVector- r *^ msf = msf >>^ (r *^)- msf ^/ r = msf >>^ (^/ r)+ (*^) = elementwise2 (*^)+ (^/) = elementwise2 (^/) (^+^) = elementwise2 (^+^) (^-^) = elementwise2 (^-^) negateVector = (>>^ negateVector)+ dot = elementwise2 dot+ normalize v = elementwise2 f v (norm v)+ where+ f v' nv'+ | nv' /= 0 = v' ^/ nv'+ | otherwise = error "normalize: zero vector"