| NumericPrelude-0.0: An experimental alternative hierarchy of numeric type classes | Contents | Index |
|
Number.Positional.Check | Stability | provisional | Maintainer | numericprelude@henning-thielemann.de |
|
|
|
|
|
Description |
Exact Real Arithmetic (Computable reals?)
Inspired by ''The most unreliable technique for computing pi.''
See also http://www.haskell.org/hawiki/ExactRealArithmetic .
|
|
Synopsis |
|
|
|
Documentation |
|
data T |
The value Cons b e m
represents the number b^e * (m!!0 / 1 + m!!1 / b + m!!2 / b^2 + ...).
The interpretation of exponent is chosen such that
floor (logBase b (Cons b e m)) == e.
That is, it is good for multiplication and logarithms.
(Because of the necessity to normalize the multiplication result,
the alternative interpretation wouldn't be more complicated.)
However for base conversions, roots, conversion to fixed point and
working with the fractional part
the interpretation
b^e * (m!!0 / b + m!!1 / b^2 + m!!2 / b^3 + ...)
would fit better.
The digits in the mantissa range from 1-base to base-1.
The representation is not unique
and cannot be made unique in finite time.
This way we avoid infinite carry ripples.
| Constructors | | Instances | |
|
|
basic helpers
|
|
compress :: T -> T |
Shift digits towards zero by partial application of carries.
E.g. 1.8 is converted to 2.(-2)
If the digits are in the range (1-base, base-1)
the resulting digits are in the range ((1-base)2-2, (base-1)2+2).
The result is still not unique,
but may be useful for further processing.
|
|
carry :: T -> T |
perfect carry resolution, works only on finite numbers
|
|
prependDigit :: Int -> T -> T |
|
conversions
|
|
lift0 :: (Int -> T) -> T |
|
lift1 :: (Int -> T -> T) -> T -> T |
|
lift2 :: (Int -> T -> T -> T) -> T -> T -> T |
|
commonBasis :: Basis -> Basis -> Basis |
|
fromBaseInteger :: Int -> Integer -> T |
|
fromBaseRational :: Int -> Rational -> T |
|
defltBaseRoot :: Basis |
|
defltBaseExp :: Exponent |
|
defltBase :: Basis |
|
defltShow :: T -> String |
|
legacyInstance :: a |
|
Produced by Haddock version 0.7 |