GHC.Natural
| Copyright | (C) 2014 Herbert Valerio Riedel (C) 2011 Edward Kmett |
|---|---|
| License | see libraries/base/LICENSE |
| Maintainer | libraries@haskell.org |
| Stability | internal |
| Portability | non-portable (GHC Extensions) |
| Safe Haskell | None |
| Language | Haskell2010 |
Описание
Тип числа Natural произвольной точности.
Примечание: Это внутренний модуль GHC с API, который может быть изменен. Рекомендуется использовать модуль Numeric.Natural для импорта типа Natural.
С версии: base-4.8.0.0
Тип натурального числа
Предупреждение: Внутренняя реализация Natural (т.е. какие конструкторы доступны) зависит от используемого бэкэнда Integer!
Тип, представляющий целые неотрицательные числа произвольной точности.
>>> 2^100 :: Natural 1267650600228229401496703205376
Операции, результат которых был бы отрицательным throw
(Underflow :: ArithException),
>>> -1 :: Natural *** Exception: arithmetic underflow
С версии: base-4.8.0.0
Конструкторы
| NatS# GmpLimb# | в |
| NatJ# !BigNat |
в Инвариант: |
Экземпляры
| Enum Natural | С версии: base-4.8.0.0 |
Определено в GHC.Enum Методыsucc :: Natural -> Natural Source pred :: Natural -> Natural Source toEnum :: Int -> Natural Source fromEnum :: Natural -> Int Source enumFrom :: Natural -> [Natural] Source enumFromThen :: Natural -> Natural -> [Natural] Source enumFromTo :: Natural -> Natural -> [Natural] Source enumFromThenTo :: Natural -> Natural -> Natural -> [Natural] Source | |
| Eq Natural | С версии: base-4.8.0.0 |
| Integral Natural | С версии: base-4.8.0.0 |
Определено в GHC.Real Методыquot :: Natural -> Natural -> Natural Source rem :: Natural -> Natural -> Natural Source div :: Natural -> Natural -> Natural Source mod :: Natural -> Natural -> Natural Source quotRem :: Natural -> Natural -> (Natural, Natural) Source | |
| Data Natural | С версии: base-4.8.0.0 |
Определено в Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Natural -> c Natural Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Natural Исходный код toConstr :: Natural -> Constr Исходный код dataTypeOf :: Natural -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Natural) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Natural) Исходный код gmapT :: (forall b. Data b => b -> b) -> Natural -> Natural Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Natural -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Natural -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Natural -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Natural -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Natural -> m Natural Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Natural -> m Natural Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Natural -> m Natural Исходный код | |
| Num Natural |
Обратите внимание, что экземпляр С версии: base-4.8.0.0 |
Определено в GHC.Num Методы(+) :: Natural -> Natural -> Natural Исходный код (-) :: Natural -> Natural -> Natural Исходный код (*) :: Natural -> Natural -> Natural Исходный код negate :: Natural -> Natural Исходный код abs :: Natural -> Natural Исходный код signum :: Natural -> Natural Исходный код | |
| Ord Natural | С версии: base-4.8.0.0 |
Определено в Data.Bits Методы(.&.) :: Natural -> Natural -> Natural Source (.|.) :: Natural -> Natural -> Natural Source xor :: Natural -> Natural -> Natural Source complement :: Natural -> Natural Source shift :: Natural -> Int -> Natural Source rotate :: Natural -> Int -> Natural Source setBit :: Natural -> Int -> Natural Source clearBit :: Natural -> Int -> Natural Source complementBit :: Natural -> Int -> Natural Source testBit :: Natural -> Int -> Bool Source bitSizeMaybe :: Natural -> Maybe Int Source bitSize :: Natural -> Int Source isSigned :: Natural -> Bool Source shiftL :: Natural -> Int -> Natural Source unsafeShiftL :: Natural -> Int -> Natural Source shiftR :: Natural -> Int -> Natural Source unsafeShiftR :: Natural -> Int -> Natural Source rotateL :: Natural -> Int -> Natural Source | |
| PrintfArg Natural | С версии: base-4.8.0.0 |
Определено в Text.Printf МетодыformatArg :: Natural -> FieldFormatter Source | |
Аргументы
| :: [Word] | значение, выраженное в 32-битных фрагментах, начиная с наименее значимого |
| -> Natural |
Построение Natural значения из списка Word.
Эта функция используется GHC для построения Natural литералов.
isValidNatural :: Natural -> Bool Source
Проверить, удовлетворяются ли все внутренние инварианты Natural значением
Эта операция в основном полезна для тестовых наборов и/или кода, который строит Integer значения напрямую.
С версии: base-4.8.0.0
Арифметика
plusNatural :: Natural -> Natural -> Natural Source
Natural Сложение
minusNatural :: Natural -> Natural -> Natural Source
Natural вычитание. Может throw
Underflow.
minusNaturalMaybe :: Natural -> Natural -> Maybe Natural Source
Natural операция вычитания. Возвращает Nothing при неположительных результатах.
Since: base-4.8.0.0
timesNatural :: Natural -> Natural -> Natural Source
Natural умножение
negateNatural :: Natural -> Natural Source
signumNatural :: Natural -> Natural Source
quotRemNatural :: Natural -> Natural -> (Natural, Natural) Source
quotNatural :: Natural -> Natural -> Natural Source
remNatural :: Natural -> Natural -> Natural Source
gcdNatural :: Natural -> Natural -> Natural Source
Вычислить наибольший общий делитель.
lcmNatural :: Natural -> Natural -> Natural Source
Вычислить наименьшее общее кратное.
Биты
andNatural :: Natural -> Natural -> Natural Source
orNatural :: Natural -> Natural -> Natural Source
xorNatural :: Natural -> Natural -> Natural Source
bitNatural :: Int# -> Natural Source
testBitNatural :: Natural -> Int -> Bool Source
popCountNatural :: Natural -> Int Source
shiftLNatural :: Natural -> Int -> Natural Source
shiftRNatural :: Natural -> Int -> Natural Source
Преобразования
naturalToInteger :: Natural -> Integer Source
@since 4.X.0.0
naturalToWord :: Natural -> Word Source
naturalToInt :: Natural -> Int Source
naturalFromInteger :: Integer -> Natural Source
Since: base-4.10.0.0
wordToNatural :: Word -> Natural Source
Создать Natural из значения Word.
Since: base-4.8.0.0
intToNatural :: Int -> Natural Source
Преобразовать Int в Natural. Бросает Underflow при передаче отрицательного Int.
naturalToWordMaybe :: Natural -> Maybe Word Source
Попытка приведения типа Natural к типу Word value. Возвращает Nothing если значение не помещается в Word.
Since: base-4.8.0.0
wordToNatural# :: Word# -> Natural Source
Преобразование Word# в Natural
Встроенное правило гарантирует, что применения этой функции к литералам Word# поднимаются в литералы Natural.
wordToNaturalBase :: Word# -> Natural Source
Преобразование Word# в Natural
В базовом режиме мы не можем использовать wordToNatural# так как встроенные правила преобразуют некоторые из них в литералы Natural. Используйте эту функцию вместо этого.
Модулярная арифметика
powModNatural :: Natural -> Natural -> Natural -> Natural Source
"powModNatural b e m" вычисляет основание b в степени показателя e по модулю m.
С момента: base-4.8.0.0
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/GHC-Natural.html