dkbf.h File Reference

Bit field and bit matrix operations. More...

#include <dk.h>
#include <dktypes.h>

Go to the source code of this file.

Functions

dk_bitfield_tdkbf_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_tdkbf_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.


Detailed Description

Bit field and bit matrix operations.


Function Documentation

void dkbf_close ( dk_bitfield_t f  ) 

Close bit field created by dkbf_open() and release the memory.

Parameters:
f Pointer to bit field structure.

int dkbf_get ( dk_bitfield_t f,
size_t  n 
)

Get bit value.

Parameters:
f Pointer to bit field structure.
n Number of the bit to get.
Returns:
Flag whether the bit is set or not.

void dkbf_matrix_close ( dk_bitmatrix_t m  ) 

Destroy bit matrix created by dkbf_matrix_open() and release memory.

Parameters:
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.

Parameters:
m Pointer to bit matrix structure.
Returns:
Flag to indicate success.

int dkbf_matrix_get ( dk_bitmatrix_t m,
size_t  x,
size_t  y 
)

Get bit from matrix.

Parameters:
m Pointer to bit matrix structure.
x X-position (column) of the bit.
y Y-position (row) of the bit.
Returns:
Flag indicating whether the bit is set.

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.

Parameters:
c Number of columns in the matrix.
r Number of rows in the bit matrix.
Returns:
Pointer to the new bit matrix structure on success, NULL on error.

void dkbf_matrix_reset ( dk_bitmatrix_t m  ) 

Reset all bits in the matrix.

Parameters:
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.

Parameters:
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.

Parameters:
n Number of bits in the field.
Returns:
Pointer to new bit field structure on success, NULL on error.

void dkbf_reset ( dk_bitfield_t f  ) 

Reset a bit field (reset all bits).

Parameters:
f Pointer to bit field structure.

void dkbf_set ( dk_bitfield_t f,
size_t  n,
int  v 
)

Set or reset a bit.

Parameters:
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).


Generated on Mon Jan 4 15:50:55 2010 for dklibs by  doxygen 1.5.8