toosoon-prng 1.4.0 → 2.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/lib/prng.js DELETED
@@ -1,184 +0,0 @@
1
- import { cyrb128, jsf32, mulberry32, sfc32, splitmix32, xoshiro128ss } from 'toosoon-utils/prng';
2
- import { Algorithm } from './types';
3
- /**
4
- * PRNG class
5
- *
6
- * @class PRNG
7
- */
8
- var PRNG = /** @class */ (function () {
9
- function PRNG() {
10
- this.seed = '';
11
- this.algorithm = 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 = 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
- var hashes = cyrb128(this.seed + seed);
60
- switch (this.algorithm) {
61
- case Algorithm.splitmix32:
62
- return splitmix32(hashes[0]);
63
- case Algorithm.jsf32:
64
- return jsf32(hashes[0], hashes[1], hashes[2], hashes[3]);
65
- case Algorithm.mulberry32:
66
- return mulberry32(hashes[0]);
67
- case Algorithm.sfc32:
68
- return sfc32(hashes[0], hashes[1], hashes[2], hashes[3]);
69
- case Algorithm.xoshiro128ss:
70
- return xoshiro128ss(hashes[0], hashes[1], hashes[2], hashes[3]);
71
- }
72
- };
73
- /**
74
- * Generate a pseudo-random boolean (true or false)
75
- *
76
- * @param {string} seed
77
- * @param {number} [probability=0.5] Probability to get `true`
78
- * @returns {boolean} Either `true` or `false`
79
- */
80
- PRNG.prototype.randomBoolean = function (seed, probability) {
81
- if (probability === void 0) { probability = 0.5; }
82
- return this.random(seed) < probability;
83
- };
84
- /**
85
- * Generate a pseudo-random sign (1 or -1)
86
- *
87
- * @param {string} seed
88
- * @param {number} [probability=0.5] Probability to get 1
89
- * @returns {number} Either 1 or -1
90
- */
91
- PRNG.prototype.randomSign = function (seed, probability) {
92
- if (probability === void 0) { probability = 0.5; }
93
- return this.randomBoolean(seed, probability) ? 1 : -1;
94
- };
95
- /**
96
- * Generate a pseudo-random floating-point number within a specified range
97
- *
98
- * @param {string} seed
99
- * @param {number} [min=0] Minimum boundary
100
- * @param {number} [max=1] Maximum boundary
101
- * @param {number} [precision=2] Number of digits after the decimal point
102
- * @returns {number} Generated float
103
- */
104
- PRNG.prototype.randomFloat = function (seed, min, max, precision) {
105
- if (min === void 0) { min = 0; }
106
- if (max === void 0) { max = 1; }
107
- if (precision === void 0) { precision = 2; }
108
- return parseFloat(Math.min(min + this.random(seed) * (max - min), max).toFixed(precision));
109
- };
110
- /**
111
- * Generate a pseudo-random integer number within a specified range
112
- *
113
- * @param {string} seed
114
- * @param {number} min Minimum boundary
115
- * @param {number} max Maximum boundary
116
- * @returns {number} Generated integer
117
- */
118
- PRNG.prototype.randomInt = function (seed, min, max) {
119
- return Math.floor(this.random(seed) * (max - min + 1) + min);
120
- };
121
- /**
122
- * Generate a pseudo-random hexadecimal color
123
- *
124
- * @param {string} seed
125
- * @returns {string} Generated hexadecimal color
126
- */
127
- PRNG.prototype.randomHexColor = function (seed) {
128
- return '#' + ('00000' + ((this.random(seed) * (1 << 24)) | 0).toString(16)).slice(-6);
129
- };
130
- /**
131
- * Pick a pseudo-random item from a given array
132
- *
133
- * @param {string} seed
134
- * @param {T[]} array Array to pick the item from
135
- * @returns {T|undefined} Random item picked
136
- */
137
- PRNG.prototype.randomItem = function (seed, array) {
138
- if (array.length === 0)
139
- return undefined;
140
- return array[this.randomInt(seed, 0, array.length - 1)];
141
- };
142
- /**
143
- * Pick a pseudo-random property value from a given object
144
- *
145
- * @param {string} seed
146
- * @param {object} object Object to pick the property from
147
- * @returns {T|undefined} Random item picked
148
- */
149
- PRNG.prototype.randomObjectProperty = function (seed, object) {
150
- var keys = Object.keys(object);
151
- var key = this.randomItem(seed, keys);
152
- if (key && object.hasOwnProperty(key)) {
153
- return object[key];
154
- }
155
- };
156
- /**
157
- * Select a pseudo-random index from an array of weighted items
158
- *
159
- * @param {string} seed
160
- * @param {number[]} weights Array of weights
161
- * @returns {number} Random index based on weights
162
- */
163
- PRNG.prototype.randomIndex = function (seed, weights) {
164
- if (weights.length === 0)
165
- return -1;
166
- var totalWeight = 0;
167
- for (var _i = 0, weights_1 = weights; _i < weights_1.length; _i++) {
168
- var weight = weights_1[_i];
169
- totalWeight += weight;
170
- }
171
- if (totalWeight <= 0)
172
- console.warn('PRNG.randomIndex()', 'Weights must sum to > 0', totalWeight);
173
- var random = this.random(seed) * totalWeight;
174
- for (var i = 0; i < weights.length; i++) {
175
- if (random < weights[i])
176
- return i;
177
- random -= weights[i];
178
- }
179
- return 0;
180
- };
181
- return PRNG;
182
- }());
183
- var prng = new PRNG();
184
- 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","1c745d75f93f62d55ff159a6091c469b05be5fad36e4ded4ce249e7bbdb36f33",{"version":"ee2f644177ac7b3a3103ce205a9ef175f78b8eca8e3aff22e5d566cadfeabba8","signature":"cbfcbe7513193695f971d0f8f16b74a15db97c0078006d0414ea4831c0847115"},{"version":"a93bca508da4f0b549b4754d6c0fb831fae64b5f207f4e9d2c97cc4f41209226","signature":"e1696578360dd48403b052e55ebf8528d7a9da2042d8bacc936a3c1f2f7b9ea3"},{"version":"afed0880319d48732105dcd665a9f4dcfa1a46b5ed644a5db3aa7b7f5ec09d68","signature":"273b0b65a6f4847bdc73d02fcf48febd9eb46892c988971b8fe7c4e7a8bbe4db"},{"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
- }