On this page
GHC.Natural
| Safe Haskell | Trustworthy |
|---|---|
| Language | Haskell2010 |
Contents
Description
Compatibility module for pre ghc-bignum code.
Natural number
Invariant: numbers <= 0xffffffffffffffff use the NS constructor
Instances
A lifted BigNat
Represented as an array of limbs (Word#) stored in little-endian order (Word# themselves use machine order).
Invariant (canonical representation): higher Word# is non-zero.
As a consequence, zero is represented with a WordArray# whose size is 0.
Instances
| Eq BigNat | |
| Ord BigNat | |
|
Defined in GHC.Num.BigNat |
|
mkNatural :: [Word] -> Natural Source
Construct Natural value from list of Words.
isValidNatural :: Natural -> Bool Source
Test whether all internal invariants are satisfied by Natural value
This operation is mostly useful for test-suites and/or code which constructs Integer values directly.
Since: base-4.8.0.0
Arithmetic
plusNatural :: Natural -> Natural -> Natural Source
Natural Addition
minusNatural :: Natural -> Natural -> Natural Source
Natural subtraction. May throw Underflow.
minusNaturalMaybe :: Natural -> Natural -> Maybe Natural Source
Natural subtraction. Returns Nothings for non-positive results.
Since: base-4.8.0.0
timesNatural :: Natural -> Natural -> Natural Source
Natural multiplication
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
Compute greatest common divisor.
lcmNatural :: Natural -> Natural -> Natural Source
Compute least common multiple.
Bits
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
Conversions
naturalToInteger :: Natural -> Integer Source
Since: base-4.12.0.0
naturalToWord :: Natural -> Word Source
naturalToWordMaybe :: Natural -> Maybe Word Source
Try downcasting Natural to Word value. Returns Nothing if value doesn't fit in Word.
Since: base-4.8.0.0
wordToNatural :: Word -> Natural Source
Construct Natural from Word value.
Since: base-4.8.0.0
wordToNatural# :: Word -> Natural Source
naturalFromInteger :: Integer -> Natural Source
Since: base-4.10.0.0
Modular arithmetic
powModNatural :: Natural -> Natural -> Natural -> Natural Source
"powModNatural b e m" computes base b raised to exponent e modulo m.
Since: 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/9.4.2/docs/libraries/base-4.17.0.0/GHC-Natural.html