integer-gmp-1.0.3.0: Integer library based on GMP

GHC.Integer

Description

The Integer type.

This module exposes the portable Integer API. See GHC.Integer.GMP.Internals for the integer-gmp-specific internal representation of Integer as well as optimized GMP-specific operations.

Synopsis

# Documentation

data Integer Source #

Arbitrary precision integers. In contrast with fixed-size integral types such as Int, the Integer type represents the entire infinite range of integers.

#### Instances

Instances details
 Source # Instance detailsDefined in GHC.Integer.Type Methods(==) :: Integer -> Integer -> Bool #(/=) :: Integer -> Integer -> Bool # Source # Instance detailsDefined in GHC.Integer.Type Methods(<) :: Integer -> Integer -> Bool #(<=) :: Integer -> Integer -> Bool #(>) :: Integer -> Integer -> Bool #(>=) :: Integer -> Integer -> Bool #

# Construct Integers

Arguments

 :: Bool sign of integer (True if non-negative) -> [Int] absolute value expressed in 31 bit chunks, least significant first (ideally these would be machine-word Words rather than 31-bit truncated Ints) -> Integer

Construct Integer value from list of Ints.

This function is used by GHC for constructing Integer literals.

Should rather be called intToInteger

# Conversion to other integral types

Truncates Integer to least-significant Int#

# Arithmetic operations

Add two Integers

Subtract one Integer from another.

Multiply two Integers

Negate Integer

Compute absolute value of an Integer

Return -1, 0, and 1 depending on whether argument is negative, zero, or positive, respectively

divModInteger :: Integer -> Integer -> (# Integer, Integer #) Source #

Simultaneous divInteger and modInteger.

Divisor must be non-zero otherwise the GHC runtime will terminate with a division-by-zero fault.

Simultaneous quotInteger and remInteger.

Divisor must be non-zero otherwise the GHC runtime will terminate with a division-by-zero fault.

# Comparison predicates

Not-equal predicate.

## 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

# Bit-operations

Bitwise AND operation

Bitwise OR operation

Bitwise XOR operation

Bitwise NOT operation

Shift-left operation

Even though the shift-amount is expressed as Int#, the result is undefined for negative shift-amounts.

Arithmetic shift-right operation

Even though the shift-amount is expressed as Int#, the result is undefined for negative shift-amounts.

Test if n-th bit is set.

Count number of set bits. For negative arguments returns negative population count of negated argument.

Integer for which only n-th bit is set. Undefined behaviour for negative n values.