pragmastat 9.0.0 → 10.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 CHANGED
@@ -3,10 +3,10 @@
3
3
  Install from npm:
4
4
 
5
5
  ```bash
6
- npm i pragmastat@9.0.0
6
+ npm i pragmastat@10.0.0
7
7
  ```
8
8
 
9
- Source code: https://github.com/AndreyAkinshin/pragmastat/tree/v9.0.0/ts
9
+ Source code: https://github.com/AndreyAkinshin/pragmastat/tree/v10.0.0/ts
10
10
 
11
11
  Pragmastat on npm: https://www.npmjs.com/package/pragmastat
12
12
 
@@ -14,93 +14,68 @@ Pragmastat on npm: https://www.npmjs.com/package/pragmastat
14
14
 
15
15
  ```typescript
16
16
  import {
17
- center, spread, relSpread, shift, ratio, avgSpread, disparity,
17
+ center, spread, shift, ratio, disparity,
18
18
  centerBounds, shiftBounds, ratioBounds,
19
- Rng, Uniform, Additive, Exp, Power, Multiplic
19
+ spreadBounds, disparityBounds,
20
+ Rng, Additive, Multiplic, Exp, Power, Uniform
20
21
  } from '../src';
21
22
 
22
23
  function main() {
23
- // --- Randomization ---
24
-
25
- let rng = new Rng("demo-uniform");
26
- console.log(rng.uniform()); // 0.2640554428629759
27
- console.log(rng.uniform()); // 0.9348534835582796
24
+ // --- One-Sample ---
28
25
 
29
- rng = new Rng("demo-sample");
30
- console.log(rng.sample([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 3)); // [3, 8, 9]
26
+ let x = Array.from({ length: 20 }, (_, i) => i + 1);
31
27
 
32
- rng = new Rng("demo-shuffle");
33
- console.log(rng.shuffle([1, 2, 3, 4, 5])); // [4, 2, 3, 5, 1]
34
-
35
- rng = new Rng("demo-resample");
36
- console.log(rng.resample([1, 2, 3, 4, 5], 7)); // [5, 1, 1, 3, 3, 4, 5]
28
+ console.log(center(x)); // 10.5
29
+ console.log(centerBounds(x, 0.05)); // { lower: 7.5, upper: 13.5 }
30
+ console.log(spread(x)); // 6
31
+ console.log(spreadBounds(x, 0.05, "demo")); // { lower: 2, upper: 10 }
37
32
 
38
- // --- Distribution Sampling ---
39
-
40
- rng = new Rng("demo-dist-uniform");
41
- let dist = new Uniform(0, 10);
42
- console.log(dist.sample(rng)); // 6.54043657816832
43
-
44
- rng = new Rng("demo-dist-additive");
45
- let addDist = new Additive(0, 1);
46
- console.log(addDist.sample(rng)); // 0.17410448679568188
47
-
48
- rng = new Rng("demo-dist-exp");
49
- let expDist = new Exp(1);
50
- console.log(expDist.sample(rng)); // 0.6589065267276553
51
-
52
- rng = new Rng("demo-dist-power");
53
- let powDist = new Power(1, 2);
54
- console.log(powDist.sample(rng)); // 1.023677535537084
33
+ // --- Two-Sample ---
55
34
 
56
- rng = new Rng("demo-dist-multiplic");
57
- let mulDist = new Multiplic(0, 1);
58
- console.log(mulDist.sample(rng)); // 1.1273244602673853
59
-
60
- // --- Single-Sample Statistics ---
35
+ x = Array.from({ length: 30 }, (_, i) => i + 1);
36
+ let y = Array.from({ length: 30 }, (_, i) => i + 21);
61
37
 
62
- let x = [1, 3, 5, 7, 9];
38
+ console.log(shift(x, y)); // -20
39
+ console.log(shiftBounds(x, y, 0.05)); // { lower: -25, upper: -15 }
40
+ console.log(ratio(x, y)); // 0.4366979828269513
41
+ console.log(ratioBounds(x, y, 0.05)); // { lower: 0.31250000000000006, upper: 0.5600000000000003 }
42
+ console.log(disparity(x, y)); // -2.2222222222222223
43
+ console.log(disparityBounds(x, y, 0.05, "demo")); // { lower: -13, upper: -0.8235294117647058 }
63
44
 
64
- console.log(center(x)); // 5
65
- console.log(spread(x)); // 4
66
- console.log(spread(x.map(v => v + 10))); // 4
67
- console.log(spread(x.map(v => v * 2))); // 8
68
- console.log(relSpread(x)); // 0.8
45
+ // --- Randomization ---
69
46
 
70
- // --- Two-Sample Comparison ---
47
+ let rng = new Rng("demo-uniform");
48
+ console.log(rng.uniformFloat()); // 0.2640554428629759
49
+ console.log(rng.uniformFloat()); // 0.9348534835582796
71
50
 
72
- x = [0, 3, 6, 9, 12];
73
- let y = [0, 2, 4, 6, 8];
51
+ rng = new Rng("demo-uniform-int");
52
+ console.log(rng.uniformInt(0, 100)); // 41
74
53
 
75
- console.log(shift(x, y)); // 2
76
- console.log(shift(y, x)); // -2
77
- console.log(avgSpread(x, y)); // 5
78
- console.log(disparity(x, y)); // 0.4
79
- console.log(disparity(y, x)); // -0.4
54
+ rng = new Rng("demo-sample");
55
+ console.log(rng.sample([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 3)); // [3, 8, 9]
80
56
 
81
- x = [1, 2, 4, 8, 16];
82
- y = [2, 4, 8, 16, 32];
83
- console.log(ratio(x, y)); // 0.5
84
- console.log(ratio(y, x)); // 2
57
+ rng = new Rng("demo-resample");
58
+ console.log(rng.resample([1, 2, 3, 4, 5], 7)); // [3, 1, 3, 2, 4, 1, 2]
85
59
 
86
- // --- One-Sample Bounds ---
60
+ rng = new Rng("demo-shuffle");
61
+ console.log(rng.shuffle([1, 2, 3, 4, 5])); // [4, 2, 3, 5, 1]
87
62
 
88
- x = Array.from({ length: 10 }, (_, i) => i + 1);
63
+ // --- Distributions ---
89
64
 
90
- console.log(center(x)); // 5.5
91
- console.log(centerBounds(x, 0.05)); // { lower: 3.5, upper: 7.5 }
65
+ rng = new Rng("demo-dist-additive");
66
+ console.log(new Additive(0, 1).sample(rng)); // 0.17410448679568188
92
67
 
93
- // --- Two-Sample Bounds ---
68
+ rng = new Rng("demo-dist-multiplic");
69
+ console.log(new Multiplic(0, 1).sample(rng)); // 1.1273244602673853
94
70
 
95
- x = Array.from({ length: 30 }, (_, i) => i + 1);
96
- y = Array.from({ length: 30 }, (_, i) => i + 21);
71
+ rng = new Rng("demo-dist-exp");
72
+ console.log(new Exp(1).sample(rng)); // 0.6589065267276553
97
73
 
98
- console.log(shift(x, y)); // -20
99
- console.log(shiftBounds(x, y, 1e-4)); // { lower: -30, upper: -10 }
74
+ rng = new Rng("demo-dist-power");
75
+ console.log(new Power(1, 2).sample(rng)); // 1.023677535537084
100
76
 
101
- x = [1, 2, 3, 4, 5];
102
- y = [2, 3, 4, 5, 6];
103
- console.log(ratioBounds(x, y, 0.05)); // { lower: 0.333..., upper: 1.5 }
77
+ rng = new Rng("demo-dist-uniform");
78
+ console.log(new Uniform(0, 10).sample(rng)); // 6.54043657816832
104
79
  }
105
80
 
106
81
  main();
@@ -9,7 +9,7 @@
9
9
  * This is the smallest ε such that 1.0 + ε ≠ 1.0 in float64 arithmetic.
10
10
  * Represents the distance between 1.0 and the next representable number.
11
11
  *
12
- * Used to avoid log(0) or division by zero when uniform() returns exactly 1.0.
12
+ * Used to avoid log(0) or division by zero when uniformFloat() returns exactly 1.0.
13
13
  * All language implementations use this same value to ensure cross-language
14
14
  * determinism in distribution sampling.
15
15
  */
@@ -23,7 +23,7 @@ export declare const MACHINE_EPSILON = 2.220446049250313e-16;
23
23
  * Unlike machine epsilon (which is the smallest ε where 1+ε ≠ 1), this is the
24
24
  * absolute smallest positive number before underflow to zero.
25
25
  *
26
- * Used to avoid log(0) in Box-Muller transform when uniform() returns exactly 0.
26
+ * Used to avoid log(0) in Box-Muller transform when uniformFloat() returns exactly 0.
27
27
  * All language implementations use this same value to ensure cross-language
28
28
  * determinism in distribution sampling.
29
29
  */
package/dist/constants.js CHANGED
@@ -12,7 +12,7 @@ exports.SMALLEST_POSITIVE_SUBNORMAL = exports.MACHINE_EPSILON = void 0;
12
12
  * This is the smallest ε such that 1.0 + ε ≠ 1.0 in float64 arithmetic.
13
13
  * Represents the distance between 1.0 and the next representable number.
14
14
  *
15
- * Used to avoid log(0) or division by zero when uniform() returns exactly 1.0.
15
+ * Used to avoid log(0) or division by zero when uniformFloat() returns exactly 1.0.
16
16
  * All language implementations use this same value to ensure cross-language
17
17
  * determinism in distribution sampling.
18
18
  */
@@ -26,7 +26,7 @@ exports.MACHINE_EPSILON = 2.220446049250313e-16;
26
26
  * Unlike machine epsilon (which is the smallest ε where 1+ε ≠ 1), this is the
27
27
  * absolute smallest positive number before underflow to zero.
28
28
  *
29
- * Used to avoid log(0) in Box-Muller transform when uniform() returns exactly 0.
29
+ * Used to avoid log(0) in Box-Muller transform when uniformFloat() returns exactly 0.
30
30
  * All language implementations use this same value to ensure cross-language
31
31
  * determinism in distribution sampling.
32
32
  */
@@ -32,8 +32,8 @@ class Additive {
32
32
  }
33
33
  sample(rng) {
34
34
  // Box-Muller transform
35
- let u1 = rng.uniform();
36
- const u2 = rng.uniform();
35
+ let u1 = rng.uniformFloat();
36
+ const u2 = rng.uniformFloat();
37
37
  // Avoid log(0) - use smallest positive subnormal for cross-language consistency
38
38
  if (u1 === 0) {
39
39
  u1 = constants_1.SMALLEST_POSITIVE_SUBNORMAL;
@@ -1 +1 @@
1
- {"version":3,"file":"additive.js","sourceRoot":"","sources":["../../src/distributions/additive.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,4CAA2D;AAI3D;;;;;;;;;GASG;AACH,MAAa,QAAQ;IAInB;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,MAAc;QACtC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,uBAAuB;QACvB,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAEzB,gFAAgF;QAChF,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACb,EAAE,GAAG,uCAA2B,CAAC;QACnC,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEjC,8CAA8C;QAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAzCD,4BAyCC"}
1
+ {"version":3,"file":"additive.js","sourceRoot":"","sources":["../../src/distributions/additive.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,4CAA2D;AAI3D;;;;;;;;;GASG;AACH,MAAa,QAAQ;IAInB;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,MAAc;QACtC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,uBAAuB;QACvB,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAE9B,gFAAgF;QAChF,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACb,EAAE,GAAG,uCAA2B,CAAC;QACnC,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEjC,8CAA8C;QAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAzCD,4BAyCC"}
@@ -30,7 +30,7 @@ class Exp {
30
30
  }
31
31
  sample(rng) {
32
32
  // Inverse CDF method: -ln(1 - U) / rate
33
- let u = rng.uniform();
33
+ let u = rng.uniformFloat();
34
34
  // Avoid log(0) - use machine epsilon for cross-language consistency
35
35
  if (u === 1.0) {
36
36
  u = 1.0 - constants_1.MACHINE_EPSILON;
@@ -1 +1 @@
1
- {"version":3,"file":"exp.js","sourceRoot":"","sources":["../../src/distributions/exp.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,4CAA+C;AAI/C;;;;;;;;;GASG;AACH,MAAa,GAAG;IAGd;;;;;OAKG;IACH,YAAY,IAAY;QACtB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,wCAAwC;QACxC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,oEAAoE;QACpE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,CAAC,GAAG,GAAG,GAAG,2BAAe,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AA7BD,kBA6BC"}
1
+ {"version":3,"file":"exp.js","sourceRoot":"","sources":["../../src/distributions/exp.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,4CAA+C;AAI/C;;;;;;;;;GASG;AACH,MAAa,GAAG;IAGd;;;;;OAKG;IACH,YAAY,IAAY;QACtB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,wCAAwC;QACxC,IAAI,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAC3B,oEAAoE;QACpE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,CAAC,GAAG,GAAG,GAAG,2BAAe,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AA7BD,kBA6BC"}
@@ -35,7 +35,7 @@ class Power {
35
35
  }
36
36
  sample(rng) {
37
37
  // Inverse CDF method: min / (1 - U)^(1/shape)
38
- let u = rng.uniform();
38
+ let u = rng.uniformFloat();
39
39
  // Avoid division by zero - use machine epsilon for cross-language consistency
40
40
  if (u === 1.0) {
41
41
  u = 1.0 - constants_1.MACHINE_EPSILON;
@@ -1 +1 @@
1
- {"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/distributions/power.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,4CAA+C;AAI/C;;;;;;;;;GASG;AACH,MAAa,KAAK;IAIhB;;;;;;OAMG;IACH,YAAY,GAAW,EAAE,KAAa;QACpC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,8CAA8C;QAC9C,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,8EAA8E;QAC9E,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,CAAC,GAAG,GAAG,GAAG,2BAAe,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAnCD,sBAmCC"}
1
+ {"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/distributions/power.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,4CAA+C;AAI/C;;;;;;;;;GASG;AACH,MAAa,KAAK;IAIhB;;;;;;OAMG;IACH,YAAY,GAAW,EAAE,KAAa;QACpC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,8CAA8C;QAC9C,IAAI,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAC3B,8EAA8E;QAC9E,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,CAAC,GAAG,GAAG,GAAG,2BAAe,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAnCD,sBAmCC"}
@@ -28,7 +28,7 @@ class Uniform {
28
28
  this.max = max;
29
29
  }
30
30
  sample(rng) {
31
- return this.min + rng.uniform() * (this.max - this.min);
31
+ return this.min + rng.uniformFloat() * (this.max - this.min);
32
32
  }
33
33
  samples(rng, count) {
34
34
  return Array.from({ length: count }, () => this.sample(rng));
@@ -1 +1 @@
1
- {"version":3,"file":"uniform.js","sourceRoot":"","sources":["../../src/distributions/uniform.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH;;;;;;;GAOG;AACH,MAAa,OAAO;IAIlB;;;;;;OAMG;IACH,YAAY,GAAW,EAAE,GAAW;QAClC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AA1BD,0BA0BC"}
1
+ {"version":3,"file":"uniform.js","sourceRoot":"","sources":["../../src/distributions/uniform.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH;;;;;;;GAOG;AACH,MAAa,OAAO;IAIlB;;;;;;OAMG;IACH,YAAY,GAAW,EAAE,GAAW;QAClC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,CAAC,GAAQ,EAAE,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AA1BD,0BA0BC"}
@@ -23,6 +23,8 @@ export declare function spread(x: number[]): number;
23
23
  /**
24
24
  * Calculate the RelSpread - ratio of Spread to absolute Center
25
25
  *
26
+ * @deprecated Use `spread(x) / Math.abs(center(x))` instead.
27
+ *
26
28
  * Assumptions:
27
29
  * positivity(x) - all values must be strictly positive (ensures Center > 0)
28
30
  *
@@ -61,6 +63,7 @@ export declare function ratio(x: number[], y: number[]): number;
61
63
  * sparity(x) - first sample must be non tie-dominant (Spread > 0)
62
64
  * sparity(y) - second sample must be non tie-dominant (Spread > 0)
63
65
  *
66
+ * @internal
64
67
  * @param x First sample
65
68
  * @param y Second sample
66
69
  * @returns The combined spread estimate
@@ -140,4 +143,28 @@ export declare function centerBounds(x: number[], misrate?: number): Bounds;
140
143
  * @throws AssumptionError if sample is invalid, misrate is out of domain, or sample is tie-dominant
141
144
  */
142
145
  export declare function spreadBounds(x: number[], misrate?: number, seed?: string): Bounds;
146
+ /**
147
+ * Provides distribution-free bounds for AvgSpread using Bonferroni combination.
148
+ *
149
+ * @internal
150
+ * @param x First sample array
151
+ * @param y Second sample array
152
+ * @param misrate Misclassification rate (probability that true avg_spread falls outside bounds)
153
+ * @param seed Optional string seed for deterministic randomization
154
+ * @returns An object containing the lower and upper bounds
155
+ * @throws AssumptionError if input is invalid, misrate is out of domain, or sample is tie-dominant
156
+ */
157
+ export declare function avgSpreadBounds(x: number[], y: number[], misrate?: number, seed?: string): Bounds;
158
+ /**
159
+ * Provides distribution-free bounds for the Disparity estimator (Shift / AvgSpread)
160
+ * using Bonferroni combination of ShiftBounds and AvgSpreadBounds.
161
+ *
162
+ * @param x First sample
163
+ * @param y Second sample
164
+ * @param misrate Misclassification rate
165
+ * @param seed Optional string seed for deterministic randomization
166
+ * @returns An object containing the lower and upper bounds
167
+ * @throws AssumptionError if inputs are invalid, misrate is out of domain, or samples are tie-dominant
168
+ */
169
+ export declare function disparityBounds(x: number[], y: number[], misrate?: number, seed?: string): Bounds;
143
170
  //# sourceMappingURL=estimators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"estimators.d.ts","sourceRoot":"","sources":["../src/estimators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAI1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAM1C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAW7C;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAMtD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAWtD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAkB1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAqB1D;AAED,eAAO,MAAM,eAAe,QAAO,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAwB,GAAG,MAAM,CA8C/F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAwB,GAAG,MAAM,CAyB/F;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAwB,GAAG,MAAM,CAmCnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EAAE,EACX,OAAO,GAAE,MAAwB,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CA4BR"}
1
+ {"version":3,"file":"estimators.d.ts","sourceRoot":"","sources":["../src/estimators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAI1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAM1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAW7C;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAMtD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAWtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAkB1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAqB1D;AAED,eAAO,MAAM,eAAe,QAAO,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAwB,GAAG,MAAM,CA8C/F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAwB,GAAG,MAAM,CAyB/F;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAwB,GAAG,MAAM,CAmCnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EAAE,EACX,OAAO,GAAE,MAAwB,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CA4BR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,MAAM,EAAE,EACX,CAAC,EAAE,MAAM,EAAE,EACX,OAAO,GAAE,MAAwB,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CA4BR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,MAAM,EAAE,EACX,CAAC,EAAE,MAAM,EAAE,EACX,OAAO,GAAE,MAAwB,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CA4DR"}
@@ -15,6 +15,8 @@ exports.shiftBounds = shiftBounds;
15
15
  exports.ratioBounds = ratioBounds;
16
16
  exports.centerBounds = centerBounds;
17
17
  exports.spreadBounds = spreadBounds;
18
+ exports.avgSpreadBounds = avgSpreadBounds;
19
+ exports.disparityBounds = disparityBounds;
18
20
  const fastCenter_1 = require("./fastCenter");
19
21
  const fastSpread_1 = require("./fastSpread");
20
22
  const fastShift_1 = require("./fastShift");
@@ -57,6 +59,8 @@ function spread(x) {
57
59
  /**
58
60
  * Calculate the RelSpread - ratio of Spread to absolute Center
59
61
  *
62
+ * @deprecated Use `spread(x) / Math.abs(center(x))` instead.
63
+ *
60
64
  * Assumptions:
61
65
  * positivity(x) - all values must be strictly positive (ensures Center > 0)
62
66
  *
@@ -121,6 +125,7 @@ function ratio(x, y) {
121
125
  * sparity(x) - first sample must be non tie-dominant (Spread > 0)
122
126
  * sparity(y) - second sample must be non tie-dominant (Spread > 0)
123
127
  *
128
+ * @internal
124
129
  * @param x First sample
125
130
  * @param y Second sample
126
131
  * @returns The combined spread estimate
@@ -336,4 +341,114 @@ function spreadBounds(x, misrate = exports.DEFAULT_MISRATE, seed) {
336
341
  diffs.sort((a, b) => a - b);
337
342
  return { lower: diffs[kLeft - 1], upper: diffs[kRight - 1] };
338
343
  }
344
+ /**
345
+ * Provides distribution-free bounds for AvgSpread using Bonferroni combination.
346
+ *
347
+ * @internal
348
+ * @param x First sample array
349
+ * @param y Second sample array
350
+ * @param misrate Misclassification rate (probability that true avg_spread falls outside bounds)
351
+ * @param seed Optional string seed for deterministic randomization
352
+ * @returns An object containing the lower and upper bounds
353
+ * @throws AssumptionError if input is invalid, misrate is out of domain, or sample is tie-dominant
354
+ */
355
+ function avgSpreadBounds(x, y, misrate = exports.DEFAULT_MISRATE, seed) {
356
+ (0, assumptions_1.checkValidity)(x, 'x');
357
+ (0, assumptions_1.checkValidity)(y, 'y');
358
+ if (isNaN(misrate) || misrate < 0 || misrate > 1)
359
+ throw assumptions_1.AssumptionError.domain('misrate');
360
+ const n = x.length;
361
+ const m = y.length;
362
+ if (n < 2)
363
+ throw assumptions_1.AssumptionError.domain('x');
364
+ if (m < 2)
365
+ throw assumptions_1.AssumptionError.domain('y');
366
+ const alpha = misrate / 2;
367
+ const minX = (0, minMisrate_1.minAchievableMisrateOneSample)(Math.floor(n / 2));
368
+ const minY = (0, minMisrate_1.minAchievableMisrateOneSample)(Math.floor(m / 2));
369
+ if (alpha < minX || alpha < minY)
370
+ throw assumptions_1.AssumptionError.domain('misrate');
371
+ (0, assumptions_1.checkSparity)(x, 'x');
372
+ (0, assumptions_1.checkSparity)(y, 'y');
373
+ const boundsX = spreadBounds(x, alpha, seed);
374
+ const boundsY = spreadBounds(y, alpha, seed);
375
+ const weightX = n / (n + m);
376
+ const weightY = m / (n + m);
377
+ return {
378
+ lower: weightX * boundsX.lower + weightY * boundsY.lower,
379
+ upper: weightX * boundsX.upper + weightY * boundsY.upper,
380
+ };
381
+ }
382
+ /**
383
+ * Provides distribution-free bounds for the Disparity estimator (Shift / AvgSpread)
384
+ * using Bonferroni combination of ShiftBounds and AvgSpreadBounds.
385
+ *
386
+ * @param x First sample
387
+ * @param y Second sample
388
+ * @param misrate Misclassification rate
389
+ * @param seed Optional string seed for deterministic randomization
390
+ * @returns An object containing the lower and upper bounds
391
+ * @throws AssumptionError if inputs are invalid, misrate is out of domain, or samples are tie-dominant
392
+ */
393
+ function disparityBounds(x, y, misrate = exports.DEFAULT_MISRATE, seed) {
394
+ // Check validity (priority 0)
395
+ (0, assumptions_1.checkValidity)(x, 'x');
396
+ (0, assumptions_1.checkValidity)(y, 'y');
397
+ if (isNaN(misrate) || misrate < 0 || misrate > 1)
398
+ throw assumptions_1.AssumptionError.domain('misrate');
399
+ const n = x.length;
400
+ const m = y.length;
401
+ if (n < 2)
402
+ throw assumptions_1.AssumptionError.domain('x');
403
+ if (m < 2)
404
+ throw assumptions_1.AssumptionError.domain('y');
405
+ const minShift = (0, minMisrate_1.minAchievableMisrateTwoSample)(n, m);
406
+ const minX = (0, minMisrate_1.minAchievableMisrateOneSample)(Math.floor(n / 2));
407
+ const minY = (0, minMisrate_1.minAchievableMisrateOneSample)(Math.floor(m / 2));
408
+ const minAvg = 2.0 * Math.max(minX, minY);
409
+ if (misrate < minShift + minAvg)
410
+ throw assumptions_1.AssumptionError.domain('misrate');
411
+ const extra = misrate - (minShift + minAvg);
412
+ const alphaShift = minShift + extra / 2.0;
413
+ const alphaAvg = minAvg + extra / 2.0;
414
+ // Check sparity (priority 2)
415
+ (0, assumptions_1.checkSparity)(x, 'x');
416
+ (0, assumptions_1.checkSparity)(y, 'y');
417
+ const sb = shiftBounds(x, y, alphaShift);
418
+ const ab = avgSpreadBounds(x, y, alphaAvg, seed);
419
+ const la = ab.lower;
420
+ const ua = ab.upper;
421
+ const ls = sb.lower;
422
+ const us = sb.upper;
423
+ if (la > 0.0) {
424
+ const r1 = ls / la;
425
+ const r2 = ls / ua;
426
+ const r3 = us / la;
427
+ const r4 = us / ua;
428
+ const lower = Math.min(r1, r2, r3, r4);
429
+ const upper = Math.max(r1, r2, r3, r4);
430
+ return { lower, upper };
431
+ }
432
+ if (ua <= 0.0) {
433
+ if (ls === 0.0 && us === 0.0)
434
+ return { lower: 0.0, upper: 0.0 };
435
+ if (ls >= 0.0)
436
+ return { lower: 0.0, upper: Infinity };
437
+ if (us <= 0.0)
438
+ return { lower: -Infinity, upper: 0.0 };
439
+ return { lower: -Infinity, upper: Infinity };
440
+ }
441
+ // Default: ua > 0 && la <= 0
442
+ if (ls > 0.0)
443
+ return { lower: ls / ua, upper: Infinity };
444
+ if (us < 0.0)
445
+ return { lower: -Infinity, upper: us / ua };
446
+ if (ls === 0.0 && us === 0.0)
447
+ return { lower: 0.0, upper: 0.0 };
448
+ if (ls === 0.0 && us > 0.0)
449
+ return { lower: 0.0, upper: Infinity };
450
+ if (ls < 0.0 && us === 0.0)
451
+ return { lower: -Infinity, upper: 0.0 };
452
+ return { lower: -Infinity, upper: Infinity };
453
+ }
339
454
  //# sourceMappingURL=estimators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"estimators.js","sourceRoot":"","sources":["../src/estimators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"estimators.js","sourceRoot":"","sources":["../src/estimators.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * A collection of robust statistical estimators for real-world data analysis.
5
5
  */
6
6
  export { AssumptionId, AssumptionError, type Subject, type Violation } from './assumptions';
7
- export { DEFAULT_MISRATE, center, spread, relSpread, shift, ratio, avgSpread, disparity, shiftBounds, ratioBounds, centerBounds, spreadBounds, type Bounds, } from './estimators';
7
+ export { DEFAULT_MISRATE, center, spread, relSpread, shift, ratio, disparity, shiftBounds, ratioBounds, centerBounds, spreadBounds, disparityBounds, type Bounds, } from './estimators';
8
8
  export { Rng } from './rng';
9
9
  export { type Distribution, Uniform, Additive, Multiplic, Exp, Power } from './distributions/index';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAG5F,OAAO,EACL,eAAe,EACf,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,KAAK,MAAM,GACZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,KAAK,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAG5F,OAAO,EACL,eAAe,EACf,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,KAAK,MAAM,GACZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,KAAK,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * A collection of robust statistical estimators for real-world data analysis.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.Power = exports.Exp = exports.Multiplic = exports.Additive = exports.Uniform = exports.Rng = exports.spreadBounds = exports.centerBounds = exports.ratioBounds = exports.shiftBounds = exports.disparity = exports.avgSpread = exports.ratio = exports.shift = exports.relSpread = exports.spread = exports.center = exports.DEFAULT_MISRATE = exports.AssumptionError = exports.AssumptionId = void 0;
8
+ exports.Power = exports.Exp = exports.Multiplic = exports.Additive = exports.Uniform = exports.Rng = exports.disparityBounds = exports.spreadBounds = exports.centerBounds = exports.ratioBounds = exports.shiftBounds = exports.disparity = exports.ratio = exports.shift = exports.relSpread = exports.spread = exports.center = exports.DEFAULT_MISRATE = exports.AssumptionError = exports.AssumptionId = void 0;
9
9
  // Assumptions
10
10
  var assumptions_1 = require("./assumptions");
11
11
  Object.defineProperty(exports, "AssumptionId", { enumerable: true, get: function () { return assumptions_1.AssumptionId; } });
@@ -18,12 +18,12 @@ Object.defineProperty(exports, "spread", { enumerable: true, get: function () {
18
18
  Object.defineProperty(exports, "relSpread", { enumerable: true, get: function () { return estimators_1.relSpread; } });
19
19
  Object.defineProperty(exports, "shift", { enumerable: true, get: function () { return estimators_1.shift; } });
20
20
  Object.defineProperty(exports, "ratio", { enumerable: true, get: function () { return estimators_1.ratio; } });
21
- Object.defineProperty(exports, "avgSpread", { enumerable: true, get: function () { return estimators_1.avgSpread; } });
22
21
  Object.defineProperty(exports, "disparity", { enumerable: true, get: function () { return estimators_1.disparity; } });
23
22
  Object.defineProperty(exports, "shiftBounds", { enumerable: true, get: function () { return estimators_1.shiftBounds; } });
24
23
  Object.defineProperty(exports, "ratioBounds", { enumerable: true, get: function () { return estimators_1.ratioBounds; } });
25
24
  Object.defineProperty(exports, "centerBounds", { enumerable: true, get: function () { return estimators_1.centerBounds; } });
26
25
  Object.defineProperty(exports, "spreadBounds", { enumerable: true, get: function () { return estimators_1.spreadBounds; } });
26
+ Object.defineProperty(exports, "disparityBounds", { enumerable: true, get: function () { return estimators_1.disparityBounds; } });
27
27
  var rng_1 = require("./rng");
28
28
  Object.defineProperty(exports, "Rng", { enumerable: true, get: function () { return rng_1.Rng; } });
29
29
  var index_1 = require("./distributions/index");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,cAAc;AACd,6CAA4F;AAAnF,2GAAA,YAAY,OAAA;AAAE,8GAAA,eAAe,OAAA;AAEtC,aAAa;AACb,2CAcsB;AAbpB,6GAAA,eAAe,OAAA;AACf,oGAAA,MAAM,OAAA;AACN,oGAAA,MAAM,OAAA;AACN,uGAAA,SAAS,OAAA;AACT,mGAAA,KAAK,OAAA;AACL,mGAAA,KAAK,OAAA;AACL,uGAAA,SAAS,OAAA;AACT,uGAAA,SAAS,OAAA;AACT,yGAAA,WAAW,OAAA;AACX,yGAAA,WAAW,OAAA;AACX,0GAAA,YAAY,OAAA;AACZ,0GAAA,YAAY,OAAA;AAId,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AAEZ,+CAAoG;AAAxE,gGAAA,OAAO,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,4FAAA,GAAG,OAAA;AAAE,8FAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,cAAc;AACd,6CAA4F;AAAnF,2GAAA,YAAY,OAAA;AAAE,8GAAA,eAAe,OAAA;AAEtC,aAAa;AACb,2CAcsB;AAbpB,6GAAA,eAAe,OAAA;AACf,oGAAA,MAAM,OAAA;AACN,oGAAA,MAAM,OAAA;AACN,uGAAA,SAAS,OAAA;AACT,mGAAA,KAAK,OAAA;AACL,mGAAA,KAAK,OAAA;AACL,uGAAA,SAAS,OAAA;AACT,yGAAA,WAAW,OAAA;AACX,yGAAA,WAAW,OAAA;AACX,0GAAA,YAAY,OAAA;AACZ,0GAAA,YAAY,OAAA;AACZ,6GAAA,eAAe,OAAA;AAIjB,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AAEZ,+CAAoG;AAAxE,gGAAA,OAAO,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,4FAAA,GAAG,OAAA;AAAE,8FAAA,KAAK,OAAA"}
package/dist/rng.d.ts CHANGED
@@ -13,7 +13,7 @@
13
13
  * @example
14
14
  * // Create from string seed
15
15
  * const rng = new Rng("demo-uniform");
16
- * const value = rng.uniform();
16
+ * const value = rng.uniformFloat();
17
17
  *
18
18
  * @example
19
19
  * // Shuffle an array
@@ -42,7 +42,7 @@ export declare class Rng {
42
42
  *
43
43
  * @returns Random value in [0, 1).
44
44
  */
45
- uniform(): number;
45
+ uniformFloat(): number;
46
46
  /**
47
47
  * Generate a uniform random float in [min, max).
48
48
  *
@@ -50,7 +50,7 @@ export declare class Rng {
50
50
  * @param max - Maximum value (exclusive).
51
51
  * @returns Random value in [min, max). Returns min if min >= max.
52
52
  */
53
- uniformRange(min: number, max: number): number;
53
+ uniformFloatRange(min: number, max: number): number;
54
54
  /**
55
55
  * Generate a uniform random integer in [min, max).
56
56
  *
@@ -81,16 +81,6 @@ export declare class Rng {
81
81
  * @returns Random boolean value.
82
82
  */
83
83
  uniformBool(): boolean;
84
- /**
85
- * Return a shuffled copy of the input array.
86
- *
87
- * Uses the Fisher-Yates shuffle algorithm for uniform distribution.
88
- * The original array is not modified.
89
- *
90
- * @param x - Input array to shuffle.
91
- * @returns Shuffled copy of the input.
92
- */
93
- shuffle<T>(x: T[]): T[];
94
84
  /**
95
85
  * Sample k elements from the input array without replacement.
96
86
  *
@@ -98,9 +88,9 @@ export declare class Rng {
98
88
  * Returns up to k elements; if k >= x.length, returns all elements.
99
89
  *
100
90
  * @param x - Input array to sample from.
101
- * @param k - Number of elements to sample. Must be non-negative.
91
+ * @param k - Number of elements to sample. Must be positive.
102
92
  * @returns Array of k sampled elements.
103
- * @throws Error if k is negative.
93
+ * @throws Error if k is not positive.
104
94
  */
105
95
  sample<T>(x: T[], k: number): T[];
106
96
  /**
@@ -109,10 +99,20 @@ export declare class Rng {
109
99
  * Each element in the result is independently drawn from the input array.
110
100
  *
111
101
  * @param x - Input array to sample from.
112
- * @param k - Number of elements to sample. Must be non-negative.
102
+ * @param k - Number of elements to sample. Must be positive.
113
103
  * @returns Array of k sampled elements with replacement.
114
- * @throws Error if k is negative.
104
+ * @throws Error if k is not positive.
115
105
  */
116
106
  resample<T>(x: T[], k: number): T[];
107
+ /**
108
+ * Return a shuffled copy of the input array.
109
+ *
110
+ * Uses the Fisher-Yates shuffle algorithm for uniform distribution.
111
+ * The original array is not modified.
112
+ *
113
+ * @param x - Input array to shuffle.
114
+ * @returns Shuffled copy of the input.
115
+ */
116
+ shuffle<T>(x: T[]): T[];
117
117
  }
118
118
  //# sourceMappingURL=rng.d.ts.map
package/dist/rng.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rng.d.ts","sourceRoot":"","sources":["../src/rng.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,KAAK,CAAqB;IAElC;;;;;;OAMG;gBACS,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAmBlC;;;;;;OAMG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;;;OAMG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAQ9C;;;;;;;;;;OAUG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAK5C;;;;;;;;;;OAUG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAQ/C;;;;OAIG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAavB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAwBjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;CAgBpC"}
1
+ {"version":3,"file":"rng.d.ts","sourceRoot":"","sources":["../src/rng.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,KAAK,CAAqB;IAElC;;;;;;OAMG;gBACS,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAqBlC;;;;;;OAMG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;OAMG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAQnD;;;;;;;;;;OAUG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAK5C;;;;;;;;;;OAUG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAQ/C;;;;OAIG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IA2BjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAiBnC;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;CAexB"}
package/dist/rng.js CHANGED
@@ -17,7 +17,7 @@ const xoshiro256_1 = require("./xoshiro256");
17
17
  * @example
18
18
  * // Create from string seed
19
19
  * const rng = new Rng("demo-uniform");
20
- * const value = rng.uniform();
20
+ * const value = rng.uniformFloat();
21
21
  *
22
22
  * @example
23
23
  * // Shuffle an array
@@ -46,7 +46,9 @@ class Rng {
46
46
  seedBigInt = (0, xoshiro256_1.fnv1aHash)(seed);
47
47
  }
48
48
  else {
49
- // Convert number to bigint, handling negative numbers via two's complement
49
+ // Convert number to bigint, handling negative numbers via two's complement.
50
+ // Note: Number seeds > 2^53 lose precision in the Number→BigInt conversion;
51
+ // use a string seed or BigInt literal for large integer seeds.
50
52
  seedBigInt = BigInt.asIntN(64, BigInt(seed));
51
53
  }
52
54
  this.inner = new xoshiro256_1.Xoshiro256PlusPlus(seedBigInt);
@@ -61,8 +63,8 @@ class Rng {
61
63
  *
62
64
  * @returns Random value in [0, 1).
63
65
  */
64
- uniform() {
65
- return this.inner.uniform();
66
+ uniformFloat() {
67
+ return this.inner.uniformFloat();
66
68
  }
67
69
  /**
68
70
  * Generate a uniform random float in [min, max).
@@ -71,8 +73,8 @@ class Rng {
71
73
  * @param max - Maximum value (exclusive).
72
74
  * @returns Random value in [min, max). Returns min if min >= max.
73
75
  */
74
- uniformRange(min, max) {
75
- return this.inner.uniformRange(min, max);
76
+ uniformFloatRange(min, max) {
77
+ return this.inner.uniformFloatRange(min, max);
76
78
  }
77
79
  // ========================================================================
78
80
  // Integer Methods
@@ -117,25 +119,6 @@ class Rng {
117
119
  uniformBool() {
118
120
  return this.inner.uniformBool();
119
121
  }
120
- /**
121
- * Return a shuffled copy of the input array.
122
- *
123
- * Uses the Fisher-Yates shuffle algorithm for uniform distribution.
124
- * The original array is not modified.
125
- *
126
- * @param x - Input array to shuffle.
127
- * @returns Shuffled copy of the input.
128
- */
129
- shuffle(x) {
130
- const result = [...x];
131
- const n = result.length;
132
- // Fisher-Yates shuffle (backwards)
133
- for (let i = n - 1; i > 0; i--) {
134
- const j = this.uniformInt(0, i + 1);
135
- [result[i], result[j]] = [result[j], result[i]];
136
- }
137
- return result;
138
- }
139
122
  /**
140
123
  * Sample k elements from the input array without replacement.
141
124
  *
@@ -143,13 +126,16 @@ class Rng {
143
126
  * Returns up to k elements; if k >= x.length, returns all elements.
144
127
  *
145
128
  * @param x - Input array to sample from.
146
- * @param k - Number of elements to sample. Must be non-negative.
129
+ * @param k - Number of elements to sample. Must be positive.
147
130
  * @returns Array of k sampled elements.
148
- * @throws Error if k is negative.
131
+ * @throws Error if k is not positive.
149
132
  */
150
133
  sample(x, k) {
151
- if (k < 0) {
152
- throw new Error('sample: k must be non-negative');
134
+ if (k <= 0) {
135
+ throw new Error('sample: k must be positive');
136
+ }
137
+ if (x.length === 0) {
138
+ throw new Error('sample: cannot sample from empty array');
153
139
  }
154
140
  const n = x.length;
155
141
  if (k >= n) {
@@ -160,7 +146,7 @@ class Rng {
160
146
  for (let i = 0; i < n && remaining > 0; i++) {
161
147
  const available = n - i;
162
148
  // Probability of selecting this item: remaining / available
163
- if (this.uniform() * available < remaining) {
149
+ if (this.uniformFloat() * available < remaining) {
164
150
  result.push(x[i]);
165
151
  remaining--;
166
152
  }
@@ -173,13 +159,13 @@ class Rng {
173
159
  * Each element in the result is independently drawn from the input array.
174
160
  *
175
161
  * @param x - Input array to sample from.
176
- * @param k - Number of elements to sample. Must be non-negative.
162
+ * @param k - Number of elements to sample. Must be positive.
177
163
  * @returns Array of k sampled elements with replacement.
178
- * @throws Error if k is negative.
164
+ * @throws Error if k is not positive.
179
165
  */
180
166
  resample(x, k) {
181
- if (k < 0) {
182
- throw new Error('resample: k must be non-negative');
167
+ if (k <= 0) {
168
+ throw new Error('resample: k must be positive');
183
169
  }
184
170
  const n = x.length;
185
171
  if (n === 0) {
@@ -192,6 +178,28 @@ class Rng {
192
178
  }
193
179
  return result;
194
180
  }
181
+ /**
182
+ * Return a shuffled copy of the input array.
183
+ *
184
+ * Uses the Fisher-Yates shuffle algorithm for uniform distribution.
185
+ * The original array is not modified.
186
+ *
187
+ * @param x - Input array to shuffle.
188
+ * @returns Shuffled copy of the input.
189
+ */
190
+ shuffle(x) {
191
+ if (x.length === 0) {
192
+ throw new Error('shuffle: cannot shuffle empty array');
193
+ }
194
+ const result = [...x];
195
+ const n = result.length;
196
+ // Fisher-Yates shuffle (backwards)
197
+ for (let i = n - 1; i > 0; i--) {
198
+ const j = this.uniformInt(0, i + 1);
199
+ [result[i], result[j]] = [result[j], result[i]];
200
+ }
201
+ return result;
202
+ }
195
203
  }
196
204
  exports.Rng = Rng;
197
205
  //# sourceMappingURL=rng.js.map
package/dist/rng.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rng.js","sourceRoot":"","sources":["../src/rng.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rng.js","sourceRoot":"","sources":["../src/rng.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ function signMarginRandomized(n, misrate, rng) {
24
24
  const logNum = logTarget > logCdfLow ? logSubExp(logTarget, logCdfLow) : -Infinity;
25
25
  let p = isFinite(logPmfHigh) && isFinite(logNum) ? Math.exp(logNum - logPmfHigh) : 0;
26
26
  p = Math.max(0, Math.min(1, p));
27
- const u = rng.uniform();
27
+ const u = rng.uniformFloat();
28
28
  const r = u < p ? rLow + 1 : rLow;
29
29
  return r * 2;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signMargin.js","sourceRoot":"","sources":["../src/signMargin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signMargin.js","sourceRoot":"","sources":["../src/signMargin.ts"],"names":[],"mappings":"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"}
@@ -10,22 +10,26 @@
10
10
  *
11
11
  * This is the jump-free version of the algorithm. It passes BigCrush
12
12
  * and is used by .NET 6+, Julia, and Rust's rand crate.
13
+ *
14
+ * @internal Not part of the public API — use {@link Rng} instead.
13
15
  */
14
16
  export declare class Xoshiro256PlusPlus {
15
17
  private state;
16
18
  constructor(seed: bigint);
17
19
  nextU64(): bigint;
18
- uniform(): number;
19
- uniformRange(min: number, max: number): number;
20
+ uniformFloat(): number;
21
+ uniformFloatRange(min: number, max: number): number;
20
22
  /**
21
23
  * Generate a uniform integer in [min, max).
22
- * @throws RangeError if max - min exceeds i64 range.
24
+ * @throws RangeError if max - min exceeds u64 range.
23
25
  */
24
26
  uniformInt(min: bigint, max: bigint): bigint;
25
27
  uniformBool(): boolean;
26
28
  }
27
29
  /**
28
- * Compute FNV-1a 64-bit hash of a string
30
+ * Compute FNV-1a 64-bit hash of a string.
31
+ *
32
+ * @internal Not part of the public API — used by {@link Rng} for string seeds.
29
33
  */
30
34
  export declare function fnv1aHash(s: string): bigint;
31
35
  //# sourceMappingURL=xoshiro256.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xoshiro256.d.ts","sourceRoot":"","sources":["../src/xoshiro256.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2BH;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAmC;gBAEpC,IAAI,EAAE,MAAM;IAKxB,OAAO,IAAI,MAAM;IAqBjB,OAAO,IAAI,MAAM;IAMjB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAS9C;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAgB5C,WAAW,IAAI,OAAO;CAGvB;AAMD;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAW3C"}
1
+ {"version":3,"file":"xoshiro256.d.ts","sourceRoot":"","sources":["../src/xoshiro256.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2BH;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAmC;gBAEpC,IAAI,EAAE,MAAM;IAKxB,OAAO,IAAI,MAAM;IAqBjB,YAAY,IAAI,MAAM;IAQtB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IASnD;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAe5C,WAAW,IAAI,OAAO;CAGvB;AAMD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAW3C"}
@@ -33,6 +33,8 @@ class SplitMix64 {
33
33
  *
34
34
  * This is the jump-free version of the algorithm. It passes BigCrush
35
35
  * and is used by .NET 6+, Julia, and Rust's rand crate.
36
+ *
37
+ * @internal Not part of the public API — use {@link Rng} instead.
36
38
  */
37
39
  class Xoshiro256PlusPlus {
38
40
  constructor(seed) {
@@ -54,31 +56,32 @@ class Xoshiro256PlusPlus {
54
56
  // ========================================================================
55
57
  // Floating Point Methods
56
58
  // ========================================================================
57
- uniform() {
59
+ uniformFloat() {
58
60
  // Use upper 53 bits for maximum precision in float64
59
61
  const u64 = this.nextU64();
60
62
  return Number(u64 >> 11n) * (1.0 / Number(1n << 53n));
61
63
  }
62
- uniformRange(min, max) {
64
+ // Note: FP rounding in min + (max-min)*u can theoretically yield max
65
+ // for extreme values of (max-min). Acceptable for statistical use.
66
+ uniformFloatRange(min, max) {
63
67
  if (min >= max)
64
68
  return min;
65
- return min + (max - min) * this.uniform();
69
+ return min + (max - min) * this.uniformFloat();
66
70
  }
67
71
  // ========================================================================
68
72
  // Integer Methods
69
73
  // ========================================================================
70
74
  /**
71
75
  * Generate a uniform integer in [min, max).
72
- * @throws RangeError if max - min exceeds i64 range.
76
+ * @throws RangeError if max - min exceeds u64 range.
73
77
  */
74
78
  uniformInt(min, max) {
75
79
  if (min >= max) {
76
80
  return min;
77
81
  }
78
82
  const range = max - min;
79
- // Validate range fits in i64 (for cross-language consistency)
80
- if (range > 0x7fffffffffffffffn) {
81
- throw new RangeError('uniform_int: range overflow (max - min exceeds i64)');
83
+ if (range > 0xffffffffffffffffn) {
84
+ throw new RangeError('uniform_int: range overflow (max - min exceeds u64)');
82
85
  }
83
86
  return min + (this.nextU64() % range);
84
87
  }
@@ -86,7 +89,7 @@ class Xoshiro256PlusPlus {
86
89
  // Boolean Methods
87
90
  // ========================================================================
88
91
  uniformBool() {
89
- return this.uniform() < 0.5;
92
+ return this.uniformFloat() < 0.5;
90
93
  }
91
94
  }
92
95
  exports.Xoshiro256PlusPlus = Xoshiro256PlusPlus;
@@ -94,7 +97,9 @@ exports.Xoshiro256PlusPlus = Xoshiro256PlusPlus;
94
97
  const FNV_OFFSET_BASIS = 0xcbf29ce484222325n;
95
98
  const FNV_PRIME = 0x00000100000001b3n;
96
99
  /**
97
- * Compute FNV-1a 64-bit hash of a string
100
+ * Compute FNV-1a 64-bit hash of a string.
101
+ *
102
+ * @internal Not part of the public API — used by {@link Rng} for string seeds.
98
103
  */
99
104
  function fnv1aHash(s) {
100
105
  let hash = FNV_OFFSET_BASIS;
@@ -1 +1 @@
1
- {"version":3,"file":"xoshiro256.js","sourceRoot":"","sources":["../src/xoshiro256.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xoshiro256.js","sourceRoot":"","sources":["../src/xoshiro256.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pragmastat",
3
- "version": "9.0.0",
3
+ "version": "10.0.0",
4
4
  "description": "Pragmastat: Pragmatic Statistical Toolkit",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",