UNPKG

extra-bit

Version:

The [bit] is a basic unit of information in information theory, computing.<br>

86 lines (85 loc) • 2.6 kB
/** * Get bits at specified index. * @param x an int32 * @param i bit index * @param w bit width [1] */ export declare function get(x: number, i: number, w?: number): number; /** * Get bits as per mask. * @param x an int32 * @param m bit mask */ export declare function getAs(x: number, m: number): number; /** * Set bits at specified index. * @param x an int32 * @param i bit index * @param v bit value [1] * @param w bit width [1] */ export declare function set(x: number, i: number, v?: number, w?: number): number; /** * Set bits as per mask. * @param x an int32 * @param m bit mask * @param f bit value [1] */ export declare function setAs(x: number, m: number, f?: number): number; /** * Toggle bits at specified index. * @param x an int32 * @param i bit index * @param w bit width [1] */ export declare function toggle(x: number, i: number, w?: number): number; /** * Toggle bits as per mask. * @param x an int32 * @param m bit mask */ export declare function toggleAs(x: number, m: number): number; /** * Swap bit sequences at specified indices. * @param x an int32 * @param i first bit index * @param j second bit index * @param w bit width [1] */ export declare function swap(x: number, i: number, j: number, w?: number): number; /** * Find index of first set bit from LSB. * @param x an int32 */ export declare function scan(x: number): number; /** * Find index of first set bit from MSB. * @param x an int32 */ export declare function scanReverse(x: number): number; /** * Count bits set. * @param x an int32 */ export declare function count(x: number): number; /** * Calculate n-bit parity. * @param x an int32 * @param n number of bits [1] */ export declare function parity(x: number, n?: number): number; /** * Rotate bits by a certain amount. * @param x an int32 * @param n rotate amount (+ve: left, -ve: right) */ export declare function rotate(x: number, n?: number): number; /** * Reverse all bits. * @param x an int32 */ export declare function reverse(x: number): number; /** * Merge bits as per mask. * @param x first int32 * @param y second int32 * @param m bit mask (0 ⇒ from x) */ export declare function merge(x: number, y: number, m: number): number; /** * Interleave bits of two int16s. * @param x first int16 * @param y second int16 * @returns int32 */ export declare function interleave(x: number, y: number): number; /** * Sign extend variable bit-width integer. * @param x variable bit-width integer * @param w bit width (32) */ export declare function signExtend(x: number, w?: number): number;