The bit-vector Module

<bit-vector> Open Primary Abstract Class
Superclasses:

<vector>

Init-Keywords:
  • size – Specifies the number of bits in the bit-vector. The default is 0.

Discussion:

A compact representation of a vector of bits. The elements of the vector have the type <bit> and may be the values 0 and 1. The elements are indexed from 0 up to (size - 1).

<bit> Type
Equivalent:

limited(<integer>, min: 0, max: 1)

Discussion:

A subtype of <integer>, this is the type of elements of <bit-vector>. Objects of this type may have the value 0 or 1.

bit-count Function
Signature:

bit-count vector #key bit-value => count

Parameters:
Values:
Discussion:

Returns the number of bits in vector which are equal to bit-value. This may be a relatively slow operation.

bit-vector-and Function
Signature:

bit-vector-and vector1 vector2 #key pad1 pad2 => result pad

Parameters:
Values:
Discussion:

Returns a new vector which is the bitwise and of the two argument vectors. Each vector has an associated pad value. If the vectors are of different lengths, the shorter is considered extended with its pad value. The size of the result vector may be extended or shortened provided the bits added or dropped are the same as the result-pad value. The size of the result will be no smaller than the minimum of the argument sizes, and no greater than the maximum of the argument sizes. The result-pad value is calculated by taking the logical and of the two input pad values.

bit-vector-and! Function
Signature:

bit-vector-and! vector1 vector2 #key pad1 pad2 => result pad

Parameters:
Values:
Discussion:

Returns a vector which is the bitwise and of the two argument vectors. vector1 may or may not be modified by this operation. Each vector has an associated pad value. If the vectors are of different lengths, the shorter is considered extended with its pad value. The size of the result vector may be extended or shortened provided the bits added or dropped are the same as the result-pad value. The size of the result will be no smaller than the minimum of the argument sizes, and no greater than the maximum of the argument sizes. The result-pad value is calculated by taking the logical and of the two input pad values.

bit-vector-andc2 Function
Signature:

bit-vector-andc2 vector1 vector2 #key pad1 pad2 => result pad

Parameters:
Values:
Discussion:

Returns a new vector which is the result of taking the bitwise and of vector1 and the bitwise not of vector2. Each vector has an associated pad value. If the vectors are of different lengths, the shorter is considered extended with its pad value. The size of the result vector may be extended or shortened provided the bits added or dropped are the same as the result-pad value. The size of the result will be no smaller than the minimum of the argument sizes, and no greater than the maximum of the argument sizes. The result-pad value is calculated by taking the logical and of pad1 with the complement of pad2.

bit-vector-andc2! Function
Signature:

bit-vector-andc2! vector1 vector2 #key pad1 pad2 => result pad

Parameters:
Values:
Discussion:

Returns a vector which is the result of taking the bitwise and of vector1 and the bitwise not of vector2. vector1 may or may not be modified by this operation. Each vector has an associated pad value. If the vectors are of different lengths, the shorter is considered extended with its pad value. The size of the result vector may be extended or shortened provided the bits added or dropped are the same as the result-pad value. The size of the result will be no smaller than the minimum of the argument sizes, and no greater than the maximum of the argument sizes. The result-pad value is calculated by taking the logical and of pad1 with the complement of pad2.

bit-vector-not Function
Signature:

bit-vector-not vector #key pad => result result-pad

Parameters:
Values:
Discussion:

Returns a new vector which is the bitwise not of its argument.

bit-vector-not! Function
Signature:

bit-vector-not! vector #key pad => result result-pad

Parameters:
Values:
Discussion:

Modifies vector so that it becomes the bitwise not of its original contents. result == vector.

bit-vector-or Function
Signature:

bit-vector-or vector1 vector2 #key pad1 pad2 => result pad

Parameters:
Values:
Discussion:

Returns a new vector which is the bitwise or of the two argument vectors. Each vector has an associated pad value. If the vectors are of different lengths, the shorter is considered extended with its pad value. The size of the result vector may be extended or shortened provided the bits added or dropped are the same as the result-pad value. The size of the result will be no smaller than the minimum of the argument sizes, and no greater than the maximum of the argument sizes. The result-pad value is calculated by taking the logical or of the two input pad values.

bit-vector-or! Function
Signature:

bit-vector-or! vector1 vector2 #key pad1 pad2 => result pad

Parameters:
Values:
Discussion:

Returns a vector which is the bitwise or of the two argument vectors. vector1 may or may not be modified by this operation. Each vector has an associated pad value. If the vectors are of different lengths, the shorter is considered extended with its pad value. The size of the result vector may be extended or shortened provided the bits added or dropped are the same as the result-pad value. The size of the result will be no smaller than the minimum of the argument sizes and no greater than the maximum of the argument sizes. The result-pad value is calculated by taking the logical or of the two input pad values.

bit-vector-xor Function
Signature:

bit-vector-xor vector1 vector2 #key pad1 pad2 => result pad

Parameters:
Values:
Discussion:

Returns a new vector which is the bitwise exclusive or of the two argument vectors. Each vector has an associated pad value. If the vectors are of different lengths, the shorter is considered extended with its pad value. The size of the result will be no smaller than the minimum of the argument sizes, and no greater than the maximum of the argument sizes. The size of the result vector may be extended or shortened provided the bits added or dropped are the same as the result-pad value. The result-pad value is calculated by taking the logical xor of the two input pad values.

bit-vector-xor! Function
Signature:

bit-vector-xor! vector1 vector2 #key pad1 pad2 => result pad

Parameters:
Values:
Discussion:

Returns a vector which is the bitwise exclusive or of the two argument vectors. vector1 may or may not be modified by this operation. Each vector has an associated pad value. If the vectors are of different lengths, the shorter is considered extended with its pad value. The size of the result vector may be extended or shortened provided the bits added or dropped are the same as the result-pad value. The size of the result will be no smaller than the minimum of the argument sizes, and no greater than the maximum of the argument sizes. The result-pad value is calculated by taking the logical xor of the two input pad values.