#include <dk.h>
#include <dktypes.h>
Go to the source code of this file.
Functions | |
dk_bitfield_t * | dkbf_open (size_t n) |
Create a bit field. | |
void | dkbf_close (dk_bitfield_t *f) |
Close bit field created by dkbf_open() and release the memory. | |
void | dkbf_set (dk_bitfield_t *f, size_t n, int v) |
Set or reset a bit. | |
int | dkbf_get (dk_bitfield_t *f, size_t n) |
Get bit value. | |
void | dkbf_reset (dk_bitfield_t *f) |
Reset a bit field (reset all bits). | |
dk_bitmatrix_t * | dkbf_matrix_open (size_t c, size_t r) |
Create a bit matrix. | |
void | dkbf_matrix_close (dk_bitmatrix_t *m) |
Destroy bit matrix created by dkbf_matrix_open() and release memory. | |
void | dkbf_matrix_set (dk_bitmatrix_t *m, size_t x, size_t y, int v) |
Set or reset bit in matrix. | |
int | dkbf_matrix_get (dk_bitmatrix_t *m, size_t x, size_t y) |
Get bit from matrix. | |
void | dkbf_matrix_reset (dk_bitmatrix_t *m) |
Reset all bits in the matrix. | |
int | dkbf_matrix_expand (dk_bitmatrix_t *m) |
Expand a bit matrix. |
void dkbf_close | ( | dk_bitfield_t * | f | ) |
Close bit field created by dkbf_open() and release the memory.
f | Pointer to bit field structure. |
int dkbf_get | ( | dk_bitfield_t * | f, | |
size_t | n | |||
) |
Get bit value.
f | Pointer to bit field structure. | |
n | Number of the bit to get. |
void dkbf_matrix_close | ( | dk_bitmatrix_t * | m | ) |
Destroy bit matrix created by dkbf_matrix_open() and release memory.
m | Pointer to bit matrix structure to close. |
int dkbf_matrix_expand | ( | dk_bitmatrix_t * | m | ) |
Expand a bit matrix.
To find indirect followers in a graph containing N nodes create a square bit matrix having N rows and N columns. For each directed edge from node i to node j set the bit in column i, row j by calling dkbf_matrix_set(m, j, i, 1); After calling dkbf_matrix_expand(m); you can use dkbf_matrix_get(m, v, u) to check whether or not there is any (direct or indirect) connection from node u to node v.
m | Pointer to bit matrix structure. |
int dkbf_matrix_get | ( | dk_bitmatrix_t * | m, | |
size_t | x, | |||
size_t | y | |||
) |
Get bit from matrix.
m | Pointer to bit matrix structure. | |
x | X-position (column) of the bit. | |
y | Y-position (row) of the bit. |
dk_bitmatrix_t* dkbf_matrix_open | ( | size_t | c, | |
size_t | r | |||
) |
Create a bit matrix.
The bit matrix is created in dynamically allocated memory. Call dkbf_matrix_close() to destroy the bit matrix and release the memory after usage.
c | Number of columns in the matrix. | |
r | Number of rows in the bit matrix. |
void dkbf_matrix_reset | ( | dk_bitmatrix_t * | m | ) |
Reset all bits in the matrix.
m | Pointer to bit matrix structure. |
void dkbf_matrix_set | ( | dk_bitmatrix_t * | m, | |
size_t | x, | |||
size_t | y, | |||
int | v | |||
) |
Set or reset bit in matrix.
m | Pointer to bit matrix structure. | |
x | X-position (column) of the bit. | |
y | Y-position (row) of the bit. | |
v | Flag to indicate whether to set (v!=0) or reset (v=0) the bit. |
dk_bitfield_t* dkbf_open | ( | size_t | n | ) |
Create a bit field.
The bit field structure is created in dynamically allocated memory. Use dkbf_close() to close the bit field and release the memory after usage.
n | Number of bits in the field. |
void dkbf_reset | ( | dk_bitfield_t * | f | ) |
Reset a bit field (reset all bits).
f | Pointer to bit field structure. |
void dkbf_set | ( | dk_bitfield_t * | f, | |
size_t | n, | |||
int | v | |||
) |
Set or reset a bit.
f | Pointer to bit field structure. | |
n | Number of bit to set/reset. | |
v | Flag to set the bit (v!=0) or reset the bit (v=0). |