cmath-js 3.0.0 → 4.0.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 +9 -9
- package/dist/internal/index.d.ts +0 -3
- package/dist/internal/index.js +0 -3
- package/dist/internal/index.js.map +1 -1
- package/dist/namespace-std/integers/abs.js.map +1 -1
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countl_one.d.ts +4 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countl_one.js +9 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countl_one.js.map +1 -0
- package/dist/namespace-std/integers/{create_countl_zero.d.ts → count-left-or-right-bits/create_countl_zero.d.ts} +1 -1
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countl_zero.js +18 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countl_zero.js.map +1 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countr_one.d.ts +4 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countr_one.js +9 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countr_one.js.map +1 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countr_zero.d.ts +4 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countr_zero.js +20 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/create_countr_zero.js.map +1 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/index.d.ts +4 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/index.js +5 -0
- package/dist/namespace-std/integers/count-left-or-right-bits/index.js.map +1 -0
- package/dist/namespace-std/integers/index.d.ts +1 -4
- package/dist/namespace-std/integers/index.js +1 -4
- package/dist/namespace-std/integers/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/internal/bitsInUnsignedInteger.d.ts +0 -1
- package/dist/internal/bitsInUnsignedInteger.js +0 -30
- package/dist/internal/bitsInUnsignedInteger.js.map +0 -1
- package/dist/internal/sanitizeSmallUnsignedInteger.d.ts +0 -1
- package/dist/internal/sanitizeSmallUnsignedInteger.js +0 -7
- package/dist/internal/sanitizeSmallUnsignedInteger.js.map +0 -1
- package/dist/internal/sanitizeUnsignedInteger.d.ts +0 -1
- package/dist/internal/sanitizeUnsignedInteger.js +0 -11
- package/dist/internal/sanitizeUnsignedInteger.js.map +0 -1
- package/dist/namespace-std/integers/countl_one.d.ts +0 -2
- package/dist/namespace-std/integers/countl_one.js +0 -10
- package/dist/namespace-std/integers/countl_one.js.map +0 -1
- package/dist/namespace-std/integers/countr_one.d.ts +0 -1
- package/dist/namespace-std/integers/countr_one.js +0 -6
- package/dist/namespace-std/integers/countr_one.js.map +0 -1
- package/dist/namespace-std/integers/countr_zero.d.ts +0 -2
- package/dist/namespace-std/integers/countr_zero.js +0 -6
- package/dist/namespace-std/integers/countr_zero.js.map +0 -1
- package/dist/namespace-std/integers/create_countl_zero.js +0 -12
- package/dist/namespace-std/integers/create_countl_zero.js.map +0 -1
package/README.md
CHANGED
|
@@ -14,17 +14,17 @@ Implementation of parts of C's & C++'s numerics libraries in TypeScript/JavaScri
|
|
|
14
14
|
## Integer functions
|
|
15
15
|
These functions accept either a `bigint` or an integer `number`:
|
|
16
16
|
- [`abs`](https://en.cppreference.com/w/c/numeric/math/abs)
|
|
17
|
-
- [`countl_one`](https://en.cppreference.com/w/cpp/numeric/countl_one)
|
|
18
|
-
- [`countl_zero`](https://en.cppreference.com/w/cpp/numeric/countl_zero) in the form of
|
|
17
|
+
- [`countl_one`](https://en.cppreference.com/w/cpp/numeric/countl_one) as `create_countl_one`, which is used this way:
|
|
19
18
|
```ts
|
|
20
|
-
import {
|
|
21
|
-
const
|
|
22
|
-
const integer =
|
|
23
|
-
// Prints "
|
|
24
|
-
console.log(`${integer.toString(2).padStart(16, "0")} has ${
|
|
19
|
+
import { create_countl_one } from "cmath-js";
|
|
20
|
+
const countl_one_u16 = create_countl_one({ bits: 16 });
|
|
21
|
+
const integer = 0xF0_00;
|
|
22
|
+
// Prints "1111000000000000 has 4 leading zero bits."
|
|
23
|
+
console.log(`${integer.toString(2).padStart(16, "0")} has ${countl_one_u16(integer)} leading one bits.`);
|
|
25
24
|
```
|
|
26
|
-
- [`
|
|
27
|
-
- [`
|
|
25
|
+
- [`countl_zero`](https://en.cppreference.com/w/cpp/numeric/countl_zero) as `create_countl_zero`
|
|
26
|
+
- [`countr_one`](https://en.cppreference.com/w/cpp/numeric/countr_one) as `create_countr_one`
|
|
27
|
+
- [`countr_zero`](https://en.cppreference.com/w/cpp/numeric/countr_zero) as `create_countr_zero`
|
|
28
28
|
- [`div`](https://en.cppreference.com/w/cpp/numeric/math/div)
|
|
29
29
|
- [`gcd`](https://en.cppreference.com/w/cpp/numeric/gcd). Example:
|
|
30
30
|
```ts
|
package/dist/internal/index.d.ts
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export { bitsInUnsignedInteger } from "./bitsInUnsignedInteger.js";
|
|
2
1
|
export { floatFromBits } from "./floatFromBits.js";
|
|
3
2
|
export { floatOctets } from "./floatOctets.js";
|
|
4
|
-
export { sanitizeSmallUnsignedInteger } from "./sanitizeSmallUnsignedInteger.js";
|
|
5
|
-
export { sanitizeUnsignedInteger } from "./sanitizeUnsignedInteger.js";
|
package/dist/internal/index.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export { bitsInUnsignedInteger } from "./bitsInUnsignedInteger.js";
|
|
2
1
|
export { floatFromBits } from "./floatFromBits.js";
|
|
3
2
|
export { floatOctets } from "./floatOctets.js";
|
|
4
|
-
export { sanitizeSmallUnsignedInteger } from "./sanitizeSmallUnsignedInteger.js";
|
|
5
|
-
export { sanitizeUnsignedInteger } from "./sanitizeUnsignedInteger.js";
|
|
6
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abs.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/abs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"abs.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/abs.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,GAAG,CAAC,OAAwB;IAC3C,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { create_countl_zero } from "./index.js";
|
|
2
|
+
export function create_countl_one({ bits, }) {
|
|
3
|
+
const countl_zero = create_countl_zero({ bits });
|
|
4
|
+
if (bits <= 32) {
|
|
5
|
+
return (integer) => countl_zero(~integer);
|
|
6
|
+
}
|
|
7
|
+
return (integer) => countl_zero(~BigInt(integer));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=create_countl_one.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_countl_one.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/count-left-or-right-bits/create_countl_one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA8BhD,MAAM,UAAU,iBAAiB,CAAC,EACjC,IAAI,GASJ;IACA,MAAM,WAAW,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAEhB,OAAO,CAAC,OAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAGD,OAAO,CAAC,OAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function create_countl_zero({ bits, }) {
|
|
2
|
+
if (bits <= 32) {
|
|
3
|
+
const bitsLessThan32 = 32 - bits;
|
|
4
|
+
const mask = (2 ** bits - 1) | 0;
|
|
5
|
+
return (integer) => {
|
|
6
|
+
const truncated = (typeof integer === "number" ? integer : Number(BigInt.asIntN(32, integer))) & mask;
|
|
7
|
+
return Math.clz32(truncated) - bitsLessThan32;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return (integer) => {
|
|
11
|
+
const truncated = BigInt.asUintN(bits, BigInt(integer));
|
|
12
|
+
if (truncated === 0n) {
|
|
13
|
+
return bits;
|
|
14
|
+
}
|
|
15
|
+
return bits - truncated.toString(2).length;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=create_countl_zero.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_countl_zero.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/count-left-or-right-bits/create_countl_zero.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,kBAAkB,CAAC,EAClC,IAAI,GASJ;IACA,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAGhB,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,CAAC,OAAO,EAAE,EAAE;YAClB,MAAM,SAAS,GACd,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACrF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC;QAC/C,CAAC,CAAC;IACH,CAAC;IAID,OAAO,CAAC,OAAO,EAAE,EAAE;QAClB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { create_countr_zero } from "./index.js";
|
|
2
|
+
export const create_countr_one = ({ bits }) => {
|
|
3
|
+
const countr_zero = create_countr_zero({ bits });
|
|
4
|
+
if (bits <= 32) {
|
|
5
|
+
return (integer) => countr_zero(~integer);
|
|
6
|
+
}
|
|
7
|
+
return (integer) => countr_zero(~BigInt(integer));
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=create_countr_one.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_countr_one.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/count-left-or-right-bits/create_countr_one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAyBhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAuB,EAAE;IACpF,MAAM,WAAW,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAEhB,OAAO,CAAC,OAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAGD,OAAO,CAAC,OAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function create_countr_zero({ bits }) {
|
|
2
|
+
if (bits <= 32) {
|
|
3
|
+
const mask = (2 ** bits - 1) | 0;
|
|
4
|
+
return (integer) => {
|
|
5
|
+
const truncated = (typeof integer === "number" ? integer : Number(BigInt.asIntN(32, integer))) & mask;
|
|
6
|
+
const zeroesAsOnes = truncated ^ (truncated - 1);
|
|
7
|
+
const trailLength = 31 - Math.clz32(zeroesAsOnes);
|
|
8
|
+
return truncated === 0 ? bits : trailLength;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
return (integer) => {
|
|
12
|
+
const truncated = BigInt.asUintN(bits, BigInt(integer));
|
|
13
|
+
if (truncated === 0n) {
|
|
14
|
+
return bits;
|
|
15
|
+
}
|
|
16
|
+
const digits = truncated.toString(2);
|
|
17
|
+
return digits.length - digits.lastIndexOf("1") - 1;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=create_countr_zero.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_countr_zero.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/count-left-or-right-bits/create_countr_zero.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAoB;IAC5D,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAGhB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,CAAC,OAAwB,EAAU,EAAE;YAC3C,MAAM,SAAS,GACd,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAGrF,MAAM,YAAY,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEjD,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAClD,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QAC7C,CAAC,CAAC;IACH,CAAC;IAID,OAAO,CAAC,OAAwB,EAAU,EAAE;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { create_countl_one, type countl_one_function } from "./create_countl_one.js";
|
|
2
|
+
export { create_countl_zero, type countl_zero_function } from "./create_countl_zero.js";
|
|
3
|
+
export { create_countr_one, type countr_one_function } from "./create_countr_one.js";
|
|
4
|
+
export { create_countr_zero, type countr_zero_function } from "./create_countr_zero.js";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { create_countl_one } from "./create_countl_one.js";
|
|
2
|
+
export { create_countl_zero } from "./create_countl_zero.js";
|
|
3
|
+
export { create_countr_one } from "./create_countr_one.js";
|
|
4
|
+
export { create_countr_zero } from "./create_countr_zero.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/count-left-or-right-bits/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,wBAAwB,CAAC;AAErF,OAAO,EAAE,kBAAkB,EAA6B,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,iBAAiB,EAA4B,MAAM,wBAAwB,CAAC;AAErF,OAAO,EAAE,kBAAkB,EAA6B,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export { abs } from "./abs.js";
|
|
2
|
-
export
|
|
3
|
-
export { create_countl_zero, type countl_zero_function } from "./create_countl_zero.js";
|
|
4
|
-
export { countr_one } from "./countr_one.js";
|
|
5
|
-
export { countr_zero } from "./countr_zero.js";
|
|
2
|
+
export * from "./count-left-or-right-bits/index.js";
|
|
6
3
|
export { div, type div_t, type div_t_bigint, type div_t_number } from "./div/index.js";
|
|
7
4
|
export { gcd } from "./gcd.js";
|
|
8
5
|
export { lcm } from "./lcm.js";
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export { abs } from "./abs.js";
|
|
2
|
-
export
|
|
3
|
-
export { create_countl_zero } from "./create_countl_zero.js";
|
|
4
|
-
export { countr_one } from "./countr_one.js";
|
|
5
|
-
export { countr_zero } from "./countr_zero.js";
|
|
2
|
+
export * from "./count-left-or-right-bits/index.js";
|
|
6
3
|
export { div } from "./div/index.js";
|
|
7
4
|
export { gcd } from "./gcd.js";
|
|
8
5
|
export { lcm } from "./lcm.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,
|
|
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,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function bitsInUnsignedInteger(values: [fixedIntegerSizeInBits: number, integer: bigint | number] | [integer: bigint | number]): Uint8Array;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export function bitsInUnsignedInteger(values) {
|
|
2
|
-
let integer;
|
|
3
|
-
let fixedIntegerSizeInBits = NaN;
|
|
4
|
-
if (values.length === 1) {
|
|
5
|
-
[integer] = values;
|
|
6
|
-
}
|
|
7
|
-
else {
|
|
8
|
-
[fixedIntegerSizeInBits, integer] = values;
|
|
9
|
-
if (fixedIntegerSizeInBits <= 0 || !Number.isInteger(fixedIntegerSizeInBits)) {
|
|
10
|
-
return new Uint8Array();
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
const integerIsZeroOrInvalid = integer <= 0 || (typeof integer === "number" && !Number.isInteger(integer));
|
|
14
|
-
if (integerIsZeroOrInvalid) {
|
|
15
|
-
if (!fixedIntegerSizeInBits) {
|
|
16
|
-
return new Uint8Array();
|
|
17
|
-
}
|
|
18
|
-
integer = 0;
|
|
19
|
-
}
|
|
20
|
-
let bitString = BigInt(integer).toString(2);
|
|
21
|
-
if (bitString.length < fixedIntegerSizeInBits) {
|
|
22
|
-
bitString = bitString.padStart(fixedIntegerSizeInBits, "0");
|
|
23
|
-
}
|
|
24
|
-
const digits = Uint8Array.from(bitString);
|
|
25
|
-
if (digits.length > fixedIntegerSizeInBits) {
|
|
26
|
-
return digits.slice(-fixedIntegerSizeInBits);
|
|
27
|
-
}
|
|
28
|
-
return digits;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=bitsInUnsignedInteger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bitsInUnsignedInteger.js","sourceRoot":"","sources":["../../src/internal/bitsInUnsignedInteger.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CACpC,MAA+F;IAE/F,IAAI,OAAwB,CAAC;IAC7B,IAAI,sBAAsB,GAAG,GAAG,CAAC;IAEjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;IACpB,CAAC;SAAM,CAAC;QACP,CAAC,sBAAsB,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;QAE3C,IAAI,sBAAsB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,MAAM,sBAAsB,GAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,IAAI,sBAAsB,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC7B,OAAO,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,GAAG,CAAC,CAAC;IACb,CAAC;IAED,IAAI,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,SAAS,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QAC/C,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;IAGD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,SAAqD,CAAC,CAAC;IAEtF,IAAI,MAAM,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function sanitizeSmallUnsignedInteger(someNumber: number): number;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizeSmallUnsignedInteger.js","sourceRoot":"","sources":["../../src/internal/sanitizeSmallUnsignedInteger.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,4BAA4B,CAAC,UAAkB;IAC9D,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function sanitizeUnsignedInteger(someNumber: number | bigint): bigint;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { sanitizeSmallUnsignedInteger } from "./index.js";
|
|
2
|
-
export function sanitizeUnsignedInteger(someNumber) {
|
|
3
|
-
if (typeof someNumber === "bigint") {
|
|
4
|
-
if (someNumber < 0n) {
|
|
5
|
-
return 0n;
|
|
6
|
-
}
|
|
7
|
-
return someNumber;
|
|
8
|
-
}
|
|
9
|
-
return BigInt(sanitizeSmallUnsignedInteger(someNumber));
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=sanitizeUnsignedInteger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizeUnsignedInteger.js","sourceRoot":"","sources":["../../src/internal/sanitizeUnsignedInteger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,UAAU,uBAAuB,CAAC,UAA2B;IAClE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { bitsInUnsignedInteger } from "../../internal/index.js";
|
|
2
|
-
export function countl_one(...values) {
|
|
3
|
-
const digits = bitsInUnsignedInteger(values);
|
|
4
|
-
const endOfOnes = digits.indexOf(0);
|
|
5
|
-
if (endOfOnes === -1) {
|
|
6
|
-
return digits.length;
|
|
7
|
-
}
|
|
8
|
-
return endOfOnes;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=countl_one.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"countl_one.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/countl_one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,UAAU,UAAU,CACzB,GAAG,MAA+F;IAElG,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function countr_one(integer: bigint | number): number;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { sanitizeUnsignedInteger } from "../../internal/sanitizeUnsignedInteger.js";
|
|
2
|
-
export function countr_one(integer) {
|
|
3
|
-
const digits = sanitizeUnsignedInteger(integer).toString(2);
|
|
4
|
-
return digits.length - digits.lastIndexOf("0") - 1;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=countr_one.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"countr_one.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/countr_one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAqBpF,MAAM,UAAU,UAAU,CAAC,OAAwB;IAClD,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"countr_zero.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/countr_zero.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAUhE,MAAM,UAAU,WAAW,CAC1B,GAAG,MAA+F;IAElG,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { sanitizeSmallUnsignedInteger, sanitizeUnsignedInteger } from "../../internal/index.js";
|
|
2
|
-
export function create_countl_zero(options) {
|
|
3
|
-
const bits = sanitizeSmallUnsignedInteger(options.bits);
|
|
4
|
-
return (integer) => {
|
|
5
|
-
const truncated = BigInt.asUintN(bits, sanitizeUnsignedInteger(integer));
|
|
6
|
-
if (truncated === 0n) {
|
|
7
|
-
return bits;
|
|
8
|
-
}
|
|
9
|
-
return bits - truncated.toString(2).length;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=create_countl_zero.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create_countl_zero.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/create_countl_zero.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AA4BhG,MAAM,UAAU,kBAAkB,CAAC,OAQlC;IACA,MAAM,IAAI,GAAG,4BAA4B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CAAC,OAAwB,EAAU,EAAE;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC,CAAC;AACH,CAAC"}
|