numhask-0.2.3.1: numeric classes

Safe HaskellNone
LanguageHaskell2010

NumHask.Algebra.Additive

Description

A magma heirarchy for addition. The basic magma structure is repeated and prefixed with 'Additive-'.

Synopsis

Documentation

class AdditiveMagma a where #

plus is used as the operator for the additive magma to distinguish from + which, by convention, implies commutativity

∀ a,b ∈ A: a `plus` b ∈ A

law is true by construction in Haskell

Minimal complete definition

plus

Methods

plus :: a -> a -> a #

Instances
AdditiveMagma Bool # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Bool -> Bool -> Bool #

AdditiveMagma Double # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Double -> Double -> Double #

AdditiveMagma Float # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Float -> Float -> Float #

AdditiveMagma Int # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Int -> Int -> Int #

AdditiveMagma Int8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Int8 -> Int8 -> Int8 #

AdditiveMagma Int16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Int16 -> Int16 -> Int16 #

AdditiveMagma Int32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Int32 -> Int32 -> Int32 #

AdditiveMagma Int64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Int64 -> Int64 -> Int64 #

AdditiveMagma Integer # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Integer -> Integer -> Integer #

AdditiveMagma Natural # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Natural -> Natural -> Natural #

AdditiveMagma Word # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Word -> Word -> Word #

AdditiveMagma Word8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Word8 -> Word8 -> Word8 #

AdditiveMagma Word16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Word16 -> Word16 -> Word16 #

AdditiveMagma Word32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Word32 -> Word32 -> Word32 #

AdditiveMagma Word64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Word64 -> Word64 -> Word64 #

AdditiveMagma a => AdditiveMagma (Complex a) # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

plus :: Complex a -> Complex a -> Complex a #

