Safe Haskell | None |
---|---|
Language | Haskell2010 |
Multiplicative
Synopsis
- class Multiplicative a where
- product :: (Multiplicative a, Foldable f) => f a -> a
- class Multiplicative a => Divisive a where
Documentation
class Multiplicative a where Source #
For practical reasons, Multiplicative
has no super classes. Using Associative
and Unital
from this library, or using Semigroup
and Monoid
from base tends to complexify the interface once you start having to disinguish between (say) monoidal addition and monoidal multiplication.
one * a == a a * one == a (a * b) * c == a * (b * c) a * b == b * a
By convention, (*) is regarded as commutative, but this is not universal, and the introduction of another symbol which means non-commutative multiplication seems a bit dogmatic.
Instances
Multiplicative Bool Source # | |
Multiplicative Double Source # | |
Multiplicative Float Source # | |
Multiplicative Int Source # | |
Multiplicative Int8 Source # | |
Multiplicative Int16 Source # | |
Multiplicative Int32 Source # | |
Multiplicative Int64 Source # | |
Multiplicative Integer Source # | |
Multiplicative Natural Source # | |
Multiplicative Word Source # | |
Multiplicative Word8 Source # | |
Multiplicative Word16 Source # | |
Multiplicative Word32 Source # | |
Multiplicative Word64 Source # | |
(Subtractive a, Multiplicative a) => Multiplicative (Complex a) Source # | |
GCDConstraints a => Multiplicative (Ratio a) Source # | |
Multiplicative a => Multiplicative (Pair a) Source # | |
(LowerBoundedField a, Eq a) => Multiplicative (LogField a) Source # | |
Multiplicative a => Multiplicative (Wrapped a) Source # | |
Multiplicative a => Multiplicative (Positive a) Source # | |
Multiplicative b => Multiplicative (a -> b) Source # | |
product :: (Multiplicative a, Foldable f) => f a -> a Source #
Compute the product of a Foldable
.
class Multiplicative a => Divisive a where Source #
a / a = one recip a = one / a recip a * a = one a * recip a = one
Instances
Divisive Double Source # | |
Divisive Float Source # | |
(Subtractive a, Divisive a) => Divisive (Complex a) Source # | |
GCDConstraints a => Divisive (Ratio a) Source # | |
Divisive a => Divisive (Pair a) Source # | |
(LowerBoundedField a, Eq a) => Divisive (LogField a) Source # | |
Divisive a => Divisive (Wrapped a) Source # | |
Divisive a => Divisive (Positive a) Source # | |
Divisive b => Divisive (a -> b) Source # | |