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 Word
s.
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 Nothing
s 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