numhask-0.2.3.1: numeric classes

Safe HaskellNone
LanguageHaskell2010

NumHask.Algebra.Multiplicative

Description

A magma heirarchy for multiplication. The basic magma structure is repeated and prefixed with 'Multiplicative-'.

Synopsis

Documentation

class MultiplicativeMagma a where #

times is used as the operator for the multiplicative magam to distinguish from * which, by convention, implies commutativity

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

law is true by construction in Haskell

Minimal complete definition

times

Methods

times :: a -> a -> a #

Instances
MultiplicativeMagma Bool # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Bool -> Bool -> Bool #

MultiplicativeMagma Double # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Double -> Double -> Double #

MultiplicativeMagma Float # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Float -> Float -> Float #

MultiplicativeMagma Int # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Int -> Int -> Int #

MultiplicativeMagma Int8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Int8 -> Int8 -> Int8 #

MultiplicativeMagma Int16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Int16 -> Int16 -> Int16 #

MultiplicativeMagma Int32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Int32 -> Int32 -> Int32 #

MultiplicativeMagma Int64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Int64 -> Int64 -> Int64 #

MultiplicativeMagma Integer # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Integer -> Integer -> Integer #

MultiplicativeMagma Natural # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Natural -> Natural -> Natural #

MultiplicativeMagma Word # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Word -> Word -> Word #

MultiplicativeMagma Word8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Word8 -> Word8 -> Word8 #

MultiplicativeMagma Word16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Word16 -> Word16 -> Word16 #

MultiplicativeMagma Word32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Word32 -> Word32 -> Word32 #

MultiplicativeMagma Word64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Word64 -> Word64 -> Word64 #

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

Defined in NumHask.Algebra.Multiplicative

Methods

times :: Complex a -> Complex a -> Complex a #

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

Defined in NumHask.Algebra.Rational

Methods

times :: Ratio a -> Ratio a -> Ratio a #

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

Defined in NumHask.Data.Complex

Methods

times :: Complex a -> Complex a -> Complex a #

MultiplicativeMagma a => MultiplicativeMagma (Product a) # 
Instance details

Defined in NumHask.Data

Methods

times :: Product a -> Product a -> Product a #

