cmath-js 5.10.0 → 5.12.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_number.js +3 -6
- package/dist/namespace-std/integers/bit_ceil/bit_ceil_number.js.map +1 -1
- 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/bit_width.d.ts +1 -0
- package/dist/namespace-std/integers/bit_width.js +7 -0
- package/dist/namespace-std/integers/bit_width.js.map +1 -0
- 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
|
@@ -28,6 +28,8 @@ These functions accept either a `bigint` or an integer `number`:
|
|
|
28
28
|
|
|
29
29
|
- [`abs`](https://en.cppreference.com/c/numeric/math/abs)
|
|
30
30
|
- [`bit_ceil`](https://en.cppreference.com/cpp/numeric/bit_ceil)
|
|
31
|
+
- [`bit_floor`](https://en.cppreference.com/cpp/numeric/bit_floor)
|
|
32
|
+
- [`bit_width`](https://en.cppreference.com/cpp/numeric/bit_width)
|
|
31
33
|
- [`countl_one`](https://en.cppreference.com/cpp/numeric/countl_one) as `create_countl_one`, which is used this way:
|
|
32
34
|
```ts
|
|
33
35
|
import { create_countl_one } from "cmath-js";
|
|
@@ -2,13 +2,10 @@ export function bit_ceil_number(integer) {
|
|
|
2
2
|
if (!Number.isSafeInteger(integer) || integer < 1 || integer > 2 ** 52) {
|
|
3
3
|
return 1;
|
|
4
4
|
}
|
|
5
|
-
|
|
6
|
-
let power = 32;
|
|
5
|
+
const minusOne = integer - 1;
|
|
7
6
|
if (minusOne >= 2 ** 32) {
|
|
8
|
-
|
|
9
|
-
minusOne /= 2 ** 32;
|
|
7
|
+
return 2 ** (64 - Math.clz32(minusOne / 2 ** 32));
|
|
10
8
|
}
|
|
11
|
-
|
|
12
|
-
return 2 ** power;
|
|
9
|
+
return 2 ** (32 - Math.clz32(minusOne));
|
|
13
10
|
}
|
|
14
11
|
//# sourceMappingURL=bit_ceil_number.js.map
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function bit_width(integer: bigint | number): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bit_width.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/bit_width.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,SAAS,CAAC,OAAwB;IACjD,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,CAAC,CAAC;IACV,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3C,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { abs } from "./abs.ts";
|
|
2
2
|
export { bit_ceil } from "./bit_ceil/bit_ceil.ts";
|
|
3
|
+
export { bit_floor } from "./bit_floor/bit_floor.ts";
|
|
4
|
+
export { bit_width } from "./bit_width.ts";
|
|
3
5
|
export * from "./count-left-or-right-bits/index.ts";
|
|
4
6
|
export { div, type div_t, type div_t_bigint, type div_t_number } from "./div/index.ts";
|
|
5
7
|
export { gcd } from "./gcd/gcd.ts";
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { abs } from "./abs.js";
|
|
2
2
|
export { bit_ceil } from "./bit_ceil/bit_ceil.js";
|
|
3
|
+
export { bit_floor } from "./bit_floor/bit_floor.js";
|
|
4
|
+
export { bit_width } from "./bit_width.js";
|
|
3
5
|
export * from "./count-left-or-right-bits/index.js";
|
|
4
6
|
export { div } from "./div/index.js";
|
|
5
7
|
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,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,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,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,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"}
|