This is the bit-ops Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 04:24:44 2024 GMT+0.
The main system appears first, followed by any subsystem dependency.
bit-ops
Optimized bit-vector operations
Masataro Asai
(GIT https://github.com/guicho271828/bit-ops.git)
LLGPL
0.1
iterate
(system).
alexandria
(system).
trivia
(system).
immutable-struct
(system).
lisp-namespace
(system).
src
(module).
Modules are listed depth-first from the system components tree.
bit-ops/src
bit-ops
(system).
package.lisp
(file).
macros.lisp
(file).
functions.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
bit-ops/src/package.lisp
src
(module).
as-bitwise-operations
(macro).
define-bitwise-operation
(macro).
dlet
(macro).
dlet*
(macro).
make-bit-vector
(function).
*bitwise-operation-doc-table*
(special variable).
*bitwise-operation-table*
(special variable).
*common-subexpression-elimination*
(special variable).
*first-variable*
(special variable).
*length-variable*
(special variable).
*ops*
(special variable).
*register-allocation-optimization*
(special variable).
*result-variable*
(special variable).
*verbose*
(special variable).
bit-replace
(function).
bitwise-operation-boundp
(function).
bitwise-operation-type
(type).
build-forms
(function).
common-subexpression
(function).
compile-bitwise-operations
(function).
copy-op
(function).
make-one
(function).
make-op
(function).
make-zero
(function).
op
(function).
op
(structure).
op-inputs
(reader).
(setf op-inputs)
(writer).
op-name
(reader).
(setf op-name)
(writer).
op-output
(reader).
(setf op-output)
(writer).
op-p
(function).
parse-form
(function).
reduce-allocation
(function).
symbol-bitwise-operation
(function).
(setf symbol-bitwise-operation)
(function).
unbound-bitwise-operation
(condition).
bit-ops/src/functions.lisp
src
(module).
bit-if-then-else
(function).
bit-implies
(function).
Packages are listed by definition order.
bit-ops
alexandria
.
common-lisp
.
iterate
.
lisp-namespace
.
trivia.level2
.
as-bitwise-operations
(macro).
bit-if-then-else
(function).
bit-implies
(function).
define-bitwise-operation
(macro).
dlet
(macro).
dlet*
(macro).
make-bit-vector
(function).
*bitwise-operation-doc-table*
(special variable).
*bitwise-operation-table*
(special variable).
*common-subexpression-elimination*
(special variable).
*first-variable*
(special variable).
*length-variable*
(special variable).
*ops*
(special variable).
*register-allocation-optimization*
(special variable).
*result-variable*
(special variable).
*verbose*
(special variable).
bit-replace
(function).
bitwise-operation-boundp
(function).
bitwise-operation-type
(type).
build-forms
(function).
common-subexpression
(function).
compile-bitwise-operations
(function).
copy-op
(function).
make-one
(function).
make-op
(function).
make-zero
(function).
op
(function).
op
(structure).
op-inputs
(reader).
(setf op-inputs)
(writer).
op-name
(reader).
(setf op-name)
(writer).
op-output
(reader).
(setf op-output)
(writer).
op-p
(function).
parse-form
(function).
reduce-allocation
(function).
symbol-bitwise-operation
(function).
(setf symbol-bitwise-operation)
(function).
unbound-bitwise-operation
(condition).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Compute bitwise operations using bit vector arithmetic.
BODY accepts a single form. Within BODY, one can use variables holding bit-vectors as arguments to
bitwise operations, as well as constants 0 and 1, which maps to the bit vector filled with
0 or 1, respectively.
All bit-vectors that are involved in bitwise operations should be of the same length.
Primitive operators corresponds to ANSI CL functions: For example, (not subform) is compiled
into (bit-not subform <temporary storage>) . Following primitive operators are available:
not and andc1 andc2 eqv ior nand nor orc1 orc2 xor
Additionally, (SUBSEQ FORM OFFSET) operator evaluates FORM and
extracts its window starting from OFFSET and of the length equal to the other variables.
FORM is a regular lisp expression, not a bitwise operation, and the result may be different
from the other bit-vectors.
The final computation result is stored in a newly allocated vector, or in RESULT if specified,
in spirit similar to the optional argument of Common Lisp bit-vector functions.
The entire form returns the bit-vector which contains the result.
The compiler does various optimizations:
* Nested expressions store the results into dynamic-extent temporary vectors.
* Common subexpressions are eliminated.
* The number of temporary vectors are minimized/shared in spirit similar to register allocation.
* Macros for bitwise operations can be defined with DEFINE-BITWISE-OPERATION.
Defines a bitwise operation that is available within AS-BITWISE-OPERATIONS macro.
Primitive operators corresponds to ANSI CL functions: For example, (not subform) is compiled
into (bit-not subform <temporary storage>) .
not and andc1 andc2 eqv ior nand nor orc1 orc2 xor
Wrapper for REPLACE which follows the syntax of bit-* (The last arg is the destination).
Automatically defined boolean function.
Automatically defined getter function. When DEFAULT is supplied, the value is set automatically.
Automatically defined setter function.
unbound-variable
.
Jump to: | (
A B C D F M O P R S |
---|
Jump to: | (
A B C D F M O P R S |
---|
Jump to: | *
I N O S |
---|
Jump to: | *
I N O S |
---|
Jump to: | B C F M O P S T U |
---|
Jump to: | B C F M O P S T U |
---|