lakutata 2.0.81 → 2.0.82

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 (369) hide show
  1. package/orm.cjs +731 -731
  2. package/orm.mjs +835 -835
  3. package/package.json +1 -1
  4. package/src/components/Database.cjs +2 -2
  5. package/src/components/Database.mjs +6 -6
  6. package/src/components/cacher/Cacher.cjs +129 -129
  7. package/src/components/cacher/Cacher.mjs +117 -117
  8. package/src/components/cacher/adapters/CreateFileCacheAdapter.cjs +94 -94
  9. package/src/components/cacher/adapters/CreateFileCacheAdapter.mjs +100 -100
  10. package/src/components/cacher/adapters/CreateMemcacheCacheAdapter.cjs +12 -12
  11. package/src/components/cacher/adapters/CreateMemcacheCacheAdapter.mjs +11 -11
  12. package/src/components/cacher/adapters/CreateMongoCacheAdapter.cjs +16 -16
  13. package/src/components/cacher/adapters/CreateMongoCacheAdapter.mjs +14 -14
  14. package/src/components/cacher/adapters/CreateMysqlCacheAdapter.cjs +11 -11
  15. package/src/components/cacher/adapters/CreateMysqlCacheAdapter.mjs +11 -11
  16. package/src/components/cacher/adapters/CreatePostgresCacheAdapter.cjs +12 -12
  17. package/src/components/cacher/adapters/CreatePostgresCacheAdapter.mjs +13 -13
  18. package/src/components/cacher/adapters/CreateRedisCacheAdapter.cjs +2 -2
  19. package/src/components/cacher/adapters/CreateRedisCacheAdapter.mjs +2 -2
  20. package/src/components/cacher/adapters/CreateSqliteCacheAdapter.cjs +10 -10
  21. package/src/components/cacher/adapters/CreateSqliteCacheAdapter.mjs +10 -10
  22. package/src/components/cacher/lib/IsDriverPackageInstalled.cjs +2 -2
  23. package/src/components/cacher/lib/IsDriverPackageInstalled.mjs +5 -5
  24. package/src/components/docker/ConnectionOptionsBuilder.cjs +10 -10
  25. package/src/components/docker/ConnectionOptionsBuilder.mjs +6 -6
  26. package/src/components/docker/Docker.cjs +1687 -1687
  27. package/src/components/docker/Docker.mjs +1563 -1563
  28. package/src/components/docker/lib/ParseEnvToRecord.cjs +2 -2
  29. package/src/components/docker/lib/ParseEnvToRecord.mjs +12 -12
  30. package/src/components/docker/lib/ParseRepositoryTag.cjs +9 -9
  31. package/src/components/docker/lib/ParseRepositoryTag.mjs +11 -11
  32. package/src/components/entrypoint/Entrypoint.cjs +1789 -1789
  33. package/src/components/entrypoint/Entrypoint.mjs +1632 -1632
  34. package/src/components/monitor/AliveMonitor.cjs +2 -2
  35. package/src/components/monitor/AliveMonitor.mjs +2 -2
  36. package/src/components/monitor/MemoryMonitor.cjs +3 -3
  37. package/src/decorators/asst/After.cjs +3 -3
  38. package/src/decorators/asst/After.mjs +2 -2
  39. package/src/decorators/asst/Before.cjs +2 -2
  40. package/src/decorators/asst/Before.mjs +4 -4
  41. package/src/decorators/ctrl/CLIAction.cjs +2 -2
  42. package/src/decorators/ctrl/CLIAction.mjs +7 -7
  43. package/src/decorators/ctrl/HTTPAction.cjs +6 -6
  44. package/src/decorators/ctrl/HTTPAction.mjs +4 -4
  45. package/src/decorators/ctrl/ServiceAction.cjs +3 -3
  46. package/src/decorators/ctrl/ServiceAction.mjs +4 -4
  47. package/src/decorators/ctrl/http/DELETE.cjs +2 -2
  48. package/src/decorators/ctrl/http/DELETE.mjs +2 -2
  49. package/src/decorators/ctrl/http/GET.cjs +2 -2
  50. package/src/decorators/ctrl/http/GET.mjs +2 -2
  51. package/src/decorators/ctrl/http/HEAD.cjs +2 -2
  52. package/src/decorators/ctrl/http/HEAD.mjs +2 -2
  53. package/src/decorators/ctrl/http/OPTIONS.cjs +2 -2
  54. package/src/decorators/ctrl/http/OPTIONS.mjs +2 -2
  55. package/src/decorators/ctrl/http/PATCH.cjs +2 -2
  56. package/src/decorators/ctrl/http/PATCH.mjs +2 -2
  57. package/src/decorators/ctrl/http/POST.cjs +2 -2
  58. package/src/decorators/ctrl/http/POST.mjs +2 -2
  59. package/src/decorators/ctrl/http/PUT.cjs +2 -2
  60. package/src/decorators/ctrl/http/PUT.mjs +2 -2
  61. package/src/decorators/di/Autoload.cjs +2 -2
  62. package/src/decorators/di/Autoload.mjs +2 -2
  63. package/src/decorators/di/Configurable.cjs +3 -3
  64. package/src/decorators/di/Configurable.mjs +2 -2
  65. package/src/decorators/di/Inject.cjs +6 -6
  66. package/src/decorators/di/Inject.mjs +11 -11
  67. package/src/decorators/di/Lifetime.cjs +18 -18
  68. package/src/decorators/di/Lifetime.mjs +13 -13
  69. package/src/decorators/dto/Accept.cjs +3 -3
  70. package/src/decorators/dto/Accept.mjs +2 -2
  71. package/src/decorators/dto/Expect.cjs +2 -2
  72. package/src/decorators/dto/Expect.mjs +3 -3
  73. package/src/decorators/dto/IndexSignature.cjs +2 -2
  74. package/src/decorators/dto/IndexSignature.mjs +3 -3
  75. package/src/decorators/dto/Return.cjs +3 -3
  76. package/src/decorators/dto/Return.mjs +2 -2
  77. package/src/lib/base/EventEmitter.cjs +238 -238
  78. package/src/lib/base/EventEmitter.mjs +221 -221
  79. package/src/lib/base/async-constructor/Append.cjs +11 -11
  80. package/src/lib/base/async-constructor/Append.mjs +7 -7
  81. package/src/lib/base/internal/BasicInfo.cjs +10 -10
  82. package/src/lib/base/internal/BasicInfo.mjs +9 -9
  83. package/src/lib/base/internal/CamelCase.cjs +4 -4
  84. package/src/lib/base/internal/CamelCase.mjs +11 -11
  85. package/src/lib/base/internal/ConfigurableRecordsInjection.cjs +19 -19
  86. package/src/lib/base/internal/ConfigurableRecordsInjection.mjs +18 -18
  87. package/src/lib/base/internal/ConstructorSymbol.cjs +10 -10
  88. package/src/lib/base/internal/ConstructorSymbol.mjs +8 -8
  89. package/src/lib/base/internal/ControllerEntrypoint.cjs +65 -65
  90. package/src/lib/base/internal/ControllerEntrypoint.mjs +36 -36
  91. package/src/lib/base/internal/DataValidator.cjs +70 -70
  92. package/src/lib/base/internal/DataValidator.mjs +137 -137
  93. package/src/lib/base/internal/GetActionDTOAndOptions.cjs +9 -9
  94. package/src/lib/base/internal/GetActionDTOAndOptions.mjs +10 -10
  95. package/src/lib/base/internal/IEEE754.cjs +74 -74
  96. package/src/lib/base/internal/IEEE754.mjs +70 -70
  97. package/src/lib/base/internal/MethodAssistantFunction.cjs +28 -28
  98. package/src/lib/base/internal/MethodAssistantFunction.mjs +38 -38
  99. package/src/lib/base/internal/MethodValidation.cjs +25 -25
  100. package/src/lib/base/internal/MethodValidation.mjs +20 -20
  101. package/src/lib/base/internal/ObjectConfiguration.cjs +10 -10
  102. package/src/lib/base/internal/ObjectConfiguration.mjs +15 -15
  103. package/src/lib/base/internal/ObjectContainer.cjs +7 -7
  104. package/src/lib/base/internal/ObjectContainer.mjs +6 -6
  105. package/src/lib/base/internal/ObjectInjection.cjs +16 -16
  106. package/src/lib/base/internal/ObjectInjection.mjs +13 -13
  107. package/src/lib/base/internal/ObjectLifetime.cjs +10 -10
  108. package/src/lib/base/internal/ObjectLifetime.mjs +9 -9
  109. package/src/lib/base/internal/ObjectWeakRefs.cjs +11 -11
  110. package/src/lib/base/internal/ObjectWeakRefs.mjs +9 -9
  111. package/src/lib/base/internal/PatternManager.cjs +235 -235
  112. package/src/lib/base/internal/PatternManager.mjs +233 -233
  113. package/src/lib/base/internal/StringifyPattern.cjs +26 -26
  114. package/src/lib/base/internal/StringifyPattern.mjs +26 -26
  115. package/src/lib/base/internal/ThrowWarning.cjs +2 -2
  116. package/src/lib/base/internal/ThrowWarning.mjs +2 -2
  117. package/src/lib/core/Alias.cjs +5 -5
  118. package/src/lib/core/Application.cjs +57 -57
  119. package/src/lib/core/Application.mjs +63 -63
  120. package/src/lib/helpers/ArrayToSet.cjs +2 -2
  121. package/src/lib/helpers/ArrayToSet.mjs +3 -3
  122. package/src/lib/helpers/As.cjs +2 -2
  123. package/src/lib/helpers/As.mjs +2 -2
  124. package/src/lib/helpers/ConvertArrayLikeToIterable.cjs +3 -3
  125. package/src/lib/helpers/ConvertArrayLikeToIterable.mjs +3 -3
  126. package/src/lib/helpers/ConvertArrayLikeToStream.cjs +2 -2
  127. package/src/lib/helpers/ConvertArrayLikeToStream.mjs +2 -2
  128. package/src/lib/helpers/Delay.cjs +2 -2
  129. package/src/lib/helpers/Delay.mjs +2 -2
  130. package/src/lib/helpers/DevNull.cjs +2 -2
  131. package/src/lib/helpers/DevNull.mjs +2 -2
  132. package/src/lib/helpers/GetObjectNestingDepth.cjs +12 -12
  133. package/src/lib/helpers/GetObjectNestingDepth.mjs +11 -11
  134. package/src/lib/helpers/GetObjectPropertyPaths.cjs +7 -7
  135. package/src/lib/helpers/GetObjectPropertyPaths.mjs +9 -9
  136. package/src/lib/helpers/Glob.cjs +890 -890
  137. package/src/lib/helpers/Glob.mjs +889 -889
  138. package/src/lib/helpers/GraceExit.cjs +3 -3
  139. package/src/lib/helpers/GraceExit.mjs +7 -7
  140. package/src/lib/helpers/HexToIEEE754.cjs +4 -4
  141. package/src/lib/helpers/HexToIEEE754.mjs +2 -2
  142. package/src/lib/helpers/HexToSigned.cjs +5 -5
  143. package/src/lib/helpers/HexToSigned.mjs +4 -4
  144. package/src/lib/helpers/HexToUnsigned.cjs +2 -2
  145. package/src/lib/helpers/HexToUnsigned.mjs +2 -2
  146. package/src/lib/helpers/IEEE754ToHex.cjs +5 -5
  147. package/src/lib/helpers/IEEE754ToHex.mjs +5 -5
  148. package/src/lib/helpers/IsAbortError.cjs +2 -2
  149. package/src/lib/helpers/IsAbortError.mjs +3 -3
  150. package/src/lib/helpers/IsEmptyObject.cjs +3 -3
  151. package/src/lib/helpers/IsEmptyObject.mjs +3 -3
  152. package/src/lib/helpers/IsExists.cjs +5 -5
  153. package/src/lib/helpers/IsExists.mjs +4 -4
  154. package/src/lib/helpers/IsHtml.cjs +23 -7
  155. package/src/lib/helpers/IsHtml.mjs +23 -7
  156. package/src/lib/helpers/IsNativeFunction.cjs +2 -2
  157. package/src/lib/helpers/IsNativeFunction.mjs +2 -2
  158. package/src/lib/helpers/IsPath.cjs +2 -2
  159. package/src/lib/helpers/IsPath.mjs +5 -5
  160. package/src/lib/helpers/IsPromise.cjs +2 -2
  161. package/src/lib/helpers/IsPromise.mjs +2 -2
  162. package/src/lib/helpers/IsPromiseLike.cjs +5 -5
  163. package/src/lib/helpers/IsPromiseLike.mjs +6 -6
  164. package/src/lib/helpers/IsXML.cjs +1502 -1650
  165. package/src/lib/helpers/IsXML.mjs +1500 -1648
  166. package/src/lib/helpers/MD5.cjs +2 -2
  167. package/src/lib/helpers/MD5.mjs +2 -2
  168. package/src/lib/helpers/MergeArray.cjs +3 -3
  169. package/src/lib/helpers/MergeArray.mjs +3 -3
  170. package/src/lib/helpers/MergeMap.cjs +3 -3
  171. package/src/lib/helpers/MergeMap.mjs +3 -3
  172. package/src/lib/helpers/MergeSet.cjs +2 -2
  173. package/src/lib/helpers/MergeSet.mjs +3 -3
  174. package/src/lib/helpers/NoCase.cjs +27 -27
  175. package/src/lib/helpers/NoCase.mjs +24 -24
  176. package/src/lib/helpers/NonceStr.cjs +2 -2
  177. package/src/lib/helpers/NonceStr.mjs +2 -2
  178. package/src/lib/helpers/ObjectConstructor.cjs +2 -2
  179. package/src/lib/helpers/ObjectConstructor.mjs +4 -4
  180. package/src/lib/helpers/ObjectHash.cjs +234 -234
  181. package/src/lib/helpers/ObjectHash.mjs +227 -227
  182. package/src/lib/helpers/ObjectParentConstructor.cjs +2 -2
  183. package/src/lib/helpers/ObjectParentConstructor.mjs +5 -5
  184. package/src/lib/helpers/ObjectParentConstructors.cjs +6 -6
  185. package/src/lib/helpers/ObjectParentConstructors.mjs +2 -2
  186. package/src/lib/helpers/ObjectPrototype.cjs +2 -2
  187. package/src/lib/helpers/ObjectPrototype.mjs +2 -2
  188. package/src/lib/helpers/ObjectToMap.cjs +2 -2
  189. package/src/lib/helpers/ObjectToMap.mjs +3 -3
  190. package/src/lib/helpers/Paginator.cjs +2 -2
  191. package/src/lib/helpers/Paginator.mjs +6 -6
  192. package/src/lib/helpers/RandomString.cjs +82 -82
  193. package/src/lib/helpers/RandomString.mjs +67 -67
  194. package/src/lib/helpers/SHA1.cjs +2 -2
  195. package/src/lib/helpers/SHA1.mjs +2 -2
  196. package/src/lib/helpers/SHA256.cjs +2 -2
  197. package/src/lib/helpers/SHA256.mjs +2 -2
  198. package/src/lib/helpers/SetToArray.cjs +2 -2
  199. package/src/lib/helpers/SetToArray.mjs +2 -2
  200. package/src/lib/helpers/SignedToHex.cjs +4 -4
  201. package/src/lib/helpers/SignedToHex.mjs +4 -4
  202. package/src/lib/helpers/SortArray.cjs +16 -16
  203. package/src/lib/helpers/SortArray.mjs +15 -15
  204. package/src/lib/helpers/SortKeys.cjs +41 -41
  205. package/src/lib/helpers/SortKeys.mjs +41 -41
  206. package/src/lib/helpers/SortObject.cjs +2 -2
  207. package/src/lib/helpers/SortObject.mjs +2 -2
  208. package/src/lib/helpers/Templating.cjs +25 -25
  209. package/src/lib/helpers/Templating.mjs +25 -25
  210. package/src/lib/helpers/URLBuilder.cjs +234 -234
  211. package/src/lib/helpers/URLBuilder.mjs +231 -231
  212. package/src/lib/helpers/UniqueArray.cjs +3 -3
  213. package/src/lib/helpers/UniqueArray.mjs +2 -2
  214. package/src/lib/helpers/UnsignedToHex.cjs +3 -3
  215. package/src/lib/helpers/UnsignedToHex.mjs +3 -3
  216. package/src/lib/ioc/DependencyInjectionContainer.cjs +106 -106
  217. package/src/lib/ioc/DependencyInjectionContainer.mjs +122 -122
  218. package/src/lib/ioc/FunctionTokenizer.cjs +115 -115
  219. package/src/lib/ioc/FunctionTokenizer.mjs +102 -102
  220. package/src/lib/ioc/Lifetime.cjs +5 -5
  221. package/src/lib/ioc/Lifetime.mjs +5 -5
  222. package/src/lib/ioc/ListModules.cjs +3359 -3359
  223. package/src/lib/ioc/ListModules.mjs +2274 -2274
  224. package/src/lib/ioc/LoadModules.cjs +56 -56
  225. package/src/lib/ioc/LoadModules.mjs +69 -69
  226. package/src/lib/ioc/ParamParser.cjs +30 -30
  227. package/src/lib/ioc/ParamParser.mjs +41 -41
  228. package/src/lib/ioc/Resolvers.cjs +87 -87
  229. package/src/lib/ioc/Resolvers.mjs +109 -109
  230. package/src/lib/ioc/Utils.cjs +12 -12
  231. package/src/lib/ioc/Utils.mjs +18 -18
  232. package/src/lib/validation/VLD.cjs +1124 -1124
  233. package/src/lib/validation/VLD.mjs +1113 -1113
  234. package/src/providers/Database.cjs +2 -2
  235. package/src/providers/Database.mjs +7 -7
  236. package/src/providers/PasswordHash.cjs +330 -330
  237. package/src/providers/PasswordHash.mjs +397 -397
  238. package/vendor/Package.1.cjs +256 -256
  239. package/vendor/Package.1.mjs +254 -254
  240. package/vendor/Package.112.cjs +32208 -32208
  241. package/vendor/Package.112.mjs +32111 -32111
  242. package/vendor/Package.13.cjs +36 -36
  243. package/vendor/Package.13.mjs +24 -24
  244. package/vendor/Package.16.cjs +10312 -10312
  245. package/vendor/Package.16.mjs +10309 -10309
  246. package/vendor/Package.17.cjs +924 -924
  247. package/vendor/Package.17.mjs +943 -943
  248. package/vendor/Package.18.cjs +19 -19
  249. package/vendor/Package.18.mjs +21 -21
  250. package/vendor/Package.19.cjs +19 -19
  251. package/vendor/Package.19.mjs +20 -20
  252. package/vendor/Package.2.cjs +3913 -3913
  253. package/vendor/Package.2.mjs +3931 -3931
  254. package/vendor/Package.20.cjs +16 -16
  255. package/vendor/Package.20.mjs +12 -12
  256. package/vendor/Package.21.cjs +19 -19
  257. package/vendor/Package.21.mjs +17 -17
  258. package/vendor/Package.22.cjs +11 -11
  259. package/vendor/Package.22.mjs +12 -12
  260. package/vendor/Package.23.cjs +8 -8
  261. package/vendor/Package.23.mjs +12 -12
  262. package/vendor/Package.24.cjs +16 -16
  263. package/vendor/Package.24.mjs +14 -14
  264. package/vendor/Package.25.cjs +11 -11
  265. package/vendor/Package.25.mjs +12 -12
  266. package/vendor/Package.26.cjs +19 -19
  267. package/vendor/Package.26.mjs +12 -12
  268. package/vendor/Package.27.cjs +16 -16
  269. package/vendor/Package.27.mjs +6 -6
  270. package/vendor/Package.28.cjs +19 -19
  271. package/vendor/Package.28.mjs +17 -17
  272. package/vendor/Package.29.cjs +15 -15
  273. package/vendor/Package.29.mjs +13 -13
  274. package/vendor/Package.3.cjs +60 -60
  275. package/vendor/Package.3.mjs +85 -85
  276. package/vendor/Package.30.cjs +9 -9
  277. package/vendor/Package.30.mjs +9 -9
  278. package/vendor/Package.31.cjs +14 -14
  279. package/vendor/Package.31.mjs +27 -27
  280. package/vendor/Package.32.cjs +11 -11
  281. package/vendor/Package.32.mjs +11 -11
  282. package/vendor/Package.33.cjs +4 -4
  283. package/vendor/Package.33.mjs +6 -6
  284. package/vendor/Package.34.cjs +10 -10
  285. package/vendor/Package.34.mjs +23 -23
  286. package/vendor/Package.35.cjs +6 -6
  287. package/vendor/Package.35.mjs +16 -16
  288. package/vendor/Package.36.cjs +17 -17
  289. package/vendor/Package.36.mjs +21 -21
  290. package/vendor/Package.37.cjs +15 -15
  291. package/vendor/Package.37.mjs +17 -17
  292. package/vendor/Package.38.cjs +12 -12
  293. package/vendor/Package.38.mjs +16 -16
  294. package/vendor/Package.39.cjs +17 -17
  295. package/vendor/Package.39.mjs +13 -13
  296. package/vendor/Package.4.cjs +412 -412
  297. package/vendor/Package.4.mjs +537 -537
  298. package/vendor/Package.40.cjs +5 -5
  299. package/vendor/Package.40.mjs +6 -6
  300. package/vendor/Package.41.cjs +18 -18
  301. package/vendor/Package.41.mjs +17 -17
  302. package/vendor/Package.42.cjs +24 -24
  303. package/vendor/Package.42.mjs +17 -17
  304. package/vendor/Package.43.cjs +5 -5
  305. package/vendor/Package.43.mjs +19 -19
  306. package/vendor/Package.44.cjs +16 -16
  307. package/vendor/Package.44.mjs +13 -13
  308. package/vendor/Package.45.cjs +21 -21
  309. package/vendor/Package.45.mjs +22 -22
  310. package/vendor/Package.46.cjs +6 -6
  311. package/vendor/Package.46.mjs +22 -22
  312. package/vendor/Package.47.cjs +16 -16
  313. package/vendor/Package.47.mjs +29 -29
  314. package/vendor/Package.48.cjs +8 -8
  315. package/vendor/Package.48.mjs +16 -16
  316. package/vendor/Package.49.cjs +6 -6
  317. package/vendor/Package.49.mjs +20 -20
  318. package/vendor/Package.5.cjs +10 -10
  319. package/vendor/Package.5.mjs +9 -9
  320. package/vendor/Package.50.cjs +13 -13
  321. package/vendor/Package.50.mjs +14 -14
  322. package/vendor/Package.51.cjs +18 -18
  323. package/vendor/Package.51.mjs +23 -23
  324. package/vendor/Package.52.cjs +4 -4
  325. package/vendor/Package.52.mjs +5 -5
  326. package/vendor/Package.53.cjs +6 -6
  327. package/vendor/Package.53.mjs +8 -8
  328. package/vendor/Package.54.cjs +30 -30
  329. package/vendor/Package.54.mjs +29 -29
  330. package/vendor/Package.55.cjs +16 -16
  331. package/vendor/Package.55.mjs +20 -20
  332. package/vendor/Package.56.cjs +14 -14
  333. package/vendor/Package.56.mjs +18 -18
  334. package/vendor/Package.57.cjs +6 -6
  335. package/vendor/Package.57.mjs +17 -17
  336. package/vendor/Package.58.cjs +22 -22
  337. package/vendor/Package.58.mjs +19 -19
  338. package/vendor/Package.59.cjs +18 -18
  339. package/vendor/Package.59.mjs +13 -13
  340. package/vendor/Package.6.cjs +1739 -1739
  341. package/vendor/Package.6.mjs +1739 -1739
  342. package/vendor/Package.60.cjs +13553 -13553
  343. package/vendor/Package.60.mjs +13562 -13562
  344. package/vendor/Package.610.cjs +9 -9
  345. package/vendor/Package.611.cjs +39 -39
  346. package/vendor/Package.611.mjs +22 -22
  347. package/vendor/Package.612.cjs +33 -33
  348. package/vendor/Package.612.mjs +17 -17
  349. package/vendor/Package.613.cjs +62 -62
  350. package/vendor/Package.613.mjs +29 -29
  351. package/vendor/Package.62.cjs +292 -292
  352. package/vendor/Package.62.mjs +312 -312
  353. package/vendor/Package.63.cjs +354 -354
  354. package/vendor/Package.63.mjs +229 -229
  355. package/vendor/Package.64.cjs +74 -74
  356. package/vendor/Package.64.mjs +74 -74
  357. package/vendor/Package.65.cjs +1833 -1833
  358. package/vendor/Package.65.mjs +1656 -1656
  359. package/vendor/Package.66.cjs +16 -16
  360. package/vendor/Package.66.mjs +16 -16
  361. package/vendor/Package.67.cjs +87 -87
  362. package/vendor/Package.67.mjs +85 -85
  363. package/vendor/Package.68.cjs +115 -256
  364. package/vendor/Package.68.mjs +134 -268
  365. package/vendor/Package.69.cjs +8 -8
  366. package/vendor/Package.7.cjs +3 -3
  367. package/vendor/Package.7.mjs +3 -3
  368. package/vendor/Package.9.cjs +45 -45
  369. package/vendor/Package.9.mjs +79 -79
