-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Implementation decision for non-integer calculations
@package shelley-spec-non-integral
@version 0.1.0.0

module Shelley.Spec.NonIntegral

-- | Exponentiation
(***) :: (RealFrac a, Enum a, Show a) => a -> a -> a
exp' :: (RealFrac a, Show a) => a -> a

-- | Compute natural logarithm via continued fraction, first splitting
--   integral part and then using continued fractions approximation for
--   `ln(1+x)`
ln' :: (RealFrac a, Enum a, Show a) => a -> a

-- | find n with `e^n&lt;=x&lt;e^(n+1)`
findE :: RealFrac a => a -> a -> Integer
splitLn :: (RealFrac a, Show a) => a -> (Integer, a)
scaleExp :: RealFrac a => a -> (Integer, a)
data CompareResult a
BELOW :: a -> Int -> CompareResult a
ABOVE :: a -> Int -> CompareResult a
MaxReached :: Int -> CompareResult a

-- | Efficient way to compare the result of the Taylor expansion of the
--   exponential function to a threshold value. Using error estimation one
--   can stop early, once it's known the result will certainly be above or
--   below the target value.
taylorExpCmp :: RealFrac a => a -> a -> a -> CompareResult a
instance GHC.Classes.Eq a => GHC.Classes.Eq (Shelley.Spec.NonIntegral.CompareResult a)
instance GHC.Show.Show a => GHC.Show.Show (Shelley.Spec.NonIntegral.CompareResult a)
