Safe Haskell | Safe-Inferred |
---|---|
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#
- floatFromInteger :: Integer -> Float#
- encodeDoubleInteger :: Integer -> Int# -> Double#
- decodeDoubleInteger :: Double# -> (# Integer, Int# #)
- doubleFromInteger :: Integer -> Double#
- 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 (fit into an Int
), IS
constructor is used.
Otherwise IP
and IN
constructors are used to store a BigNat
representing respectively the positive or the negative value magnitude.
Instances
Bits Integer # | Since: base-2.1 |
Defined in Data.Bits Methods (.&.) :: Integer -> Integer -> Integer # (.|.) :: Integer -> Integer -> Integer # xor :: Integer -> Integer -> Integer # complement :: Integer -> Integer # shift :: Integer -> Int -> Integer # rotate :: Integer -> Int -> Integer # setBit :: Integer -> Int -> Integer # clearBit :: Integer -> Int -> Integer # complementBit :: Integer -> Int -> Integer # testBit :: Integer -> Int -> Bool # bitSizeMaybe :: Integer -> Maybe Int # shiftL :: Integer -> Int -> Integer # unsafeShiftL :: Integer -> Int -> Integer # shiftR :: Integer -> Int -> Integer # unsafeShiftR :: Integer -> Int -> Integer # rotateL :: Integer -> Int -> Integer # | |
Data Integer # | Since: base-4.0.0.0 |
Defined in Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Integer -> c Integer # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Integer # toConstr :: Integer -> Constr # dataTypeOf :: Integer -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Integer) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Integer) # gmapT :: (forall b. Data b => b -> b) -> Integer -> Integer # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Integer -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Integer -> r # gmapQ :: (forall d. Data d => d -> u) -> Integer -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Integer -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Integer -> m Integer # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Integer -> m Integer # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Integer -> m Integer # | |
Enum Integer # | Since: base-2.1 |
Ix Integer # | Since: base-2.1 |
Defined in GHC.Ix | |
Num Integer # | Since: base-2.1 |
Read Integer # | Since: base-2.1 |
Integral Integer # | Since: base-2.0.1 |
Defined in GHC.Real | |
Real Integer # | Since: base-2.0.1 |
Defined in GHC.Real Methods toRational :: Integer -> Rational # | |
Show Integer # | Since: base-2.1 |
PrintfArg Integer # | Since: base-2.1 |
Defined in Text.Printf | |
Eq Integer | |
Ord Integer | |
Construct Integer
s
smallInteger :: Int# -> Integer #
wordToInteger :: Word# -> Integer #
Conversion to other integral types
integerToWord :: Integer -> Word# #
integerToInt :: Integer -> Int# #
Helpers for RealFloat
type-class operations
encodeFloatInteger :: Integer -> Int# -> Float# #
floatFromInteger :: Integer -> Float# #
encodeDoubleInteger :: Integer -> Int# -> Double# #
decodeDoubleInteger :: Double# -> (# Integer, Int# #) #
doubleFromInteger :: Integer -> Double# #
Arithmetic operations
plusInteger :: Integer -> Integer -> Integer #
minusInteger :: Integer -> Integer -> Integer #
timesInteger :: Integer -> Integer -> Integer #
negateInteger :: Integer -> Integer #
absInteger :: Integer -> Integer #
signumInteger :: Integer -> Integer #
divInteger :: Integer -> Integer -> Integer #
modInteger :: Integer -> Integer -> Integer #
quotInteger :: Integer -> Integer -> Integer #
remInteger :: Integer -> Integer -> Integer #
Comparison predicates
neqInteger :: Integer -> Integer -> Bool #
compareInteger :: Integer -> Integer -> Ordering #
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# #
neqInteger# :: Integer -> Integer -> Int# #
leInteger# :: Integer -> Integer -> Int# #
gtInteger# :: Integer -> Integer -> Int# #
ltInteger# :: Integer -> Integer -> Int# #
geInteger# :: Integer -> Integer -> Int# #
Bit-operations
andInteger :: 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 #
Hashing
hashInteger :: Integer -> Int# #