40 #if defined(BV_DEBUG_CHECK)
41 #define _BV_CHECK_BOUNDS(i,l,h) assert( ((i) >= (l)) && ((i) < (h)));
42 #define _BV_ASSERT(a) assert((a));
44 #define _BV_CHECK_BOUNDS(i,l,h);
45 #define _BV_ASSERT(a);
58 # define BV_NUM_INTS(size) (((((size) + 7)/ 8) + sizeof(int) - 1)\
63 # define BV_INT_INDEX(bit) ( ((bit) / 8) / sizeof(int) + 1)
67 # define BV_BIT_INDEX(bit, index) ( (bit) - (index - 1) * sizeof(int) * 8 );
73 # define BV_NUM_INTS(size) (((((size) + 7)/ 8) + sizeof(int) - 1) / sizeof(int))
77 # define BV_INT_INDEX(bit) ( ((bit) / 8) / sizeof(int) )
81 # define BV_BIT_INDEX(bit, index) ( (bit) - (index) * sizeof(int) * 8 );
102 for(i = 0; i <
size; i++)
129 for(
int i = 0;
i < n;
i++) bv[
i] = 0;
131 #ifdef BV_DEBUG_CHECK
155 return (bv[i] & (1<<n));
209 #ifdef BV_DEBUG_CHECK
210 for(
int i = 1;
i < n;
i++)
212 for(
int i = 0;
i < n;
i++)
233 #ifdef BV_DEBUG_CHECK
234 for(
int i = 1; (
i < n) && empty;
i++)
236 for(
int i = 0; (
i < n) && empty;
i++)
238 empty = empty && (bv[
i] == 0);
258 #ifdef BV_DEBUG_CHECK
259 for(i = 1; i < n; i++)
261 for(i = 0; i < n; i++)
289 #ifdef BV_DEBUG_CHECK
290 for(
int i = 1; equal && (
i < n-1);
i++)
292 for(
int i = 0; equal && (
i < n-1);
i++)
294 equal = (s1[
i] == s2[
i]);
306 if (n == (
sizeof(
int) * 8 - 1)) {
310 mask = (1<<(n+1)) - 1;
313 equal = equal && ( (s1[
i]&mask) == (s2[i]&mask));
336 #ifdef BV_DEBUG_CHECK
337 for(
int i = 1;
i < n;
i++)
339 for(
int i = 0;
i < n;
i++)
341 d[
i] = s1[
i] & (~s2[
i]);
362 #ifdef BV_DEBUG_CHECK
363 for(
int i = 1;
i < n;
i++)
365 for(
int i = 0;
i < n;
i++)
367 d[
i] = s1[
i] | s2[
i];
#define BV_INT_INDEX(bit)
bool bv_get_bit(bitvector bv, int bit)
JNIEnv jthread jobject jclass jlong size
#define BV_NUM_INTS(size)
void bv_union(bitvector d, bitvector s1, bitvector s2, int size)
bool bv_is_empty(bitvector bv, int size)
char * bv_to_string(bitvector bv, char *string, int size)
void bv_reset(bitvector bv, int size)
void bv_copy(bitvector dst, bitvector src, int size)
#define BV_BIT_INDEX(bit, index)
static void * allocate(size_t size)
bitvector bv_new(int size)
void bv_set_bit(bitvector bv, int bit)
void bv_minus(bitvector d, bitvector s1, bitvector s2, int size)
void bv_reset_bit(bitvector bv, int bit)
bool bv_equal(bitvector s1, bitvector s2, int size)