cmath-js 2.0.1 → 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 +12 -4
- package/dist/internal/index.d.ts +0 -1
- package/dist/internal/index.js +0 -1
- 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/count-left-or-right-bits/create_countl_zero.d.ts +4 -0
- 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/div/div.d.ts +3 -4
- package/dist/namespace-std/integers/div/div.js.map +1 -1
- 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/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/countl_zero.d.ts +0 -1
- package/dist/namespace-std/integers/countl_zero.js +0 -10
- package/dist/namespace-std/integers/countl_zero.js.map +0 -1
- package/dist/namespace-std/integers/countr_one.d.ts +0 -2
- 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/README.md
CHANGED
|
@@ -14,14 +14,22 @@ 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
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
17
|
+
- [`countl_one`](https://en.cppreference.com/w/cpp/numeric/countl_one) as `create_countl_one`, which is used this way:
|
|
18
|
+
```ts
|
|
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.`);
|
|
24
|
+
```
|
|
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`
|
|
21
28
|
- [`div`](https://en.cppreference.com/w/cpp/numeric/math/div)
|
|
22
29
|
- [`gcd`](https://en.cppreference.com/w/cpp/numeric/gcd). Example:
|
|
23
30
|
```ts
|
|
24
31
|
import { gcd } from "cmath-js";
|
|
32
|
+
// Prints "The greatest common divisor of 24 and 32 is 8."
|
|
25
33
|
console.log(`The greatest common divisor of 24 and 32 is ${gcd(24, 32)}.`);
|
|
26
34
|
```
|
|
27
35
|
- [`lcm`](https://en.cppreference.com/w/cpp/numeric/lcm)
|
package/dist/internal/index.d.ts
CHANGED
package/dist/internal/index.js
CHANGED
|
@@ -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,7 @@
|
|
|
1
1
|
import { type div_t_bigint } from "./div_bigint.js";
|
|
2
2
|
import { type div_t_number } from "./div_number.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
rem: NumType;
|
|
6
|
-
}
|
|
3
|
+
type AnyInteger = bigint | number;
|
|
4
|
+
export type div_t<NumType extends AnyInteger = AnyInteger> = (NumType extends bigint ? div_t_bigint : div_t_number) & (NumType extends number ? div_t_number : div_t_bigint);
|
|
7
5
|
export declare function div(aInteger: bigint, bInteger: bigint): div_t_bigint;
|
|
8
6
|
export declare function div(aInteger: number, bInteger: number): div_t_number;
|
|
7
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"div.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/div/div.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAqB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"div.js","sourceRoot":"","sources":["../../../../src/namespace-std/integers/div/div.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAWhE,MAAM,UAAU,GAAG,CAA6B,QAAiB,EAAE,QAAiB;IACnF,OAAO,OAAO,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAkB,CAAC;QAC1C,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAkB,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export { abs } from "./abs.js";
|
|
2
|
-
export
|
|
3
|
-
export { countl_zero } from "./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 { countl_zero } from "./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,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 countl_zero(fixedIntegerSizeInBits: number, integer: bigint | number): number;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { bitsInUnsignedInteger } from "../../internal/index.js";
|
|
2
|
-
export function countl_zero(fixedIntegerSizeInBits, integer) {
|
|
3
|
-
const digits = bitsInUnsignedInteger([fixedIntegerSizeInBits, integer]);
|
|
4
|
-
const endOfZeroes = digits.indexOf(1);
|
|
5
|
-
if (endOfZeroes === -1) {
|
|
6
|
-
return digits.length;
|
|
7
|
-
}
|
|
8
|
-
return endOfZeroes;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=countl_zero.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"countl_zero.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/countl_zero.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,UAAU,WAAW,CAAC,sBAA8B,EAAE,OAAwB;IACnF,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC,CAAC;IAExE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEtC,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"countr_one.js","sourceRoot":"","sources":["../../../src/namespace-std/integers/countr_one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAUhE,MAAM,UAAU,UAAU,CACzB,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 +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"}
|