|
piojo_bitset_t * | piojo_bitset_alloc (size_t maxbits) |
|
piojo_bitset_t * | piojo_bitset_alloc_cb (size_t maxbits, piojo_alloc_if allocator) |
|
piojo_bitset_t * | piojo_bitset_copy (const piojo_bitset_t *bitset) |
|
void | piojo_bitset_clear (piojo_bitset_t *bitset) |
|
void | piojo_bitset_free (const piojo_bitset_t *bitset) |
|
size_t | piojo_bitset_size (const piojo_bitset_t *bitset) |
|
size_t | piojo_bitset_count (const piojo_bitset_t *bitset) |
|
bool | piojo_bitset_empty_p (const piojo_bitset_t *bitset) |
|
bool | piojo_bitset_full_p (const piojo_bitset_t *bitset) |
|
bool | piojo_bitset_equal_p (const piojo_bitset_t *b1, const piojo_bitset_t *b2) |
|
bool | piojo_bitset_set_p (size_t bit, const piojo_bitset_t *bitset) |
|
void | piojo_bitset_set (size_t bit, piojo_bitset_t *bitset) |
|
void | piojo_bitset_toggle (size_t bit, piojo_bitset_t *bitset) |
|
void | piojo_bitset_unset (size_t bit, piojo_bitset_t *bitset) |
|
void | piojo_bitset_not (const piojo_bitset_t *bitset, piojo_bitset_t *bout) |
|
void | piojo_bitset_or (const piojo_bitset_t *b1, const piojo_bitset_t *b2, piojo_bitset_t *bout) |
|
void | piojo_bitset_xor (const piojo_bitset_t *b1, const piojo_bitset_t *b2, piojo_bitset_t *bout) |
|
void | piojo_bitset_and (const piojo_bitset_t *b1, const piojo_bitset_t *b2, piojo_bitset_t *bout) |
|
void | piojo_bitset_diff (const piojo_bitset_t *b1, const piojo_bitset_t *b2, piojo_bitset_t *bout) |
|
void | piojo_bitset_lshift (size_t count, const piojo_bitset_t *bitset, piojo_bitset_t *bout) |
|
void | piojo_bitset_rshift (size_t count, const piojo_bitset_t *bitset, piojo_bitset_t *bout) |
|
Piojo Bitset implementation.
piojo_bitset_t* piojo_bitset_alloc |
( |
size_t |
maxbits | ) |
|
Allocates a new bitset of maxbits bits. Uses default allocator.
- Parameters
-
[in] | maxbits | Maximum number of bits. |
- Returns
- New bitset.
piojo_bitset_t* piojo_bitset_alloc_cb |
( |
size_t |
maxbits, |
|
|
piojo_alloc_if |
allocator |
|
) |
| |
Allocates a new bitset of maxbits bits.
- Parameters
-
[in] | maxbits | Maximum number of bits. |
[in] | allocator | Allocator to be used. |
- Returns
- New bitset.
void piojo_bitset_and |
( |
const piojo_bitset_t * |
b1, |
|
|
const piojo_bitset_t * |
b2, |
|
|
piojo_bitset_t * |
bout |
|
) |
| |
Calculates the intersection of two bitsets.
- Parameters
-
[in] | b1 | bitset. |
[in] | b2 | bitset. |
[out] | bout | Result bitset. |
void piojo_bitset_clear |
( |
piojo_bitset_t * |
bitset | ) |
|
Unsets every bit in a bitset.
- Parameters
-
[out] | bitset | Bitset being modified. |
piojo_bitset_t* piojo_bitset_copy |
( |
const piojo_bitset_t * |
bitset | ) |
|
Copies bitset.
- Parameters
-
[in] | bitset | Bitset being copied. |
- Returns
- New bitset.
size_t piojo_bitset_count |
( |
const piojo_bitset_t * |
bitset | ) |
|
Finds number of set bits (Hamming weight).
- Parameters
-
- Returns
- Number of set bits.
void piojo_bitset_diff |
( |
const piojo_bitset_t * |
b1, |
|
|
const piojo_bitset_t * |
b2, |
|
|
piojo_bitset_t * |
bout |
|
) |
| |
Calculates the difference of two bitsets.
- Parameters
-
[in] | b1 | bitset. |
[in] | b2 | bitset. |
[out] | bout | Result bitset. |
bool piojo_bitset_empty_p |
( |
const piojo_bitset_t * |
bitset | ) |
|
Returns whether bitset is empty (all bits unset).
- Parameters
-
- Returns
- TRUE if empty, FALSE otherwise.
bool piojo_bitset_equal_p |
( |
const piojo_bitset_t * |
b1, |
|
|
const piojo_bitset_t * |
b2 |
|
) |
| |
Returns whether two bitsets are equal.
- Parameters
-
[in] | b1 | bitset. |
[in] | b2 | bitset. |
- Returns
- TRUE if equal, FALSE otherwise.
void piojo_bitset_free |
( |
const piojo_bitset_t * |
bitset | ) |
|
Frees bitset.
- Parameters
-
[in] | bitset | Bitset being freed. |
bool piojo_bitset_full_p |
( |
const piojo_bitset_t * |
bitset | ) |
|
Returns whether bitset is full (all bits set).
- Parameters
-
- Returns
- TRUE if full, FALSE otherwise.
void piojo_bitset_lshift |
( |
size_t |
count, |
|
|
const piojo_bitset_t * |
bitset, |
|
|
piojo_bitset_t * |
bout |
|
) |
| |
Shifts all bits to left count times. (unsigned shift)
- Parameters
-
[in] | count | |
[in] | bitset | |
[out] | bout | Result bitset. |
void piojo_bitset_not |
( |
const piojo_bitset_t * |
bitset, |
|
|
piojo_bitset_t * |
bout |
|
) |
| |
Calculates the complement of a bitset.
- Parameters
-
[in] | bitset | |
[out] | bout | Result bitset. |
void piojo_bitset_or |
( |
const piojo_bitset_t * |
b1, |
|
|
const piojo_bitset_t * |
b2, |
|
|
piojo_bitset_t * |
bout |
|
) |
| |
Calculates the union of two bitsets.
- Parameters
-
[in] | b1 | bitset. |
[in] | b2 | bitset. |
[out] | bout | Result bitset. |
void piojo_bitset_rshift |
( |
size_t |
count, |
|
|
const piojo_bitset_t * |
bitset, |
|
|
piojo_bitset_t * |
bout |
|
) |
| |
Shifts all bits to right count times. (unsigned shift)
- Parameters
-
[in] | count | |
[in] | bitset | |
[out] | bout | Result bitset. |
void piojo_bitset_set |
( |
size_t |
bit, |
|
|
piojo_bitset_t * |
bitset |
|
) |
| |
Sets bit in bitset
- Parameters
-
[in] | bit | Bit in bitset (should be between 0 and maxbits-1). |
[out] | bitset | |
bool piojo_bitset_set_p |
( |
size_t |
bit, |
|
|
const piojo_bitset_t * |
bitset |
|
) |
| |
Returns whether bit is set.
- Parameters
-
[in] | bit | Bit in bitset (should be between 0 and maxbits-1). |
[in] | bitset | |
- Returns
- TRUE if set, FALSE otherwise.
size_t piojo_bitset_size |
( |
const piojo_bitset_t * |
bitset | ) |
|
Returns bitset size.
- Parameters
-
- Returns
- maxbits.
void piojo_bitset_toggle |
( |
size_t |
bit, |
|
|
piojo_bitset_t * |
bitset |
|
) |
| |
Toggles bit in bitset
- Parameters
-
[in] | bit | Bit in bitset (should be between 0 and maxbits-1). |
[out] | bitset | |
void piojo_bitset_unset |
( |
size_t |
bit, |
|
|
piojo_bitset_t * |
bitset |
|
) |
| |
Unsets bit in bitset
- Parameters
-
[in] | bit | Bit in bitset (should be between 0 and maxbits-1). |
[out] | bitset | |
void piojo_bitset_xor |
( |
const piojo_bitset_t * |
b1, |
|
|
const piojo_bitset_t * |
b2, |
|
|
piojo_bitset_t * |
bout |
|
) |
| |
Calculates the exclusive-or of two bitsets.
- Parameters
-
[in] | b1 | bitset. |
[in] | b2 | bitset. |
[out] | bout | Result bitset. |
const size_t piojo_bitset_sizeof |