const h0 … const hp … type bvecSet … func (m *bvecSet) grow() { … } // add adds bv to the set and returns its index in m.extractUnique, // and whether it is newly added. // If it is newly added, the caller must not modify bv after this. func (m *bvecSet) add(bv bitvec.BitVec) (int, bool) { … } // extractUnique returns this slice of unique bit vectors in m, as // indexed by the result of bvecSet.add. func (m *bvecSet) extractUnique() []bitvec.BitVec { … } func hashbitmap(h uint32, bv bitvec.BitVec) uint32 { … }