GHC.Integer.Logarithms

integer-gmp-1.0.2.0: Integer library based on GMP

Safe Haskell | None
Language | Haskell2010

GHC.Integer.Logarithms

Synopsis

- wordLog2# :: Word# -> Int#
- integerLog2# :: Integer -> Int#
- integerLogBase# :: Integer -> Integer -> Int#

# Documentation

wordLog2# :: Word# -> Int# #

Compute base-2 log of `Word#`

This is internally implemented as count-leading-zeros machine instruction.

integerLog2# :: Integer -> Int# #

Calculate the integer base 2 logarithm of an `Integer`. The calculation is more efficient than for the general case, on platforms with 32- or 64-bit words much more efficient.

The argument must be strictly positive, that condition is not checked.

integerLogBase# :: Integer -> Integer -> Int# #

Calculate the integer logarithm for an arbitrary base.

The base must be greater than `1`, the second argument, the number whose logarithm is sought, shall be positive, otherwise the result is meaningless.

The following property holds

    base ^ integerLogBase# base m <= m < base ^(integerLogBase# base m + 1)

for `base > 1` and `m > 0`.

Note: Internally uses `integerLog2#` for base 2