package bitset

func select64( uint64,  uint) uint {
	 := 0
	// Divide 64bit
	 :=  & 0xFFFFFFFF
	 := uint(popcount())
	if  <=  {
		 =  >> 32
		 += 32
		 -= 
	}
	 := 

	// Divide 32bit
	 =  & 0xFFFF

	 = uint(popcount())
	if  <=  {
		 =  >> 16
		 += 16
		 -= 
	}
	 = 

	// Divide 16bit
	 =  & 0xFF
	 = uint(popcount())
	if  <=  {
		 =  >> 8
		 += 8
		 -= 
	}
	 = 

	// Lookup in final byte
	 := 0
	for ;  < 8; ++ {
		 -= uint(( >> ) & 1)
		if +1 == 0 {
			break
		}
	}
	return uint( + )
}