Number.Positional.Check
 Stability provisional Maintainer numericprelude@henning-thielemann.de
 Contents basic helpers conversions
Description
Interface to Number.Positional which dynamically checks for equal bases.
Synopsis
data T = Cons {
 base :: Int exponent :: Int mantissa :: Mantissa
}
compress :: T -> T
carry :: T -> T
prependDigit :: Int -> T -> T
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
Documentation
 data T Source
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
Cons
 base :: Int exponent :: Int mantissa :: Mantissa
Instances
 Eq T Fractional T Num T Ord T Show T C T C T C T C T C T C T C T C T C T Power T
basic helpers
 compress :: T -> T Source
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 Source
perfect carry resolution, works only on finite numbers
 prependDigit :: Int -> T -> T Source
conversions
 lift0 :: (Int -> T) -> T Source
 lift1 :: (Int -> T -> T) -> T -> T Source
 lift2 :: (Int -> T -> T -> T) -> T -> T -> T Source
 commonBasis :: Basis -> Basis -> Basis Source
 fromBaseInteger :: Int -> Integer -> T Source
 fromBaseRational :: Int -> Rational -> T Source
 defltBaseRoot :: Basis Source
 defltBaseExp :: Exponent Source
 defltBase :: Basis Source
 defltShow :: T -> String Source
 legacyInstance :: a Source