package math import "math/bits" // NextPow2 finds the next power of two (N=2^k, k>=0) greater than n. // If n is already a power of two, then this function returns n, and log2(n). func NextPow2(n uint) (N uint, k uint) { if bits.OnesCount(n) == 1 { k = uint(bits.TrailingZeros(n)) N = n } else { k = uint(bits.Len(n)) N = uint(1) << k } return }