Safe Haskell | None |
---|---|

Language | Haskell2010 |

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

# Documentation

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