in algebird-core/src/main/scala/com/twitter/algebird/immutable/BloomFilter.scala [350:373]
override def plus(left: Hash, right: Hash): Hash = left ++ right
override def sum(t: TraversableOnce[Hash]): Hash =
if (t.iterator.isEmpty) empty
else {
val iter = t.iterator
var bs = BitSet.newEmpty(0)
val hash = new Array[Int](numHashes)
while (iter.hasNext) {
iter.next() match {
case Empty => ()
case Item(item) =>
hashToArray(item, hash)
bs = bs.mutableAdd(hash)
case Instance(bitset) =>
val iter = bitset.iterator
while (iter.hasNext) {
bs = bs.mutableAdd(iter.next())
}
}
}
if (bs.isEmpty) Empty else Instance(bs)
}