Copyright | (c) Ian Lynagh 2007-2008 |
---|---|
License | BSD3 |
Maintainer | igloo@earth.li |
Stability | internal |
Portability | non-portable (GHC Extensions) |
Safe Haskell | None |
Language | Haskell2010 |
GHC.Integer.Simple.Internals
Description
A simple definition of the Integer
type.
Synopsis
- data Integer
- type Positive = Digits
- type Positives = List Positive
- data Digits
- type Digit = Word#
- data 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
- popCountInteger :: Integer -> Int#
- popCountPositive :: Positive -> Int#
- bitInteger :: Int# -> Integer
- bitPositive :: Int# -> Positive
- 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
- gcdInteger :: Integer -> Integer -> Integer
- gcdPositive :: Positive -> Positive -> Positive
- lcmInteger :: Integer -> Integer -> Integer
- lcmPositive :: Positive -> Positive -> Positive
- 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
- andDigitsOnes :: DigitsOnes -> Digits -> Digits
- orDigits :: Digits -> Digits -> Digits
- xorDigits :: Digits -> Digits -> Digits
- doubleFromPositive :: Positive -> Double#
- floatFromPositive :: Positive -> Float#
Documentation
Instances
Eq Integer # | |
Ord Integer # | |
Defined in GHC.Integer.Type |
errorInteger :: Integer #
smallInteger :: Int# -> Integer #
wordToInteger :: Word# -> Integer #
integerToWord :: Integer -> Word# #
integerToInt :: Integer -> Int# #
oneInteger :: 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 #
xorInteger :: Integer -> Integer -> Integer #
complementInteger :: Integer -> Integer #
shiftLInteger :: Integer -> Int# -> Integer #
shiftRInteger :: Integer -> Int# -> Integer #
popCountInteger :: Integer -> Int# #
popCountPositive :: Positive -> Int# #
bitInteger :: Int# -> Integer #
Integer
for which only n-th bit is set. Undefined behaviour
for negative n values.
bitPositive :: Int# -> Positive #
testBitInteger :: Integer -> Int# -> Bool #
flipBits :: Digits -> DigitsOnes #
flipBitsDigits :: Digits -> Digits #
negateInteger :: Integer -> Integer #
plusInteger :: Integer -> Integer -> Integer #
minusInteger :: Integer -> Integer -> Integer #
timesInteger :: Integer -> Integer -> Integer #
divInteger :: Integer -> Integer -> Integer #
modInteger :: Integer -> Integer -> Integer #
quotInteger :: Integer -> Integer -> Integer #
remInteger :: Integer -> Integer -> Integer #
gcdInteger :: Integer -> Integer -> Integer #
gcdPositive :: Positive -> Positive -> Positive #
lcmInteger :: Integer -> Integer -> Integer #
lcmPositive :: Positive -> Positive -> Positive #
compareInteger :: Integer -> Integer -> Ordering #
eqInteger# :: Integer -> Integer -> Int# #
neqInteger# :: Integer -> Integer -> Int# #
neqInteger :: Integer -> Integer -> Bool #
ltInteger# :: Integer -> Integer -> Int# #
gtInteger# :: Integer -> Integer -> Int# #
leInteger# :: Integer -> Integer -> Int# #
geInteger# :: Integer -> Integer -> Int# #
absInteger :: Integer -> Integer #
signumInteger :: Integer -> Integer #
hashInteger :: Integer -> Int# #
onePositive :: Positive #
halfBoundUp :: () -> Digit #
lowHalfMask :: () -> Digit #
highHalfShift :: () -> Int# #
digitsToInteger :: 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 #
newtype DigitsOnes #
Constructors
DigitsOnes Digits |
andDigitsOnes :: DigitsOnes -> Digits -> Digits #
doubleFromPositive :: Positive -> Double# #
floatFromPositive :: Positive -> Float# #