dunai-0.14.0: Generalised reactive framework supporting classic, arrowized and monadic FRP.
Copyright(c) Ivan Perez and Manuel Baerenz 2016
LicenseBSD3
Maintainerivan.perez@keera.co.uk
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.MonadicStreamFunction.Instances.VectorSpace

Description

VectorSpace instances for MSFs that produce vector spaces. This allows you to use vector operators with MSFs that output vectors, for example, you can write:

msf1 :: MSF Input (Double, Double) -- defined however you want
msf2 :: MSF Input (Double, Double) -- defined however you want
msf3 :: MSF Input (Double, Double)
msf3 = msf1 ^+^ msf2

instead of

msf3 = (msf1 &&& msf2) >>> arr (uncurry (^+^))

Instances are provided for the type class VectorSpace.

Orphan instances

(Monad m, Eq s, Num s, VectorSpace v s, Floating (MSF m a s)) => VectorSpace (MSF m a v) (MSF m a s) Source #

Vector-space instance for MSFs.

Instance details

Methods

zeroVector :: MSF m a v #

(*^) :: MSF m a s -> MSF m a v -> MSF m a v #

(^/) :: MSF m a v -> MSF m a s -> MSF m a v #

(^+^) :: MSF m a v -> MSF m a v -> MSF m a v #

(^-^) :: MSF m a v -> MSF m a v -> MSF m a v #

negateVector :: MSF m a v -> MSF m a v #

dot :: MSF m a v -> MSF m a v -> MSF m a s #

norm :: MSF m a v -> MSF m a s #

normalize :: MSF m a v -> MSF m a v #