vector-space-0.15: Vector & affine spaces, linear maps, and derivatives

Copyright(c) Conal Elliott and Andy J Gill 2008
LicenseBSD3
Maintainerconal@conal.net, andygill@ku.edu
Stabilityexperimental
Safe HaskellSafe
LanguageHaskell98

Data.AdditiveGroup

Description

Groups: zero, addition, and negation (additive inverse)

Synopsis

Documentation

class AdditiveGroup v where #

Additive group v.

Minimal complete definition

Nothing

Methods

zeroV :: v #

The zero element: identity for '(^+^)'

zeroV :: (Generic v, AdditiveGroup (VRep v)) => v #

The zero element: identity for '(^+^)'

(^+^) :: v -> v -> v infixl 6 #

Add vectors

(^+^) :: (Generic v, AdditiveGroup (VRep v)) => v -> v -> v infixl 6 #

Add vectors

negateV :: v -> v #

Additive inverse

negateV :: (Generic v, AdditiveGroup (VRep v)) => v -> v #

Additive inverse

(^-^) :: v -> v -> v infixl 6 #

Group subtraction

Instances
AdditiveGroup Double # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup Float # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup Int # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: Int #

(^+^) :: Int -> Int -> Int #

negateV :: Int -> Int #

(^-^) :: Int -> Int -> Int #

AdditiveGroup Integer # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup () # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: () #

(^+^) :: () -> () -> () #

negateV :: () -> () #

(^-^) :: () -> () -> () #

AdditiveGroup CSChar # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup CShort # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup CInt # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: CInt #

(^+^) :: CInt -> CInt -> CInt #

negateV :: CInt -> CInt #

(^-^) :: CInt -> CInt -> CInt #

AdditiveGroup CLong # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup CLLong # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup CFloat # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup CDouble # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup CIntMax # 
Instance details

Defined in Data.AdditiveGroup

