| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
GHC.Integer
Description
Compatibility module for pre-ghc-bignum code.
Synopsis
- data Integer
- smallInteger :: Int# -> Integer
- wordToInteger :: Word# -> Integer
- integerToWord :: Integer -> Word#
- integerToInt :: Integer -> Int#
- encodeFloatInteger :: Integer -> Int# -> Float#
- encodeDoubleInteger :: Integer -> Int# -> Double#
- decodeDoubleInteger :: Double# -> (# Integer, Int# #)
- plusInteger :: Integer -> Integer -> Integer
- minusInteger :: Integer -> Integer -> Integer
- timesInteger :: Integer -> Integer -> Integer
- negateInteger :: Integer -> Integer
- absInteger :: Integer -> Integer
- signumInteger :: 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
- eqInteger :: Integer -> Integer -> Bool
- neqInteger :: Integer -> Integer -> Bool
- 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#
- 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
- popCountInteger :: Integer -> Int#
- bitInteger :: Int# -> Integer
- hashInteger :: Integer -> Int#
Documentation
Instances
Construct Integers
smallInteger :: Int# -> Integer Source #
wordToInteger :: Word# -> Integer Source #
Conversion to other integral types
integerToWord :: Integer -> Word# Source #
integerToInt :: Integer -> Int# Source #
Helpers for RealFloat type-class operations
Arithmetic operations
plusInteger :: Integer -> Integer -> Integer Source #
Used to implement (+) for the Num typeclass.
This gives the sum of two integers.
Example
>>>plusInteger 3 25
>>>(+) 3 25
minusInteger :: Integer -> Integer -> Integer Source #
Used to implement (-) for the Num typeclass.
This gives the difference of two integers.
Example
>>>minusInteger 3 21
>>>(-) 3 21
timesInteger :: Integer -> Integer -> Integer Source #
Used to implement (*) for the Num typeclass.
This gives the product of two integers.
Example
>>>timesInteger 3 26
>>>(*) 3 26
negateInteger :: Integer -> Integer Source #
Used to implement negate for the Num typeclass.
This changes the sign of whatever integer is passed into it.
Example
>>>negateInteger (-6)6
>>>negate (-6)6
absInteger :: Integer -> Integer Source #
Used to implement abs for the Num typeclass.
This gives the absolute value of whatever integer is passed into it.
Example
>>>absInteger (-6)6
>>>abs (-6)6
signumInteger :: Integer -> Integer Source #
Used to implement signum for the Num typeclass.
This gives 1 for a positive integer, and -1 for a negative integer.
Example
>>>signumInteger 51
>>>signum 51
divModInteger :: Integer -> Integer -> (# Integer, Integer #) Source #
Used to implement divMod for the Integral typeclass.
This gives a tuple equivalent to
(div x y, mod x y)
Example
>>>divModInteger 10 2(5,0)
>>>divMod 10 2(5,0)
divInteger :: Integer -> Integer -> Integer Source #
Used to implement div for the Integral typeclass.
This performs integer division on its two parameters, truncated towards negative infinity.
Example
>>>10 `divInteger` 25
>>>10 `div` 2
modInteger :: Integer -> Integer -> Integer Source #
Used to implement mod for the Integral typeclass.
This performs the modulo operation, satisfying
((x `div` y) * y) + (x `mod` y) == x
Example
>>>7 `modInteger` 31
>>>7 `mod` 31
quotRemInteger :: Integer -> Integer -> (# Integer, Integer #) Source #
Used to implement quotRem for the Integral typeclass.
This gives a tuple equivalent to
(quot x y, mod x y)
Example
>>>quotRemInteger 10 2(5,0)
>>>quotRem 10 2(5,0)
quotInteger :: Integer -> Integer -> Integer Source #
Used to implement quot for the Integral typeclass.
This performs integer division on its two parameters, truncated towards zero.
Example
>>>quotInteger 10 25
>>>quot 10 25
remInteger :: Integer -> Integer -> Integer Source #
Used to implement rem for the Integral typeclass.
This gives the remainder after integer division of its two parameters, satisfying
((x `quot` y) * y) + (x `rem` y) == x
Example
>>>remInteger 3 21
>>>rem 3 21
Comparison predicates
eqInteger :: Integer -> Integer -> Bool Source #
Used to implement (==) for the Eq typeclass.
Outputs True if two integers are equal to each other.
Example
>>>6 `eqInteger` 6True
>>>6 == 6True
neqInteger :: Integer -> Integer -> Bool Source #
Used to implement (/=) for the Eq typeclass.
Outputs True if two integers are not equal to each other.
Example
>>>6 `neqInteger` 7True
>>>6 /= 7True
leInteger :: Integer -> Integer -> Bool Source #
Used to implement (<=) for the Ord typeclass.
Outputs True if the first argument is less than or equal to the second.
Example
>>>3 `leInteger` 5True
>>>3 <= 5True
gtInteger :: Integer -> Integer -> Bool Source #
Used to implement (>) for the Ord typeclass.
Outputs True if the first argument is greater than the second.
Example
>>>5 `gtInteger` 3True
>>>5 > 3True
ltInteger :: Integer -> Integer -> Bool Source #
Used to implement (<) for the Ord typeclass.
Outputs True if the first argument is less than the second.
Example
>>>3 `ltInteger` 5True
>>>3 < 5True
geInteger :: Integer -> Integer -> Bool Source #
Used to implement (>=) for the Ord typeclass.
Outputs True if the first argument is greater than or equal to the second.
Example
>>>5 `geInteger` 3True
>>>5 >= 3True
compareInteger :: Integer -> Integer -> Ordering Source #
Used to implement compare for the Integral typeclass.
This takes two integers, and outputs whether the first is less than, equal to, or greater than the second.
Example
>>>compareInteger 2 10LT
>>>compare 2 10LT
Int#-boolean valued versions of comparison predicates
These operations return 0# and 1# instead of False and
True respectively. See
PrimBool wiki-page
for more details
Bit-operations
complementInteger :: Integer -> Integer Source #
popCountInteger :: Integer -> Int# Source #
bitInteger :: Int# -> Integer Source #
Hashing
hashInteger :: Integer -> Int# Source #