|
Numeric.NonNegative.ChunkyPrivate | Portability | Haskell 98 | Stability | stable | Maintainer | haskell@henning-thielemann.de |
|
|
|
Description |
This module contains internal functions (*Unsafe)
that I had liked to re-use in the NumericPrelude type hierarchy.
However since the Eq and Ord instance already require the Num class,
we cannot use that in the NumericPrelude.
|
|
Synopsis |
|
|
|
Documentation |
|
|
A chunky non-negative number is a list of non-negative numbers.
It represents the sum of the list elements.
It is possible to represent a finite number with infinitely many chunks
by using an infinite number of zeros.
Note the following problems:
Addition is commutative only for finite representations.
E.g. let y = min (1+y) 2 in y is defined,
let y = min (y+1) 2 in y is not.
|
|
|
|
|
|
|
|
This routine exposes the inner structure of the lazy number.
|
|
|
|
|
|
|
Remove zero chunks.
|
|
|
|
|
|
|
In minMaxDiff x y == (z,r,b)
z represents min x y,
r represents max x y - min x y,
and xy ==> b@ or @x>y == not b,
for x==y the value of b is arbitrary.
|
|
fromChunksUnsafe :: [a] -> T a | Source |
|
|
|
This routine exposes the inner structure of the lazy number
and is actually the same as toChunks.
It was considered dangerous,
but you can observe the lazy structure
in tying-the-knot applications anyway.
So the explicit revelation of the chunks seems not to be worse.
|
|
Produced by Haddock version 2.6.0 |