Exemple #1
0
/*******************************************************************************
wl_add

Adds the integer element to the worklist, if this value is not already
in the worklist.

IN:     worklist *w    pointer to worklist created with wl_new
        int element    integer element to be added
*******************************************************************************/
void wl_add(worklist *w, int element) {
	_WL_CHECK_BOUNDS(element, 0, w->size);
	if (!bv_get_bit(w->W_bv, element)) {
		_BV_ASSERT((w->W_top < w->size));
		w->W_stack[(w->W_top)++] = element;
		bv_set_bit(w->W_bv, element);
	}
}
Exemple #2
0
/************************************************************************
bv_to_string

Transforms the bitvector bv to a string of 1's and 0's.

IN: bitvector bv      bitvector created with bv_new()
    int       size    size of bitvector bv 

IN/OUT:   char      *string allocated buffer, at least size + 1 elements

RETURN:pointer to string
******************************************************************************/
char *bv_to_string(bitvector bv, char *string, int size) {
	int i;

	_BV_ASSERT(bv[0] == size);

	for(i = 0; i < size; i++) 
		if (bv_get_bit(bv, i))
			string[i]='1';
		else
			string[i]='0';

	string[i]=0;
	return string;
}
static bool bit_vector_get(const bit_vector_t *bv, s4 bit) {
	assert(0 <= bit && bit < bv->size);
	return bv_get_bit(bv->bv, bit);
}