toosoon-prng 1.5.0 → 2.1.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/lib/prng.js DELETED
@@ -1,192 +0,0 @@
1
- import { jsf32, mulberry32, sfc32, splitmix32, xoshiro128ss, random } from 'toosoon-utils/prng';
2
- import { Algorithm } from './types';
3
- /**
4
- * Utility class for generating pseudo-random values
5
- *
6
- * @class PRNG
7
- */
8
- var PRNG = /** @class */ (function () {
9
- function PRNG() {
10
- this.seed = '';
11
- this.algorithm = splitmix32;
12
- this.controllers = [];
13
- }
14
- /**
15
- * Add a controller to this PRNG
16
- *
17
- * @param {PRNGController} controller
18
- */
19
- PRNG.prototype.addController = function (controller) {
20
- this.controllers.push(controller);
21
- };
22
- /**
23
- * Remove a controller from this PRNG
24
- *
25
- * @param {PRNGController} controller
26
- */
27
- PRNG.prototype.removeController = function (controller) {
28
- var index = this.controllers.indexOf(controller);
29
- this.controllers.splice(index, 1);
30
- };
31
- /**
32
- * Set this PRNG seed
33
- *
34
- * @param {string} seed
35
- */
36
- PRNG.prototype.setSeed = function (seed) {
37
- if (this.seed === seed)
38
- return;
39
- this.seed = seed;
40
- this.controllers.forEach(function (controller) { return controller.getValue(); });
41
- };
42
- /**
43
- * Set this PRNG algorithm for generating pseudo-random values
44
- *
45
- * @param {Algorithm} algorithm Algorithm name
46
- */
47
- PRNG.prototype.setAlgorithm = function (algorithm) {
48
- this.algorithm = this.getAlgorithm(algorithm);
49
- this.controllers.forEach(function (controller) { return controller.getValue(); });
50
- };
51
- /**
52
- * Generate a pseudo-random number in the interval [0, 1]
53
- * PRNG equivalent of `Math.random()`
54
- *
55
- * @param {string} seed
56
- * @returns {number}
57
- */
58
- PRNG.prototype.random = function (seed) {
59
- return random({ seed: this.seed + seed, algorithm: this.algorithm });
60
- };
61
- /**
62
- * Generate a pseudo-random boolean (true or false)
63
- *
64
- * @param {string} seed
65
- * @param {number} [probability=0.5] Probability to get `true`
66
- * @returns {boolean} Either `true` or `false`
67
- */
68
- PRNG.prototype.randomBoolean = function (seed, probability) {
69
- if (probability === void 0) { probability = 0.5; }
70
- return this.random(seed) < probability;
71
- };
72
- /**
73
- * Generate a pseudo-random sign (1 or -1)
74
- *
75
- * @param {string} seed
76
- * @param {number} [probability=0.5] Probability to get 1
77
- * @returns {number} Either 1 or -1
78
- */
79
- PRNG.prototype.randomSign = function (seed, probability) {
80
- if (probability === void 0) { probability = 0.5; }
81
- return this.randomBoolean(seed, probability) ? 1 : -1;
82
- };
83
- /**
84
- * Generate a pseudo-random floating-point number within a specified range
85
- *
86
- * @param {string} seed
87
- * @param {number} [min=0] Minimum boundary
88
- * @param {number} [max=1] Maximum boundary
89
- * @param {number} [precision=2] Number of digits after the decimal point
90
- * @returns {number} Generated float
91
- */
92
- PRNG.prototype.randomFloat = function (seed, min, max, precision) {
93
- if (min === void 0) { min = 0; }
94
- if (max === void 0) { max = 1; }
95
- if (precision === void 0) { precision = 2; }
96
- return parseFloat(Math.min(min + this.random(seed) * (max - min), max).toFixed(precision));
97
- };
98
- /**
99
- * Generate a pseudo-random integer number within a specified range
100
- *
101
- * @param {string} seed
102
- * @param {number} min Minimum boundary
103
- * @param {number} max Maximum boundary
104
- * @returns {number} Generated integer
105
- */
106
- PRNG.prototype.randomInt = function (seed, min, max) {
107
- return Math.floor(this.random(seed) * (max - min + 1) + min);
108
- };
109
- /**
110
- * Generate a pseudo-random hexadecimal color
111
- *
112
- * @param {string} seed
113
- * @returns {string} Generated hexadecimal color
114
- */
115
- PRNG.prototype.randomHexColor = function (seed) {
116
- return '#' + ('00000' + ((this.random(seed) * (1 << 24)) | 0).toString(16)).slice(-6);
117
- };
118
- /**
119
- * Pick a pseudo-random item from a given array
120
- *
121
- * @param {string} seed
122
- * @param {T[]} array Array to pick the item from
123
- * @returns {T|undefined} Random item picked
124
- */
125
- PRNG.prototype.randomItem = function (seed, array) {
126
- if (array.length === 0)
127
- return undefined;
128
- return array[this.randomInt(seed, 0, array.length - 1)];
129
- };
130
- /**
131
- * Pick a pseudo-random property value from a given object
132
- *
133
- * @param {string} seed
134
- * @param {object} object Object to pick the property from
135
- * @returns {T|undefined} Random item picked
136
- */
137
- PRNG.prototype.randomObjectProperty = function (seed, object) {
138
- var keys = Object.keys(object);
139
- var key = this.randomItem(seed, keys);
140
- if (key && object.hasOwnProperty(key)) {
141
- return object[key];
142
- }
143
- };
144
- /**
145
- * Select a pseudo-random index from an array of weighted items
146
- *
147
- * @param {string} seed
148
- * @param {number[]} weights Array of weights
149
- * @returns {number} Random index based on weights
150
- */
151
- PRNG.prototype.randomIndex = function (seed, weights) {
152
- if (weights.length === 0)
153
- return -1;
154
- var totalWeight = 0;
155
- for (var _i = 0, weights_1 = weights; _i < weights_1.length; _i++) {
156
- var weight_1 = weights_1[_i];
157
- totalWeight += weight_1;
158
- }
159
- if (totalWeight <= 0)
160
- console.warn('PRNG.randomIndex()', 'Weights must sum to > 0', totalWeight);
161
- var weight = this.random(seed) * totalWeight;
162
- for (var i = 0; i < weights.length; i++) {
163
- if (weight < weights[i])
164
- return i;
165
- weight -= weights[i];
166
- }
167
- return 0;
168
- };
169
- /**
170
- * Get the PRNG algorithm function by its name
171
- *
172
- * @param {Algorithm} algorithm Algorithm name
173
- * @returns {Function} PRNG algorithm function
174
- */
175
- PRNG.prototype.getAlgorithm = function (algorithm) {
176
- switch (algorithm) {
177
- case Algorithm.splitmix32:
178
- return splitmix32;
179
- case Algorithm.jsf32:
180
- return jsf32;
181
- case Algorithm.mulberry32:
182
- return mulberry32;
183
- case Algorithm.sfc32:
184
- return sfc32;
185
- case Algorithm.xoshiro128ss:
186
- return xoshiro128ss;
187
- }
188
- };
189
- return PRNG;
190
- }());
191
- var prng = new PRNG();
192
- export default prng;
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/toosoon-gui/lib/wrapper.d.ts","../node_modules/toosoon-gui/lib/types.d.ts","../node_modules/toosoon-gui/lib/controllers/controller.d.ts","../node_modules/toosoon-gui/lib/controllers/angle-controller.d.ts","../node_modules/toosoon-gui/lib/controllers/color-controller.d.ts","../node_modules/toosoon-gui/lib/controllers/coords-controller.d.ts","../node_modules/toosoon-gui/lib/controllers/file-controller.d.ts","../node_modules/toosoon-gui/lib/gui.d.ts","../node_modules/toosoon-gui/lib/controllers/boolean-controller.d.ts","../node_modules/toosoon-gui/lib/controllers/function-controller.d.ts","../node_modules/toosoon-gui/lib/controllers/number-controller.d.ts","../node_modules/toosoon-gui/lib/controllers/option-controller.d.ts","../node_modules/toosoon-gui/lib/controllers/string-controller.d.ts","../node_modules/toosoon-gui/lib/index.d.ts","../node_modules/toosoon-utils/lib/prng.d.ts","../src/types.ts","../src/prng.ts","../src/controllers.ts","../src/index.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"7f3b56b751819dfc3d25393d8232f400b8cbef152423e71d1e4e5db81cf2e2db","f7e25ae88d386440b751e25f12ec98bdd80822c54e58ed3cb80cc306ae9510e6","32c3a14e4806136096ba2da0c5101889803156a384c25c81d67e872e3be0d3ba","6339a44514a06c5e8f726cf27fc7fb2bf0e2ce5fe0de5545e4d412ba54c209f9","52800b74e97d62cd27f91a19ace28ca7ed32084fc5de80b015c8b62aabb4de99","2eba4de3285ccf1518aa5d87c683e4c4da38a837f69e112710fb107c58e86b9f","7b1267119c9c7c148ee973f8affd943c49f7ec2f5573f83cee25139492b533cd","3c73521cd265c18ed3aca9460bf298e5ed4a147aa3340f30ad7f1d9be05f726b","027d78906c03890d8473731baca3acad76095aa2e68af1c6fcd32ded61d9a430","5eb3db8ef1b8f4eb5b16facea0a1cc3d9c22d6513de77a29c6630233c7ccf888","448bf4331abf7995b2ab5c4a449800e35fc3dbcfb522ed752d84564fd7d17374","3147a65dfdc1827b3a1b3899c5b316e8cc10eeb66f5c26c758bb24b2c962983a","845075e15760edf65e31220cbfc67b0bd436be0cd169181aa524dcf8987ff09e","74427eecc65d24613d8483cb6191d32cb91aa79c2b13084ed2062457e3aa0376","bfbf0986270057216327e240d192582c2e1ad64f995251a8e99ef655ae3174f9",{"version":"ee2f644177ac7b3a3103ce205a9ef175f78b8eca8e3aff22e5d566cadfeabba8","signature":"cbfcbe7513193695f971d0f8f16b74a15db97c0078006d0414ea4831c0847115"},{"version":"fdfa07295e9e5e659b416ae8dea7aa759d7ac9ba87097a29cda1aef00cb03e25","signature":"9f91ac498d57a6d0566505dce8ae83eef584b9622cda8418e39b23e76dc4ca68"},{"version":"6aa99d22275a03a2ddddbc13d95f5e9f61cfd3a67463ce3afbf8fd7cff5010a5","signature":"865ca0437ddfa0f4029b468c4fa89c140d9f5c0b06e86877c4bfdad7f528db1e"},{"version":"a0ffa57525eea3df5ac85856ed662c68ceabdc91617a0041d31a24199a92fb44","signature":"cda7ab2d0e9fdf59864625e22e113190ee4b2222ac6bad6dd3c194a883945085"}],"root":[[80,83]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":99,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"strict":true,"target":1},"fileIdsList":[[67,72],[66,72],[66,67,68,69,70,71],[65,66,67,69,71,72,73,74,75,76,77],[65,67,72],[66,67,72],[78,81],[80,81,82],[79,80,82],[82],[78],[80,82]],"referencedMap":[[68,1],[73,1],[69,1],[67,2],[70,1],[71,1],[74,1],[75,1],[76,1],[77,1],[72,3],[78,4],[66,5],[65,6],[82,7],[83,8],[81,9],[80,10]],"exportedModulesMap":[[68,1],[73,1],[69,1],[67,2],[70,1],[71,1],[74,1],[75,1],[76,1],[77,1],[72,3],[78,4],[66,5],[65,6],[82,11],[83,8],[81,12],[80,10]],"semanticDiagnosticsPerFile":[68,73,69,67,70,71,74,75,76,77,72,78,66,65,79,63,64,12,14,13,2,15,16,17,18,19,20,21,22,3,4,23,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,59,10,1,11,62,61,60,82,83,81,80]},"version":"5.3.3"}
package/lib/types.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export type { PRNGController, PRNGGroupController } from './controllers';
2
- export declare enum Algorithm {
3
- jsf32 = "jsf32",
4
- mulberry32 = "mulberry32",
5
- sfc32 = "sfc32",
6
- splitmix32 = "splitmix32",// Default
7
- xoshiro128ss = "xoshiro128**"
8
- }
package/lib/types.js DELETED
@@ -1,8 +0,0 @@
1
- export var Algorithm;
2
- (function (Algorithm) {
3
- Algorithm["jsf32"] = "jsf32";
4
- Algorithm["mulberry32"] = "mulberry32";
5
- Algorithm["sfc32"] = "sfc32";
6
- Algorithm["splitmix32"] = "splitmix32";
7
- Algorithm["xoshiro128ss"] = "xoshiro128**";
8
- })(Algorithm || (Algorithm = {}));
package/lib/utils.d.ts DELETED
@@ -1,45 +0,0 @@
1
- /**
2
- * Produce a 128-bit hash value from a string
3
- *
4
- * @param {string} seed
5
- * @return {number}
6
- */
7
- export declare function cyrb128(seed: string): number[];
8
- /**
9
- * Simple Fast Counter, Generator with a 128-bit state
10
- *
11
- * @param {number} a
12
- * @param {number} b
13
- * @param {number} c
14
- * @param {number} d
15
- * @return {number}
16
- */
17
- export declare function sfc32(a: number, b: number, c: number, d: number): number;
18
- /**
19
- * SplitMix32, Generator with a 32-bit state
20
- *
21
- * @param {number} a
22
- * @returns {number}
23
- */
24
- export declare function splitmix32(a: number): number;
25
- /**
26
- * Mulberry32, Generator with a 32-bit state
27
- *
28
- * @param {number} a
29
- * @return {number}
30
- */
31
- export declare function mulberry32(a: number): number;
32
- /**
33
- * Jenkins' Small Fast, Generator with a 32-bit state
34
- *
35
- * @param {number} a
36
- * @returns {number}
37
- */
38
- export declare function jsf32(a: number, b: number, c: number, d: number): number;
39
- /**
40
- * xoshiro128**, Generator with a 128-bit state
41
- *
42
- * @param {number} a
43
- * @returns {number}
44
- */
45
- export declare function xoshiro128ss(a: number, b: number, c: number, d: number): number;
package/lib/utils.js DELETED
@@ -1,115 +0,0 @@
1
- // Seeding random number generator
2
- // https://stackoverflow.com/questions/521295/seeding-the-random-number-generator-in-javascript
3
- /**
4
- * Produce a 128-bit hash value from a string
5
- *
6
- * @param {string} seed
7
- * @return {number}
8
- */
9
- export function cyrb128(seed) {
10
- var h1 = 1779033703;
11
- var h2 = 3144134277;
12
- var h3 = 1013904242;
13
- var h4 = 2773480762;
14
- for (var i = 0, k = void 0; i < seed.length; i++) {
15
- k = seed.charCodeAt(i);
16
- h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
17
- h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
18
- h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
19
- h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
20
- }
21
- h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
22
- h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
23
- h3 = Math.imul(h1 ^ (h3 >>> 17), 951274213);
24
- h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
25
- return [(h1 ^ h2 ^ h3 ^ h4) >>> 0, (h2 ^ h1) >>> 0, (h3 ^ h1) >>> 0, (h4 ^ h1) >>> 0];
26
- }
27
- // *********************
28
- // Algorithms
29
- // *********************
30
- /**
31
- * Simple Fast Counter, Generator with a 128-bit state
32
- *
33
- * @param {number} a
34
- * @param {number} b
35
- * @param {number} c
36
- * @param {number} d
37
- * @return {number}
38
- */
39
- export function sfc32(a, b, c, d) {
40
- a >>>= 0;
41
- b >>>= 0;
42
- c >>>= 0;
43
- d >>>= 0;
44
- var t = (a + b) | 0;
45
- a = b ^ (b >>> 9);
46
- b = (c + (c << 3)) | 0;
47
- c = (c << 21) | (c >>> 11);
48
- d = (d + 1) | 0;
49
- t = (t + d) | 0;
50
- c = (c + t) | 0;
51
- return (t >>> 0) / 4294967296;
52
- }
53
- /**
54
- * SplitMix32, Generator with a 32-bit state
55
- *
56
- * @param {number} a
57
- * @returns {number}
58
- */
59
- export function splitmix32(a) {
60
- a |= 0;
61
- a = (a + 0x9e3779b9) | 0;
62
- var t = a ^ (a >>> 16);
63
- t = Math.imul(t, 0x21f0aaad);
64
- t = t ^ (t >>> 15);
65
- t = Math.imul(t, 0x735a2d97);
66
- return ((t = t ^ (t >>> 15)) >>> 0) / 4294967296;
67
- }
68
- /**
69
- * Mulberry32, Generator with a 32-bit state
70
- *
71
- * @param {number} a
72
- * @return {number}
73
- */
74
- export function mulberry32(a) {
75
- var t = (a += 0x6d2b79f5);
76
- t = Math.imul(t ^ (t >>> 15), t | 1);
77
- t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
78
- return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
79
- }
80
- /**
81
- * Jenkins' Small Fast, Generator with a 32-bit state
82
- *
83
- * @param {number} a
84
- * @returns {number}
85
- */
86
- export function jsf32(a, b, c, d) {
87
- a |= 0;
88
- b |= 0;
89
- c |= 0;
90
- d |= 0;
91
- var t = (a - ((b << 27) | (b >>> 5))) | 0;
92
- a = b ^ ((c << 17) | (c >>> 15));
93
- b = (c + d) | 0;
94
- c = (d + t) | 0;
95
- d = (a + t) | 0;
96
- return (d >>> 0) / 4294967296;
97
- }
98
- /**
99
- * xoshiro128**, Generator with a 128-bit state
100
- *
101
- * @param {number} a
102
- * @returns {number}
103
- */
104
- export function xoshiro128ss(a, b, c, d) {
105
- var t = b << 9;
106
- var r = a * 5;
107
- r = ((r << 7) | (r >>> 25)) * 9;
108
- c ^= a;
109
- d ^= b;
110
- b ^= c;
111
- a ^= d;
112
- c ^= t;
113
- d = (d << 11) | (d >>> 21);
114
- return (r >>> 0) / 4294967296;
115
- }