Scheme Programmer's Manual
NAME
bitwise-bit-count - population count
LIBRARY
(import (rnrs)) ;R6RS
(import (rnrs arithmetic bitwise)) ;R6RS
(import (rnrs arithmetic fixnums)) ;R6RS
SYNOPSIS
(bitwise-bit-count ei)
(fxbit-count fx)
DESCRIPTION
If the argument is non-negative, this procedure returns the number
of 1 bits in its two's complement representation.
Otherwise it returns the result of the following computation:
(bitwise-not (bitwise-bit-count (bitwise-not ei)))
RETURN VALUES
Returns a single exact integer object.
EXAMPLES
(bitwise-bit-count #b1)
=> 1
(bitwise-bit-count #b1000)
=> 1
(bitwise-bit-count #b1001)
=> 2
(bitwise-bit-count #b-1001)
=> -2
APPLICATION USAGE
This procedure is used to compute the Hamming distance. It's also used
in Hash Array Mapped Tries and other applications.
COMPATIBILITY
This procedure is new in R6RS. SRFI-151 has the similar
procedure
bit-count.
ERRORS
This procedure can raise exceptions with the following condition types:
- &assertion (R6RS)
-
The wrong number of arguments was passed or an argument was outside its domain.
For
fxbit-count
the argument must be a fixnum.
SEE ALSO
bitwise-first-bit-set(3scheme),
bitwise-length(3scheme)
STANDARDS
R6RS
HISTORY
This procedure can be implemented with the
popcount
procedure in x86-64 processors. This instruction appeared even in some
early computers like the IBM Stretch (1961).
AUTHORS
This page is part of the
scheme-manpages
project.
It includes materials from the RnRS documents.
More information can be found at
Index
- NAME
-
- LIBRARY
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUES
-
- EXAMPLES
-
- APPLICATION USAGE
-
- COMPATIBILITY
-
- ERRORS
-
- SEE ALSO
-
- STANDARDS
-
- HISTORY
-
- AUTHORS
-
Return to Main Contents