cmath-js 5.9.0 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil.d.ts +1 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil.js +8 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil.js.map +1 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil_bigint.d.ts +1 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil_bigint.js +7 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil_bigint.js.map +1 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil_number.d.ts +1 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil_number.js +11 -0
- package/dist/namespace-std/integers/bit_ceil/bit_ceil_number.js.map +1 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor.d.ts +1 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor.js +8 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor.js.map +1 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor_bigint.d.ts +1 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor_bigint.js +7 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor_bigint.js.map +1 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor_number.d.ts +1 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor_number.js +10 -0
- package/dist/namespace-std/integers/bit_floor/bit_floor_number.js.map +1 -0
- package/dist/namespace-std/integers/has_single_bit.js +2 -1
- package/dist/namespace-std/integers/has_single_bit.js.map +1 -1
- package/dist/namespace-std/integers/index.d.ts +2 -0
- package/dist/namespace-std/integers/index.js +2 -0
- package/dist/namespace-std/integers/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,6 +27,8 @@ Implementation of parts of C++'s numerics libraries in TypeScript/JavaScript, in
|
|
|
27
27
|
These functions accept either a `bigint` or an integer `number`:
|
|
28
28
|
|
|
29
29
|
- [`abs`](https://en.cppreference.com/c/numeric/math/abs)
|
|
30
|
+
- [`bit_ceil`](https://en.cppreference.com/cpp/numeric/bit_ceil)
|
|
31
|
+
- [`bit_floor`](https://en.cppreference.com/cpp/numeric/bit_floor)
|
|
30
32
|
- [`countl_one`](https://en.cppreference.com/cpp/numeric/countl_one) as `create_countl_one`, which is used this way:
|
|
31
33
|
```ts
|
|
32
34
|
import { create_countl_one } from "cmath-js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function bit_ceil<Integer extends bigint | number>(integer: Integer): Integer;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { bit_ceil_bigint } from "./bit_ceil_bigint.js";
|
|
2
|
+
import { bit_ceil_number } from "./bit_ceil_number.js";
|
|
3
|
+
export function bit_ceil(integer) {
|
|
4
|
+
return typeof integer === "number"
|
|
5
|
+
? bit_ceil_number(integer)
|
|
6
|
+
: bit_ceil_bigint(integer);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=bit_ceil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bit_ceil.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/bit_ceil/bit_ceil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AASvD,MAAM,UAAU,QAAQ,CAAkC,OAAgB;IACzE,OAAO,OAAO,OAAO,KAAK,QAAQ;QACjC,CAAC,CAAE,eAAe,CAAC,OAAO,CAAa;QACvC,CAAC,CAAE,eAAe,CAAC,OAAO,CAAa,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function bit_ceil_bigint(integer: bigint): bigint;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bit_ceil_bigint.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/bit_ceil/bit_ceil_bigint.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,OAAe;IAC9C,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,EAAE,IAAI,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function bit_ceil_number(integer: number): number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function bit_ceil_number(integer) {
|
|
2
|
+
if (!Number.isSafeInteger(integer) || integer < 1 || integer > 2 ** 52) {
|
|
3
|
+
return 1;
|
|
4
|
+
}
|
|
5
|
+
const minusOne = integer - 1;
|
|
6
|
+
if (minusOne >= 2 ** 32) {
|
|
7
|
+
return 2 ** (64 - Math.clz32(minusOne / 2 ** 32));
|
|
8
|
+
}
|
|
9
|
+
return 2 ** (32 - Math.clz32(minusOne));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=bit_ceil_number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bit_ceil_number.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/bit_ceil/bit_ceil_number.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,OAAe;IAC9C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QACxE,OAAO,CAAC,CAAC;IACV,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;IAE7B,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function bit_floor<Integer extends bigint | number>(integer: Integer): Integer;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { bit_floor_bigint } from "./bit_floor_bigint.js";
|
|
2
|
+
import { bit_floor_number } from "./bit_floor_number.js";
|
|
3
|
+
export function bit_floor(integer) {
|
|
4
|
+
return typeof integer === "number"
|
|
5
|
+
? bit_floor_number(integer)
|
|
6
|
+
: bit_floor_bigint(integer);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=bit_floor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bit_floor.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/bit_floor/bit_floor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AASzD,MAAM,UAAU,SAAS,CAAkC,OAAgB;IAC1E,OAAO,OAAO,OAAO,KAAK,QAAQ;QACjC,CAAC,CAAE,gBAAgB,CAAC,OAAO,CAAa;QACxC,CAAC,CAAE,gBAAgB,CAAC,OAAO,CAAa,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function bit_floor_bigint(integer: bigint): bigint;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bit_floor_bigint.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/bit_floor/bit_floor_bigint.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC/C,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function bit_floor_number(integer: number): number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function bit_floor_number(integer) {
|
|
2
|
+
if (!Number.isSafeInteger(integer) || integer < 1) {
|
|
3
|
+
return 0;
|
|
4
|
+
}
|
|
5
|
+
if (integer >= 2 ** 32) {
|
|
6
|
+
return 2 ** (63 - Math.clz32(integer / 2 ** 32));
|
|
7
|
+
}
|
|
8
|
+
return 2 ** (31 - Math.clz32(integer));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=bit_floor_number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bit_floor_number.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/bit_floor/bit_floor_number.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC/C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -2,6 +2,7 @@ export function has_single_bit(integer) {
|
|
|
2
2
|
if (typeof integer === "number" && !Number.isInteger(integer)) {
|
|
3
3
|
return false;
|
|
4
4
|
}
|
|
5
|
-
|
|
5
|
+
const asBigInt = BigInt(integer);
|
|
6
|
+
return asBigInt !== 0n && !(asBigInt & (asBigInt - 1n));
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=has_single_bit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has_single_bit.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/has_single_bit.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,cAAc,CAAC,OAAwB;IACtD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACd,CAAC;
|
|
1
|
+
{"version":3,"file":"has_single_bit.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/has_single_bit.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,cAAc,CAAC,OAAwB;IACtD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { abs } from "./abs.ts";
|
|
2
|
+
export { bit_ceil } from "./bit_ceil/bit_ceil.ts";
|
|
3
|
+
export { bit_floor } from "./bit_floor/bit_floor.ts";
|
|
2
4
|
export * from "./count-left-or-right-bits/index.ts";
|
|
3
5
|
export { div, type div_t, type div_t_bigint, type div_t_number } from "./div/index.ts";
|
|
4
6
|
export { gcd } from "./gcd/gcd.ts";
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { abs } from "./abs.js";
|
|
2
|
+
export { bit_ceil } from "./bit_ceil/bit_ceil.js";
|
|
3
|
+
export { bit_floor } from "./bit_floor/bit_floor.js";
|
|
2
4
|
export * from "./count-left-or-right-bits/index.js";
|
|
3
5
|
export { div } from "./div/index.js";
|
|
4
6
|
export { gcd } from "./gcd/gcd.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,cAAc,qCAAqC,CAAC;AACpD,OAAO,EAAE,GAAG,EAAoD,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,OAAO,EAAE,GAAG,EAAoD,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|