func extractLowBits*[n: static int](A: BigInt[n], k: int): uint64 = assert(k > 0 and k <= 64) var r: uint64 = 0 for i in 0.. 0): k += 1 y = y shr 1 return k func ceilingLog2* (x : int) : int = if (x==0): return -1 else: return (floorLog2(x-1) + 1)