Manipulate sets of integers
#include <publib.h> Iset *iset_create(void); void iset_destroy(Iset *is); Iset *iset_copy(const Iset *is); int iset_is_empty(const Iset *is); int iset_add(Iset *is, long number); int iset_add_range(Iset *is, long number1, long number2); int iset_remove(Iset *is, long number); int iset_remove_range(Iset *is, long number1, long number2); void iset_clear(Iset *is); int iset_contains(const Iset *is, long number); int iset_union(Iset *is1, const Iset *is2); int iset_diff(Iset *is1, const Iset *is2); int iset_isect(Iset *is1, const Iset *is2); void iset_range(const Iset *is, long *lowest, long *highest); int iset_nth_range(const Iset *is, long n, long *lo, long *hi);
These functions operate on sets of integers (of type long). You clever people will know how to use them without my help, which saves me from writing a manual page.
publib(3), bitarr(3)
Lars Wirzenius ([email protected])