piojo-0.9
 All Classes Functions Variables Typedefs Enumerations Enumerator Groups
Piojo Bitset

Functions

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)
 

Variables

const size_t piojo_bitset_sizeof
 

Detailed Description

Piojo Bitset implementation.

Function Documentation

piojo_bitset_t* piojo_bitset_alloc ( size_t  maxbits)

Allocates a new bitset of maxbits bits. Uses default allocator.

Parameters
[in]maxbitsMaximum 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]maxbitsMaximum number of bits.
[in]allocatorAllocator 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]b1bitset.
[in]b2bitset.
[out]boutResult bitset.
void piojo_bitset_clear ( piojo_bitset_t *  bitset)

Unsets every bit in a bitset.

Parameters
[out]bitsetBitset being modified.
piojo_bitset_t* piojo_bitset_copy ( const piojo_bitset_t *  bitset)

Copies bitset.

Parameters
[in]bitsetBitset being copied.
Returns
New bitset.
size_t piojo_bitset_count ( const piojo_bitset_t *  bitset)

Finds number of set bits (Hamming weight).

Parameters
[in]bitset
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]b1bitset.
[in]b2bitset.
[out]boutResult bitset.
bool piojo_bitset_empty_p ( const piojo_bitset_t *  bitset)

Returns whether bitset is empty (all bits unset).

Parameters
[in]bitset
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]b1bitset.
[in]b2bitset.
Returns
TRUE if equal, FALSE otherwise.
void piojo_bitset_free ( const piojo_bitset_t *  bitset)

Frees bitset.

Parameters
[in]bitsetBitset being freed.
bool piojo_bitset_full_p ( const piojo_bitset_t *  bitset)

Returns whether bitset is full (all bits set).

Parameters
[in]bitset
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]boutResult bitset.
void piojo_bitset_not ( const piojo_bitset_t *  bitset,
piojo_bitset_t *  bout 
)

Calculates the complement of a bitset.

Parameters
[in]bitset
[out]boutResult 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]b1bitset.
[in]b2bitset.
[out]boutResult 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]boutResult bitset.
void piojo_bitset_set ( size_t  bit,
piojo_bitset_t *  bitset 
)

Sets bit in bitset

Parameters
[in]bitBit 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]bitBit 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
[in]bitset
Returns
maxbits.
void piojo_bitset_toggle ( size_t  bit,
piojo_bitset_t *  bitset 
)

Toggles bit in bitset

Parameters
[in]bitBit 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]bitBit 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]b1bitset.
[in]b2bitset.
[out]boutResult bitset.

Variable Documentation

const size_t piojo_bitset_sizeof

Size of bitset in bytes