UNPKG

@dfinity/candid

Version:

JavaScript and TypeScript library to work with candid interfaces

26 lines 714 B
/** * Equivalent to `Math.log2(n)` with support for `BigInt` values * @param n bigint or integer * @returns integer */ export function ilog2(n) { const nBig = BigInt(n); if (n <= 0) { throw new RangeError('Input must be positive'); } return nBig.toString(2).length - 1; } /** * Equivalent to `2 ** n` with support for `BigInt` values * (necessary for browser preprocessors which replace the `**` operator with `Math.pow`) * @param n bigint or integer * @returns bigint */ export function iexp2(n) { const nBig = BigInt(n); if (n < 0) { throw new RangeError('Input must be non-negative'); } return BigInt(1) << nBig; } //# sourceMappingURL=bigint-math.js.map