pimath 0.0.88 → 0.0.90
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/dev/pi.js +102 -68
- package/dev/pi.js.map +1 -1
- package/dist/pi.js +103 -69
- package/dist/pi.js.map +1 -1
- package/dist/pi.min.js +1 -1
- package/dist/pi.min.js.map +1 -1
- package/esm/maths/algebra/equation.js +76 -61
- package/esm/maths/algebra/equation.js.map +1 -1
- package/esm/maths/coefficients/fraction.js +1 -1
- package/esm/maths/coefficients/fraction.js.map +1 -1
- package/esm/maths/numeric.d.ts +2 -1
- package/esm/maths/numeric.js +8 -5
- package/esm/maths/numeric.js.map +1 -1
- package/esm/maths/randomization/random.d.ts +1 -0
- package/esm/maths/randomization/random.js +4 -0
- package/esm/maths/randomization/random.js.map +1 -1
- package/esm/maths/randomization/rndFraction.js +5 -1
- package/esm/maths/randomization/rndFraction.js.map +1 -1
- package/esm/maths/randomization/rndHelpers.d.ts +1 -3
- package/esm/maths/randomization/rndHelpers.js +8 -0
- package/esm/maths/randomization/rndHelpers.js.map +1 -1
- package/package.json +1 -1
- package/src/maths/algebra/equation.ts +84 -60
- package/src/maths/coefficients/fraction.ts +1 -1
- package/src/maths/numeric.ts +9 -5
- package/src/maths/randomization/random.ts +4 -0
- package/src/maths/randomization/rndFraction.ts +5 -1
- package/src/maths/randomization/rndHelpers.ts +10 -0
- package/tests/algebra/equation.test.ts +8 -0
- package/tests/coefficients/fraction.test.ts +17 -0
- package/tests/custom.test.ts +31 -0
- package/tests/numeric.test.ts +11 -2
package/dist/pi.js
CHANGED
|
@@ -475,70 +475,85 @@ class Equation {
|
|
|
475
475
|
// -b +- coeff\sqrt{radical}
|
|
476
476
|
// -------------------------
|
|
477
477
|
// 2a
|
|
478
|
-
let gcd = numeric_1.Numeric.gcd(b, 2 * a, nthDelta.coefficient);
|
|
478
|
+
let gcd = numeric_1.Numeric.gcd(b, 2 * a, nthDelta.coefficient), am = a / gcd, bm = b / gcd;
|
|
479
479
|
nthDelta.coefficient = nthDelta.coefficient / gcd;
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
if (2 * a / gcd === 1) {
|
|
484
|
-
this._solutions = [
|
|
485
|
-
{
|
|
486
|
-
tex: `${-b / gcd} - ${nthDelta.tex}`,
|
|
487
|
-
value: realX1,
|
|
488
|
-
exact: false // TODO: implement exact value with nthroot
|
|
489
|
-
},
|
|
490
|
-
{
|
|
491
|
-
tex: `${-b / gcd} + ${nthDelta.tex}`,
|
|
492
|
-
value: realX2,
|
|
493
|
-
exact: false
|
|
494
|
-
},
|
|
495
|
-
];
|
|
496
|
-
}
|
|
497
|
-
else {
|
|
498
|
-
this._solutions = [
|
|
499
|
-
{
|
|
500
|
-
tex: `\\frac{${-b / gcd} - ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
501
|
-
value: realX1,
|
|
502
|
-
exact: false
|
|
503
|
-
},
|
|
504
|
-
{
|
|
505
|
-
tex: `\\frac{${-b / gcd} + ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
506
|
-
value: realX2,
|
|
507
|
-
exact: false
|
|
508
|
-
},
|
|
509
|
-
];
|
|
510
|
-
}
|
|
480
|
+
if (a < 0) {
|
|
481
|
+
am = -am;
|
|
482
|
+
bm = -bm;
|
|
511
483
|
}
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
exact: false
|
|
519
|
-
},
|
|
520
|
-
{
|
|
521
|
-
tex: `${nthDelta.tex}`,
|
|
522
|
-
value: realX2,
|
|
523
|
-
exact: false
|
|
524
|
-
},
|
|
525
|
-
];
|
|
526
|
-
}
|
|
527
|
-
else {
|
|
528
|
-
this._solutions = [
|
|
529
|
-
{
|
|
530
|
-
tex: `\\frac{- ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
531
|
-
value: realX1,
|
|
532
|
-
exact: false
|
|
533
|
-
},
|
|
534
|
-
{
|
|
535
|
-
tex: `\\frac{${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
536
|
-
value: realX2,
|
|
537
|
-
exact: false
|
|
538
|
-
},
|
|
539
|
-
];
|
|
540
|
-
}
|
|
484
|
+
let tex1 = "", tex2 = "";
|
|
485
|
+
tex1 = `${bm !== 0 ? ((-bm) + ' - ') : ''}${nthDelta.tex}`;
|
|
486
|
+
tex2 = `${bm !== 0 ? ((-bm) + ' + ') : ''}${nthDelta.tex}`;
|
|
487
|
+
if (am !== 1) {
|
|
488
|
+
tex1 = `\\frac{ ${tex1} }{ ${2 * am} }`;
|
|
489
|
+
tex2 = `\\frac{ ${tex2} }{ ${2 * am} }`;
|
|
541
490
|
}
|
|
491
|
+
this._solutions = [
|
|
492
|
+
{
|
|
493
|
+
tex: tex1, value: realX1, exact: false
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
tex: tex2, value: realX2, exact: false
|
|
497
|
+
},
|
|
498
|
+
];
|
|
499
|
+
// if (b !== 0) {
|
|
500
|
+
// if (2 * a / gcd === 1) {
|
|
501
|
+
// this._solutions = [
|
|
502
|
+
// {
|
|
503
|
+
// tex: `${-b / gcd} - ${nthDelta.tex}`,
|
|
504
|
+
// value: realX1,
|
|
505
|
+
// exact: false // TODO: implement exact value with nthroot
|
|
506
|
+
// },
|
|
507
|
+
// {
|
|
508
|
+
// tex: `${-b / gcd} + ${nthDelta.tex}`,
|
|
509
|
+
// value: realX2,
|
|
510
|
+
// exact: false
|
|
511
|
+
// },
|
|
512
|
+
//
|
|
513
|
+
// ]
|
|
514
|
+
// } else {
|
|
515
|
+
// this._solutions = [
|
|
516
|
+
// {
|
|
517
|
+
// tex: `\\frac{${-b / gcd} - ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
518
|
+
// value: realX1,
|
|
519
|
+
// exact: false
|
|
520
|
+
// },
|
|
521
|
+
// {
|
|
522
|
+
// tex: `\\frac{${-b / gcd} + ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
523
|
+
// value: realX2,
|
|
524
|
+
// exact: false
|
|
525
|
+
// },
|
|
526
|
+
// ]
|
|
527
|
+
// }
|
|
528
|
+
// } else {
|
|
529
|
+
// if (2 * a / gcd === 1) {
|
|
530
|
+
// this._solutions = [
|
|
531
|
+
// {
|
|
532
|
+
// tex: `- ${nthDelta.tex}`,
|
|
533
|
+
// value: realX1,
|
|
534
|
+
// exact: false
|
|
535
|
+
// },
|
|
536
|
+
// {
|
|
537
|
+
// tex: `${nthDelta.tex}`,
|
|
538
|
+
// value: realX2,
|
|
539
|
+
// exact: false
|
|
540
|
+
// },
|
|
541
|
+
// ]
|
|
542
|
+
// } else {
|
|
543
|
+
// this._solutions = [
|
|
544
|
+
// {
|
|
545
|
+
// tex: `\\frac{- ${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
546
|
+
// value: realX1,
|
|
547
|
+
// exact: false
|
|
548
|
+
// },
|
|
549
|
+
// {
|
|
550
|
+
// tex: `\\frac{${nthDelta.tex} }{ ${2 * a / gcd} }`,
|
|
551
|
+
// value: realX2,
|
|
552
|
+
// exact: false
|
|
553
|
+
// },
|
|
554
|
+
// ]
|
|
555
|
+
// }
|
|
556
|
+
// }
|
|
542
557
|
}
|
|
543
558
|
else {
|
|
544
559
|
// -b +- d / 2a
|
|
@@ -4113,7 +4128,7 @@ class Fraction {
|
|
|
4113
4128
|
// The given value is a float number
|
|
4114
4129
|
// Get the number of decimals after the float sign
|
|
4115
4130
|
let [unit, decimal] = (value.toString()).split('.');
|
|
4116
|
-
let p = decimal.length;
|
|
4131
|
+
let p = decimal ? decimal.length : 0;
|
|
4117
4132
|
// Detect if the decimal part is periodic or not...
|
|
4118
4133
|
// Transform the float number in two integer
|
|
4119
4134
|
if (denominatorOrPeriodic === undefined) {
|
|
@@ -6488,13 +6503,13 @@ class Numeric {
|
|
|
6488
6503
|
* Get the list of the nth first prime numbers.
|
|
6489
6504
|
* @param nb : number of primes to choose from
|
|
6490
6505
|
*/
|
|
6491
|
-
static
|
|
6492
|
-
let
|
|
6506
|
+
static primes(nb) {
|
|
6507
|
+
let primesValues = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129, 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457, 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751, 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011, 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261, 5273, 5279, 5281, 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387, 5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791, 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939, 5953, 5981, 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, 6089, 6091, 6101, 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, 6271, 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, 6421, 6427, 6449, 6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, 6577, 6581, 6599, 6607, 6619, 6637, 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779, 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947, 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103, 7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253, 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, 7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621, 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757, 7759, 7789, 7793, 7817, 7823, 7829, 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, 7927, 7933, 7937, 7949, 7951, 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161, 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, 8317, 8329, 8353, 8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447, 8461, 8467, 8501, 8513, 8521, 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597, 8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, 8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, 8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, 8837, 8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011, 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, 9187, 9199, 9203, 9209, 9221, 9227, 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341, 9343, 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, 9497, 9511, 9521, 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, 9631, 9643, 9649, 9661, 9677, 9679, 9689, 9697, 9719, 9721, 9733, 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817, 9829, 9833, 9839, 9851, 9857, 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973];
|
|
6493
6508
|
if (nb === undefined) {
|
|
6494
|
-
return
|
|
6509
|
+
return primesValues;
|
|
6495
6510
|
}
|
|
6496
6511
|
else {
|
|
6497
|
-
return
|
|
6512
|
+
return primesValues.slice(0, Math.min(primesValues.length, nb));
|
|
6498
6513
|
}
|
|
6499
6514
|
}
|
|
6500
6515
|
/**
|
|
@@ -6559,6 +6574,10 @@ class Numeric {
|
|
|
6559
6574
|
}
|
|
6560
6575
|
return Math.abs(g);
|
|
6561
6576
|
}
|
|
6577
|
+
static divideNumbersByGCD(...values) {
|
|
6578
|
+
let gcd = Numeric.gcd(...values);
|
|
6579
|
+
return values.map(x => x / gcd);
|
|
6580
|
+
}
|
|
6562
6581
|
/**
|
|
6563
6582
|
* Least Common Multiple
|
|
6564
6583
|
* @param values: list of numbers
|
|
@@ -6606,7 +6625,6 @@ class Numeric {
|
|
|
6606
6625
|
// New tested values.
|
|
6607
6626
|
const mod = extractDecimalPart(value + epsilon, epsilonNumberOfDigits), mod0 = mod.match(/0+$/g);
|
|
6608
6627
|
if (mod0 && mod0[0].length >= number_of_digits) {
|
|
6609
|
-
// The value can be changed. Remove all zeros!
|
|
6610
6628
|
return +((value + epsilon).toString().split(mod0[0])[0]);
|
|
6611
6629
|
}
|
|
6612
6630
|
}
|
|
@@ -6685,6 +6703,10 @@ var Random;
|
|
|
6685
6703
|
return rndHelpers_1.rndHelpers.randomIntSym(max, allowZero);
|
|
6686
6704
|
}
|
|
6687
6705
|
Random.numberSym = numberSym;
|
|
6706
|
+
function prime(max) {
|
|
6707
|
+
return rndHelpers_1.rndHelpers.randomPrime(max);
|
|
6708
|
+
}
|
|
6709
|
+
Random.prime = prime;
|
|
6688
6710
|
function bool(percent) {
|
|
6689
6711
|
return rndHelpers_1.rndHelpers.randomBool(percent);
|
|
6690
6712
|
}
|
|
@@ -6761,7 +6783,11 @@ class rndFraction extends randomCore_1.randomCore {
|
|
|
6761
6783
|
Q.denominator = 1;
|
|
6762
6784
|
}
|
|
6763
6785
|
else {
|
|
6764
|
-
|
|
6786
|
+
let securityCount = 0;
|
|
6787
|
+
while (Q.isRelative() && securityCount < 10) {
|
|
6788
|
+
Q.denominator = random_1.Random.number(1, this._config.max);
|
|
6789
|
+
securityCount++;
|
|
6790
|
+
}
|
|
6765
6791
|
}
|
|
6766
6792
|
return this._config.reduced ? Q.reduce() : Q;
|
|
6767
6793
|
};
|
|
@@ -6781,7 +6807,7 @@ exports.rndFraction = rndFraction;
|
|
|
6781
6807
|
/***/ }),
|
|
6782
6808
|
|
|
6783
6809
|
/***/ 140:
|
|
6784
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
6810
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
6785
6811
|
|
|
6786
6812
|
|
|
6787
6813
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
@@ -6789,6 +6815,7 @@ exports.rndHelpers = void 0;
|
|
|
6789
6815
|
/**
|
|
6790
6816
|
* Random helpers
|
|
6791
6817
|
*/
|
|
6818
|
+
const numeric_1 = __webpack_require__(956);
|
|
6792
6819
|
class rndHelpers {
|
|
6793
6820
|
/**
|
|
6794
6821
|
* Random boolean with a percent ratio
|
|
@@ -6821,6 +6848,13 @@ class rndHelpers {
|
|
|
6821
6848
|
return this.randomInt(-max, max);
|
|
6822
6849
|
}
|
|
6823
6850
|
}
|
|
6851
|
+
static randomPrime(max) {
|
|
6852
|
+
let primes = numeric_1.Numeric.primes();
|
|
6853
|
+
if (max !== undefined) {
|
|
6854
|
+
primes = primes.filter(x => x < max);
|
|
6855
|
+
}
|
|
6856
|
+
return this.randomItem(primes);
|
|
6857
|
+
}
|
|
6824
6858
|
static randomArray(arr, number) {
|
|
6825
6859
|
if (number === undefined) {
|
|
6826
6860
|
number = 1;
|