mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-12 21:10:23 +00:00
Merge pull request #33145 from adamzerella/types/bit-twiddle
[bit-twiddle] Add bit-twiddle typing
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import * as bitTwiddle from "bit-twiddle";
|
||||
|
||||
bitTwiddle.INT_BITS;
|
||||
bitTwiddle.INT_MAX;
|
||||
bitTwiddle.INT_MIN;
|
||||
|
||||
bitTwiddle.sign(5);
|
||||
bitTwiddle.abs(-5);
|
||||
bitTwiddle.min(1, 6);
|
||||
bitTwiddle.max(6, 1);
|
||||
bitTwiddle.isPow2(3);
|
||||
bitTwiddle.log2(3);
|
||||
bitTwiddle.log10(3);
|
||||
bitTwiddle.popCount(4);
|
||||
bitTwiddle.countTrailingZeros(3.0000003);
|
||||
bitTwiddle.nextPow2(31.315);
|
||||
bitTwiddle.prevPow2(31.315);
|
||||
bitTwiddle.parity(123);
|
||||
bitTwiddle.interleave2(12, 24);
|
||||
bitTwiddle.deinterleave2(24, 12);
|
||||
bitTwiddle.interleave3(24, 12, 6);
|
||||
bitTwiddle.deinterleave3(24, 12);
|
||||
bitTwiddle.nextCombination(41.935);
|
||||
Vendored
+101
@@ -0,0 +1,101 @@
|
||||
// Type definitions for bit-twiddle 1.0
|
||||
// Project: https://github.com/mikolalysenko/bit-twiddle
|
||||
// Definitions by: Adam Zerella <https://github.com/adamzerella>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.3
|
||||
|
||||
export const INT_BITS: number;
|
||||
export const INT_MAX: number;
|
||||
export const INT_MIN: number;
|
||||
|
||||
/**
|
||||
* Computes the sign of the integer.
|
||||
*/
|
||||
export function sign(value: number): number;
|
||||
|
||||
/**
|
||||
* Returns the absolute value of the integer.
|
||||
*/
|
||||
export function abs(value: number): number;
|
||||
|
||||
/**
|
||||
* Computes the minimum of integers x and y.
|
||||
*/
|
||||
export function min(x: number, y: number): number;
|
||||
|
||||
/**
|
||||
* Computes the maximum of integers x and y.
|
||||
*/
|
||||
export function max(x: number, y: number): number;
|
||||
|
||||
/**
|
||||
* Returns true if value is a power of 2, otherwise false.
|
||||
*/
|
||||
export function isPow2(value: number): boolean;
|
||||
|
||||
/**
|
||||
* Returns an integer approximation of the log-base 2 of value.
|
||||
*/
|
||||
export function log2(value: number): number;
|
||||
|
||||
/**
|
||||
* Returns an integer approximation of the log-base 10 of value.
|
||||
*/
|
||||
export function log10(value: number): number;
|
||||
|
||||
/**
|
||||
* Counts the number of bits set in value.
|
||||
*/
|
||||
export function popCount(value: number): number;
|
||||
|
||||
/**
|
||||
* Counts the number of trailing zeros.
|
||||
*/
|
||||
export function countTrailingZeros(value: number): number;
|
||||
|
||||
/**
|
||||
* Rounds value up to the next power of 2.
|
||||
*/
|
||||
export function nextPow2(value: number): number;
|
||||
|
||||
/**
|
||||
* Rounds value down to the previous power of 2.
|
||||
*/
|
||||
export function prevPow2(value: number): number;
|
||||
|
||||
/**
|
||||
* Computes the parity of the bits in value.
|
||||
*/
|
||||
export function parity(value: number): number;
|
||||
|
||||
/**
|
||||
* Reverses the bits of value.
|
||||
*/
|
||||
export function reverse(value: number): number;
|
||||
|
||||
/**
|
||||
* Interleaves a pair of 16 bit integers. Useful for fast quadtree style indexing.
|
||||
* @see http://en.wikipedia.org/wiki/Z-order_curve
|
||||
*/
|
||||
export function interleave2(x: number, y: number): number;
|
||||
|
||||
/**
|
||||
* Deinterleaves the bits of value, returns the nth part.
|
||||
* If both x and y are 16 bit.
|
||||
*/
|
||||
export function deinterleave2(x: number, y: number): number;
|
||||
|
||||
/**
|
||||
* Interleaves a triple of 10 bit integers. Useful for fast octree indexing.
|
||||
*/
|
||||
export function interleave3(x: number, y: number, z: number): number;
|
||||
|
||||
/**
|
||||
* Same deal as deinterleave2, only for triples instead of pairs.
|
||||
*/
|
||||
export function deinterleave3(x: number, y: number): number;
|
||||
|
||||
/**
|
||||
* Returns next combination ordered colexicographically.
|
||||
*/
|
||||
export function nextCombination(x: number): number;
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [
|
||||
|
||||
],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"bit-twiddle-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json"
|
||||
}
|
||||
Reference in New Issue
Block a user