Authors: Christian Ullrich
- $Id: bitvector.h$
*/
#if !defined(NDEBUG)
#include <assert.h>
+
+/* define BV_DEBUG_CHECK to activate the bound checks */
+
/* #define BV_DEBUG_CHECK */
+
+/* no debug messages implemented till now */
+
/* #define BV_DEBUG_VERBOSE */
#endif
/* function prototypes */
char *bv_to_string(bitvector bv, char *string, int size);
-int *bv_new(int size); /* Create a new Bitvector for size Bits */
+bitvector bv_new(int size); /* Create a new Bitvector for size Bits */
/* All bits are reset */
-void bv_set_bit(bitvector bv, int bit); /* set Bit bit of bitvector */
-void bv_reset_bit(bitvector bv, int bit); /* reset Bit bit of bitvector */
-void bv_reset(bitvector bv, int size); /* reset the whole bitvector */
-bool bv_is_empty(bitvector bv, int size); /* Returns if no Bit is set */
-bool bv_get_bit(bitvector bv, int bit); /* Returns if Bit bit is set */
-
+void bv_set_bit(bitvector bv, int bit); /* set Bit bit of bitvector */
+void bv_reset_bit(bitvector bv, int bit); /* reset Bit bit of bitvector */
+void bv_reset(bitvector bv, int size); /* reset the whole bitvector */
+bool bv_is_empty(bitvector bv, int size); /* Returns if no Bit is set */
+bool bv_get_bit(bitvector bv, int bit); /* Returns if Bit bit is set */
bool bv_equal(bitvector s1, bitvector s2, int size);
+
/* copy the whole bitvector */
+
void bv_copy(bitvector dst, bitvector src, int size);
-/* d = s1 - s2 */
+
+/* d = s1 \ s2 */
+
void bv_minus(bitvector d, bitvector s1, bitvector s2, int size);
+
/* d = s1 union s2 */
+
void bv_union(bitvector d, bitvector s1, bitvector s2, int size);
#endif /* _BITVECTOR_H */