-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simple Integer library -- -- This package contains an simple Integer library. @package integer-simple @version 0.1.1.1 -- | An simple definition of the Integer type. module GHC.Integer.Simple.Internals data Integer Positive :: !Positive -> Integer Negative :: !Positive -> Integer Naught :: Integer type Positive = Digits type Positives = List Positive data Digits Some :: !Digit -> !Digits -> Digits None :: Digits type Digit = Word# data List a Nil :: List a Cons :: a -> (List a) -> List a mkInteger :: Bool -> [Int] -> Integer errorInteger :: Integer errorPositive :: Positive smallInteger :: Int# -> Integer wordToInteger :: Word# -> Integer integerToWord :: Integer -> Word# integerToInt :: Integer -> Int# oneInteger :: Integer negativeOneInteger :: Integer twoToTheThirtytwoInteger :: Integer encodeDoubleInteger :: Integer -> Int# -> Double# encodeDouble# :: Word# -> Int# -> Double# encodeFloatInteger :: Integer -> Int# -> Float# encodeFloat# :: Word# -> Int# -> Float# decodeFloatInteger :: Float# -> (# Integer, Int# #) decodeDoubleInteger :: Double# -> (# Integer, Int# #) doubleFromInteger :: Integer -> Double# floatFromInteger :: Integer -> Float# andInteger :: Integer -> Integer -> Integer orInteger :: Integer -> Integer -> Integer xorInteger :: Integer -> Integer -> Integer complementInteger :: Integer -> Integer shiftLInteger :: Integer -> Int# -> Integer shiftRInteger :: Integer -> Int# -> Integer testBitInteger :: Integer -> Int# -> Bool twosComplementPositive :: Positive -> DigitsOnes flipBits :: Digits -> DigitsOnes flipBitsDigits :: Digits -> Digits negateInteger :: Integer -> Integer plusInteger :: Integer -> Integer -> Integer minusInteger :: Integer -> Integer -> Integer timesInteger :: Integer -> Integer -> Integer divModInteger :: Integer -> Integer -> (# Integer, Integer #) divInteger :: Integer -> Integer -> Integer modInteger :: Integer -> Integer -> Integer quotRemInteger :: Integer -> Integer -> (# Integer, Integer #) quotInteger :: Integer -> Integer -> Integer remInteger :: Integer -> Integer -> Integer compareInteger :: Integer -> Integer -> Ordering eqInteger# :: Integer -> Integer -> Int# neqInteger# :: Integer -> Integer -> Int# eqInteger :: Integer -> Integer -> Bool neqInteger :: Integer -> Integer -> Bool ltInteger# :: Integer -> Integer -> Int# gtInteger# :: Integer -> Integer -> Int# leInteger# :: Integer -> Integer -> Int# geInteger# :: Integer -> Integer -> Int# leInteger :: Integer -> Integer -> Bool gtInteger :: Integer -> Integer -> Bool ltInteger :: Integer -> Integer -> Bool geInteger :: Integer -> Integer -> Bool absInteger :: Integer -> Integer signumInteger :: Integer -> Integer hashInteger :: Integer -> Int# onePositive :: Positive halfBoundUp :: () -> Digit fullBound :: () -> Digit lowHalfMask :: () -> Digit highHalfShift :: () -> Int# twoToTheThirtytwoPositive :: Positive digitsMaybeZeroToInteger :: Digits -> Integer digitsToInteger :: Digits -> Integer digitsToNegativeInteger :: Digits -> Integer removeZeroTails :: Digits -> Digits comparePositive :: Positive -> Positive -> Ordering plusPositive :: Positive -> Positive -> Positive succPositive :: Positive -> Positive minusPositive :: Positive -> Positive -> Positive timesPositive :: Positive -> Positive -> Positive timesDigit :: Digit -> Digit -> Positive splitHalves :: Digit -> (# Digit, Digit #) shiftLPositive :: Positive -> Int# -> Positive smallShiftLPositive :: Positive -> Int# -> Positive shiftRPositive :: Positive -> Int# -> Integer smallShiftRPositive :: Positive -> Int# -> Integer quotRemPositive :: Positive -> Positive -> (# Integer, Integer #) some :: Digit -> Digits -> Digits andDigits :: Digits -> Digits -> Digits newtype DigitsOnes DigitsOnes :: Digits -> DigitsOnes andDigitsOnes :: DigitsOnes -> Digits -> Digits orDigits :: Digits -> Digits -> Digits xorDigits :: Digits -> Digits -> Digits doubleFromPositive :: Positive -> Double# floatFromPositive :: Positive -> Float# -- | An simple definition of the Integer type. module GHC.Integer data Integer mkInteger :: Bool -> [Int] -> Integer smallInteger :: Int# -> Integer wordToInteger :: Word# -> Integer integerToWord :: Integer -> Word# integerToInt :: Integer -> Int# plusInteger :: Integer -> Integer -> Integer minusInteger :: Integer -> Integer -> Integer timesInteger :: Integer -> Integer -> Integer negateInteger :: Integer -> Integer eqInteger :: Integer -> Integer -> Bool neqInteger :: Integer -> Integer -> Bool absInteger :: Integer -> Integer signumInteger :: Integer -> Integer leInteger :: Integer -> Integer -> Bool gtInteger :: Integer -> Integer -> Bool ltInteger :: Integer -> Integer -> Bool geInteger :: Integer -> Integer -> Bool compareInteger :: Integer -> Integer -> Ordering eqInteger# :: Integer -> Integer -> Int# neqInteger# :: Integer -> Integer -> Int# leInteger# :: Integer -> Integer -> Int# gtInteger# :: Integer -> Integer -> Int# ltInteger# :: Integer -> Integer -> Int# geInteger# :: Integer -> Integer -> Int# divInteger :: Integer -> Integer -> Integer modInteger :: Integer -> Integer -> Integer divModInteger :: Integer -> Integer -> (# Integer, Integer #) quotRemInteger :: Integer -> Integer -> (# Integer, Integer #) quotInteger :: Integer -> Integer -> Integer remInteger :: Integer -> Integer -> Integer encodeFloatInteger :: Integer -> Int# -> Float# decodeFloatInteger :: Float# -> (# Integer, Int# #) floatFromInteger :: Integer -> Float# encodeDoubleInteger :: Integer -> Int# -> Double# decodeDoubleInteger :: Double# -> (# Integer, Int# #) doubleFromInteger :: Integer -> Double# andInteger :: Integer -> Integer -> Integer orInteger :: Integer -> Integer -> Integer xorInteger :: Integer -> Integer -> Integer complementInteger :: Integer -> Integer shiftLInteger :: Integer -> Int# -> Integer shiftRInteger :: Integer -> Int# -> Integer testBitInteger :: Integer -> Int# -> Bool hashInteger :: Integer -> Int# module GHC.Integer.Logarithms -- | Calculate the integer logarithm for an arbitrary base. The base must -- be greater than 1, the second argument, the number whose logarithm is -- sought, should be positive, otherwise the result is meaningless. -- --
-- base ^ integerLogBase# base m <= m < base ^ (integerLogBase# base m + 1) ---- -- for base > 1 and m > 0. integerLogBase# :: Integer -> Integer -> Int# -- | Calculate the integer base 2 logarithm of an Integer. The -- calculation is more efficient than for the general case, on platforms -- with 32- or 64-bit words much more efficient. -- -- The argument must be strictly positive, that condition is not -- checked. integerLog2# :: Integer -> Int# -- | This function calculates the integer base 2 logarithm of a -- Word#. wordLog2# :: Word# -> Int#