GHC.Integer
| Copyright | (c) Herbert Valerio Riedel 2014 |
|---|---|
| License | BSD3 |
| Maintainer | ghc-devs@haskell.org |
| Stability | временная |
| Portability | непереносимый (расширения GHC) |
| Safe Haskell | Нет |
| Language | Haskell2010 |
Содержание
Описание
Тип Integer.
Этот модуль предоставляет переносимый API для Integer. См. GHC.Integer.GMP.Internals для integer-gmp-специфического внутреннего представления Integer и оптимизированных операций, специфичных для GMP.
Инвариант: Jn# и Jp# используются только тогда, когда значение не помещается в S#
Полезные свойства, вытекающие из инвариантов:
Конструирование Integer
Аргументы
| :: Bool | Знак целого числа ( |
| -> [Int] | Абсолютное значение, выраженное в 31-битных блоках, младший бит первым (в идеале, это должны быть машинные |
| -> Integer |
Конструирование значения Integer из списка Int.
Эта функция используется GHC для создания целочисленных литералов Integer.
smallInteger :: Int# -> Integer Источник
Следует скорее называть intToInteger
wordToInteger :: Word# -> Integer Источник
Преобразование в другие целочисленные типы
integerToWord :: Integer -> Word# Источник
integerToInt :: Integer -> Int# Источник
Усекает Integer до младших Int#
Вспомогательные функции для операций класса RealFloat
encodeFloatInteger :: Integer -> Int# -> Float# Источник
floatFromInteger :: Integer -> Float# Источник
encodeDoubleInteger :: Integer -> Int# -> Double# Источник
decodeDoubleInteger :: Double# -> (#Integer, Int##) Источник
doubleFromInteger :: Integer -> Double# Источник
Арифметические операции
plusInteger :: Integer -> Integer -> Integer Источник
Сложение двух Integer
minusInteger :: Integer -> Integer -> Integer Источник
Вычитание двух Integer друг из друга.
timesInteger :: Integer -> Integer -> Integer Источник
Умножение двух Integer
negateInteger :: Integer -> Integer Источник
Изменение знака Integer
absInteger :: Integer -> Integer Источник
Вычисление абсолютного значения Integer
signumInteger :: Integer -> Integer Источник
Возвращает -1, 0, и 1 в зависимости от того, отрицательно ли аргумент, равен ли он нулю или положителен, соответственно
divModInteger :: Integer -> Integer -> (#Integer, Integer#) Источник
Одновременное вычисление divInteger и modInteger.
Делитель должен быть ненулевым, иначе среда выполнения GHC завершится с ошибкой деления на ноль.
divInteger :: Integer -> Integer -> Integer Источник
modInteger :: Integer -> Integer -> Integer Источник
quotRemInteger :: Integer -> Integer -> (#Integer, Integer#) Source
Одновременное вычисление quotInteger и remInteger.
Делитель должен быть отличным от нуля, в противном случае исполняемая среда GHC завершится с ошибкой деления на ноль.
quotInteger :: Integer -> Integer -> Integer Source
remInteger :: Integer -> Integer -> Integer Source
Предикаты сравнения
eqInteger :: Integer -> Integer -> Bool Source
neqInteger :: Integer -> Integer -> Bool Source
Предикат неравенства.
leInteger :: Integer -> Integer -> Bool Source
gtInteger :: Integer -> Integer -> Bool Source
ltInteger :: Integer -> Integer -> Bool Source
geInteger :: Integer -> Integer -> Bool Source
compareInteger :: Integer -> Integer -> Ordering Source
Int# - булевы версии предикатов сравнения
Эти операции возвращают 0# и 1# вместо False и True соответственно. Более подробную информацию см. на странице wiki-странице PrimBool.
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
Битовые операции
andInteger :: Integer -> Integer -> Integer Source
Битовая операция И
orInteger :: Integer -> Integer -> Integer Source
Битовая операция ИЛИ
xorInteger :: Integer -> Integer -> Integer Source
Битовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ
complementInteger :: Integer -> Integer Source
Битовая операция NOT
shiftLInteger :: Integer -> Int# -> Integer Source
Операция сдвига влево
Несмотря на то, что величина сдвига выражается как Int#, результат не определён для отрицательных значений сдвига.
shiftRInteger :: Integer -> Int# -> Integer Source
Операция арифметического сдвига вправо
Несмотря на то, что величина сдвига выражается как Int#, результат не определён для отрицательных значений сдвига.
testBitInteger :: Integer -> Int# -> Bool Source
Проверка, установлена ли n-я битовая.
Хеширование
hashInteger :: Integer -> Int# Source
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/integer-gmp-1.0.0.0/GHC-Integer.html