@thi.ng/random 3.1.4 → 3.2.3

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.
Files changed (4) hide show
  1. package/CHANGELOG.md +154 -89
  2. package/api.d.ts +1 -1
  3. package/arandom.js +1 -1
  4. package/package.json +156 -151
package/CHANGELOG.md CHANGED
@@ -1,187 +1,252 @@
1
1
  # Change Log
2
2
 
3
+ - **Last updated**: 2021-12-13T10:26:00Z
4
+ - **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
5
+
3
6
  All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
+ See [Conventional Commits](https://conventionalcommits.org/) for commit guidelines.
5
8
 
6
- ## [3.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@3.1.3...@thi.ng/random@3.1.4) (2021-11-10)
9
+ **Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
10
+ and/or version bumps of transitive dependencies.
7
11
 
8
- **Note:** Version bump only for package @thi.ng/random
12
+ ### [3.2.2](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@3.2.2) (2021-11-21)
9
13
 
14
+ #### 🩹 Bug fixes
10
15
 
16
+ - off-by-one error in ARandom ([0bf9828](https://github.com/thi-ng/umbrella/commit/0bf9828))
11
17
 
18
+ ## [3.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@3.2.0) (2021-11-17)
12
19
 
20
+ #### 🚀 Features
13
21
 
14
- ## [3.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@3.1.2...@thi.ng/random@3.1.3) (2021-11-03)
22
+ - Using workspaces for local tools ([bf7a404](https://github.com/thi-ng/umbrella/commit/bf7a404))
23
+ Improving the overall build ergonomics
24
+ - introduced a tools workspaces
25
+ - imported it in all needed packages/examples
26
+ - inclusive project root
15
27
 
16
- **Note:** Version bump only for package @thi.ng/random
28
+ #### ♻️ Refactoring
17
29
 
30
+ - testrunner to binary ([4ebbbb2](https://github.com/thi-ng/umbrella/commit/4ebbbb2))
31
+ this commit reverts (partly) changes made in:
32
+ ef346d7a8753590dc9094108a3d861a8dbd5dd2c
33
+ overall purpose is better testament ergonomics:
34
+ instead of having to pass NODE_OPTIONS with every invocation
35
+ having a binary to handle this for us.
18
36
 
37
+ ### [3.1.4](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@3.1.4) (2021-11-10)
19
38
 
39
+ #### ♻️ Refactoring
20
40
 
41
+ - update all countdown loops ([a5f374b](https://github.com/thi-ng/umbrella/commit/a5f374b))
21
42
 
22
- # [3.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@3.0.3...@thi.ng/random@3.1.0) (2021-10-25)
43
+ ## [3.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@3.1.0) (2021-10-25)
23
44
 
45
+ #### 🚀 Features
24
46
 
25
- ### Features
47
+ - add pickRandom() ([0899aed](https://github.com/thi-ng/umbrella/commit/0899aed))
26
48
 
27
- * **random:** add pickRandom() ([0899aed](https://github.com/thi-ng/umbrella/commit/0899aed89fd691df4ddc5273995a579414f506d8))
49
+ ### [3.0.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@3.0.1) (2021-10-13)
28
50
 
51
+ #### ♻️ Refactoring
29
52
 
53
+ - update imports in all tests/pkgs ([effd591](https://github.com/thi-ng/umbrella/commit/effd591))
54
+ - update imports in all pkgs ([5fa2b6f](https://github.com/thi-ng/umbrella/commit/5fa2b6f))
55
+ - add .js suffix for all relative imports
30
56
 
57
+ # [3.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@3.0.0) (2021-10-12)
31
58
 
59
+ #### 🛑 Breaking changes
32
60
 
33
- # [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.4.8...@thi.ng/random@3.0.0) (2021-10-12)
61
+ - major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea))
62
+ - BREAKING CHANGE: discontinue CommonJS & UMD versions
63
+ - only ESM modules will be published from now on
64
+ - CJS obsolete due to ESM support in recent versions of node:
65
+ - i.e. launch NodeJS via:
66
+ - `node --experimental-specifier-resolution=node --experimental-repl-await`
67
+ - in the node REPL use `await import(...)` instead of `require()`
68
+ - UMD obsolete due to widespread browser support for ESM
69
+ Also:
70
+ - normalize/restructure/reorg all package.json files
71
+ - cleanup all build scripts, remove obsolete
72
+ - switch from mocha to [@thi.ng/testament](https://github.com/thi-ng/umbrella/tree/main/packages/testament) for all tests
34
73
 
74
+ #### ♻️ Refactoring
35
75
 
36
- ### Build System
76
+ - update deps & imports in various pkgs ([e1cf29e](https://github.com/thi-ng/umbrella/commit/e1cf29e))
77
+ - largely related to recent updates/restructuring of these packages:
78
+ - api
79
+ - defmulti
80
+ - errors
81
+ - logger
82
+ - update imports ([138571a](https://github.com/thi-ng/umbrella/commit/138571a))
83
+ - update all test stubs ([f2d6d53](https://github.com/thi-ng/umbrella/commit/f2d6d53))
84
+ - update all tests in _all_ pkgs ([8b582bc](https://github.com/thi-ng/umbrella/commit/8b582bc))
85
+ - update all to use [@thi.ng/testament](https://github.com/thi-ng/umbrella/tree/main/packages/testament)
37
86
 
38
- * major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
87
+ ### [2.4.4](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.4.4) (2021-08-04)
39
88
 
89
+ #### 🩹 Bug fixes
40
90
 
41
- ### BREAKING CHANGES
91
+ - update weightedRandom() ([70afa70](https://github.com/thi-ng/umbrella/commit/70afa70))
92
+ - assume missing weights as zero
42
93
 
43
- * discontinue CommonJS & UMD versions
94
+ ## [2.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.4.0) (2021-04-19)
44
95
 
45
- - only ESM modules will be published from now on
46
- - CJS obsolete due to ESM support in recent versions of node:
47
- - i.e. launch NodeJS via:
48
- - `node --experimental-specifier-resolution=node --experimental-repl-await`
49
- - in the node REPL use `await import(...)` instead of `require()`
50
- - UMD obsolete due to widespread browser support for ESM
96
+ #### 🚀 Features
51
97
 
52
- Also:
53
- - normalize/restructure/reorg all package.json files
54
- - cleanup all build scripts, remove obsolete
55
- - switch from mocha to @thi.ng/testament for all tests
98
+ - add uniqueValuesFrom/uniqueIndices() ([3b3b5d8](https://github.com/thi-ng/umbrella/commit/3b3b5d8))
56
99
 
100
+ #### 🩹 Bug fixes
57
101
 
102
+ - HOF issue w/ exponential() ([12586b9](https://github.com/thi-ng/umbrella/commit/12586b9))
58
103
 
104
+ #### ♻️ Refactoring
59
105
 
106
+ - minor updates weightedRandom() ([c6741bc](https://github.com/thi-ng/umbrella/commit/c6741bc))
60
107
 
108
+ ### [2.3.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.3.1) (2021-02-24)
61
109
 
62
- ## [2.4.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.4.3...@thi.ng/random@2.4.4) (2021-08-04)
110
+ #### 🩹 Bug fixes
63
111
 
64
- ### Bug Fixes
112
+ - update weightedRandom() ([b1cf4d8](https://github.com/thi-ng/umbrella/commit/b1cf4d8))
113
+ - don't throw error if total weights <= 0 (only print warning)
65
114
 
66
- - **random:** update weightedRandom() ([70afa70](https://github.com/thi-ng/umbrella/commit/70afa7097dfd21f85d947ab5f055d0c39589fd48))
115
+ ## [2.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.3.0) (2021-02-20)
67
116
 
68
- # [2.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.3.7...@thi.ng/random@2.4.0) (2021-04-19)
117
+ #### 🚀 Features
69
118
 
70
- ### Bug Fixes
119
+ - add coin()/fairCoin() ([ed66a64](https://github.com/thi-ng/umbrella/commit/ed66a64))
71
120
 
72
- - **random:** HOF issue w/ exponential() ([12586b9](https://github.com/thi-ng/umbrella/commit/12586b9eda66ce3d741402cc9b802c0369f64d88))
121
+ #### ♻️ Refactoring
73
122
 
74
- ### Features
123
+ - update uuid() ([91372d9](https://github.com/thi-ng/umbrella/commit/91372d9))
124
+ - reuse fn from [@thi.ng/hex](https://github.com/thi-ng/umbrella/tree/main/packages/hex)
75
125
 
76
- - **random:** add uniqueValuesFrom/uniqueIndices() ([3b3b5d8](https://github.com/thi-ng/umbrella/commit/3b3b5d8d71d8c3019f84bae7a4791b12933720c4))
126
+ ## [2.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.2.0) (2021-01-13)
77
127
 
78
- ## [2.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.3.0...@thi.ng/random@2.3.1) (2021-02-24)
128
+ #### 🚀 Features
79
129
 
80
- ### Bug Fixes
130
+ - add CRYPTO IRandom impl ([94e69c1](https://github.com/thi-ng/umbrella/commit/94e69c1))
131
+ - add opt start/end for randomBytes() ([4d095da](https://github.com/thi-ng/umbrella/commit/4d095da))
81
132
 
82
- - **random:** update weightedRandom() ([b1cf4d8](https://github.com/thi-ng/umbrella/commit/b1cf4d8feccac4b3468a2fb0fdee268306406d78))
133
+ #### 🩹 Bug fixes
83
134
 
84
- # [2.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.2.0...@thi.ng/random@2.3.0) (2021-02-20)
135
+ - add opt start index arg for uuid() ([268ec3f](https://github.com/thi-ng/umbrella/commit/268ec3f))
85
136
 
86
- ### Features
137
+ #### ⏱ Performance improvements
87
138
 
88
- - **random:** add coin()/fairCoin() ([ed66a64](https://github.com/thi-ng/umbrella/commit/ed66a64a7e5efb63b4bbab89bba5100d1aa7ec49))
139
+ - minor update weightedRandom() ([258fd7b](https://github.com/thi-ng/umbrella/commit/258fd7b))
140
+ - avoid sorting if no weights are given
89
141
 
90
- # [2.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.1.5...@thi.ng/random@2.2.0) (2021-01-13)
142
+ #### ♻️ Refactoring
91
143
 
92
- ### Bug Fixes
144
+ - minor update randomID() ([9d278ad](https://github.com/thi-ng/umbrella/commit/9d278ad))
93
145
 
94
- - **random:** add opt start index arg for uuid() ([268ec3f](https://github.com/thi-ng/umbrella/commit/268ec3f47470184068fd66b5cc147d8c2e0e0ccb))
146
+ ### [2.1.2](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.1.2) (2020-12-07)
95
147
 
96
- ### Features
148
+ #### ♻️ Refactoring
97
149
 
98
- - **random:** add CRYPTO IRandom impl ([94e69c1](https://github.com/thi-ng/umbrella/commit/94e69c1021ec67c63be78e0467bfc82be6cabc00))
99
- - **random:** add opt start/end for randomBytes() ([4d095da](https://github.com/thi-ng/umbrella/commit/4d095da557b1f3ee9ce46778aeba25f0c6aa94f9))
150
+ - update type-only imports in various tests/pkgs ([3fd9c24](https://github.com/thi-ng/umbrella/commit/3fd9c24))
100
151
 
101
- ### Performance Improvements
152
+ ### [2.1.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.1.1) (2020-11-26)
102
153
 
103
- - **random:** minor update weightedRandom() ([258fd7b](https://github.com/thi-ng/umbrella/commit/258fd7b25930c41025b7337b44c36e1f00924b47))
154
+ #### 🩹 Bug fixes
104
155
 
105
- ## [2.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.1.0...@thi.ng/random@2.1.1) (2020-11-26)
156
+ - add missing subdir to pkg "files" ([916dbe7](https://github.com/thi-ng/umbrella/commit/916dbe7))
106
157
 
107
- ### Bug Fixes
158
+ ## [2.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.1.0) (2020-11-24)
108
159
 
109
- - **random:** add missing subdir to pkg "files" ([916dbe7](https://github.com/thi-ng/umbrella/commit/916dbe7eb12815215b3905ea6ad924b7d397264c))
160
+ #### 🚀 Features
110
161
 
111
- # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.0.2...@thi.ng/random@2.1.0) (2020-11-24)
162
+ - add distribution HOFs, move gaussian() ([9328821](https://github.com/thi-ng/umbrella/commit/9328821))
163
+ - add exponential(), geometric(), normal(), uniform() HOFs
164
+ - migrate gaussian() to /distributions
165
+ - add randomBytesFrom(), update UUID fns ([b31c872](https://github.com/thi-ng/umbrella/commit/b31c872))
166
+ - add [@thi.ng/hex](https://github.com/thi-ng/umbrella/tree/main/packages/hex) dependency
167
+ - update uuidv4Bytes() to take opt IRandom arg
168
+ - refactor/optimize uuid()
169
+ - add tests
112
170
 
113
- ### Features
171
+ # [2.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@2.0.0) (2020-08-28)
114
172
 
115
- - **random:** add distribution HOFs, move gaussian() ([9328821](https://github.com/thi-ng/umbrella/commit/9328821b20e9534c4c66c353d36dfd7dbb5edda6))
116
- - **random:** add randomBytesFrom(), update UUID fns ([b31c872](https://github.com/thi-ng/umbrella/commit/b31c872cb67708510d68d6b2e2260cba843ee86d))
173
+ #### 🛑 Breaking changes
117
174
 
118
- # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.4.17...@thi.ng/random@2.0.0) (2020-08-28)
175
+ - add INorm, extract gaussianCLT() ([c687598](https://github.com/thi-ng/umbrella/commit/c687598))
176
+ - BREAKING CHANGE: remove gaussian() from IRandom,
177
+ extract as standalone gaussianCLT()
178
+ - update gaussianCLT() default args to be more meaningful
119
179
 
120
- ### Bug Fixes
180
+ #### 🩹 Bug fixes
121
181
 
122
- - **random:** off-by-one error in SYSTEM.int() ([ca0492d](https://github.com/thi-ng/umbrella/commit/ca0492d2f5f867c8945c279f60cf908037df1385))
182
+ - off-by-one error in SYSTEM.int() ([ca0492d](https://github.com/thi-ng/umbrella/commit/ca0492d))
123
183
 
124
- ### Features
184
+ #### ♻️ Refactoring
125
185
 
126
- - **random:** add INorm, extract gaussianCLT() ([c687598](https://github.com/thi-ng/umbrella/commit/c687598f87283a77c109d6b378b1907349eab760))
186
+ - update imports/docstrings ([ecb2a36](https://github.com/thi-ng/umbrella/commit/ecb2a36))
127
187
 
128
- ### BREAKING CHANGES
188
+ ## [1.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@1.4.0) (2020-03-01)
129
189
 
130
- - **random:** remove gaussian() from IRandom, extract as standalone gaussianCLT()
131
- - update gaussianCLT() default args to be more meaningful
190
+ #### 🚀 Features
132
191
 
133
- # [1.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.3.2...@thi.ng/random@1.4.0) (2020-03-01)
192
+ - add Xoshiro128, refactor default seeds ([b535628](https://github.com/thi-ng/umbrella/commit/b535628))
134
193
 
135
- ### Bug Fixes
194
+ #### 🩹 Bug fixes
136
195
 
137
- - **random:** use correct 160bit default seed for XorWow ([38d511b](https://github.com/thi-ng/umbrella/commit/38d511bc2e2c0bf00101e0b9db50cdb371445425))
196
+ - use correct 160bit default seed for XorWow ([38d511b](https://github.com/thi-ng/umbrella/commit/38d511b))
138
197
 
139
- ### Features
198
+ ## [1.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@1.3.0) (2020-02-25)
140
199
 
141
- - **random:** add Xoshiro128, refactor default seeds ([b535628](https://github.com/thi-ng/umbrella/commit/b535628c879b133d121307695a2a138dac70f008))
200
+ #### 🚀 Features
142
201
 
143
- # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.2.0...@thi.ng/random@1.3.0) (2020-02-25)
202
+ - add uuidv4Bytes() ([e9ea10f](https://github.com/thi-ng/umbrella/commit/e9ea10f))
144
203
 
145
- ### Features
204
+ #### ♻️ Refactoring
146
205
 
147
- - **random:** add uuidv4Bytes() ([e9ea10f](https://github.com/thi-ng/umbrella/commit/e9ea10f5e6b2415863e1a552207758aa3a47c9cf))
206
+ - update imports, internal restruct ([8548a80](https://github.com/thi-ng/umbrella/commit/8548a80))
148
207
 
149
- # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.1.15...@thi.ng/random@1.2.0) (2020-01-26)
208
+ ## [1.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@1.2.0) (2020-01-26)
150
209
 
151
- ### Features
210
+ #### 🚀 Features
152
211
 
153
- - **random:** add randomBytes() wrapper ([c536bcd](https://github.com/thi-ng/umbrella/commit/c536bcd83c766414e349f6b82494ace9888ac2ba))
212
+ - add randomBytes() wrapper ([c536bcd](https://github.com/thi-ng/umbrella/commit/c536bcd))
154
213
 
155
- ## [1.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.1.14...@thi.ng/random@1.1.15) (2020-01-24)
214
+ ### [1.1.15](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@1.1.15) (2020-01-24)
156
215
 
157
- ### Performance Improvements
216
+ #### ⏱ Performance improvements
158
217
 
159
- - **random:** minor update ARandom.norm() ([babbbaa](https://github.com/thi-ng/umbrella/commit/babbbaa12b5be09415f420e7559fa5c8bb76f802))
218
+ - minor update ARandom.norm() ([babbbaa](https://github.com/thi-ng/umbrella/commit/babbbaa))
160
219
 
161
- # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.0.2...@thi.ng/random@1.1.0) (2019-02-15)
220
+ ### [1.1.14](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@1.1.14) (2019-11-30)
162
221
 
163
- ### Bug Fixes
222
+ #### ♻️ Refactoring
164
223
 
165
- - **random:** add opt scale arg to IRandom.float() ([5a7e448](https://github.com/thi-ng/umbrella/commit/5a7e448))
224
+ - update weightedRandom ([d609182](https://github.com/thi-ng/umbrella/commit/d609182))
166
225
 
167
- ### Features
226
+ ## [1.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@1.1.0) (2019-02-15)
168
227
 
169
- - **random:** add randomID() & weightedRandom() ([f719724](https://github.com/thi-ng/umbrella/commit/f719724))
228
+ #### 🚀 Features
170
229
 
171
- # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@0.1.1...@thi.ng/random@1.0.0) (2019-01-21)
230
+ - add randomID() & weightedRandom() ([f719724](https://github.com/thi-ng/umbrella/commit/f719724))
172
231
 
173
- ### Build System
232
+ #### 🩹 Bug fixes
174
233
 
175
- - update package build scripts & outputs, imports in ~50 packages ([b54b703](https://github.com/thi-ng/umbrella/commit/b54b703))
234
+ - add opt scale arg to IRandom.float() ([5a7e448](https://github.com/thi-ng/umbrella/commit/5a7e448))
176
235
 
177
- ### BREAKING CHANGES
236
+ # [1.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@1.0.0) (2019-01-21)
178
237
 
179
- - enabled multi-outputs (ES6 modules, CJS, UMD)
180
- - build scripts now first build ES6 modules in package root, then call `scripts/bundle-module` to build minified CJS & UMD bundles in `/lib`
181
- - all imports MUST be updated to only refer to package level (not individual files anymore). tree shaking in user land will get rid of all unused imported symbols.
238
+ #### 🛑 Breaking changes
239
+
240
+ - update package build scripts & outputs, imports in ~50 packages ([b54b703](https://github.com/thi-ng/umbrella/commit/b54b703))
241
+ - BREAKING CHANGE: enabled multi-outputs (ES6 modules, CJS, UMD)
242
+ - build scripts now first build ES6 modules in package root, then call
243
+ `scripts/bundle-module` to build minified CJS & UMD bundles in `/lib`
244
+ - all imports MUST be updated to only refer to package level
245
+ (not individual files anymore). tree shaking in user land will get rid of
246
+ all unused imported symbols.
182
247
 
183
- # 0.1.0 (2018-11-24)
248
+ ## [0.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/random@0.1.0) (2018-11-24)
184
249
 
185
- ### Features
250
+ #### 🚀 Features
186
251
 
187
- - **random:** re-import, extend & refactor random package (MBP2010) ([4aea85d](https://github.com/thi-ng/umbrella/commit/4aea85d))
252
+ - re-import, extend & refactor random package (MBP2010) ([4aea85d](https://github.com/thi-ng/umbrella/commit/4aea85d))
package/api.d.ts CHANGED
@@ -13,7 +13,7 @@ export interface INorm {
13
13
  }
14
14
  export interface IRandom extends INorm {
15
15
  /**
16
- * Returns unsigned 32bit int
16
+ * Returns unsigned 32bit int [0..0xffffffff]
17
17
  */
18
18
  int(): number;
19
19
  /**
package/arandom.js CHANGED
@@ -1,4 +1,4 @@
1
- const INV_MAX = 1 / 0xffffffff;
1
+ const INV_MAX = 1 / (2 ** 32);
2
2
  export class ARandom {
3
3
  float(norm = 1) {
4
4
  return this.int() * INV_MAX * norm;
package/package.json CHANGED
@@ -1,152 +1,157 @@
1
1
  {
2
- "name": "@thi.ng/random",
3
- "version": "3.1.4",
4
- "description": "Pseudo-random number generators w/ unified API, distributions, weighted choices, ID generation",
5
- "type": "module",
6
- "module": "./index.js",
7
- "typings": "./index.d.ts",
8
- "sideEffects": false,
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/thi-ng/umbrella.git"
12
- },
13
- "homepage": "https://github.com/thi-ng/umbrella/tree/develop/packages/random#readme",
14
- "funding": [
15
- {
16
- "type": "github",
17
- "url": "https://github.com/sponsors/postspectacular"
18
- },
19
- {
20
- "type": "patreon",
21
- "url": "https://patreon.com/thing_umbrella"
22
- }
23
- ],
24
- "author": "Karsten Schmidt <k+npm@thi.ng>",
25
- "license": "Apache-2.0",
26
- "scripts": {
27
- "build": "yarn clean && tsc --declaration",
28
- "clean": "rimraf *.js *.d.ts *.map doc distributions",
29
- "doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
30
- "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose",
31
- "doc:readme": "yarn doc:stats && ../../scripts/node-esm ../../tools/src/readme.ts",
32
- "doc:stats": "../../scripts/node-esm ../../tools/src/module-stats.ts",
33
- "pub": "yarn build && yarn publish --access public",
34
- "test": "testament test"
35
- },
36
- "dependencies": {
37
- "@thi.ng/api": "^8.2.0",
38
- "@thi.ng/checks": "^3.0.7",
39
- "@thi.ng/errors": "^2.0.6",
40
- "@thi.ng/hex": "^2.0.6"
41
- },
42
- "devDependencies": {
43
- "@thi.ng/testament": "^0.1.6"
44
- },
45
- "keywords": [
46
- "binary",
47
- "crypto",
48
- "datastructure",
49
- "distribution",
50
- "exponential",
51
- "gaussian",
52
- "generator",
53
- "geometric",
54
- "normal",
55
- "prng",
56
- "random",
57
- "typedarray",
58
- "typescript",
59
- "weighted",
60
- "uuid",
61
- "uniform"
62
- ],
63
- "publishConfig": {
64
- "access": "public"
65
- },
66
- "engines": {
67
- "node": ">=12.7"
68
- },
69
- "files": [
70
- "*.js",
71
- "*.d.ts",
72
- "distributions"
73
- ],
74
- "exports": {
75
- ".": {
76
- "import": "./index.js"
77
- },
78
- "./api": {
79
- "import": "./api.js"
80
- },
81
- "./arandom": {
82
- "import": "./arandom.js"
83
- },
84
- "./coin": {
85
- "import": "./coin.js"
86
- },
87
- "./constants": {
88
- "import": "./constants.js"
89
- },
90
- "./crypto": {
91
- "import": "./crypto.js"
92
- },
93
- "./distributions/exponential": {
94
- "import": "./distributions/exponential.js"
95
- },
96
- "./distributions/gaussian": {
97
- "import": "./distributions/gaussian.js"
98
- },
99
- "./distributions/geometric": {
100
- "import": "./distributions/geometric.js"
101
- },
102
- "./distributions/normal": {
103
- "import": "./distributions/normal.js"
104
- },
105
- "./distributions/uniform": {
106
- "import": "./distributions/uniform.js"
107
- },
108
- "./pick-random": {
109
- "import": "./pick-random.js"
110
- },
111
- "./random-bytes": {
112
- "import": "./random-bytes.js"
113
- },
114
- "./random-id": {
115
- "import": "./random-id.js"
116
- },
117
- "./smush32": {
118
- "import": "./smush32.js"
119
- },
120
- "./system": {
121
- "import": "./system.js"
122
- },
123
- "./unique-indices": {
124
- "import": "./unique-indices.js"
125
- },
126
- "./uuid": {
127
- "import": "./uuid.js"
128
- },
129
- "./weighted-random": {
130
- "import": "./weighted-random.js"
131
- },
132
- "./xorshift128": {
133
- "import": "./xorshift128.js"
134
- },
135
- "./xorwow": {
136
- "import": "./xorwow.js"
137
- },
138
- "./xoshiro128": {
139
- "import": "./xoshiro128.js"
140
- },
141
- "./xsadd": {
142
- "import": "./xsadd.js"
143
- }
144
- },
145
- "thi.ng": {
146
- "year": 2015,
147
- "related": [
148
- "ksuid"
149
- ]
150
- },
151
- "gitHead": "5fe52419af63984ebe53032201b2a6174b9cb159"
152
- }
2
+ "name": "@thi.ng/random",
3
+ "version": "3.2.3",
4
+ "description": "Pseudo-random number generators w/ unified API, distributions, weighted choices, ID generation",
5
+ "type": "module",
6
+ "module": "./index.js",
7
+ "typings": "./index.d.ts",
8
+ "sideEffects": false,
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/thi-ng/umbrella.git"
12
+ },
13
+ "homepage": "https://github.com/thi-ng/umbrella/tree/develop/packages/random#readme",
14
+ "funding": [
15
+ {
16
+ "type": "github",
17
+ "url": "https://github.com/sponsors/postspectacular"
18
+ },
19
+ {
20
+ "type": "patreon",
21
+ "url": "https://patreon.com/thing_umbrella"
22
+ }
23
+ ],
24
+ "author": "Karsten Schmidt <k+npm@thi.ng>",
25
+ "license": "Apache-2.0",
26
+ "scripts": {
27
+ "build": "yarn clean && tsc --declaration",
28
+ "clean": "rimraf '*.js' '*.d.ts' '*.map' doc distributions",
29
+ "doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
30
+ "doc:ae": "mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose",
31
+ "doc:readme": "yarn doc:stats && tools:readme",
32
+ "doc:stats": "tools:module-stats",
33
+ "pub": "yarn npm publish --access public",
34
+ "test": "testament test"
35
+ },
36
+ "dependencies": {
37
+ "@thi.ng/api": "^8.3.3",
38
+ "@thi.ng/checks": "^3.1.3",
39
+ "@thi.ng/errors": "^2.1.3",
40
+ "@thi.ng/hex": "^2.1.3"
41
+ },
42
+ "devDependencies": {
43
+ "@microsoft/api-extractor": "^7.19.2",
44
+ "@thi.ng/testament": "^0.2.3",
45
+ "rimraf": "^3.0.2",
46
+ "tools": "^0.0.1",
47
+ "typedoc": "^0.22.10",
48
+ "typescript": "^4.5.3"
49
+ },
50
+ "keywords": [
51
+ "binary",
52
+ "crypto",
53
+ "datastructure",
54
+ "distribution",
55
+ "exponential",
56
+ "gaussian",
57
+ "generator",
58
+ "geometric",
59
+ "normal",
60
+ "prng",
61
+ "random",
62
+ "typedarray",
63
+ "typescript",
64
+ "weighted",
65
+ "uuid",
66
+ "uniform"
67
+ ],
68
+ "publishConfig": {
69
+ "access": "public"
70
+ },
71
+ "engines": {
72
+ "node": ">=12.7"
73
+ },
74
+ "files": [
75
+ "*.js",
76
+ "*.d.ts",
77
+ "distributions"
78
+ ],
79
+ "exports": {
80
+ ".": {
81
+ "import": "./index.js"
82
+ },
83
+ "./api": {
84
+ "import": "./api.js"
85
+ },
86
+ "./arandom": {
87
+ "import": "./arandom.js"
88
+ },
89
+ "./coin": {
90
+ "import": "./coin.js"
91
+ },
92
+ "./constants": {
93
+ "import": "./constants.js"
94
+ },
95
+ "./crypto": {
96
+ "import": "./crypto.js"
97
+ },
98
+ "./distributions/exponential": {
99
+ "import": "./distributions/exponential.js"
100
+ },
101
+ "./distributions/gaussian": {
102
+ "import": "./distributions/gaussian.js"
103
+ },
104
+ "./distributions/geometric": {
105
+ "import": "./distributions/geometric.js"
106
+ },
107
+ "./distributions/normal": {
108
+ "import": "./distributions/normal.js"
109
+ },
110
+ "./distributions/uniform": {
111
+ "import": "./distributions/uniform.js"
112
+ },
113
+ "./pick-random": {
114
+ "import": "./pick-random.js"
115
+ },
116
+ "./random-bytes": {
117
+ "import": "./random-bytes.js"
118
+ },
119
+ "./random-id": {
120
+ "import": "./random-id.js"
121
+ },
122
+ "./smush32": {
123
+ "import": "./smush32.js"
124
+ },
125
+ "./system": {
126
+ "import": "./system.js"
127
+ },
128
+ "./unique-indices": {
129
+ "import": "./unique-indices.js"
130
+ },
131
+ "./uuid": {
132
+ "import": "./uuid.js"
133
+ },
134
+ "./weighted-random": {
135
+ "import": "./weighted-random.js"
136
+ },
137
+ "./xorshift128": {
138
+ "import": "./xorshift128.js"
139
+ },
140
+ "./xorwow": {
141
+ "import": "./xorwow.js"
142
+ },
143
+ "./xoshiro128": {
144
+ "import": "./xoshiro128.js"
145
+ },
146
+ "./xsadd": {
147
+ "import": "./xsadd.js"
148
+ }
149
+ },
150
+ "thi.ng": {
151
+ "year": 2015,
152
+ "related": [
153
+ "ksuid"
154
+ ]
155
+ },
156
+ "gitHead": "2db9dd34c0c2c60cbfde3dad0bca352b20292f5c\n"
157
+ }