code: func (bv *BitVector) Count() int {
  	// if the vector has been modified
  	if bv.count == -1 {
  		c := 0
  		for _, v := range bv.bits {
  			c += util.BitCount(v) // sum bits per byte
  		}
  		bv.count = c
  	}
  	assert2(bv.count <= bv.size, "count=%v size=%v", bv.count, bv.size)
  	return bv.count
  }
docs: /*
  Returns the total number of bits in this vector. This is efficiently
  computed and cached, so that, if the vector is not changed, no
  recomputation is done for repeated calls.
  */