num package:ghc-internal
Basic numeric class.
The Haskell Report defines no laws for
Num. However,
(+) and
(*) are customarily expected
to define a ring and have the following properties:
- Associativity of (+) (x + y) +
z = x + (y + z)
- Commutativity of (+) x + y
= y + x
- fromInteger 0 is the additive
identity x + fromInteger 0 = x
- negate gives the additive inverse x +
negate x = fromInteger 0
- Associativity of (*) (x * y) *
z = x * (y * z)
- fromInteger 1 is the multiplicative
identity x * fromInteger 1 = x and
fromInteger 1 * x = x
- Distributivity of (*) with respect to
(+) a * (b + c) = (a * b) + (a *
c) and (b + c) * a = (b * a) + (c * a)
- Coherence with toInteger if the type also
implements Integral, then fromInteger is a left inverse
for toInteger, i.e. fromInteger (toInteger i) ==
i
Note that it
isn't customarily expected that a type instance of
both
Num and
Ord implement an ordered ring. Indeed, in
base only
Integer and
Rational do.
The number of elements in the array.
Returns the number of sparks in the local spark pool.
the value passed to the
+RTS -N flag. This is the number of
Haskell threads that can run truly simultaneously at any given time,
and is typically set to the number of physical processor cores on the
machine.
Strictly speaking it is better to use
getNumCapabilities,
because the number of capabilities might vary at runtime.
Returns the number of sparks currently in the local spark pool
Extract the numerator of the ratio in reduced form: the numerator and
denominator have no common factor and the denominator is positive.
Odds and ends, mostly functions for reading and showing
RealFloat-like kind of values.