(Ord a, Integral a, Signed a, AdditiveInvertible a) => AdditiveMagma (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

plus :: Ratio a -> Ratio a -> Ratio a #

AdditiveMagma a => AdditiveMagma (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

Methods

plus :: Complex a -> Complex a -> Complex a #

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

Defined in NumHask.Data

Methods

plus :: Sum a -> Sum a -> Sum a #

(ExpField a, LowerBoundedField a, Ord a) => AdditiveMagma (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

Methods

plus :: LogField a -> LogField a -> LogField a #

class AdditiveMagma a => AdditiveUnital a where #

Unital magma for addition.

zero `plus` a == a
a `plus` zero == a

Minimal complete definition

zero

Methods

zero :: a #

Instances
AdditiveUnital Bool # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Bool #

AdditiveUnital Double # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Double #

AdditiveUnital Float # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Float #

AdditiveUnital Int # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Int #

AdditiveUnital Int8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Int8 #

AdditiveUnital Int16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Int16 #

AdditiveUnital Int32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Int32 #

AdditiveUnital Int64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Int64 #

AdditiveUnital Integer # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Integer #

AdditiveUnital Natural # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Natural #

AdditiveUnital Word # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Word #

AdditiveUnital Word8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Word8 #

AdditiveUnital Word16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Word16 #

AdditiveUnital Word32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Word32 #

AdditiveUnital Word64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Word64 #

AdditiveUnital a => AdditiveUnital (Complex a) # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

zero :: Complex a #

(Ord a, Integral a, Signed a, AdditiveInvertible a) => AdditiveUnital (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

zero :: Ratio a #

AdditiveUnital a => AdditiveUnital (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

Methods

zero :: Complex a #

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

Defined in NumHask.Data

Methods

zero :: Sum a #

(LowerBoundedField a, ExpField a, Ord a) => AdditiveUnital (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

Methods

zero :: LogField a #

class AdditiveMagma a => AdditiveAssociative a #

Associative magma for addition.

(a `plus` b) `plus` c == a `plus` (b `plus` c)
Instances
AdditiveAssociative Bool # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Double # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Float # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Int # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Int8 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Int16 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Int32 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Int64 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Integer # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Natural # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Word # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Word8 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Word16 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Word32 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative Word64 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveAssociative a => AdditiveAssociative (Complex a) # 
Instance details

Defined in NumHask.Algebra.Additive

(Ord a, Signed a, Integral a, AdditiveInvertible a) => AdditiveAssociative (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

AdditiveAssociative a => AdditiveAssociative (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

AdditiveMagma a => AdditiveAssociative (Sum a) # 
Instance details

Defined in NumHask.Data

(LowerBoundedField a, ExpField a, Ord a) => AdditiveAssociative (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

class AdditiveMagma a => AdditiveCommutative a #

Commutative magma for addition.

a `plus` b == b `plus` a
Instances
AdditiveCommutative Bool # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Double # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Float # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Int # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Int8 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Int16 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Int32 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Int64 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Integer # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Natural # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Word # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Word8 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Word16 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Word32 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative Word64 # 
Instance details

Defined in NumHask.Algebra.Additive

AdditiveCommutative a => AdditiveCommutative (Complex a) # 
Instance details

Defined in NumHask.Algebra.Additive

(Ord a, Signed a, Integral a, AdditiveInvertible a) => AdditiveCommutative (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

AdditiveCommutative a => AdditiveCommutative (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

AdditiveMagma a => AdditiveCommutative (Sum a) # 
Instance details

Defined in NumHask.Data

(LowerBoundedField a, ExpField a, Ord a) => AdditiveCommutative (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

class AdditiveMagma a => AdditiveInvertible a where #

Invertible magma for addition.

∀ a ∈ A: negate a ∈ A

law is true by construction in Haskell

Minimal complete definition

negate

Methods

negate :: a -> a #

Instances
AdditiveInvertible Bool # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Bool -> Bool #

AdditiveInvertible Double # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Double -> Double #

AdditiveInvertible Float # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Float -> Float #

AdditiveInvertible Int # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Int -> Int #

AdditiveInvertible Int8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Int8 -> Int8 #

AdditiveInvertible Int16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Int16 -> Int16 #

AdditiveInvertible Int32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Int32 -> Int32 #

AdditiveInvertible Int64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Int64 -> Int64 #

AdditiveInvertible Integer # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Integer -> Integer #

AdditiveInvertible Word # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Word -> Word #

AdditiveInvertible Word8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Word8 -> Word8 #

AdditiveInvertible Word16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Word16 -> Word16 #

AdditiveInvertible Word32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Word32 -> Word32 #

AdditiveInvertible Word64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Word64 -> Word64 #

AdditiveInvertible a => AdditiveInvertible (Complex a) # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

negate :: Complex a -> Complex a #

(Ord a, Signed a, Integral a, AdditiveInvertible a) => AdditiveInvertible (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

negate :: Ratio a -> Ratio a #

AdditiveInvertible a => AdditiveInvertible (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

Methods

negate :: Complex a -> Complex a #

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

Defined in NumHask.Data

Methods

negate :: Sum a -> Sum a #

class AdditiveMagma a => AdditiveIdempotent a #

Idempotent magma for addition.

a `plus` a == a
Instances
AdditiveIdempotent Bool # 
Instance details

Defined in NumHask.Algebra.Additive

sum :: (Additive a, Foldable f) => f a -> a #

sum definition avoiding a clash with the Sum monoid in base fixme: fit in with the Sum monoid

class (AdditiveCommutative a, AdditiveUnital a, AdditiveAssociative a) => Additive a where #

Additive is commutative, unital and associative under addition

zero + a == a
a + zero == a
(a + b) + c == a + (b + c)
a + b == b + a

Methods

(+) :: a -> a -> a infixl 6 #

Instances
Additive Bool # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Bool -> Bool -> Bool #

Additive Double # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Double -> Double -> Double #

Additive Float # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Float -> Float -> Float #

Additive Int # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

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

Additive Int8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Int8 -> Int8 -> Int8 #

Additive Int16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Int16 -> Int16 -> Int16 #

Additive Int32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Int32 -> Int32 -> Int32 #

Additive Int64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Int64 -> Int64 -> Int64 #

Additive Integer # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Integer -> Integer -> Integer #

Additive Natural # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Natural -> Natural -> Natural #

Additive Word # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Word -> Word -> Word #

Additive Word8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Word8 -> Word8 -> Word8 #

Additive Word16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Word16 -> Word16 -> Word16 #

Additive Word32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Word32 -> Word32 -> Word32 #

Additive Word64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Word64 -> Word64 -> Word64 #

Additive a => Additive (Complex a) # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(+) :: Complex a -> Complex a -> Complex a #

(Ord a, Signed a, Integral a, AdditiveInvertible a) => Additive (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

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

Additive a => Additive (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

Methods

(+) :: Complex a -> Complex a -> Complex a #

(AdditiveUnital a, AdditiveMagma a) => Additive (Sum a) # 
Instance details

Defined in NumHask.Data

Methods

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

(LowerBoundedField a, ExpField a, Ord a) => Additive (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

Methods

(+) :: LogField a -> LogField a -> LogField a #

class (AdditiveUnital a, AdditiveAssociative a, AdditiveInvertible a) => AdditiveRightCancellative a where #

Non-commutative right minus

a `plus` negate a = zero

Methods

(-~) :: a -> a -> a infixl 6 #

class (AdditiveUnital a, AdditiveAssociative a, AdditiveInvertible a) => AdditiveLeftCancellative a where #

Non-commutative left minus

negate a `plus` a = zero

Methods

(~-) :: a -> a -> a infixl 6 #

class (Additive a, AdditiveInvertible a) => AdditiveGroup a where #

Minus (-) is reserved for where both the left and right cancellative laws hold. This then implies that the AdditiveGroup is also Abelian.

Syntactic unary negation - substituting "negate a" for "-a" in code - is hard-coded in the language to assume a Num instance. So, for example, using ''-a = zero - a' for the second rule below doesn't work.

a - a = zero
negate a = zero - a
negate a + a = zero
a + negate a = zero

Methods

(-) :: a -> a -> a infixl 6 #

Instances
AdditiveGroup Double # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Double -> Double -> Double #

AdditiveGroup Float # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Float -> Float -> Float #

AdditiveGroup Int # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

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

AdditiveGroup Int8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Int8 -> Int8 -> Int8 #

AdditiveGroup Int16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Int16 -> Int16 -> Int16 #

AdditiveGroup Int32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Int32 -> Int32 -> Int32 #

AdditiveGroup Int64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Int64 -> Int64 -> Int64 #

AdditiveGroup Integer # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Integer -> Integer -> Integer #

AdditiveGroup Word # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Word -> Word -> Word #

AdditiveGroup Word8 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Word8 -> Word8 -> Word8 #

AdditiveGroup Word16 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Word16 -> Word16 -> Word16 #

AdditiveGroup Word32 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Word32 -> Word32 -> Word32 #

AdditiveGroup Word64 # 
Instance details

Defined in NumHask.Algebra.Additive

Methods

(-) :: Word64 -> Word64 -> Word64 #

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

Defined in NumHask.Algebra.Additive

Methods

(-) :: Complex a -> Complex a -> Complex a #

(Ord a, Signed a, Integral a, AdditiveGroup a) => AdditiveGroup (Ratio a) # 
Instance details

Defined in NumHask.Algebra.Rational

Methods

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

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

Defined in NumHask.Data.Complex

Methods

(-) :: Complex a -> Complex a -> Complex a #

(AdditiveInvertible a, AdditiveUnital a) => AdditiveGroup (Sum a) # 
Instance details

Defined in NumHask.Data

Methods

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

subtract :: AdditiveGroup a => a -> a -> a #