@@ -1,563 +1,563 @@
1
1
  "use strict";
2
2
 
3
- function r(r) {
4
- var t;
3
+ function linearRegression(r) {
5
4
  var e;
5
+ var t;
6
6
  var n = r.length;
7
7
  if (n === 1) {
8
- t = 0;
9
- e = r[0][1];
8
+ e = 0;
9
+ t = r[0][1];
10
10
  } else {
11
11
  var a = 0;
12
- var o = 0;
13
12
  var i = 0;
13
+ var o = 0;
14
14
  var u = 0;
15
+ var s;
16
+ var l;
15
17
  var f;
16
- var v;
17
- var h;
18
- for (var s = 0; s < n; s++) {
19
- f = r[s];
20
- v = f[0];
21
- h = f[1];
22
- a += v;
23
- o += h;
24
- i += v * v;
25
- u += v * h;
26
- }
27
- t = (n * u - a * o) / (n * i - a * a);
28
- e = o / n - t * a / n;
18
+ for (var v = 0; v < n; v++) {
19
+ s = r[v];
20
+ l = s[0];
21
+ f = s[1];
22
+ a += l;
23
+ i += f;
24
+ o += l * l;
25
+ u += l * f;
26
+ }
27
+ e = (n * u - a * i) / (n * o - a * a);
28
+ t = i / n - e * a / n;
29
29
  }
30
30
  return {
31
- m: t,
32
- b: e
31
+ m: e,
32
+ b: t
33
33
  };
34
34
  }
35
35
 
36
- function t(r) {
37
- return function(t) {
38
- return r.b + r.m * t;
36
+ function linearRegressionLine(r) {
37
+ return function(e) {
38
+ return r.b + r.m * e;
39
39
  };
40
40
  }
41
41
 
42
- function e(r) {
42
+ function sum(r) {
43
43
  if (r.length === 0) {
44
44
  return 0;
45
45
  }
46
- var t = r[0];
47
- var e = 0;
46
+ var e = r[0];
47
+ var t = 0;
48
48
  var n;
49
- if (typeof t !== "number") {
49
+ if (typeof e !== "number") {
50
50
  return Number.NaN;
51
51
  }
52
52
  for (var a = 1; a < r.length; a++) {
53
53
  if (typeof r[a] !== "number") {
54
54
  return Number.NaN;
55
55
  }
56
- n = t + r[a];
57
- if (Math.abs(t) >= Math.abs(r[a])) {
58
- e += t - n + r[a];
56
+ n = e + r[a];
57
+ if (Math.abs(e) >= Math.abs(r[a])) {
58
+ t += e - n + r[a];
59
59
  } else {
60
- e += r[a] - n + t;
60
+ t += r[a] - n + e;
61
61
  }
62
- t = n;
62
+ e = n;
63
63
  }
64
- return t + e;
64
+ return e + t;
65
65
  }
66
66
 
67
- function n(r) {
67
+ function mean(r) {
68
68
  if (r.length === 0) {
69
69
  throw new Error("mean requires at least one data point");
70
70
  }
71
- return e(r) / r.length;
71
+ return sum(r) / r.length;
72
72
  }
73
73
 
74
- function a(r, t) {
75
- var e = n(r);
76
- var a = 0;
77
- var o;
74
+ function sumNthPowerDeviations(r, e) {
75
+ var t = mean(r);
76
+ var n = 0;
77
+ var a;
78
78
  var i;
79
- if (t === 2) {
79
+ if (e === 2) {
80
80
  for (i = 0; i < r.length; i++) {
81
- o = r[i] - e;
82
- a += o * o;
81
+ a = r[i] - t;
82
+ n += a * a;
83
83
  }
84
84
  } else {
85
85
  for (i = 0; i < r.length; i++) {
86
- a += Math.pow(r[i] - e, t);
86
+ n += Math.pow(r[i] - t, e);
87
87
  }
88
88
  }
89
- return a;
89
+ return n;
90
90
  }
91
91
 
92
- function o(r) {
92
+ function variance(r) {
93
93
  if (r.length === 0) {
94
94
  throw new Error("variance requires at least one data point");
95
95
  }
96
- return a(r, 2) / r.length;
96
+ return sumNthPowerDeviations(r, 2) / r.length;
97
97
  }
98
98
 
99
- function i(r) {
99
+ function standardDeviation(r) {
100
100
  if (r.length === 1) {
101
101
  return 0;
102
102
  }
103
- var t = o(r);
104
- return Math.sqrt(t);
103
+ var e = variance(r);
104
+ return Math.sqrt(e);
105
105
  }
106
106
 
107
- function u(r, t) {
107
+ function rSquared(r, e) {
108
108
  if (r.length < 2) {
109
109
  return 1;
110
110
  }
111
- var e = 0;
111
+ var t = 0;
112
112
  for (var n = 0; n < r.length; n++) {
113
- e += r[n][1];
113
+ t += r[n][1];
114
114
  }
115
- var a = e / r.length;
116
- var o = 0;
117
- for (var i = 0; i < r.length; i++) {
118
- o += Math.pow(a - r[i][1], 2);
115
+ var a = t / r.length;
116
+ var i = 0;
117
+ for (var o = 0; o < r.length; o++) {
118
+ i += Math.pow(a - r[o][1], 2);
119
119
  }
120
120
  var u = 0;
121
- for (var f = 0; f < r.length; f++) {
122
- u += Math.pow(r[f][1] - t(r[f][0]), 2);
121
+ for (var s = 0; s < r.length; s++) {
122
+ u += Math.pow(r[s][1] - e(r[s][0]), 2);
123
123
  }
124
- return 1 - u / o;
124
+ return 1 - u / i;
125
125
  }
126
126
 
127
- function f(r) {
127
+ function modeSorted(r) {
128
128
  if (r.length === 0) {
129
129
  throw new Error("mode requires at least one data point");
130
130
  }
131
131
  if (r.length === 1) {
132
132
  return r[0];
133
133
  }
134
- var t = r[0];
135
- var e = Number.NaN;
134
+ var e = r[0];
135
+ var t = Number.NaN;
136
136
  var n = 0;
137
137
  var a = 1;
138
- for (var o = 1; o < r.length + 1; o++) {
139
- if (r[o] !== t) {
138
+ for (var i = 1; i < r.length + 1; i++) {
139
+ if (r[i] !== e) {
140
140
  if (a > n) {
141
141
  n = a;
142
- e = t;
142
+ t = e;
143
143
  }
144
144
  a = 1;
145
- t = r[o];
145
+ e = r[i];
146
146
  } else {
147
147
  a++;
148
148
  }
149
149
  }
150
- return e;
150
+ return t;
151
151
  }
152
152
 
153
- function v(r) {
154
- return r.slice().sort((function(r, t) {
155
- return r - t;
153
+ function numericSort(r) {
154
+ return r.slice().sort((function(r, e) {
155
+ return r - e;
156
156
  }));
157
157
  }
158
158
 
159
- function h(r) {
160
- return f(v(r));
159
+ function mode(r) {
160
+ return modeSorted(numericSort(r));
161
161
  }
162
162
 
163
- function s(r) {
164
- var t = new Map;
165
- var e;
163
+ function modeFast(r) {
164
+ var e = new Map;
165
+ var t;
166
166
  var n = 0;
167
167
  for (var a = 0; a < r.length; a++) {
168
- var o = t.get(r[a]);
169
- if (o === undefined) {
170
- o = 1;
168
+ var i = e.get(r[a]);
169
+ if (i === undefined) {
170
+ i = 1;
171
171
  } else {
172
- o++;
172
+ i++;
173
173
  }
174
- if (o > n) {
175
- e = r[a];
176
- n = o;
174
+ if (i > n) {
175
+ t = r[a];
176
+ n = i;
177
177
  }
178
- t.set(r[a], o);
178
+ e.set(r[a], i);
179
179
  }
180
180
  if (n === 0) {
181
181
  throw new Error("mode requires at last one data point");
182
182
  }
183
- return e;
183
+ return t;
184
184
  }
185
185
 
186
- function l(r) {
186
+ function min(r) {
187
187
  if (r.length === 0) {
188
188
  throw new Error("min requires at least one data point");
189
189
  }
190
- var t = r[0];
191
- for (var e = 1; e < r.length; e++) {
192
- if (r[e] < t) {
193
- t = r[e];
190
+ var e = r[0];
191
+ for (var t = 1; t < r.length; t++) {
192
+ if (r[t] < e) {
193
+ e = r[t];
194
194
  }
195
195
  }
196
- return t;
196
+ return e;
197
197
  }
198
198
 
199
- function c(r) {
199
+ function max(r) {
200
200
  if (r.length === 0) {
201
201
  throw new Error("max requires at least one data point");
202
202
  }
203
- var t = r[0];
204
- for (var e = 1; e < r.length; e++) {
205
- if (r[e] > t) {
206
- t = r[e];
203
+ var e = r[0];
204
+ for (var t = 1; t < r.length; t++) {
205
+ if (r[t] > e) {
206
+ e = r[t];
207
207
  }
208
208
  }
209
- return t;
209
+ return e;
210
210
  }
211
211
 
212
- function p(r) {
212
+ function extent(r) {
213
213
  if (r.length === 0) {
214
214
  throw new Error("extent requires at least one data point");
215
215
  }
216
- var t = r[0];
217
216
  var e = r[0];
217
+ var t = r[0];
218
218
  for (var n = 1; n < r.length; n++) {
219
- if (r[n] > e) {
220
- e = r[n];
221
- }
222
- if (r[n] < t) {
219
+ if (r[n] > t) {
223
220
  t = r[n];
224
221
  }
222
+ if (r[n] < e) {
223
+ e = r[n];
224
+ }
225
225
  }
226
- return [ t, e ];
226
+ return [ e, t ];
227
227
  }
228
228
 
229
- function g(r) {
229
+ function minSorted(r) {
230
230
  return r[0];
231
231
  }
232
232
 
233
- function w(r) {
233
+ function maxSorted(r) {
234
234
  return r[r.length - 1];
235
235
  }
236
236
 
237
- function M(r) {
237
+ function extentSorted(r) {
238
238
  return [ r[0], r[r.length - 1] ];
239
239
  }
240
240
 
241
- function m(r) {
242
- var t = 0;
243
- for (var e = 0; e < r.length; e++) {
244
- if (typeof r[e] !== "number") {
241
+ function sumSimple(r) {
242
+ var e = 0;
243
+ for (var t = 0; t < r.length; t++) {
244
+ if (typeof r[t] !== "number") {
245
245
  return Number.NaN;
246
246
  }
247
- t += r[e];
247
+ e += r[t];
248
248
  }
249
- return t;
249
+ return e;
250
250
  }
251
251
 
252
- function d(r) {
253
- var t = 1;
254
- for (var e = 0; e < r.length; e++) {
255
- t *= r[e];
252
+ function product(r) {
253
+ var e = 1;
254
+ for (var t = 0; t < r.length; t++) {
255
+ e *= r[t];
256
256
  }
257
- return t;
257
+ return e;
258
258
  }
259
259
 
260
- function b(r, t) {
261
- var e = r.length * t;
260
+ function quantileSorted(r, e) {
261
+ var t = r.length * e;
262
262
  if (r.length === 0) {
263
263
  throw new Error("quantile requires at least one data point.");
264
- } else if (t < 0 || t > 1) {
264
+ } else if (e < 0 || e > 1) {
265
265
  throw new Error("quantiles must be between 0 and 1");
266
- } else if (t === 1) {
266
+ } else if (e === 1) {
267
267
  return r[r.length - 1];
268
- } else if (t === 0) {
268
+ } else if (e === 0) {
269
269
  return r[0];
270
- } else if (e % 1 !== 0) {
271
- return r[Math.ceil(e) - 1];
270
+ } else if (t % 1 !== 0) {
271
+ return r[Math.ceil(t) - 1];
272
272
  } else if (r.length % 2 === 0) {
273
- return (r[e - 1] + r[e]) / 2;
273
+ return (r[t - 1] + r[t]) / 2;
274
274
  } else {
275
- return r[e];
275
+ return r[t];
276
276
  }
277
277
  }
278
278
 
279
- function x(r, t, e, n) {
280
- e = e || 0;
279
+ function quickselect(r, e, t, n) {
280
+ t = t || 0;
281
281
  n = n || r.length - 1;
282
- while (n > e) {
283
- if (n - e > 600) {
284
- var a = n - e + 1;
285
- var o = t - e + 1;
286
- var i = Math.log(a);
287
- var u = .5 * Math.exp(2 * i / 3);
288
- var f = .5 * Math.sqrt(i * u * (a - u) / a);
289
- if (o - a / 2 < 0) {
290
- f *= -1;
282
+ while (n > t) {
283
+ if (n - t > 600) {
284
+ var a = n - t + 1;
285
+ var i = e - t + 1;
286
+ var o = Math.log(a);
287
+ var u = .5 * Math.exp(2 * o / 3);
288
+ var s = .5 * Math.sqrt(o * u * (a - u) / a);
289
+ if (i - a / 2 < 0) {
290
+ s *= -1;
291
291
  }
292
- var v = Math.max(e, Math.floor(t - o * u / a + f));
293
- var h = Math.min(n, Math.floor(t + (a - o) * u / a + f));
294
- x(r, t, v, h);
292
+ var l = Math.max(t, Math.floor(e - i * u / a + s));
293
+ var f = Math.min(n, Math.floor(e + (a - i) * u / a + s));
294
+ quickselect(r, e, l, f);
295
295
  }
296
- var s = r[t];
297
- var l = e;
296
+ var v = r[e];
297
+ var h = t;
298
298
  var c = n;
299
- q(r, e, t);
300
- if (r[n] > s) {
301
- q(r, e, n);
299
+ swap(r, t, e);
300
+ if (r[n] > v) {
301
+ swap(r, t, n);
302
302
  }
303
- while (l < c) {
304
- q(r, l, c);
305
- l++;
303
+ while (h < c) {
304
+ swap(r, h, c);
305
+ h++;
306
306
  c--;
307
- while (r[l] < s) {
308
- l++;
307
+ while (r[h] < v) {
308
+ h++;
309
309
  }
310
- while (r[c] > s) {
310
+ while (r[c] > v) {
311
311
  c--;
312
312
  }
313
313
  }
314
- if (r[e] === s) {
315
- q(r, e, c);
314
+ if (r[t] === v) {
315
+ swap(r, t, c);
316
316
  } else {
317
317
  c++;
318
- q(r, c, n);
318
+ swap(r, c, n);
319
319
  }
320
- if (c <= t) {
321
- e = c + 1;
320
+ if (c <= e) {
321
+ t = c + 1;
322
322
  }
323
- if (t <= c) {
323
+ if (e <= c) {
324
324
  n = c - 1;
325
325
  }
326
326
  }
327
327
  }
328
328
 
329
- function q(r, t, e) {
330
- var n = r[t];
331
- r[t] = r[e];
332
- r[e] = n;
329
+ function swap(r, e, t) {
330
+ var n = r[e];
331
+ r[e] = r[t];
332
+ r[t] = n;
333
333
  }
334
334
 
335
- function E(r, t) {
336
- var e = r.slice();
337
- if (Array.isArray(t)) {
338
- N(e, t);
335
+ function quantile(r, e) {
336
+ var t = r.slice();
337
+ if (Array.isArray(e)) {
338
+ multiQuantileSelect(t, e);
339
339
  var n = [];
340
- for (var a = 0; a < t.length; a++) {
341
- n[a] = b(e, t[a]);
340
+ for (var a = 0; a < e.length; a++) {
341
+ n[a] = quantileSorted(t, e[a]);
342
342
  }
343
343
  return n;
344
344
  } else {
345
- var o = k(e.length, t);
346
- y(e, o, 0, e.length - 1);
347
- return b(e, t);
345
+ var i = quantileIndex(t.length, e);
346
+ quantileSelect(t, i, 0, t.length - 1);
347
+ return quantileSorted(t, e);
348
348
  }
349
349
  }
350
350
 
351
- function y(r, t, e, n) {
352
- if (t % 1 === 0) {
353
- x(r, t, e, n);
351
+ function quantileSelect(r, e, t, n) {
352
+ if (e % 1 === 0) {
353
+ quickselect(r, e, t, n);
354
354
  } else {
355
- t = Math.floor(t);
356
- x(r, t, e, n);
357
- x(r, t + 1, t + 1, n);
355
+ e = Math.floor(e);
356
+ quickselect(r, e, t, n);
357
+ quickselect(r, e + 1, e + 1, n);
358
358
  }
359
359
  }
360
360
 
361
- function N(r, t) {
362
- var e = [ 0 ];
363
- for (var n = 0; n < t.length; n++) {
364
- e.push(k(r.length, t[n]));
361
+ function multiQuantileSelect(r, e) {
362
+ var t = [ 0 ];
363
+ for (var n = 0; n < e.length; n++) {
364
+ t.push(quantileIndex(r.length, e[n]));
365
365
  }
366
- e.push(r.length - 1);
367
- e.sort(I);
368
- var a = [ 0, e.length - 1 ];
366
+ t.push(r.length - 1);
367
+ t.sort(compare);
368
+ var a = [ 0, t.length - 1 ];
369
369
  while (a.length) {
370
- var o = Math.ceil(a.pop());
371
- var i = Math.floor(a.pop());
372
- if (o - i <= 1) {
370
+ var i = Math.ceil(a.pop());
371
+ var o = Math.floor(a.pop());
372
+ if (i - o <= 1) {
373
373
  continue;
374
374
  }
375
- var u = Math.floor((i + o) / 2);
376
- y(r, e[u], Math.floor(e[i]), Math.ceil(e[o]));
377
- a.push(i, u, u, o);
375
+ var u = Math.floor((o + i) / 2);
376
+ quantileSelect(r, t[u], Math.floor(t[o]), Math.ceil(t[i]));
377
+ a.push(o, u, u, i);
378
378
  }
379
379
  }
380
380
 
381
- function I(r, t) {
382
- return r - t;
381
+ function compare(r, e) {
382
+ return r - e;
383
383
  }
384
384
 
385
- function k(r, t) {
386
- var e = r * t;
387
- if (t === 1) {
385
+ function quantileIndex(r, e) {
386
+ var t = r * e;
387
+ if (e === 1) {
388
388
  return r - 1;
389
- } else if (t === 0) {
389
+ } else if (e === 0) {
390
390
  return 0;
391
- } else if (e % 1 !== 0) {
392
- return Math.ceil(e) - 1;
391
+ } else if (t % 1 !== 0) {
392
+ return Math.ceil(t) - 1;
393
393
  } else if (r % 2 === 0) {
394
- return e - .5;
394
+ return t - .5;
395
395
  } else {
396
- return e;
396
+ return t;
397
397
  }
398
398
  }
399
399
 
400
- function A(r, t) {
401
- if (t < r[0]) {
400
+ function quantileRankSorted(r, e) {
401
+ if (e < r[0]) {
402
402
  return 0;
403
403
  }
404
- if (t > r[r.length - 1]) {
404
+ if (e > r[r.length - 1]) {
405
405
  return 1;
406
406
  }
407
- var e = P(r, t);
408
- if (r[e] !== t) {
409
- return e / r.length;
407
+ var t = lowerBound(r, e);
408
+ if (r[t] !== e) {
409
+ return t / r.length;
410
410
  }
411
- e++;
412
- var n = S(r, t);
413
- if (n === e) {
414
- return e / r.length;
411
+ t++;
412
+ var n = upperBound(r, e);
413
+ if (n === t) {
414
+ return t / r.length;
415
415
  }
416
- var a = n - e + 1;
417
- var o = a * (n + e) / 2;
418
- var i = o / a;
419
- return i / r.length;
416
+ var a = n - t + 1;
417
+ var i = a * (n + t) / 2;
418
+ var o = i / a;
419
+ return o / r.length;
420
420
  }
421
421
 
422
- function P(r, t) {
423
- var e = 0;
422
+ function lowerBound(r, e) {
423
+ var t = 0;
424
424
  var n = 0;
425
425
  var a = r.length;
426
426
  while (n < a) {
427
- e = n + a >>> 1;
428
- if (t <= r[e]) {
429
- a = e;
427
+ t = n + a >>> 1;
428
+ if (e <= r[t]) {
429
+ a = t;
430
430
  } else {
431
- n = -~e;
431
+ n = -~t;
432
432
  }
433
433
  }
434
434
  return n;
435
435
  }
436
436
 
437
- function S(r, t) {
438
- var e = 0;
437
+ function upperBound(r, e) {
438
+ var t = 0;
439
439
  var n = 0;
440
440
  var a = r.length;
441
441
  while (n < a) {
442
- e = n + a >>> 1;
443
- if (t >= r[e]) {
444
- n = -~e;
442
+ t = n + a >>> 1;
443
+ if (e >= r[t]) {
444
+ n = -~t;
445
445
  } else {
446
- a = e;
446
+ a = t;
447
447
  }
448
448
  }
449
449
  return n;
450
450
  }
451
451
 
452
- function C(r, t) {
453
- var e = v(r);
454
- return A(e, t);
452
+ function quantileRank(r, e) {
453
+ var t = numericSort(r);
454
+ return quantileRankSorted(t, e);
455
455
  }
456
456
 
457
- function _(r) {
458
- var t = E(r, .75);
459
- var e = E(r, .25);
460
- if (typeof t === "number" && typeof e === "number") {
461
- return t - e;
457
+ function interquartileRange(r) {
458
+ var e = quantile(r, .75);
459
+ var t = quantile(r, .25);
460
+ if (typeof e === "number" && typeof t === "number") {
461
+ return e - t;
462
462
  }
463
463
  }
464
464
 
465
- function T(r) {
466
- return +E(r, .5);
465
+ function median(r) {
466
+ return +quantile(r, .5);
467
467
  }
468
468
 
469
- function V(r) {
470
- var t = T(r);
471
- var e = [];
469
+ function medianAbsoluteDeviation(r) {
470
+ var e = median(r);
471
+ var t = [];
472
472
  for (var n = 0; n < r.length; n++) {
473
- e.push(Math.abs(r[n] - t));
473
+ t.push(Math.abs(r[n] - e));
474
474
  }
475
- return T(e);
475
+ return median(t);
476
476
  }
477
477
 
478
- function D(r, t) {
479
- var e = [];
480
- if (t < 1) {
478
+ function chunk(r, e) {
479
+ var t = [];
480
+ if (e < 1) {
481
481
  throw new Error("chunk size must be a positive number");
482
482
  }
483
- if (Math.floor(t) !== t) {
483
+ if (Math.floor(e) !== e) {
484
484
  throw new Error("chunk size must be an integer");
485
485
  }
486
- for (var n = 0; n < r.length; n += t) {
487
- e.push(r.slice(n, n + t));
486
+ for (var n = 0; n < r.length; n += e) {
487
+ t.push(r.slice(n, n + e));
488
488
  }
489
- return e;
489
+ return t;
490
490
  }
491
491
 
492
- function L(r, t, e) {
492
+ function sampleWithReplacement(r, e, t) {
493
493
  if (r.length === 0) {
494
494
  return [];
495
495
  }
496
- e = e || Math.random;
496
+ t = t || Math.random;
497
497
  var n = r.length;
498
498
  var a = [];
499
- for (var o = 0; o < t; o++) {
500
- var i = Math.floor(e() * n);
501
- a.push(r[i]);
499
+ for (var i = 0; i < e; i++) {
500
+ var o = Math.floor(t() * n);
501
+ a.push(r[o]);
502
502
  }
503
503
  return a;
504
504
  }
505
505
 
506
- function R(r, t) {
507
- t = t || Math.random;
508
- var e = r.length;
506
+ function shuffleInPlace(r, e) {
507
+ e = e || Math.random;
508
+ var t = r.length;
509
509
  var n;
510
510
  var a;
511
- while (e > 0) {
512
- a = Math.floor(t() * e--);
513
- n = r[e];
514
- r[e] = r[a];
511
+ while (t > 0) {
512
+ a = Math.floor(e() * t--);
513
+ n = r[t];
514
+ r[t] = r[a];
515
515
  r[a] = n;
516
516
  }
517
517
  return r;
518
518
  }
519
519
 
520
- function U(r, t) {
521
- var e = r.slice();
522
- return R(e, t);
520
+ function shuffle(r, e) {
521
+ var t = r.slice();
522
+ return shuffleInPlace(t, e);
523
523
  }
524
524
 
525
- function z(r, t, e) {
526
- var n = U(r, e);
527
- return n.slice(0, t);
525
+ function sample(r, e, t) {
526
+ var n = shuffle(r, t);
527
+ return n.slice(0, e);
528
528
  }
529
529
 
530
- function F(r, t) {
531
- var e = [];
530
+ function makeMatrix(r, e) {
531
+ var t = [];
532
532
  for (var n = 0; n < r; n++) {
533
533
  var a = [];
534
- for (var o = 0; o < t; o++) {
534
+ for (var i = 0; i < e; i++) {
535
535
  a.push(0);
536
536
  }
537
- e.push(a);
537
+ t.push(a);
538
538
  }
539
- return e;
539
+ return t;
540
540
  }
541
541
 
542
- function O(r) {
543
- var t = 0;
544
- var e;
542
+ function uniqueCountSorted(r) {
543
+ var e = 0;
544
+ var t;
545
545
  for (var n = 0; n < r.length; n++) {
546
- if (n === 0 || r[n] !== e) {
547
- e = r[n];
548
- t++;
546
+ if (n === 0 || r[n] !== t) {
547
+ t = r[n];
548
+ e++;
549
549
  }
550
550
  }
551
- return t;
551
+ return e;
552
552
  }
553
553
 
554
- function X(r, t, e, n) {
554
+ function ssq(r, e, t, n) {
555
555
  var a;
556
556
  if (r > 0) {
557
- var o = (e[t] - e[r - 1]) / (t - r + 1);
558
- a = n[t] - n[r - 1] - (t - r + 1) * o * o;
557
+ var i = (t[e] - t[r - 1]) / (e - r + 1);
558
+ a = n[e] - n[r - 1] - (e - r + 1) * i * i;
559
559
  } else {
560
- a = n[t] - e[t] * e[t] / (t + 1);
560
+ a = n[e] - t[e] * t[e] / (e + 1);
561
561
  }
562
562
  if (a < 0) {
563
563
  return 0;
@@ -565,573 +565,573 @@ function X(r, t, e, n) {
565
565
  return a;
566
566
  }
567
567
 
568
- function Y(r, t, e, n, a, o, i) {
569
- if (r > t) {
568
+ function fillMatrixColumn(r, e, t, n, a, i, o) {
569
+ if (r > e) {
570
570
  return;
571
571
  }
572
- var u = Math.floor((r + t) / 2);
573
- n[e][u] = n[e - 1][u - 1];
574
- a[e][u] = u;
575
- var f = e;
576
- if (r > e) {
577
- f = Math.max(f, a[e][r - 1] || 0);
572
+ var u = Math.floor((r + e) / 2);
573
+ n[t][u] = n[t - 1][u - 1];
574
+ a[t][u] = u;
575
+ var s = t;
576
+ if (r > t) {
577
+ s = Math.max(s, a[t][r - 1] || 0);
578
578
  }
579
- f = Math.max(f, a[e - 1][u] || 0);
580
- var v = u - 1;
581
- if (t < n[0].length - 1) {
582
- v = Math.min(v, a[e][t + 1] || 0);
579
+ s = Math.max(s, a[t - 1][u] || 0);
580
+ var l = u - 1;
581
+ if (e < n[0].length - 1) {
582
+ l = Math.min(l, a[t][e + 1] || 0);
583
583
  }
584
+ var f;
585
+ var v;
584
586
  var h;
585
- var s;
586
- var l;
587
587
  var c;
588
- for (var p = v; p >= f; --p) {
589
- h = X(p, u, o, i);
590
- if (h + n[e - 1][f - 1] >= n[e][u]) {
588
+ for (var p = l; p >= s; --p) {
589
+ f = ssq(p, u, i, o);
590
+ if (f + n[t - 1][s - 1] >= n[t][u]) {
591
591
  break;
592
592
  }
593
- s = X(f, u, o, i);
594
- l = s + n[e - 1][f - 1];
595
- if (l < n[e][u]) {
596
- n[e][u] = l;
597
- a[e][u] = f;
593
+ v = ssq(s, u, i, o);
594
+ h = v + n[t - 1][s - 1];
595
+ if (h < n[t][u]) {
596
+ n[t][u] = h;
597
+ a[t][u] = s;
598
598
  }
599
- f++;
600
- c = h + n[e - 1][p - 1];
601
- if (c < n[e][u]) {
602
- n[e][u] = c;
603
- a[e][u] = p;
599
+ s++;
600
+ c = f + n[t - 1][p - 1];
601
+ if (c < n[t][u]) {
602
+ n[t][u] = c;
603
+ a[t][u] = p;
604
604
  }
605
605
  }
606
- Y(r, u - 1, e, n, a, o, i);
607
- Y(u + 1, t, e, n, a, o, i);
606
+ fillMatrixColumn(r, u - 1, t, n, a, i, o);
607
+ fillMatrixColumn(u + 1, e, t, n, a, i, o);
608
608
  }
609
609
 
610
- function j(r, t, e) {
611
- var n = t[0].length;
610
+ function fillMatrices(r, e, t) {
611
+ var n = e[0].length;
612
612
  var a = r[Math.floor(n / 2)];
613
- var o = [];
614
613
  var i = [];
615
- for (var u = 0, f = void 0; u < n; ++u) {
616
- f = r[u] - a;
614
+ var o = [];
615
+ for (var u = 0, s = void 0; u < n; ++u) {
616
+ s = r[u] - a;
617
617
  if (u === 0) {
618
- o.push(f);
619
- i.push(f * f);
618
+ i.push(s);
619
+ o.push(s * s);
620
620
  } else {
621
- o.push(o[u - 1] + f);
622
- i.push(i[u - 1] + f * f);
621
+ i.push(i[u - 1] + s);
622
+ o.push(o[u - 1] + s * s);
623
623
  }
624
- t[0][u] = X(0, u, o, i);
625
- e[0][u] = 0;
624
+ e[0][u] = ssq(0, u, i, o);
625
+ t[0][u] = 0;
626
626
  }
627
- var v;
628
- for (var h = 1; h < t.length; ++h) {
629
- if (h < t.length - 1) {
630
- v = h;
627
+ var l;
628
+ for (var f = 1; f < e.length; ++f) {
629
+ if (f < e.length - 1) {
630
+ l = f;
631
631
  } else {
632
- v = n - 1;
632
+ l = n - 1;
633
633
  }
634
- Y(v, n - 1, h, t, e, o, i);
634
+ fillMatrixColumn(l, n - 1, f, e, t, i, o);
635
635
  }
636
636
  }
637
637
 
638
- function K(r, t) {
639
- if (t > r.length) {
638
+ function ckmeans(r, e) {
639
+ if (e > r.length) {
640
640
  throw new Error("cannot generate more classes than there are data values");
641
641
  }
642
- var e = v(r);
643
- var n = O(e);
642
+ var t = numericSort(r);
643
+ var n = uniqueCountSorted(t);
644
644
  if (n === 1) {
645
- return [ e ];
645
+ return [ t ];
646
646
  }
647
- var a = F(t, e.length);
648
- var o = F(t, e.length);
649
- j(e, a, o);
650
- var i = [];
651
- var u = o[0].length - 1;
652
- for (var f = o.length - 1; f >= 0; f--) {
653
- var h = o[f][u];
654
- i[f] = e.slice(h, u + 1);
655
- if (f > 0) {
656
- u = h - 1;
647
+ var a = makeMatrix(e, t.length);
648
+ var i = makeMatrix(e, t.length);
649
+ fillMatrices(t, a, i);
650
+ var o = [];
651
+ var u = i[0].length - 1;
652
+ for (var s = i.length - 1; s >= 0; s--) {
653
+ var l = i[s][u];
654
+ o[s] = t.slice(l, u + 1);
655
+ if (s > 0) {
656
+ u = l - 1;
657
657
  }
658
658
  }
659
- return i;
659
+ return o;
660
660
  }
661
661
 
662
- function W(r, t, e) {
662
+ function jenksBreaks(r, e, t) {
663
663
  var n = r.length;
664
664
  var a = [];
665
- var o = e;
666
- a[e] = r[r.length - 1];
667
- while (o > 0) {
668
- a[o - 1] = r[t[n][o] - 1];
669
- n = t[n][o] - 1;
670
- o--;
665
+ var i = t;
666
+ a[t] = r[r.length - 1];
667
+ while (i > 0) {
668
+ a[i - 1] = r[e[n][i] - 1];
669
+ n = e[n][i] - 1;
670
+ i--;
671
671
  }
672
672
  return a;
673
673
  }
674
674
 
675
- function B(r, t) {
676
- var e = [];
675
+ function jenksMatrices(r, e) {
676
+ var t = [];
677
677
  var n = [];
678
678
  var a;
679
- var o;
680
- var i = 0;
679
+ var i;
680
+ var o = 0;
681
681
  for (a = 0; a < r.length + 1; a++) {
682
682
  var u = [];
683
- var f = [];
684
- for (o = 0; o < t + 1; o++) {
683
+ var s = [];
684
+ for (i = 0; i < e + 1; i++) {
685
685
  u.push(0);
686
- f.push(0);
686
+ s.push(0);
687
687
  }
688
- e.push(u);
689
- n.push(f);
688
+ t.push(u);
689
+ n.push(s);
690
690
  }
691
- for (a = 1; a < t + 1; a++) {
692
- e[1][a] = 1;
691
+ for (a = 1; a < e + 1; a++) {
692
+ t[1][a] = 1;
693
693
  n[1][a] = 0;
694
- for (o = 2; o < r.length + 1; o++) {
695
- n[o][a] = Number.POSITIVE_INFINITY;
694
+ for (i = 2; i < r.length + 1; i++) {
695
+ n[i][a] = Number.POSITIVE_INFINITY;
696
696
  }
697
697
  }
698
- for (var v = 2; v < r.length + 1; v++) {
698
+ for (var l = 2; l < r.length + 1; l++) {
699
+ var f = 0;
700
+ var v = 0;
699
701
  var h = 0;
700
- var s = 0;
701
- var l = 0;
702
702
  var c = 0;
703
- for (var p = 1; p < v + 1; p++) {
704
- var g = v - p + 1;
705
- var w = r[g - 1];
706
- l++;
707
- h += w;
708
- s += w * w;
709
- i = s - h * h / l;
710
- c = g - 1;
703
+ for (var p = 1; p < l + 1; p++) {
704
+ var m = l - p + 1;
705
+ var g = r[m - 1];
706
+ h++;
707
+ f += g;
708
+ v += g * g;
709
+ o = v - f * f / h;
710
+ c = m - 1;
711
711
  if (c !== 0) {
712
- for (o = 2; o < t + 1; o++) {
713
- if (n[v][o] >= i + n[c][o - 1]) {
714
- e[v][o] = g;
715
- n[v][o] = i + n[c][o - 1];
712
+ for (i = 2; i < e + 1; i++) {
713
+ if (n[l][i] >= o + n[c][i - 1]) {
714
+ t[l][i] = m;
715
+ n[l][i] = o + n[c][i - 1];
716
716
  }
717
717
  }
718
718
  }
719
719
  }
720
- e[v][1] = 1;
721
- n[v][1] = i;
720
+ t[l][1] = 1;
721
+ n[l][1] = o;
722
722
  }
723
723
  return {
724
- lowerClassLimits: e,
724
+ lowerClassLimits: t,
725
725
  varianceCombinations: n
726
726
  };
727
727
  }
728
728
 
729
- function G(r, t) {
730
- if (t > r.length) {
729
+ function jenks(r, e) {
730
+ if (e > r.length) {
731
731
  return null;
732
732
  }
733
- r = r.slice().sort((function(r, t) {
734
- return r - t;
733
+ r = r.slice().sort((function(r, e) {
734
+ return r - e;
735
735
  }));
736
- var e = B(r, t);
737
- var n = e.lowerClassLimits;
738
- return W(r, n, t);
736
+ var t = jenksMatrices(r, e);
737
+ var n = t.lowerClassLimits;
738
+ return jenksBreaks(r, n, e);
739
739
  }
740
740
 
741
- function H(r, t) {
741
+ function equalIntervalBreaks(r, e) {
742
742
  if (r.length < 2) {
743
743
  return r;
744
744
  }
745
- var e = l(r);
746
- var n = c(r);
747
- var a = [ e ];
748
- var o = (n - e) / t;
749
- for (var i = 1; i < t; i++) {
750
- a.push(a[0] + o * i);
745
+ var t = min(r);
746
+ var n = max(r);
747
+ var a = [ t ];
748
+ var i = (n - t) / e;
749
+ for (var o = 1; o < e; o++) {
750
+ a.push(a[0] + i * o);
751
751
  }
752
752
  a.push(n);
753
753
  return a;
754
754
  }
755
755
 
756
- function J(r, t) {
757
- if (r.length !== t.length) {
756
+ function sampleCovariance(r, e) {
757
+ if (r.length !== e.length) {
758
758
  throw new Error("sampleCovariance requires samples with equal lengths");
759
759
  }
760
760
  if (r.length < 2) {
761
761
  throw new Error("sampleCovariance requires at least two data points in each sample");
762
762
  }
763
- var e = n(r);
764
- var a = n(t);
765
- var o = 0;
763
+ var t = mean(r);
764
+ var n = mean(e);
765
+ var a = 0;
766
766
  for (var i = 0; i < r.length; i++) {
767
- o += (r[i] - e) * (t[i] - a);
767
+ a += (r[i] - t) * (e[i] - n);
768
768
  }
769
- var u = r.length - 1;
770
- return o / u;
769
+ var o = r.length - 1;
770
+ return a / o;
771
771
  }
772
772
 
773
- function Q(r) {
773
+ function sampleVariance(r) {
774
774
  if (r.length < 2) {
775
775
  throw new Error("sampleVariance requires at least two data points");
776
776
  }
777
- var t = a(r, 2);
778
- var e = r.length - 1;
779
- return t / e;
777
+ var e = sumNthPowerDeviations(r, 2);
778
+ var t = r.length - 1;
779
+ return e / t;
780
780
  }
781
781
 
782
- function Z(r) {
783
- var t = Q(r);
784
- return Math.sqrt(t);
782
+ function sampleStandardDeviation(r) {
783
+ var e = sampleVariance(r);
784
+ return Math.sqrt(e);
785
785
  }
786
786
 
787
- function $(r, t) {
788
- var e = J(r, t);
789
- var n = Z(r);
790
- var a = Z(t);
791
- return e / n / a;
787
+ function sampleCorrelation(r, e) {
788
+ var t = sampleCovariance(r, e);
789
+ var n = sampleStandardDeviation(r);
790
+ var a = sampleStandardDeviation(e);
791
+ return t / n / a;
792
792
  }
793
793
 
794
- function rr(r, t) {
795
- var e = r.map((function(r, t) {
796
- return [ r, t ];
797
- })).sort((function(r, t) {
798
- return r[0] - t[0];
794
+ function sampleRankCorrelation(r, e) {
795
+ var t = r.map((function(r, e) {
796
+ return [ r, e ];
797
+ })).sort((function(r, e) {
798
+ return r[0] - e[0];
799
799
  })).map((function(r) {
800
800
  return r[1];
801
801
  }));
802
- var n = t.map((function(r, t) {
803
- return [ r, t ];
804
- })).sort((function(r, t) {
805
- return r[0] - t[0];
802
+ var n = e.map((function(r, e) {
803
+ return [ r, e ];
804
+ })).sort((function(r, e) {
805
+ return r[0] - e[0];
806
806
  })).map((function(r) {
807
807
  return r[1];
808
808
  }));
809
- var a = Array(e.length);
810
- var o = Array(e.length);
811
- for (var i = 0; i < e.length; i++) {
812
- a[e[i]] = i;
813
- o[n[i]] = i;
809
+ var a = Array(t.length);
810
+ var i = Array(t.length);
811
+ for (var o = 0; o < t.length; o++) {
812
+ a[t[o]] = o;
813
+ i[n[o]] = o;
814
814
  }
815
- return $(a, o);
815
+ return sampleCorrelation(a, i);
816
816
  }
817
817
 
818
- function tr(r) {
818
+ function sampleSkewness(r) {
819
819
  if (r.length < 3) {
820
820
  throw new Error("sampleSkewness requires at least three data points");
821
821
  }
822
- var t = n(r);
823
- var e;
822
+ var e = mean(r);
823
+ var t;
824
+ var n = 0;
824
825
  var a = 0;
825
- var o = 0;
826
826
  for (var i = 0; i < r.length; i++) {
827
- e = r[i] - t;
828
- a += e * e;
829
- o += e * e * e;
827
+ t = r[i] - e;
828
+ n += t * t;
829
+ a += t * t * t;
830
830
  }
831
- var u = r.length - 1;
832
- var f = Math.sqrt(a / u);
833
- var v = r.length;
834
- var h = Math.pow(f, 3);
835
- return v * o / ((v - 1) * (v - 2) * h);
831
+ var o = r.length - 1;
832
+ var u = Math.sqrt(n / o);
833
+ var s = r.length;
834
+ var l = Math.pow(u, 3);
835
+ return s * a / ((s - 1) * (s - 2) * l);
836
836
  }
837
837
 
838
- function er(r) {
839
- var t = r.length;
840
- if (t < 4) {
838
+ function sampleKurtosis(r) {
839
+ var e = r.length;
840
+ if (e < 4) {
841
841
  throw new Error("sampleKurtosis requires at least four data points");
842
842
  }
843
- var e = n(r);
844
- var a;
845
- var o = 0;
843
+ var t = mean(r);
844
+ var n;
845
+ var a = 0;
846
846
  var i = 0;
847
- for (var u = 0; u < t; u++) {
848
- a = r[u] - e;
849
- o += a * a;
850
- i += a * a * a * a;
847
+ for (var o = 0; o < e; o++) {
848
+ n = r[o] - t;
849
+ a += n * n;
850
+ i += n * n * n * n;
851
851
  }
852
- return (t - 1) / ((t - 2) * (t - 3)) * (t * (t + 1) * i / (o * o) - 3 * (t - 1));
852
+ return (e - 1) / ((e - 2) * (e - 3)) * (e * (e + 1) * i / (a * a) - 3 * (e - 1));
853
853
  }
854
854
 
855
- function nr(r) {
856
- var t = new Array(r.length);
857
- var e = [ r.slice() ];
855
+ function permutationsHeap(r) {
856
+ var e = new Array(r.length);
857
+ var t = [ r.slice() ];
858
858
  for (var n = 0; n < r.length; n++) {
859
- t[n] = 0;
859
+ e[n] = 0;
860
860
  }
861
861
  for (var a = 0; a < r.length; ) {
862
- if (t[a] < a) {
863
- var o = 0;
862
+ if (e[a] < a) {
863
+ var i = 0;
864
864
  if (a % 2 !== 0) {
865
- o = t[a];
865
+ i = e[a];
866
866
  }
867
- var i = r[o];
868
- r[o] = r[a];
869
- r[a] = i;
870
- e.push(r.slice());
871
- t[a]++;
867
+ var o = r[i];
868
+ r[i] = r[a];
869
+ r[a] = o;
870
+ t.push(r.slice());
871
+ e[a]++;
872
872
  a = 0;
873
873
  } else {
874
- t[a] = 0;
874
+ e[a] = 0;
875
875
  a++;
876
876
  }
877
877
  }
878
- return e;
878
+ return t;
879
879
  }
880
880
 
881
- function ar(r, t) {
882
- var e;
881
+ function combinations(r, e) {
882
+ var t;
883
883
  var n;
884
884
  var a = [];
885
- var o;
886
885
  var i;
887
- for (e = 0; e < r.length; e++) {
888
- if (t === 1) {
889
- a.push([ r[e] ]);
886
+ var o;
887
+ for (t = 0; t < r.length; t++) {
888
+ if (e === 1) {
889
+ a.push([ r[t] ]);
890
890
  } else {
891
- o = ar(r.slice(e + 1, r.length), t - 1);
892
- for (n = 0; n < o.length; n++) {
893
- i = o[n];
894
- i.unshift(r[e]);
895
- a.push(i);
891
+ i = combinations(r.slice(t + 1, r.length), e - 1);
892
+ for (n = 0; n < i.length; n++) {
893
+ o = i[n];
894
+ o.unshift(r[t]);
895
+ a.push(o);
896
896
  }
897
897
  }
898
898
  }
899
899
  return a;
900
900
  }
901
901
 
902
- function or(r, t) {
903
- var e = [];
902
+ function combinationsReplacement(r, e) {
903
+ var t = [];
904
904
  for (var n = 0; n < r.length; n++) {
905
- if (t === 1) {
906
- e.push([ r[n] ]);
905
+ if (e === 1) {
906
+ t.push([ r[n] ]);
907
907
  } else {
908
- var a = or(r.slice(n, r.length), t - 1);
909
- for (var o = 0; o < a.length; o++) {
910
- e.push([ r[n] ].concat(a[o]));
908
+ var a = combinationsReplacement(r.slice(n, r.length), e - 1);
909
+ for (var i = 0; i < a.length; i++) {
910
+ t.push([ r[n] ].concat(a[i]));
911
911
  }
912
912
  }
913
913
  }
914
- return e;
914
+ return t;
915
915
  }
916
916
 
917
- function ir(r, t, e) {
918
- return r + (e - r) / (t + 1);
917
+ function addToMean(r, e, t) {
918
+ return r + (t - r) / (e + 1);
919
919
  }
920
920
 
921
- function ur(r, t, e, n) {
922
- return (r * t + e * n) / (t + n);
921
+ function combineMeans(r, e, t, n) {
922
+ return (r * e + t * n) / (e + n);
923
923
  }
924
924
 
925
- function fr(r, t, e, n, a, o) {
926
- var i = ur(t, e, a, o);
927
- return (e * (r + Math.pow(t - i, 2)) + o * (n + Math.pow(a - i, 2))) / (e + o);
925
+ function combineVariances(r, e, t, n, a, i) {
926
+ var o = combineMeans(e, t, a, i);
927
+ return (t * (r + Math.pow(e - o, 2)) + i * (n + Math.pow(a - o, 2))) / (t + i);
928
928
  }
929
929
 
930
- function vr(r) {
930
+ function geometricMean(r) {
931
931
  if (r.length === 0) {
932
932
  throw new Error("geometricMean requires at least one data point");
933
933
  }
934
- var t = 1;
935
- for (var e = 0; e < r.length; e++) {
936
- if (r[e] < 0) {
934
+ var e = 1;
935
+ for (var t = 0; t < r.length; t++) {
936
+ if (r[t] < 0) {
937
937
  throw new Error("geometricMean requires only non-negative numbers as input");
938
938
  }
939
- t *= r[e];
939
+ e *= r[t];
940
940
  }
941
- return Math.pow(t, 1 / r.length);
941
+ return Math.pow(e, 1 / r.length);
942
942
  }
943
943
 
944
- function hr(r) {
944
+ function logAverage(r) {
945
945
  if (r.length === 0) {
946
946
  throw new Error("logAverage requires at least one data point");
947
947
  }
948
- var t = 0;
949
- for (var e = 0; e < r.length; e++) {
950
- if (r[e] < 0) {
948
+ var e = 0;
949
+ for (var t = 0; t < r.length; t++) {
950
+ if (r[t] < 0) {
951
951
  throw new Error("logAverage requires only non-negative numbers as input");
952
952
  }
953
- t += Math.log(r[e]);
953
+ e += Math.log(r[t]);
954
954
  }
955
- return Math.exp(t / r.length);
955
+ return Math.exp(e / r.length);
956
956
  }
957
957
 
958
- function sr(r) {
958
+ function harmonicMean(r) {
959
959
  if (r.length === 0) {
960
960
  throw new Error("harmonicMean requires at least one data point");
961
961
  }
962
- var t = 0;
963
- for (var e = 0; e < r.length; e++) {
964
- if (r[e] <= 0) {
962
+ var e = 0;
963
+ for (var t = 0; t < r.length; t++) {
964
+ if (r[t] <= 0) {
965
965
  throw new Error("harmonicMean requires only positive numbers as input");
966
966
  }
967
- t += 1 / r[e];
967
+ e += 1 / r[t];
968
968
  }
969
- return r.length / t;
969
+ return r.length / e;
970
970
  }
971
971
 
972
- function lr(r) {
972
+ function meanSimple(r) {
973
973
  if (r.length === 0) {
974
974
  throw new Error("meanSimple requires at least one data point");
975
975
  }
976
- return m(r) / r.length;
976
+ return sumSimple(r) / r.length;
977
977
  }
978
978
 
979
- function cr(r) {
980
- return b(r, .5);
979
+ function medianSorted(r) {
980
+ return quantileSorted(r, .5);
981
981
  }
982
982
 
983
- function pr(r, t, e) {
984
- return (r * t - e) / (t - 1);
983
+ function subtractFromMean(r, e, t) {
984
+ return (r * e - t) / (e - 1);
985
985
  }
986
986
 
987
- function gr(r) {
987
+ function rootMeanSquare(r) {
988
988
  if (r.length === 0) {
989
989
  throw new Error("rootMeanSquare requires at least one data point");
990
990
  }
991
- var t = 0;
992
- for (var e = 0; e < r.length; e++) {
993
- t += Math.pow(r[e], 2);
991
+ var e = 0;
992
+ for (var t = 0; t < r.length; t++) {
993
+ e += Math.pow(r[t], 2);
994
994
  }
995
- return Math.sqrt(t / r.length);
995
+ return Math.sqrt(e / r.length);
996
996
  }
997
997
 
998
- function wr(r) {
999
- return Z(r) / n(r);
998
+ function coefficientOfVariation(r) {
999
+ return sampleStandardDeviation(r) / mean(r);
1000
1000
  }
1001
1001
 
1002
- function Mr(r, t) {
1003
- var e = n(r);
1004
- var a = i(r);
1005
- var o = Math.sqrt(r.length);
1006
- return (e - t) / (a / o);
1002
+ function tTest(r, e) {
1003
+ var t = mean(r);
1004
+ var n = standardDeviation(r);
1005
+ var a = Math.sqrt(r.length);
1006
+ return (t - e) / (n / a);
1007
1007
  }
1008
1008
 
1009
- function mr(r, t, e) {
1010
- var a = r.length;
1011
- var o = t.length;
1012
- if (!a || !o) {
1009
+ function tTestTwoSample(r, e, t) {
1010
+ var n = r.length;
1011
+ var a = e.length;
1012
+ if (!n || !a) {
1013
1013
  return null;
1014
1014
  }
1015
- if (!e) {
1016
- e = 0;
1015
+ if (!t) {
1016
+ t = 0;
1017
1017
  }
1018
- var i = n(r);
1019
- var u = n(t);
1020
- var f = Q(r);
1021
- var v = Q(t);
1022
- if (typeof i === "number" && typeof u === "number" && typeof f === "number" && typeof v === "number") {
1023
- var h = ((a - 1) * f + (o - 1) * v) / (a + o - 2);
1024
- return (i - u - e) / Math.sqrt(h * (1 / a + 1 / o));
1018
+ var i = mean(r);
1019
+ var o = mean(e);
1020
+ var u = sampleVariance(r);
1021
+ var s = sampleVariance(e);
1022
+ if (typeof i === "number" && typeof o === "number" && typeof u === "number" && typeof s === "number") {
1023
+ var l = ((n - 1) * u + (a - 1) * s) / (n + a - 2);
1024
+ return (i - o - t) / Math.sqrt(l * (1 / n + 1 / a));
1025
1025
  }
1026
1026
  }
1027
1027
 
1028
- function dr(r, t) {
1029
- if (!r.length || !t.length) {
1028
+ function wilcoxonRankSum(r, e) {
1029
+ if (!r.length || !e.length) {
1030
1030
  throw new Error("Neither sample can be empty");
1031
1031
  }
1032
- var e = r.map((function(r) {
1032
+ var t = r.map((function(r) {
1033
1033
  return {
1034
1034
  label: "x",
1035
1035
  value: r
1036
1036
  };
1037
- })).concat(t.map((function(r) {
1037
+ })).concat(e.map((function(r) {
1038
1038
  return {
1039
1039
  label: "y",
1040
1040
  value: r
1041
1041
  };
1042
- }))).sort((function(r, t) {
1043
- return r.value - t.value;
1042
+ }))).sort((function(r, e) {
1043
+ return r.value - e.value;
1044
1044
  }));
1045
- for (var n = 0; n < e.length; n++) {
1046
- e[n].rank = n;
1047
- }
1048
- var a = [ e[0].rank ];
1049
- for (var o = 1; o < e.length; o++) {
1050
- if (e[o].value === e[o - 1].value) {
1051
- a.push(e[o].rank);
1052
- if (o === e.length - 1) {
1053
- i(e, a);
1045
+ for (var n = 0; n < t.length; n++) {
1046
+ t[n].rank = n;
1047
+ }
1048
+ var a = [ t[0].rank ];
1049
+ for (var i = 1; i < t.length; i++) {
1050
+ if (t[i].value === t[i - 1].value) {
1051
+ a.push(t[i].rank);
1052
+ if (i === t.length - 1) {
1053
+ replaceRanksInPlace(t, a);
1054
1054
  }
1055
1055
  } else if (a.length > 1) {
1056
- i(e, a);
1056
+ replaceRanksInPlace(t, a);
1057
1057
  } else {
1058
- a = [ e[o].rank ];
1058
+ a = [ t[i].rank ];
1059
1059
  }
1060
1060
  }
1061
- function i(r, t) {
1062
- var e = (t[0] + t[t.length - 1]) / 2;
1063
- for (var n = 0; n < t.length; n++) {
1064
- r[t[n]].rank = e;
1061
+ function replaceRanksInPlace(r, e) {
1062
+ var t = (e[0] + e[e.length - 1]) / 2;
1063
+ for (var n = 0; n < e.length; n++) {
1064
+ r[e[n]].rank = t;
1065
1065
  }
1066
1066
  }
1067
- var u = 0;
1068
- for (var f = 0; f < e.length; f++) {
1069
- var v = e[f];
1070
- if (v.label === "x") {
1071
- u += v.rank + 1;
1067
+ var o = 0;
1068
+ for (var u = 0; u < t.length; u++) {
1069
+ var s = t[u];
1070
+ if (s.label === "x") {
1071
+ o += s.rank + 1;
1072
1072
  }
1073
1073
  }
1074
- return u;
1074
+ return o;
1075
1075
  }
1076
1076
 
1077
- var br = function r() {
1077
+ var r = function BayesianClassifier() {
1078
1078
  this.totalCount = 0;
1079
1079
  this.data = {};
1080
1080
  };
1081
1081
 
1082
- br.prototype.train = function r(t, e) {
1082
+ r.prototype.train = function train(r, e) {
1083
1083
  if (!this.data[e]) {
1084
1084
  this.data[e] = {};
1085
1085
  }
1086
- for (var n in t) {
1087
- var a = t[n];
1088
- if (this.data[e][n] === undefined) {
1089
- this.data[e][n] = {};
1086
+ for (var t in r) {
1087
+ var n = r[t];
1088
+ if (this.data[e][t] === undefined) {
1089
+ this.data[e][t] = {};
1090
1090
  }
1091
- if (this.data[e][n][a] === undefined) {
1092
- this.data[e][n][a] = 0;
1091
+ if (this.data[e][t][n] === undefined) {
1092
+ this.data[e][t][n] = 0;
1093
1093
  }
1094
- this.data[e][n][a]++;
1094
+ this.data[e][t][n]++;
1095
1095
  }
1096
1096
  this.totalCount++;
1097
1097
  };
1098
1098
 
1099
- br.prototype.score = function r(t) {
1099
+ r.prototype.score = function score(r) {
1100
1100
  var e = {};
1101
- var n;
1102
- for (var a in t) {
1103
- var o = t[a];
1104
- for (n in this.data) {
1105
- e[n] = {};
1106
- if (this.data[n][a]) {
1107
- e[n][a + "_" + o] = (this.data[n][a][o] || 0) / this.totalCount;
1101
+ var t;
1102
+ for (var n in r) {
1103
+ var a = r[n];
1104
+ for (t in this.data) {
1105
+ e[t] = {};
1106
+ if (this.data[t][n]) {
1107
+ e[t][n + "_" + a] = (this.data[t][n][a] || 0) / this.totalCount;
1108
1108
  } else {
1109
- e[n][a + "_" + o] = 0;
1109
+ e[t][n + "_" + a] = 0;
1110
1110
  }
1111
1111
  }
1112
1112
  }
1113
1113
  var i = {};
1114
- for (n in e) {
1115
- i[n] = 0;
1116
- for (var u in e[n]) {
1117
- i[n] += e[n][u];
1114
+ for (t in e) {
1115
+ i[t] = 0;
1116
+ for (var o in e[t]) {
1117
+ i[t] += e[t][o];
1118
1118
  }
1119
1119
  }
1120
1120
  return i;
1121
1121
  };
1122
1122
 
1123
- var xr = function r() {
1123
+ var e = function PerceptronModel() {
1124
1124
  this.weights = [];
1125
1125
  this.bias = 0;
1126
1126
  };
1127
1127
 
1128
- xr.prototype.predict = function r(t) {
1129
- if (t.length !== this.weights.length) {
1128
+ e.prototype.predict = function predict(r) {
1129
+ if (r.length !== this.weights.length) {
1130
1130
  return null;
1131
1131
  }
1132
1132
  var e = 0;
1133
- for (var n = 0; n < this.weights.length; n++) {
1134
- e += this.weights[n] * t[n];
1133
+ for (var t = 0; t < this.weights.length; t++) {
1134
+ e += this.weights[t] * r[t];
1135
1135
  }
1136
1136
  e += this.bias;
1137
1137
  if (e > 0) {
@@ -1141,121 +1141,121 @@ xr.prototype.predict = function r(t) {
1141
1141
  }
1142
1142
  };
1143
1143
 
1144
- xr.prototype.train = function r(t, e) {
1144
+ e.prototype.train = function train(r, e) {
1145
1145
  if (e !== 0 && e !== 1) {
1146
1146
  return null;
1147
1147
  }
1148
- if (t.length !== this.weights.length) {
1149
- this.weights = t;
1148
+ if (r.length !== this.weights.length) {
1149
+ this.weights = r;
1150
1150
  this.bias = 1;
1151
1151
  }
1152
- var n = this.predict(t);
1153
- if (typeof n === "number" && n !== e) {
1154
- var a = e - n;
1155
- for (var o = 0; o < this.weights.length; o++) {
1156
- this.weights[o] += a * t[o];
1152
+ var t = this.predict(r);
1153
+ if (typeof t === "number" && t !== e) {
1154
+ var n = e - t;
1155
+ for (var a = 0; a < this.weights.length; a++) {
1156
+ this.weights[a] += n * r[a];
1157
1157
  }
1158
- this.bias += a;
1158
+ this.bias += n;
1159
1159
  }
1160
1160
  return this;
1161
1161
  };
1162
1162
 
1163
- var qr = 1e-4;
1163
+ var t = 1e-4;
1164
1164
 
1165
- function Er(r) {
1165
+ function factorial(r) {
1166
1166
  if (r < 0) {
1167
1167
  throw new Error("factorial requires a non-negative value");
1168
1168
  }
1169
1169
  if (Math.floor(r) !== r) {
1170
1170
  throw new Error("factorial requires an integer input");
1171
1171
  }
1172
- var t = 1;
1173
- for (var e = 2; e <= r; e++) {
1174
- t *= e;
1172
+ var e = 1;
1173
+ for (var t = 2; t <= r; t++) {
1174
+ e *= t;
1175
1175
  }
1176
- return t;
1176
+ return e;
1177
1177
  }
1178
1178
 
1179
- function yr(r) {
1179
+ function gamma(r) {
1180
1180
  if (Number.isInteger(r)) {
1181
1181
  if (r <= 0) {
1182
1182
  return Number.NaN;
1183
1183
  } else {
1184
- return Er(r - 1);
1184
+ return factorial(r - 1);
1185
1185
  }
1186
1186
  }
1187
1187
  r--;
1188
1188
  if (r < 0) {
1189
- return Math.PI / (Math.sin(Math.PI * -r) * yr(-r));
1189
+ return Math.PI / (Math.sin(Math.PI * -r) * gamma(-r));
1190
1190
  } else {
1191
- var t = Math.pow(r / Math.E, r) * Math.sqrt(2 * Math.PI * (r + 1 / 6));
1192
- var e = r + 1 / 4;
1193
- var n = 1 + 1 / 144 / Math.pow(e, 2) - 1 / 12960 / Math.pow(e, 3) - 257 / 207360 / Math.pow(e, 4) - 52 / 2612736 / Math.pow(e, 5) + 5741173 / 9405849600 / Math.pow(e, 6) + 37529 / 18811699200 / Math.pow(e, 7);
1194
- return t * n;
1191
+ var e = Math.pow(r / Math.E, r) * Math.sqrt(2 * Math.PI * (r + 1 / 6));
1192
+ var t = r + 1 / 4;
1193
+ var n = 1 + 1 / 144 / Math.pow(t, 2) - 1 / 12960 / Math.pow(t, 3) - 257 / 207360 / Math.pow(t, 4) - 52 / 2612736 / Math.pow(t, 5) + 5741173 / 9405849600 / Math.pow(t, 6) + 37529 / 18811699200 / Math.pow(t, 7);
1194
+ return e * n;
1195
1195
  }
1196
1196
  }
1197
1197
 
1198
- var Nr = [ .9999999999999971, 57.15623566586292, -59.59796035547549, 14.136097974741746, -.4919138160976202, 3399464998481189e-20, 4652362892704858e-20, -9837447530487956e-20, .0001580887032249125, -.00021026444172410488, .00021743961811521265, -.0001643181065367639, 8441822398385275e-20, -26190838401581408e-21, 36899182659531625e-22 ];
1198
+ var n = [ .9999999999999971, 57.15623566586292, -59.59796035547549, 14.136097974741746, -.4919138160976202, 3399464998481189e-20, 4652362892704858e-20, -9837447530487956e-20, .0001580887032249125, -.00021026444172410488, .00021743961811521265, -.0001643181065367639, 8441822398385275e-20, -26190838401581408e-21, 36899182659531625e-22 ];
1199
1199
 
1200
- var Ir = 607 / 128;
1200
+ var a = 607 / 128;
1201
1201
 
1202
- var kr = Math.log(Math.sqrt(2 * Math.PI));
1202
+ var i = Math.log(Math.sqrt(2 * Math.PI));
1203
1203
 
1204
- function Ar(r) {
1204
+ function gammaln(r) {
1205
1205
  if (r <= 0) {
1206
1206
  return Number.POSITIVE_INFINITY;
1207
1207
  }
1208
1208
  r--;
1209
- var t = Nr[0];
1210
- for (var e = 1; e < 15; e++) {
1211
- t += Nr[e] / (r + e);
1209
+ var e = n[0];
1210
+ for (var t = 1; t < 15; t++) {
1211
+ e += n[t] / (r + t);
1212
1212
  }
1213
- var n = Ir + .5 + r;
1214
- return kr + Math.log(t) - n + (r + .5) * Math.log(n);
1213
+ var o = a + .5 + r;
1214
+ return i + Math.log(e) - o + (r + .5) * Math.log(o);
1215
1215
  }
1216
1216
 
1217
- function Pr(r) {
1217
+ function bernoulliDistribution(r) {
1218
1218
  if (r < 0 || r > 1) {
1219
1219
  throw new Error("bernoulliDistribution requires probability to be between 0 and 1 inclusive");
1220
1220
  }
1221
1221
  return [ 1 - r, r ];
1222
1222
  }
1223
1223
 
1224
- function Sr(r, t) {
1225
- if (t < 0 || t > 1 || r <= 0 || r % 1 !== 0) {
1224
+ function binomialDistribution(r, e) {
1225
+ if (e < 0 || e > 1 || r <= 0 || r % 1 !== 0) {
1226
1226
  return undefined;
1227
1227
  }
1228
- var e = 0;
1229
1228
  var n = 0;
1230
- var a = [];
1229
+ var a = 0;
1230
+ var i = [];
1231
1231
  var o = 1;
1232
1232
  do {
1233
- a[e] = o * Math.pow(t, e) * Math.pow(1 - t, r - e);
1234
- n += a[e];
1235
- e++;
1236
- o = o * (r - e + 1) / e;
1237
- } while (n < 1 - qr);
1238
- return a;
1233
+ i[n] = o * Math.pow(e, n) * Math.pow(1 - e, r - n);
1234
+ a += i[n];
1235
+ n++;
1236
+ o = o * (r - n + 1) / n;
1237
+ } while (a < 1 - t);
1238
+ return i;
1239
1239
  }
1240
1240
 
1241
- function Cr(r) {
1241
+ function poissonDistribution(r) {
1242
1242
  if (r <= 0) {
1243
1243
  return undefined;
1244
1244
  }
1245
- var t = 0;
1246
1245
  var e = 0;
1247
- var n = [];
1248
- var a = 1;
1246
+ var n = 0;
1247
+ var a = [];
1248
+ var i = 1;
1249
1249
  do {
1250
- n[t] = Math.exp(-r) * Math.pow(r, t) / a;
1251
- e += n[t];
1252
- t++;
1253
- a *= t;
1254
- } while (e < 1 - qr);
1255
- return n;
1250
+ a[e] = Math.exp(-r) * Math.pow(r, e) / i;
1251
+ n += a[e];
1252
+ e++;
1253
+ i *= e;
1254
+ } while (n < 1 - t);
1255
+ return a;
1256
1256
  }
1257
1257
 
1258
- var _r = {
1258
+ var o = {
1259
1259
  1: {
1260
1260
  .995: 0,
1261
1261
  .99: 0,
@@ -1739,215 +1739,215 @@ var _r = {
1739
1739
  }
1740
1740
  };
1741
1741
 
1742
- function Tr(r, t, e) {
1743
- var a = n(r);
1744
- var o = 0;
1742
+ function chiSquaredGoodnessOfFit(r, e, t) {
1743
+ var n = mean(r);
1744
+ var a = 0;
1745
1745
  var i = 1;
1746
- var u = t(a);
1747
- var f = [];
1748
- var v = [];
1749
- for (var h = 0; h < r.length; h++) {
1750
- if (f[r[h]] === undefined) {
1751
- f[r[h]] = 0;
1746
+ var u = e(n);
1747
+ var s = [];
1748
+ var l = [];
1749
+ for (var f = 0; f < r.length; f++) {
1750
+ if (s[r[f]] === undefined) {
1751
+ s[r[f]] = 0;
1752
1752
  }
1753
- f[r[h]]++;
1753
+ s[r[f]]++;
1754
1754
  }
1755
- for (var s = 0; s < f.length; s++) {
1756
- if (f[s] === undefined) {
1757
- f[s] = 0;
1755
+ for (var v = 0; v < s.length; v++) {
1756
+ if (s[v] === undefined) {
1757
+ s[v] = 0;
1758
1758
  }
1759
1759
  }
1760
- for (var l in u) {
1761
- if (l in f) {
1762
- v[+l] = u[l] * r.length;
1760
+ for (var h in u) {
1761
+ if (h in s) {
1762
+ l[+h] = u[h] * r.length;
1763
1763
  }
1764
1764
  }
1765
- for (var c = v.length - 1; c >= 0; c--) {
1766
- if (v[c] < 3) {
1767
- v[c - 1] += v[c];
1768
- v.pop();
1769
- f[c - 1] += f[c];
1770
- f.pop();
1765
+ for (var c = l.length - 1; c >= 0; c--) {
1766
+ if (l[c] < 3) {
1767
+ l[c - 1] += l[c];
1768
+ l.pop();
1769
+ s[c - 1] += s[c];
1770
+ s.pop();
1771
1771
  }
1772
1772
  }
1773
- for (var p = 0; p < f.length; p++) {
1774
- o += Math.pow(f[p] - v[p], 2) / v[p];
1773
+ for (var p = 0; p < s.length; p++) {
1774
+ a += Math.pow(s[p] - l[p], 2) / l[p];
1775
1775
  }
1776
- var g = f.length - i - 1;
1777
- return _r[g][e] < o;
1776
+ var m = s.length - i - 1;
1777
+ return o[m][t] < a;
1778
1778
  }
1779
1779
 
1780
- var Vr = Math.sqrt(2 * Math.PI);
1780
+ var u = Math.sqrt(2 * Math.PI);
1781
1781
 
1782
- var Dr = {
1782
+ var s = {
1783
1783
  gaussian: function(r) {
1784
- return Math.exp(-.5 * r * r) / Vr;
1784
+ return Math.exp(-.5 * r * r) / u;
1785
1785
  }
1786
1786
  };
1787
1787
 
1788
- var Lr = {
1788
+ var l = {
1789
1789
  nrd: function(r) {
1790
- var t = Z(r);
1791
- var e = _(r);
1792
- if (typeof e === "number") {
1793
- t = Math.min(t, e / 1.34);
1790
+ var e = sampleStandardDeviation(r);
1791
+ var t = interquartileRange(r);
1792
+ if (typeof t === "number") {
1793
+ e = Math.min(e, t / 1.34);
1794
1794
  }
1795
- return 1.06 * t * Math.pow(r.length, -.2);
1795
+ return 1.06 * e * Math.pow(r.length, -.2);
1796
1796
  }
1797
1797
  };
1798
1798
 
1799
- function Rr(r, t, e) {
1799
+ function kernelDensityEstimation(r, e, t) {
1800
1800
  var n;
1801
- if (t === undefined) {
1802
- n = Dr.gaussian;
1803
- } else if (typeof t === "string") {
1804
- if (!Dr[t]) {
1805
- throw new Error('Unknown kernel "' + t + '"');
1801
+ if (e === undefined) {
1802
+ n = s.gaussian;
1803
+ } else if (typeof e === "string") {
1804
+ if (!s[e]) {
1805
+ throw new Error('Unknown kernel "' + e + '"');
1806
1806
  }
1807
- n = Dr[t];
1807
+ n = s[e];
1808
1808
  } else {
1809
- n = t;
1809
+ n = e;
1810
1810
  }
1811
1811
  var a;
1812
- if (typeof e === "undefined") {
1813
- a = Lr.nrd(r);
1814
- } else if (typeof e === "string") {
1815
- if (!Lr[e]) {
1816
- throw new Error('Unknown bandwidth method "' + e + '"');
1812
+ if (typeof t === "undefined") {
1813
+ a = l.nrd(r);
1814
+ } else if (typeof t === "string") {
1815
+ if (!l[t]) {
1816
+ throw new Error('Unknown bandwidth method "' + t + '"');
1817
1817
  }
1818
- a = Lr[e](r);
1818
+ a = l[t](r);
1819
1819
  } else {
1820
- a = e;
1820
+ a = t;
1821
1821
  }
1822
- return function(t) {
1823
- var e = 0;
1824
- var o = 0;
1825
- for (e = 0; e < r.length; e++) {
1826
- o += n((t - r[e]) / a);
1822
+ return function(e) {
1823
+ var t = 0;
1824
+ var i = 0;
1825
+ for (t = 0; t < r.length; t++) {
1826
+ i += n((e - r[t]) / a);
1827
1827
  }
1828
- return o / a / r.length;
1828
+ return i / a / r.length;
1829
1829
  };
1830
1830
  }
1831
1831
 
1832
- function Ur(r, t, e) {
1833
- return (r - t) / e;
1832
+ function zScore(r, e, t) {
1833
+ return (r - e) / t;
1834
1834
  }
1835
1835
 
1836
- var zr = Math.sqrt(2 * Math.PI);
1836
+ var f = Math.sqrt(2 * Math.PI);
1837
1837
 
1838
- function Fr(r) {
1839
- var t = r;
1838
+ function cumulativeDistribution(r) {
1840
1839
  var e = r;
1840
+ var t = r;
1841
1841
  for (var n = 1; n < 15; n++) {
1842
- e *= r * r / (2 * n + 1);
1843
- t += e;
1842
+ t *= r * r / (2 * n + 1);
1843
+ e += t;
1844
1844
  }
1845
- return Math.round((.5 + t / zr * Math.exp(-r * r / 2)) * 1e4) / 1e4;
1845
+ return Math.round((.5 + e / f * Math.exp(-r * r / 2)) * 1e4) / 1e4;
1846
1846
  }
1847
1847
 
1848
- var Or = [];
1848
+ var v = [];
1849
1849
 
1850
- for (var Xr = 0; Xr <= 3.09; Xr += .01) {
1851
- Or.push(Fr(Xr));
1850
+ for (var h = 0; h <= 3.09; h += .01) {
1851
+ v.push(cumulativeDistribution(h));
1852
1852
  }
1853
1853
 
1854
- function Yr(r) {
1855
- var t = Math.abs(r);
1856
- var e = Math.min(Math.round(t * 100), Or.length - 1);
1854
+ function cumulativeStdNormalProbability(r) {
1855
+ var e = Math.abs(r);
1856
+ var t = Math.min(Math.round(e * 100), v.length - 1);
1857
1857
  if (r >= 0) {
1858
- return Or[e];
1858
+ return v[t];
1859
1859
  } else {
1860
- return Math.round((1 - Or[e]) * 1e4) / 1e4;
1860
+ return Math.round((1 - v[t]) * 1e4) / 1e4;
1861
1861
  }
1862
1862
  }
1863
1863
 
1864
- function jr(r) {
1864
+ function cumulativeStdLogisticProbability(r) {
1865
1865
  return 1 / (Math.exp(-r) + 1);
1866
1866
  }
1867
1867
 
1868
- function Kr(r) {
1869
- var t = 1 / (1 + .5 * Math.abs(r));
1870
- var e = t * Math.exp(-r * r + ((((((((.17087277 * t - .82215223) * t + 1.48851587) * t - 1.13520398) * t + .27886807) * t - .18628806) * t + .09678418) * t + .37409196) * t + 1.00002368) * t - 1.26551223);
1868
+ function errorFunction(r) {
1869
+ var e = 1 / (1 + .5 * Math.abs(r));
1870
+ var t = e * Math.exp(-r * r + ((((((((.17087277 * e - .82215223) * e + 1.48851587) * e - 1.13520398) * e + .27886807) * e - .18628806) * e + .09678418) * e + .37409196) * e + 1.00002368) * e - 1.26551223);
1871
1871
  if (r >= 0) {
1872
- return 1 - e;
1872
+ return 1 - t;
1873
1873
  } else {
1874
- return e - 1;
1874
+ return t - 1;
1875
1875
  }
1876
1876
  }
1877
1877
 
1878
- function Wr(r) {
1879
- var t = 8 * (Math.PI - 3) / (3 * Math.PI * (4 - Math.PI));
1880
- var e = Math.sqrt(Math.sqrt(Math.pow(2 / (Math.PI * t) + Math.log(1 - r * r) / 2, 2) - Math.log(1 - r * r) / t) - (2 / (Math.PI * t) + Math.log(1 - r * r) / 2));
1878
+ function inverseErrorFunction(r) {
1879
+ var e = 8 * (Math.PI - 3) / (3 * Math.PI * (4 - Math.PI));
1880
+ var t = Math.sqrt(Math.sqrt(Math.pow(2 / (Math.PI * e) + Math.log(1 - r * r) / 2, 2) - Math.log(1 - r * r) / e) - (2 / (Math.PI * e) + Math.log(1 - r * r) / 2));
1881
1881
  if (r >= 0) {
1882
- return e;
1882
+ return t;
1883
1883
  } else {
1884
- return -e;
1884
+ return -t;
1885
1885
  }
1886
1886
  }
1887
1887
 
1888
- function Br(r) {
1888
+ function probit(r) {
1889
1889
  if (r === 0) {
1890
- r = qr;
1890
+ r = t;
1891
1891
  } else if (r >= 1) {
1892
- r = 1 - qr;
1892
+ r = 1 - t;
1893
1893
  }
1894
- return Math.sqrt(2) * Wr(2 * r - 1);
1894
+ return Math.sqrt(2) * inverseErrorFunction(2 * r - 1);
1895
1895
  }
1896
1896
 
1897
- function Gr(r) {
1897
+ function logit(r) {
1898
1898
  if (r <= 0 || r >= 1) {
1899
1899
  throw new Error("p must be strictly between zero and one");
1900
1900
  }
1901
1901
  return Math.log(r / (1 - r));
1902
1902
  }
1903
1903
 
1904
- function Hr(r, t, e, a, o) {
1905
- if (a === undefined) {
1906
- a = 1e4;
1904
+ function permutationTest(r, e, t, n, a) {
1905
+ if (n === undefined) {
1906
+ n = 1e4;
1907
1907
  }
1908
- if (e === undefined) {
1909
- e = "two_side";
1908
+ if (t === undefined) {
1909
+ t = "two_side";
1910
1910
  }
1911
- if (e !== "two_side" && e !== "greater" && e !== "less") {
1911
+ if (t !== "two_side" && t !== "greater" && t !== "less") {
1912
1912
  throw new Error("`alternative` must be either 'two_side', 'greater', or 'less'.");
1913
1913
  }
1914
- var i = n(r);
1915
- var u = n(t);
1916
- var f = i - u;
1917
- var v = new Array(a);
1918
- var h = r.concat(t);
1919
- var s = Math.floor(h.length / 2);
1920
- for (var l = 0; l < a; l++) {
1921
- R(h, o);
1922
- var c = h.slice(0, s);
1923
- var p = h.slice(s, h.length);
1924
- var g = n(c) - n(p);
1925
- v[l] = g;
1926
- }
1927
- var w = 0;
1928
- if (e === "two_side") {
1929
- for (var M = 0; M <= a; M++) {
1930
- if (Math.abs(v[M]) >= Math.abs(f)) {
1931
- w += 1;
1914
+ var i = mean(r);
1915
+ var o = mean(e);
1916
+ var u = i - o;
1917
+ var s = new Array(n);
1918
+ var l = r.concat(e);
1919
+ var f = Math.floor(l.length / 2);
1920
+ for (var v = 0; v < n; v++) {
1921
+ shuffleInPlace(l, a);
1922
+ var h = l.slice(0, f);
1923
+ var c = l.slice(f, l.length);
1924
+ var p = mean(h) - mean(c);
1925
+ s[v] = p;
1926
+ }
1927
+ var m = 0;
1928
+ if (t === "two_side") {
1929
+ for (var g = 0; g <= n; g++) {
1930
+ if (Math.abs(s[g]) >= Math.abs(u)) {
1931
+ m += 1;
1932
1932
  }
1933
1933
  }
1934
- } else if (e === "greater") {
1935
- for (var m = 0; m <= a; m++) {
1936
- if (v[m] >= f) {
1937
- w += 1;
1934
+ } else if (t === "greater") {
1935
+ for (var d = 0; d <= n; d++) {
1936
+ if (s[d] >= u) {
1937
+ m += 1;
1938
1938
  }
1939
1939
  }
1940
1940
  } else {
1941
- for (var d = 0; d <= a; d++) {
1942
- if (v[d] <= f) {
1943
- w += 1;
1941
+ for (var w = 0; w <= n; w++) {
1942
+ if (s[w] <= u) {
1943
+ m += 1;
1944
1944
  }
1945
1945
  }
1946
1946
  }
1947
- return w / a;
1947
+ return m / n;
1948
1948
  }
1949
1949
 
1950
- function Jr(r) {
1950
+ function sign(r) {
1951
1951
  if (typeof r === "number") {
1952
1952
  if (r < 0) {
1953
1953
  return -1;
@@ -1961,59 +1961,59 @@ function Jr(r) {
1961
1961
  }
1962
1962
  }
1963
1963
 
1964
- function Qr(r, t, e, n, a) {
1964
+ function bisect(r, e, t, n, a) {
1965
1965
  if (typeof r !== "function") {
1966
1966
  throw new TypeError("func must be a function");
1967
1967
  }
1968
- for (var o = 0; o < n; o++) {
1969
- var i = (t + e) / 2;
1970
- if (r(i) === 0 || Math.abs((e - t) / 2) < a) {
1971
- return i;
1968
+ for (var i = 0; i < n; i++) {
1969
+ var o = (e + t) / 2;
1970
+ if (r(o) === 0 || Math.abs((t - e) / 2) < a) {
1971
+ return o;
1972
1972
  }
1973
- if (Jr(r(i)) === Jr(r(t))) {
1974
- t = i;
1973
+ if (sign(r(o)) === sign(r(e))) {
1974
+ e = o;
1975
1975
  } else {
1976
- e = i;
1976
+ t = o;
1977
1977
  }
1978
1978
  }
1979
1979
  throw new Error("maximum number of iterations exceeded");
1980
1980
  }
1981
1981
 
1982
- function Zr(r, t) {
1983
- var e = 0;
1982
+ function euclideanDistance(r, e) {
1983
+ var t = 0;
1984
1984
  for (var n = 0; n < r.length; n++) {
1985
- var a = r[n] - t[n];
1986
- e += a * a;
1985
+ var a = r[n] - e[n];
1986
+ t += a * a;
1987
1987
  }
1988
- return Math.sqrt(e);
1988
+ return Math.sqrt(t);
1989
1989
  }
1990
1990
 
1991
- function $r(r, t, e) {
1992
- if (e === void 0) e = Math.random;
1991
+ function kMeansCluster(r, e, t) {
1992
+ if (t === void 0) t = Math.random;
1993
1993
  var n = null;
1994
- var a = z(r, t, e);
1995
- var o = null;
1996
- var i = Number.MAX_VALUE;
1997
- while (i !== 0) {
1998
- o = rt(r, a);
1994
+ var a = sample(r, e, t);
1995
+ var i = null;
1996
+ var o = Number.MAX_VALUE;
1997
+ while (o !== 0) {
1998
+ i = labelPoints(r, a);
1999
1999
  n = a;
2000
- a = tt(r, o, t);
2001
- i = et(a, n);
2000
+ a = calculateCentroids(r, i, e);
2001
+ o = calculateChange(a, n);
2002
2002
  }
2003
2003
  return {
2004
- labels: o,
2004
+ labels: i,
2005
2005
  centroids: a
2006
2006
  };
2007
2007
  }
2008
2008
 
2009
- function rt(r, t) {
2009
+ function labelPoints(r, e) {
2010
2010
  return r.map((function(r) {
2011
- var e = Number.MAX_VALUE;
2011
+ var t = Number.MAX_VALUE;
2012
2012
  var n = -1;
2013
- for (var a = 0; a < t.length; a++) {
2014
- var o = Zr(r, t[a]);
2015
- if (o < e) {
2016
- e = o;
2013
+ for (var a = 0; a < e.length; a++) {
2014
+ var i = euclideanDistance(r, e[a]);
2015
+ if (i < t) {
2016
+ t = i;
2017
2017
  n = a;
2018
2018
  }
2019
2019
  }
@@ -2021,229 +2021,229 @@ function rt(r, t) {
2021
2021
  }));
2022
2022
  }
2023
2023
 
2024
- function tt(r, t, e) {
2024
+ function calculateCentroids(r, e, t) {
2025
2025
  var n = r[0].length;
2026
- var a = F(e, n);
2027
- var o = Array(e).fill(0);
2028
- var i = r.length;
2029
- for (var u = 0; u < i; u++) {
2030
- var f = r[u];
2031
- var v = t[u];
2032
- var h = a[v];
2033
- for (var s = 0; s < n; s++) {
2034
- h[s] += f[s];
2035
- }
2036
- o[v] += 1;
2037
- }
2038
- for (var l = 0; l < e; l++) {
2039
- if (o[l] === 0) {
2040
- throw new Error("Centroid " + l + " has no friends");
2041
- }
2042
- var c = a[l];
2026
+ var a = makeMatrix(t, n);
2027
+ var i = Array(t).fill(0);
2028
+ var o = r.length;
2029
+ for (var u = 0; u < o; u++) {
2030
+ var s = r[u];
2031
+ var l = e[u];
2032
+ var f = a[l];
2033
+ for (var v = 0; v < n; v++) {
2034
+ f[v] += s[v];
2035
+ }
2036
+ i[l] += 1;
2037
+ }
2038
+ for (var h = 0; h < t; h++) {
2039
+ if (i[h] === 0) {
2040
+ throw new Error("Centroid " + h + " has no friends");
2041
+ }
2042
+ var c = a[h];
2043
2043
  for (var p = 0; p < n; p++) {
2044
- c[p] /= o[l];
2044
+ c[p] /= i[h];
2045
2045
  }
2046
2046
  }
2047
2047
  return a;
2048
2048
  }
2049
2049
 
2050
- function et(r, t) {
2051
- var e = 0;
2050
+ function calculateChange(r, e) {
2051
+ var t = 0;
2052
2052
  for (var n = 0; n < r.length; n++) {
2053
- e += Zr(r[n], t[n]);
2053
+ t += euclideanDistance(r[n], e[n]);
2054
2054
  }
2055
- return e;
2055
+ return t;
2056
2056
  }
2057
2057
 
2058
- function nt(r, t) {
2059
- if (r.length !== t.length) {
2058
+ function silhouette(r, e) {
2059
+ if (r.length !== e.length) {
2060
2060
  throw new Error("must have exactly as many labels as points");
2061
2061
  }
2062
- var e = at(t);
2063
- var n = ot(r);
2062
+ var t = createGroups(e);
2063
+ var n = calculateAllDistances(r);
2064
2064
  var a = [];
2065
- for (var o = 0; o < r.length; o++) {
2066
- var i = 0;
2067
- if (e[t[o]].length > 1) {
2068
- var u = ut(o, e[t[o]], n);
2069
- var f = it(o, t, e, n);
2070
- i = (f - u) / Math.max(u, f);
2065
+ for (var i = 0; i < r.length; i++) {
2066
+ var o = 0;
2067
+ if (t[e[i]].length > 1) {
2068
+ var u = meanDistanceFromPointToGroup(i, t[e[i]], n);
2069
+ var s = meanDistanceToNearestGroup(i, e, t, n);
2070
+ o = (s - u) / Math.max(u, s);
2071
2071
  }
2072
- a.push(i);
2072
+ a.push(o);
2073
2073
  }
2074
2074
  return a;
2075
2075
  }
2076
2076
 
2077
- function at(r) {
2078
- var t = 1 + c(r);
2079
- var e = Array(t);
2077
+ function createGroups(r) {
2078
+ var e = 1 + max(r);
2079
+ var t = Array(e);
2080
2080
  for (var n = 0; n < r.length; n++) {
2081
2081
  var a = r[n];
2082
- if (e[a] === undefined) {
2083
- e[a] = [];
2082
+ if (t[a] === undefined) {
2083
+ t[a] = [];
2084
2084
  }
2085
- e[a].push(n);
2085
+ t[a].push(n);
2086
2086
  }
2087
- return e;
2087
+ return t;
2088
2088
  }
2089
2089
 
2090
- function ot(r) {
2091
- var t = r.length;
2092
- var e = F(t, t);
2093
- for (var n = 0; n < t; n++) {
2090
+ function calculateAllDistances(r) {
2091
+ var e = r.length;
2092
+ var t = makeMatrix(e, e);
2093
+ for (var n = 0; n < e; n++) {
2094
2094
  for (var a = 0; a < n; a++) {
2095
- e[n][a] = Zr(r[n], r[a]);
2096
- e[a][n] = e[n][a];
2095
+ t[n][a] = euclideanDistance(r[n], r[a]);
2096
+ t[a][n] = t[n][a];
2097
2097
  }
2098
2098
  }
2099
- return e;
2099
+ return t;
2100
2100
  }
2101
2101
 
2102
- function it(r, t, e, n) {
2103
- var a = t[r];
2104
- var o = Number.MAX_VALUE;
2105
- for (var i = 0; i < e.length; i++) {
2106
- if (i !== a) {
2107
- var u = ut(r, e[i], n);
2108
- if (u < o) {
2109
- o = u;
2102
+ function meanDistanceToNearestGroup(r, e, t, n) {
2103
+ var a = e[r];
2104
+ var i = Number.MAX_VALUE;
2105
+ for (var o = 0; o < t.length; o++) {
2106
+ if (o !== a) {
2107
+ var u = meanDistanceFromPointToGroup(r, t[o], n);
2108
+ if (u < i) {
2109
+ i = u;
2110
2110
  }
2111
2111
  }
2112
2112
  }
2113
- return o;
2113
+ return i;
2114
2114
  }
2115
2115
 
2116
- function ut(r, t, e) {
2116
+ function meanDistanceFromPointToGroup(r, e, t) {
2117
2117
  var n = 0;
2118
- for (var a = 0; a < t.length; a++) {
2119
- n += e[r][t[a]];
2118
+ for (var a = 0; a < e.length; a++) {
2119
+ n += t[r][e[a]];
2120
2120
  }
2121
- return n / t.length;
2121
+ return n / e.length;
2122
2122
  }
2123
2123
 
2124
- function ft(r, t) {
2125
- var e = nt(r, t);
2126
- return c(e);
2124
+ function silhouetteMetric(r, e) {
2125
+ var t = silhouette(r, e);
2126
+ return max(t);
2127
2127
  }
2128
2128
 
2129
- function vt(r, t) {
2130
- if (r === 0 && t === 0) {
2129
+ function relativeError(r, e) {
2130
+ if (r === 0 && e === 0) {
2131
2131
  return 0;
2132
2132
  }
2133
- return Math.abs((r - t) / t);
2133
+ return Math.abs((r - e) / e);
2134
2134
  }
2135
2135
 
2136
- function ht(r, t, e) {
2137
- if (e === void 0) e = qr;
2138
- return vt(r, t) <= e;
2136
+ function approxEqual(r, e, n) {
2137
+ if (n === void 0) n = t;
2138
+ return relativeError(r, e) <= n;
2139
2139
  }
2140
2140
 
2141
- exports.addToMean = ir;
2141
+ exports.addToMean = addToMean;
2142
2142
 
2143
- exports.approxEqual = ht;
2143
+ exports.approxEqual = approxEqual;
2144
2144
 
2145
- exports.bernoulliDistribution = Pr;
2145
+ exports.bernoulliDistribution = bernoulliDistribution;
2146
2146
 
2147
- exports.binomialDistribution = Sr;
2147
+ exports.binomialDistribution = binomialDistribution;
2148
2148
 
2149
- exports.bisect = Qr;
2149
+ exports.bisect = bisect;
2150
2150
 
2151
- exports.chunk = D;
2151
+ exports.chunk = chunk;
2152
2152
 
2153
- exports.coefficientOfVariation = wr;
2153
+ exports.coefficientOfVariation = coefficientOfVariation;
2154
2154
 
2155
- exports.combinations = ar;
2155
+ exports.combinations = combinations;
2156
2156
 
2157
- exports.combinationsReplacement = or;
2157
+ exports.combinationsReplacement = combinationsReplacement;
2158
2158
 
2159
- exports.combineMeans = ur;
2159
+ exports.combineMeans = combineMeans;
2160
2160
 
2161
- exports.combineVariances = fr;
2161
+ exports.combineVariances = combineVariances;
2162
2162
 
2163
- exports.cumulativeStdLogisticProbability = jr;
2163
+ exports.cumulativeStdLogisticProbability = cumulativeStdLogisticProbability;
2164
2164
 
2165
- exports.epsilon = qr;
2165
+ exports.epsilon = t;
2166
2166
 
2167
- exports.extent = p;
2167
+ exports.extent = extent;
2168
2168
 
2169
- exports.factorial = Er;
2169
+ exports.factorial = factorial;
2170
2170
 
2171
- exports.gamma = yr;
2171
+ exports.gamma = gamma;
2172
2172
 
2173
- exports.gammaln = Ar;
2173
+ exports.gammaln = gammaln;
2174
2174
 
2175
- exports.geometricMean = vr;
2175
+ exports.geometricMean = geometricMean;
2176
2176
 
2177
- exports.harmonicMean = sr;
2177
+ exports.harmonicMean = harmonicMean;
2178
2178
 
2179
- exports.interquartileRange = _;
2179
+ exports.interquartileRange = interquartileRange;
2180
2180
 
2181
- exports.jenks = G;
2181
+ exports.jenks = jenks;
2182
2182
 
2183
- exports.linearRegression = r;
2183
+ exports.linearRegression = linearRegression;
2184
2184
 
2185
- exports.linearRegressionLine = t;
2185
+ exports.linearRegressionLine = linearRegressionLine;
2186
2186
 
2187
- exports.logAverage = hr;
2187
+ exports.logAverage = logAverage;
2188
2188
 
2189
- exports.logit = Gr;
2189
+ exports.logit = logit;
2190
2190
 
2191
- exports.max = c;
2191
+ exports.max = max;
2192
2192
 
2193
- exports.mean = n;
2193
+ exports.mean = mean;
2194
2194
 
2195
- exports.median = T;
2195
+ exports.median = median;
2196
2196
 
2197
- exports.medianAbsoluteDeviation = V;
2197
+ exports.medianAbsoluteDeviation = medianAbsoluteDeviation;
2198
2198
 
2199
- exports.min = l;
2199
+ exports.min = min;
2200
2200
 
2201
- exports.mode = h;
2201
+ exports.mode = mode;
2202
2202
 
2203
- exports.poissonDistribution = Cr;
2203
+ exports.poissonDistribution = poissonDistribution;
2204
2204
 
2205
- exports.probit = Br;
2205
+ exports.probit = probit;
2206
2206
 
2207
- exports.product = d;
2207
+ exports.product = product;
2208
2208
 
2209
- exports.quantile = E;
2209
+ exports.quantile = quantile;
2210
2210
 
2211
- exports.quantileRank = C;
2211
+ exports.quantileRank = quantileRank;
2212
2212
 
2213
- exports.quickselect = x;
2213
+ exports.quickselect = quickselect;
2214
2214
 
2215
- exports.rSquared = u;
2215
+ exports.rSquared = rSquared;
2216
2216
 
2217
- exports.rootMeanSquare = gr;
2217
+ exports.rootMeanSquare = rootMeanSquare;
2218
2218
 
2219
- exports.sample = z;
2219
+ exports.sample = sample;
2220
2220
 
2221
- exports.sampleCorrelation = $;
2221
+ exports.sampleCorrelation = sampleCorrelation;
2222
2222
 
2223
- exports.sampleCovariance = J;
2223
+ exports.sampleCovariance = sampleCovariance;
2224
2224
 
2225
- exports.sampleSkewness = tr;
2225
+ exports.sampleSkewness = sampleSkewness;
2226
2226
 
2227
- exports.sampleStandardDeviation = Z;
2227
+ exports.sampleStandardDeviation = sampleStandardDeviation;
2228
2228
 
2229
- exports.sampleVariance = Q;
2229
+ exports.sampleVariance = sampleVariance;
2230
2230
 
2231
- exports.sampleWithReplacement = L;
2231
+ exports.sampleWithReplacement = sampleWithReplacement;
2232
2232
 
2233
- exports.shuffle = U;
2233
+ exports.shuffle = shuffle;
2234
2234
 
2235
- exports.standardDeviation = i;
2235
+ exports.standardDeviation = standardDeviation;
2236
2236
 
2237
- exports.subtractFromMean = pr;
2237
+ exports.subtractFromMean = subtractFromMean;
2238
2238
 
2239
- exports.sum = e;
2239
+ exports.sum = sum;
2240
2240
 
2241
- exports.sumNthPowerDeviations = a;
2241
+ exports.sumNthPowerDeviations = sumNthPowerDeviations;
2242
2242
 
2243
- exports.tTest = Mr;
2243
+ exports.tTest = tTest;
2244
2244
 
2245
- exports.tTestTwoSample = mr;
2245
+ exports.tTestTwoSample = tTestTwoSample;
2246
2246
 
2247
- exports.variance = o;
2247
+ exports.variance = variance;
2248
2248
 
2249
- exports.zScore = Ur;
2249
+ exports.zScore = zScore;