(AdditiveMagma a, LowerBoundedField a, Eq a) => MultiplicativeMagma (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

Methods

times :: LogField a -> LogField a -> LogField a #

class MultiplicativeMagma a => MultiplicativeUnital a where #

Unital magma for multiplication.

one `times` a == a
a `times` one == a

Minimal complete definition

one

Methods

one :: a #

Instances
MultiplicativeUnital Bool # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Bool #

MultiplicativeUnital Double # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Double #

MultiplicativeUnital Float # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Float #

MultiplicativeUnital Int # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Int #

MultiplicativeUnital Int8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Int8 #

MultiplicativeUnital Int16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Int16 #

MultiplicativeUnital Int32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Int32 #

MultiplicativeUnital Int64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Int64 #

MultiplicativeUnital Integer # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Integer #

MultiplicativeUnital Natural # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Natural #

MultiplicativeUnital Word # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Word #

MultiplicativeUnital Word8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Word8 #

MultiplicativeUnital Word16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Word16 #

MultiplicativeUnital Word32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Word32 #

MultiplicativeUnital Word64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Word64 #

(AdditiveUnital a, AdditiveGroup a, MultiplicativeUnital a) => MultiplicativeUnital (Complex a) # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

one :: Complex a #

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

Defined in NumHask.Algebra.Rational

Methods

one :: Ratio a #

(AdditiveUnital a, AdditiveGroup a, MultiplicativeUnital a) => MultiplicativeUnital (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

Methods

one :: Complex a #

MultiplicativeUnital a => MultiplicativeUnital (Product a) # 
Instance details

Defined in NumHask.Data

Methods

one :: Product a #

(AdditiveUnital a, LowerBoundedField a, Eq a) => MultiplicativeUnital (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

Methods

one :: LogField a #

class MultiplicativeMagma a => MultiplicativeAssociative a #

Associative magma for multiplication.

(a `times` b) `times` c == a `times` (b `times` c)
Instances
MultiplicativeAssociative Bool # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Double # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Float # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Int # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Int8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Int16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Int32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Int64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Integer # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Natural # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Word # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Word8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Word16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Word32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeAssociative Word64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

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

Defined in NumHask.Algebra.Multiplicative

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

Defined in NumHask.Algebra.Rational

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

Defined in NumHask.Data.Complex

MultiplicativeMagma a => MultiplicativeAssociative (Product a) # 
Instance details

Defined in NumHask.Data

(AdditiveAssociative a, LowerBoundedField a, Eq a) => MultiplicativeAssociative (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

class MultiplicativeMagma a => MultiplicativeCommutative a #

Commutative magma for multiplication.

a `times` b == b `times` a
Instances
MultiplicativeCommutative Bool # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Double # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Float # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Int # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Int8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Int16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Int32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Int64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Integer # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Natural # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Word # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Word8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Word16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Word32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

MultiplicativeCommutative Word64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

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

Defined in NumHask.Algebra.Multiplicative

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

Defined in NumHask.Algebra.Rational

(MultiplicativeMagma a, AdditiveGroup a) => MultiplicativeCommutative (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

MultiplicativeMagma a => MultiplicativeCommutative (Product a) # 
Instance details

Defined in NumHask.Data

(AdditiveCommutative a, LowerBoundedField a, Eq a) => MultiplicativeCommutative (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

class MultiplicativeMagma a => MultiplicativeInvertible a where #

Invertible magma for multiplication.

∀ a ∈ A: recip a ∈ A

law is true by construction in Haskell

Minimal complete definition

recip

Methods

recip :: a -> a #

product :: (Multiplicative a, Foldable f) => f a -> a #

product definition avoiding a clash with the Product monoid in base fixme: fit in with Product in base

class (MultiplicativeCommutative a, MultiplicativeUnital a, MultiplicativeAssociative a) => Multiplicative a where #

Multiplicative is commutative, associative and unital under multiplication

one * a == a
a * one == a
(a * b) * c == a * (b * c)
a * b == b * a

Methods

(*) :: a -> a -> a infixl 7 #

Instances
Multiplicative Bool # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

(*) :: Bool -> Bool -> Bool #

Multiplicative Double # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Float # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Int # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Int8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Int16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Int32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Int64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Integer # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Natural # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

(*) :: Natural -> Natural -> Natural #

Multiplicative Word # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Word8 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Word16 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Word32 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

Multiplicative Word64 # 
Instance details

Defined in NumHask.Algebra.Multiplicative

Methods

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

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

Defined in NumHask.Algebra.Multiplicative

Methods

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

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

Defined in NumHask.Algebra.Rational

Methods

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

(MultiplicativeUnital a, MultiplicativeAssociative a, AdditiveGroup a) => Multiplicative (Complex a) # 
Instance details

Defined in NumHask.Data.Complex

Methods

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

MultiplicativeUnital a => Multiplicative (Product a) # 
Instance details

Defined in NumHask.Data

Methods

(*) :: Product a -> Product a -> Product a #

(AdditiveUnital a, AdditiveAssociative a, AdditiveCommutative a, Additive a, LowerBoundedField a, Eq a) => Multiplicative (LogField a) # 
Instance details

Defined in NumHask.Data.LogField

Methods

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

class (MultiplicativeUnital a, MultiplicativeAssociative a, MultiplicativeInvertible a) => MultiplicativeRightCancellative a where #

Non-commutative right divide

a `times` recip a = one

Methods

(/~) :: a -> a -> a infixl 7 #

class (MultiplicativeUnital a, MultiplicativeAssociative a, MultiplicativeInvertible a) => MultiplicativeLeftCancellative a where #

Non-commutative left divide

recip a `times` a = one

Methods

(~/) :: a -> a -> a infixl 7 #

class (Multiplicative a, MultiplicativeInvertible a) => MultiplicativeGroup a where #

Divide (/) is reserved for where both the left and right cancellative laws hold. This then implies that the MultiplicativeGroup is also Abelian.

a / a = one
recip a = one / a
recip a * a = one
a * recip a = one

Methods

(/) :: a -> a -> a infixl 7 #

class MultiplicativeMagma a => MultiplicativeIdempotent a #

Idempotent magma for multiplication.

a `times` a == a
Instances
MultiplicativeIdempotent Bool # 
Instance details

Defined in NumHask.Algebra.Multiplicative