bitmap icon indicating copy to clipboard operation
bitmap copied to clipboard

feature request: new method `OnesTo(n)` like `CountTo(n)`, `Ones` with a upper boundary?

Open trim21 opened this issue 7 months ago • 0 comments

currently need to call Grow then ones, them remove items >= n

Can we add a new method OnesTo(n) set Ones with a upper boundary?

A impl:

func (dst *Bitmap) OnesTo(n uint32) {
	blkAt := n >> 6

	b := make(Bitmap, blkAt+1)

	for i := uint32(0); i < blkAt; i++ {
		b[i] = math.MaxUint64 // saidly golang's compiler can't optimize this
	}

	b[blkAt] = uint64(math.MaxUint64) >> (64 - n%64)

	*dst = b
}

trim21 avatar Jul 19 '24 18:07 trim21