AdditiveGroup a => AdditiveGroup (Maybe a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: Maybe a #

(^+^) :: Maybe a -> Maybe a -> Maybe a #

negateV :: Maybe a -> Maybe a #

(^-^) :: Maybe a -> Maybe a -> Maybe a #

Integral a => AdditiveGroup (Ratio a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: Ratio a #

(^+^) :: Ratio a -> Ratio a -> Ratio a #

negateV :: Ratio a -> Ratio a #

(^-^) :: Ratio a -> Ratio a -> Ratio a #

(RealFloat v, AdditiveGroup v) => AdditiveGroup (Complex v) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: Complex v #

(^+^) :: Complex v -> Complex v -> Complex v #

negateV :: Complex v -> Complex v #

(^-^) :: Complex v -> Complex v -> Complex v #

AdditiveGroup a => AdditiveGroup (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: Sum a #

(^+^) :: Sum a -> Sum a -> Sum a #

negateV :: Sum a -> Sum a #

(^-^) :: Sum a -> Sum a -> Sum a #

AdditiveGroup v => AdditiveGroup (a -> v) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: a -> v #

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

negateV :: (a -> v) -> a -> v #

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

(AdditiveGroup u, AdditiveGroup v) => AdditiveGroup (u, v) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: (u, v) #

(^+^) :: (u, v) -> (u, v) -> (u, v) #

negateV :: (u, v) -> (u, v) #

(^-^) :: (u, v) -> (u, v) -> (u, v) #

(HasTrie u, AdditiveGroup v) => AdditiveGroup (u :->: v) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: u :->: v #

(^+^) :: (u :->: v) -> (u :->: v) -> u :->: v #

negateV :: (u :->: v) -> u :->: v #

(^-^) :: (u :->: v) -> (u :->: v) -> u :->: v #

(HasTrie (Basis u), AdditiveGroup v) => AdditiveGroup (u :-* v) # 
Instance details

Defined in Data.LinearMap

Methods

zeroV :: u :-* v #

(^+^) :: (u :-* v) -> (u :-* v) -> u :-* v #

negateV :: (u :-* v) -> u :-* v #

(^-^) :: (u :-* v) -> (u :-* v) -> u :-* v #

(HasBasis a, HasTrie (Basis a), AdditiveGroup u) => AdditiveGroup (a :> u) # 
Instance details

Defined in Data.Maclaurin

Methods

zeroV :: a :> u #

(^+^) :: (a :> u) -> (a :> u) -> a :> u #

negateV :: (a :> u) -> a :> u #

(^-^) :: (a :> u) -> (a :> u) -> a :> u #

AdditiveGroup a => AdditiveGroup (Rec0 a s) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: Rec0 a s #

(^+^) :: Rec0 a s -> Rec0 a s -> Rec0 a s #

negateV :: Rec0 a s -> Rec0 a s #

(^-^) :: Rec0 a s -> Rec0 a s -> Rec0 a s #

(AdditiveGroup u, AdditiveGroup v, AdditiveGroup w) => AdditiveGroup (u, v, w) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: (u, v, w) #

(^+^) :: (u, v, w) -> (u, v, w) -> (u, v, w) #

negateV :: (u, v, w) -> (u, v, w) #

(^-^) :: (u, v, w) -> (u, v, w) -> (u, v, w) #

(AdditiveGroup (f p), AdditiveGroup (g p)) => AdditiveGroup ((f :*: g) p) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: (f :*: g) p #

(^+^) :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p #

negateV :: (f :*: g) p -> (f :*: g) p #

(^-^) :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p #

(AdditiveGroup u, AdditiveGroup v, AdditiveGroup w, AdditiveGroup x) => AdditiveGroup (u, v, w, x) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: (u, v, w, x) #

(^+^) :: (u, v, w, x) -> (u, v, w, x) -> (u, v, w, x) #

negateV :: (u, v, w, x) -> (u, v, w, x) #

(^-^) :: (u, v, w, x) -> (u, v, w, x) -> (u, v, w, x) #

AdditiveGroup (f p) => AdditiveGroup (M1 i c f p) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: M1 i c f p #

(^+^) :: M1 i c f p -> M1 i c f p -> M1 i c f p #

negateV :: M1 i c f p -> M1 i c f p #

(^-^) :: M1 i c f p -> M1 i c f p -> M1 i c f p #

sumV :: (Foldable f, AdditiveGroup v) => f v -> v #

Sum over several vectors

newtype Sum a #

Monoid under group addition. Alternative to the Sum in Data.Monoid, which uses Num instead of AdditiveGroup.

Constructors

Sum 

Fields

Instances
Functor Sum # 
Instance details

Defined in Data.AdditiveGroup

Methods

fmap :: (a -> b) -> Sum a -> Sum b #

(<$) :: a -> Sum b -> Sum a #

Applicative Sum # 
Instance details

Defined in Data.AdditiveGroup

Methods

pure :: a -> Sum a #

(<*>) :: Sum (a -> b) -> Sum a -> Sum b #

liftA2 :: (a -> b -> c) -> Sum a -> Sum b -> Sum c #

(*>) :: Sum a -> Sum b -> Sum b #

(<*) :: Sum a -> Sum b -> Sum a #

Bounded a => Bounded (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

minBound :: Sum a #

maxBound :: Sum a #

Eq a => Eq (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

(==) :: Sum a -> Sum a -> Bool #

(/=) :: Sum a -> Sum a -> Bool #

Ord a => Ord (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

compare :: Sum a -> Sum a -> Ordering #

(<) :: Sum a -> Sum a -> Bool #

(<=) :: Sum a -> Sum a -> Bool #

(>) :: Sum a -> Sum a -> Bool #

(>=) :: Sum a -> Sum a -> Bool #

max :: Sum a -> Sum a -> Sum a #

min :: Sum a -> Sum a -> Sum a #

Read a => Read (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Show a => Show (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

showsPrec :: Int -> Sum a -> ShowS #

show :: Sum a -> String #

showList :: [Sum a] -> ShowS #

AdditiveGroup a => Semigroup (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

(<>) :: Sum a -> Sum a -> Sum a #

sconcat :: NonEmpty (Sum a) -> Sum a #

stimes :: Integral b => b -> Sum a -> Sum a #

AdditiveGroup a => Monoid (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

mempty :: Sum a #

mappend :: Sum a -> Sum a -> Sum a #

mconcat :: [Sum a] -> Sum a #

AdditiveGroup a => AdditiveGroup (Sum a) # 
Instance details

Defined in Data.AdditiveGroup

Methods

zeroV :: Sum a #

(^+^) :: Sum a -> Sum a -> Sum a #

negateV :: Sum a -> Sum a #

(^-^) :: Sum a -> Sum a -> Sum a #

inSum :: (a -> b) -> Sum a -> Sum b #

Application a unary function inside a Sum

inSum2 :: (a -> b -> c) -> Sum a -> Sum b -> Sum c #

Application a binary function inside a Sum