code: func (m *MinWise) SignatureBbit(b uint) []uint64 {
  
  	var sig []uint64 // full signature
  	var w uint64     // current word
  	bits := uint(64) // bits free in current word
  
  	mask := uint64(1<<b) - 1
  
  	for _, v := range m.minimums {
  		if bits >= b {
  			w <<= b
  			w |= v & mask
  			bits -= b
  		} else {
  			sig = append(sig, w)
  			w = 0
  			bits = 64
  		}
  	}
  
  	if bits != 64 {
  		sig = append(sig, w)
  	}
  
  	return sig
  }
docs: // SignatureBbit returns a b-bit reduction of the signature.  This will result in unused bits at the high-end of the words if b does not divide 64 evenly.