| 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
Arbitrary precision integers. In contrast with fixed-size integral types
such as Int, the Integer type represents the entire infinite range of
integers.
Integers are stored in a kind of sign-magnitude form, hence do not expect two's complement form when using bit operations.
If the value is small (i.e., fits into an Int), the IS constructor is
used. Otherwise IP and IN constructors are used to store a BigNat
representing the positive or the negative value magnitude, respectively.
Invariant: IP and IN are used iff the value does not fit in IS.
Instances
| PrintfArg Integer Source # | Since: base-2.1 |
Defined in Text.Printf Methods formatArg :: Integer -> FieldFormatter Source # parseFormat :: Integer -> ModifierParser Source # | |
| Bits Integer Source # | Since: base-2.1 |
Defined in GHC.Internal.Bits Methods (.&.) :: Integer -> Integer -> Integer Source # (.|.) :: Integer -> Integer -> Integer Source # xor :: Integer -> Integer -> Integer Source # complement :: Integer -> Integer Source # shift :: Integer -> Int -> Integer Source # rotate :: Integer -> Int -> Integer Source # bit :: Int -> Integer Source # setBit :: Integer -> Int -> Integer Source # clearBit :: Integer -> Int -> Integer Source # complementBit :: Integer -> Int -> Integer Source # testBit :: Integer -> Int -> Bool Source # bitSizeMaybe :: Integer -> Maybe Int Source # bitSize :: Integer -> Int Source # isSigned :: Integer -> Bool Source # shiftL :: Integer -> Int -> Integer Source # unsafeShiftL :: Integer -> Int -> Integer Source # shiftR :: Integer -> Int -> Integer Source # unsafeShiftR :: Integer -> Int -> Integer Source # rotateL :: Integer -> Int -> Integer Source # | |
| Eq Integer Source # | |
| Ord Integer Source # | |
Defined in GHC.Internal.Bignum.Integer | |
| Data Integer Source # | Since: base-4.0.0.0 |
Defined in GHC.Internal.Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Integer -> c Integer Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Integer Source # toConstr :: Integer -> Constr Source # dataTypeOf :: Integer -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Integer) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Integer) Source # gmapT :: (forall b. Data b => b -> b) -> Integer -> Integer Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Integer -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Integer -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Integer -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Integer -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Integer -> m Integer Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Integer -> m Integer Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Integer -> m Integer Source # | |
| Enum Integer Source # | Since: base-2.1 |
Defined in GHC.Internal.Enum Methods succ :: Integer -> Integer Source # pred :: Integer -> Integer Source # toEnum :: Int -> Integer Source # fromEnum :: Integer -> Int Source # enumFrom :: Integer -> [Integer] Source # enumFromThen :: Integer -> Integer -> [Integer] Source # enumFromTo :: Integer -> Integer -> [Integer] Source # enumFromThenTo :: Integer -> Integer -> Integer -> [Integer] Source # | |
| Ix Integer Source # | Since: base-2.1 |
Defined in GHC.Internal.Ix Methods range :: (Integer, Integer) -> [Integer] Source # index :: (Integer, Integer) -> Integer -> Int Source # unsafeIndex :: (Integer, Integer) -> Integer -> Int Source # inRange :: (Integer, Integer) -> Integer -> Bool Source # rangeSize :: (Integer, Integer) -> Int Source # unsafeRangeSize :: (Integer, Integer) -> Int Source # | |
| Num Integer Source # | Since: base-2.1 |
Defined in GHC.Internal.Num | |
| Read Integer Source # | Since: base-2.1 |
| Integral Integer Source # | Since: base-2.0.1 |
Defined in GHC.Internal.Real Methods quot :: Integer -> Integer -> Integer Source # rem :: Integer -> Integer -> Integer Source # div :: Integer -> Integer -> Integer Source # mod :: Integer -> Integer -> Integer Source # quotRem :: Integer -> Integer -> (Integer, Integer) Source # | |
| Real Integer Source # | Since: base-2.0.1 |
Defined in GHC.Internal.Real Methods toRational :: Integer -> Rational Source # | |
| Show Integer Source # | Since: base-2.1 |
| Lift Integer Source # | |
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
encodeFloatInteger :: Integer -> Int# -> Float# Source #
encodeDoubleInteger :: Integer -> Int# -> Double# Source #
decodeDoubleInteger :: Double# -> (# Integer, Int# #) Source #
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
eqInteger# :: Integer -> Integer -> Int# Source #
neqInteger# :: Integer -> Integer -> Int# Source #
leInteger# :: Integer -> Integer -> Int# Source #
gtInteger# :: Integer -> Integer -> Int# Source #
ltInteger# :: Integer -> Integer -> Int# Source #
geInteger# :: Integer -> Integer -> Int# Source #
Bit-operations
andInteger :: Integer -> Integer -> Integer Source #
xorInteger :: Integer -> Integer -> Integer Source #
complementInteger :: Integer -> Integer Source #
shiftLInteger :: Integer -> Int# -> Integer Source #
shiftRInteger :: Integer -> Int# -> Integer Source #
testBitInteger :: Integer -> Int# -> Bool Source #
popCountInteger :: Integer -> Int# Source #
bitInteger :: Int# -> Integer Source #
Hashing
hashInteger :: Integer -> Int# Source #