The current methods of testing only apply trivial/predictable operations on the code on a small scale. ColleC needs a set of test harnesses for each of the data structures and algorithms in order to ensure proper functionality and to better simulate real-world usage.
The Bivector manipulations and queries are inefficient. Each memory location may be accessed and operated on CHAR_BIT times, causing unnecessary delay. As an example, here is the algorithm for setting bits:
for (index=min; index <= max; index++)
(biv->array)[index/CHAR_BIT] |= (1 << (index%CHAR_BIT));
It should be possible to consolidate to only one access+write per memory location (for most cases at least), by taking advantage of tricks to set a memory location to all/partly 0s or 1s.