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 Source #

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 Source #

Instances

MultiplicativeMagma Bool Source # 

Methods

times :: Bool -> Bool -> Bool Source #

MultiplicativeMagma Double Source # 

Methods

times :: Double -> Double -> Double Source #

MultiplicativeMagma Float Source # 

Methods

times :: Float -> Float -> Float Source #

MultiplicativeMagma Int Source # 

Methods

times :: Int -> Int -> Int Source #

MultiplicativeMagma Int8 Source # 

Methods

times :: Int8 -> Int8 -> Int8 Source #

MultiplicativeMagma Int16 Source # 

Methods

times :: Int16 -> Int16 -> Int16 Source #

MultiplicativeMagma Int32 Source # 

Methods

times :: Int32 -> Int32 -> Int32 Source #

MultiplicativeMagma Int64 Source # 

Methods

times :: Int64 -> Int64 -> Int64 Source #

MultiplicativeMagma Integer Source # 
MultiplicativeMagma Natural Source # 
MultiplicativeMagma Word Source # 

Methods

times :: Word -> Word -> Word Source #

MultiplicativeMagma Word8 Source # 

Methods

times :: Word8 -> Word8 -> Word8 Source #

MultiplicativeMagma Word16 Source # 

Methods

times :: Word16 -> Word16 -> Word16 Source #

MultiplicativeMagma Word32 Source # 

Methods

times :: Word32 -> Word32 -> Word32 Source #

MultiplicativeMagma Word64 Source # 

Methods

times :: Word64 -> Word64 -> Word64 Source #

(MultiplicativeMagma a, AdditiveGroup a) => MultiplicativeMagma (Complex a) Source # 

Methods

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

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

Methods

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

(MultiplicativeMagma a, AdditiveGroup a) => MultiplicativeMagma (Complex a) Source # 

Methods

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

MultiplicativeMagma a => MultiplicativeMagma (Product a) Source # 

Methods

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

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

Methods

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

class MultiplicativeMagma a => MultiplicativeUnital a where Source #

Unital magma for multiplication.

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

Minimal complete definition

one

Methods

one :: a Source #

Instances

MultiplicativeUnital Bool Source # 

Methods

one :: Bool Source #

MultiplicativeUnital Double Source # 

Methods

one :: Double Source #

MultiplicativeUnital Float Source # 

Methods

one :: Float Source #

MultiplicativeUnital Int Source # 

Methods

one :: Int Source #

MultiplicativeUnital Int8 Source # 

Methods

one :: Int8 Source #

MultiplicativeUnital Int16 Source # 

Methods

one :: Int16 Source #

MultiplicativeUnital Int32 Source # 

Methods

one :: Int32 Source #

MultiplicativeUnital Int64 Source # 

Methods

one :: Int64 Source #

MultiplicativeUnital Integer Source # 

Methods

one :: Integer Source #

MultiplicativeUnital Natural Source # 

Methods

one :: Natural Source #

MultiplicativeUnital Word Source # 

Methods

one :: Word Source #

MultiplicativeUnital Word8 Source # 

Methods

one :: Word8 Source #

MultiplicativeUnital Word16 Source # 

Methods

one :: Word16 Source #

MultiplicativeUnital Word32 Source # 

Methods

one :: Word32 Source #

MultiplicativeUnital Word64 Source # 

Methods

one :: Word64 Source #

(AdditiveUnital a, AdditiveGroup a, MultiplicativeUnital a) => MultiplicativeUnital (Complex a) Source # 

Methods

one :: Complex a Source #

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

Methods

one :: Ratio a Source #

(AdditiveUnital a, AdditiveGroup a, MultiplicativeUnital a) => MultiplicativeUnital (Complex a) Source # 

Methods

one :: Complex a Source #

MultiplicativeUnital a => MultiplicativeUnital (Product a) Source # 

Methods

one :: Product a Source #

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

Methods

one :: LogField a Source #

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

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 Source #

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 Source #

Instances

Multiplicative Bool Source # 

Methods

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

Multiplicative Double Source # 

Methods

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

Multiplicative Float Source # 

Methods

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

Multiplicative Int Source # 

Methods

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

Multiplicative Int8 Source # 

Methods

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

Multiplicative Int16 Source # 

Methods

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

Multiplicative Int32 Source # 

Methods

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

Multiplicative Int64 Source # 

Methods

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

Multiplicative Integer Source # 

Methods

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

Multiplicative Natural Source # 

Methods

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

Multiplicative Word Source # 

Methods

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

Multiplicative Word8 Source # 

Methods

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

Multiplicative Word16 Source # 

Methods

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

Multiplicative Word32 Source # 

Methods

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

Multiplicative Word64 Source # 

Methods

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

(AdditiveGroup a, Multiplicative a) => Multiplicative (Complex a) Source # 

Methods

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

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

Methods

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

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

Methods

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

MultiplicativeUnital a => Multiplicative (Product a) Source # 

Methods

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

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

Methods

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

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

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 Source #

class MultiplicativeMagma a => MultiplicativeIdempotent a Source #

Idempotent magma for multiplication.

a `times` a == a