/*************************** bv-bool-ops.h ***************************** Purpose: External declarations for boolean operations implemented as bit vectors. Provenance: Written and tested by S. Wartik, April 1991. Notes: None. **/ #ifndef TRUE # define TRUE 1 # define FALSE 0 typedef int boolean; #endif #define MAX_ELEMENTS 256 #define WORDSIZE 8 typedef struct { /* A set consists of the bounds */ int lower; /* defined for it, and space to */ int upper; /* record what's in it. */ char bits[MAX_ELEMENTS/WORDSIZE]; } set; typedef int elementType; /* The element type is defined as "int". It */ /* could be changed to any scalar type. */ #ifdef __STDC__ extern void Create(int lower, int upper, set *s); extern void Clear(set *s); extern void Insert(set *s, elementType e); extern void Delete(set *s, elementType e); extern void Unite(set *s1, set *s2, set *s3); extern void Intersect(set *s1, set *s2, set *s3); extern void Subtract(set *s1, set *s2, set *s3); extern boolean Empty(set *s); extern boolean Member(set *s, elementType e); extern void Copy(set *source, set *destination); extern void Iterate(set *s, boolean (*f)()); boolean Error_Occurred(); #else extern void Create(); extern void Clear(); extern void Insert(); extern void Delete(); extern void Unite(); extern void Intersect(); extern void Subtract(); extern boolean Empty(); extern boolean Member(); extern void Copy(); extern void Iterate(); extern boolean Error_Occurred(); #endif