Safe Haskell | None |
---|---|
Language | Haskell2010 |
Basement.Numerical.Multiplicative
Synopsis
- class Multiplicative a where
- class (Additive a, Multiplicative a) => IDivisible a where
- class Multiplicative a => Divisible a where
- (/) :: a -> a -> a
- recip :: Divisible a => a -> a
Documentation
class Multiplicative a where #
Represent class of things that can be multiplied together
x * midentity = x midentity * x = x
Methods
Identity element over multiplication
Multiplication of 2 elements that result in another element
(^) :: (IsNatural n, Enum n, IDivisible n) => a -> n -> a infixr 8 #
Raise to power, repeated multiplication e.g. > a ^ 2 = a * a > a ^ 10 = (a ^ 5) * (a ^ 5) .. (^) :: (IsNatural n) => a -> n -> a
Instances
class (Additive a, Multiplicative a) => IDivisible a where #
Represent types that supports an euclidian division
(x ‘div‘ y) * y + (x ‘mod‘ y) == x
Instances
IDivisible Int # | |
IDivisible Int8 # | |
IDivisible Int16 # | |
IDivisible Int32 # | |
IDivisible Int64 # | |
IDivisible Integer # | |
IDivisible Natural # | |
IDivisible Word # | |
IDivisible Word8 # | |
IDivisible Word16 # | |
IDivisible Word32 # | |
IDivisible Word64 # | |
IDivisible CChar # | |
IDivisible CSChar # | |
IDivisible CUChar # | |
IDivisible CShort # | |
IDivisible CUShort # | |
IDivisible CInt # | |
IDivisible CUInt # | |
IDivisible CLong # | |
IDivisible CULong # | |
IDivisible CLLong # | |
IDivisible CULLong # | |
IDivisible CPtrdiff # | |
IDivisible CSize # | |
IDivisible CWchar # | |
IDivisible CSigAtomic # | |
Defined in Basement.Numerical.Multiplicative Methods div :: CSigAtomic -> CSigAtomic -> CSigAtomic # mod :: CSigAtomic -> CSigAtomic -> CSigAtomic # divMod :: CSigAtomic -> CSigAtomic -> (CSigAtomic, CSigAtomic) # | |
IDivisible CIntPtr # | |
IDivisible CUIntPtr # | |
IDivisible CIntMax # | |
IDivisible CUIntMax # | |
IDivisible Word128 # | |
IDivisible Word256 # | |
SizeValid n => IDivisible (Bits n) # | |