@nberlette/math 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (806) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +889 -0
  3. package/cjs/abs.d.ts +14 -0
  4. package/cjs/abs.d.ts.map +1 -0
  5. package/cjs/abs.js +22 -0
  6. package/cjs/abs.js.map +1 -0
  7. package/cjs/acos.d.ts +17 -0
  8. package/cjs/acos.d.ts.map +1 -0
  9. package/cjs/acos.js +27 -0
  10. package/cjs/acos.js.map +1 -0
  11. package/cjs/acosh.d.ts +11 -0
  12. package/cjs/acosh.d.ts.map +1 -0
  13. package/cjs/acosh.js +35 -0
  14. package/cjs/acosh.js.map +1 -0
  15. package/cjs/asin.d.ts +11 -0
  16. package/cjs/asin.d.ts.map +1 -0
  17. package/cjs/asin.js +28 -0
  18. package/cjs/asin.js.map +1 -0
  19. package/cjs/asinh.d.ts +9 -0
  20. package/cjs/asinh.d.ts.map +1 -0
  21. package/cjs/asinh.js +26 -0
  22. package/cjs/asinh.js.map +1 -0
  23. package/cjs/atan.d.ts +11 -0
  24. package/cjs/atan.d.ts.map +1 -0
  25. package/cjs/atan.js +65 -0
  26. package/cjs/atan.js.map +1 -0
  27. package/cjs/atan2.d.ts +12 -0
  28. package/cjs/atan2.d.ts.map +1 -0
  29. package/cjs/atan2.js +70 -0
  30. package/cjs/atan2.js.map +1 -0
  31. package/cjs/atanh.d.ts +11 -0
  32. package/cjs/atanh.d.ts.map +1 -0
  33. package/cjs/atanh.js +32 -0
  34. package/cjs/atanh.js.map +1 -0
  35. package/cjs/cbrt.d.ts +9 -0
  36. package/cjs/cbrt.d.ts.map +1 -0
  37. package/cjs/cbrt.js +26 -0
  38. package/cjs/cbrt.js.map +1 -0
  39. package/cjs/ceil.d.ts +15 -0
  40. package/cjs/ceil.d.ts.map +1 -0
  41. package/cjs/ceil.js +34 -0
  42. package/cjs/ceil.js.map +1 -0
  43. package/cjs/clamp.d.ts +15 -0
  44. package/cjs/clamp.d.ts.map +1 -0
  45. package/cjs/clamp.js +32 -0
  46. package/cjs/clamp.js.map +1 -0
  47. package/cjs/clz32.d.ts +20 -0
  48. package/cjs/clz32.d.ts.map +1 -0
  49. package/cjs/clz32.js +48 -0
  50. package/cjs/clz32.js.map +1 -0
  51. package/cjs/constants/e.d.ts +17 -0
  52. package/cjs/constants/e.d.ts.map +1 -0
  53. package/cjs/constants/e.js +19 -0
  54. package/cjs/constants/e.js.map +1 -0
  55. package/cjs/constants/epsilon.d.ts +24 -0
  56. package/cjs/constants/epsilon.d.ts.map +1 -0
  57. package/cjs/constants/epsilon.js +26 -0
  58. package/cjs/constants/epsilon.js.map +1 -0
  59. package/cjs/constants/index.d.ts +23 -0
  60. package/cjs/constants/index.d.ts.map +1 -0
  61. package/cjs/constants/index.js +39 -0
  62. package/cjs/constants/index.js.map +1 -0
  63. package/cjs/constants/infinity.d.ts +3 -0
  64. package/cjs/constants/infinity.d.ts.map +1 -0
  65. package/cjs/constants/infinity.js +19 -0
  66. package/cjs/constants/infinity.js.map +1 -0
  67. package/cjs/constants/ln10.d.ts +10 -0
  68. package/cjs/constants/ln10.d.ts.map +1 -0
  69. package/cjs/constants/ln10.js +12 -0
  70. package/cjs/constants/ln10.js.map +1 -0
  71. package/cjs/constants/ln2.d.ts +10 -0
  72. package/cjs/constants/ln2.d.ts.map +1 -0
  73. package/cjs/constants/ln2.js +12 -0
  74. package/cjs/constants/ln2.js.map +1 -0
  75. package/cjs/constants/log10e.d.ts +10 -0
  76. package/cjs/constants/log10e.d.ts.map +1 -0
  77. package/cjs/constants/log10e.js +12 -0
  78. package/cjs/constants/log10e.js.map +1 -0
  79. package/cjs/constants/log2e.d.ts +10 -0
  80. package/cjs/constants/log2e.d.ts.map +1 -0
  81. package/cjs/constants/log2e.js +12 -0
  82. package/cjs/constants/log2e.js.map +1 -0
  83. package/cjs/constants/max_safe_integer.d.ts +11 -0
  84. package/cjs/constants/max_safe_integer.d.ts.map +1 -0
  85. package/cjs/constants/max_safe_integer.js +13 -0
  86. package/cjs/constants/max_safe_integer.js.map +1 -0
  87. package/cjs/constants/max_value.d.ts +10 -0
  88. package/cjs/constants/max_value.d.ts.map +1 -0
  89. package/cjs/constants/max_value.js +12 -0
  90. package/cjs/constants/max_value.js.map +1 -0
  91. package/cjs/constants/min_safe_integer.d.ts +12 -0
  92. package/cjs/constants/min_safe_integer.d.ts.map +1 -0
  93. package/cjs/constants/min_safe_integer.js +14 -0
  94. package/cjs/constants/min_safe_integer.js.map +1 -0
  95. package/cjs/constants/min_value.d.ts +10 -0
  96. package/cjs/constants/min_value.d.ts.map +1 -0
  97. package/cjs/constants/min_value.js +12 -0
  98. package/cjs/constants/min_value.js.map +1 -0
  99. package/cjs/constants/nan.d.ts +47 -0
  100. package/cjs/constants/nan.d.ts.map +1 -0
  101. package/cjs/constants/nan.js +30 -0
  102. package/cjs/constants/nan.js.map +1 -0
  103. package/cjs/constants/negative_infinity.d.ts +28 -0
  104. package/cjs/constants/negative_infinity.d.ts.map +1 -0
  105. package/cjs/constants/negative_infinity.js +15 -0
  106. package/cjs/constants/negative_infinity.js.map +1 -0
  107. package/cjs/constants/negative_zero.d.ts +31 -0
  108. package/cjs/constants/negative_zero.d.ts.map +1 -0
  109. package/cjs/constants/negative_zero.js +21 -0
  110. package/cjs/constants/negative_zero.js.map +1 -0
  111. package/cjs/constants/pi.d.ts +10 -0
  112. package/cjs/constants/pi.d.ts.map +1 -0
  113. package/cjs/constants/pi.js +12 -0
  114. package/cjs/constants/pi.js.map +1 -0
  115. package/cjs/constants/positive_infinity.d.ts +29 -0
  116. package/cjs/constants/positive_infinity.d.ts.map +1 -0
  117. package/cjs/constants/positive_infinity.js +16 -0
  118. package/cjs/constants/positive_infinity.js.map +1 -0
  119. package/cjs/constants/positive_zero.d.ts +38 -0
  120. package/cjs/constants/positive_zero.d.ts.map +1 -0
  121. package/cjs/constants/positive_zero.js +36 -0
  122. package/cjs/constants/positive_zero.js.map +1 -0
  123. package/cjs/constants/sqrt1_2.d.ts +9 -0
  124. package/cjs/constants/sqrt1_2.d.ts.map +1 -0
  125. package/cjs/constants/sqrt1_2.js +11 -0
  126. package/cjs/constants/sqrt1_2.js.map +1 -0
  127. package/cjs/constants/sqrt2.d.ts +9 -0
  128. package/cjs/constants/sqrt2.d.ts.map +1 -0
  129. package/cjs/constants/sqrt2.js +11 -0
  130. package/cjs/constants/sqrt2.js.map +1 -0
  131. package/cjs/cos.d.ts +10 -0
  132. package/cjs/cos.d.ts.map +1 -0
  133. package/cjs/cos.js +32 -0
  134. package/cjs/cos.js.map +1 -0
  135. package/cjs/cosh.d.ts +10 -0
  136. package/cjs/cosh.d.ts.map +1 -0
  137. package/cjs/cosh.js +21 -0
  138. package/cjs/cosh.js.map +1 -0
  139. package/cjs/exp.d.ts +20 -0
  140. package/cjs/exp.d.ts.map +1 -0
  141. package/cjs/exp.js +48 -0
  142. package/cjs/exp.js.map +1 -0
  143. package/cjs/expm1.d.ts +11 -0
  144. package/cjs/expm1.d.ts.map +1 -0
  145. package/cjs/expm1.js +38 -0
  146. package/cjs/expm1.js.map +1 -0
  147. package/cjs/f16round.d.ts +24 -0
  148. package/cjs/f16round.d.ts.map +1 -0
  149. package/cjs/f16round.js +42 -0
  150. package/cjs/f16round.js.map +1 -0
  151. package/cjs/float16/constants.d.ts +97 -0
  152. package/cjs/float16/constants.d.ts.map +1 -0
  153. package/cjs/float16/constants.js +99 -0
  154. package/cjs/float16/constants.js.map +1 -0
  155. package/cjs/float16/decode.d.ts +40 -0
  156. package/cjs/float16/decode.d.ts.map +1 -0
  157. package/cjs/float16/decode.js +67 -0
  158. package/cjs/float16/decode.js.map +1 -0
  159. package/cjs/float16/encode.d.ts +67 -0
  160. package/cjs/float16/encode.d.ts.map +1 -0
  161. package/cjs/float16/encode.js +77 -0
  162. package/cjs/float16/encode.js.map +1 -0
  163. package/cjs/float16/guards.d.ts +22 -0
  164. package/cjs/float16/guards.d.ts.map +1 -0
  165. package/cjs/float16/guards.js +15 -0
  166. package/cjs/float16/guards.js.map +1 -0
  167. package/cjs/float16/index.d.ts +11 -0
  168. package/cjs/float16/index.d.ts.map +1 -0
  169. package/cjs/float16/index.js +27 -0
  170. package/cjs/float16/index.js.map +1 -0
  171. package/cjs/float16/round.d.ts +25 -0
  172. package/cjs/float16/round.d.ts.map +1 -0
  173. package/cjs/float16/round.js +46 -0
  174. package/cjs/float16/round.js.map +1 -0
  175. package/cjs/float32/constants.d.ts +96 -0
  176. package/cjs/float32/constants.d.ts.map +1 -0
  177. package/cjs/float32/constants.js +98 -0
  178. package/cjs/float32/constants.js.map +1 -0
  179. package/cjs/float32/decode.d.ts +38 -0
  180. package/cjs/float32/decode.d.ts.map +1 -0
  181. package/cjs/float32/decode.js +70 -0
  182. package/cjs/float32/decode.js.map +1 -0
  183. package/cjs/float32/encode.d.ts +50 -0
  184. package/cjs/float32/encode.d.ts.map +1 -0
  185. package/cjs/float32/encode.js +77 -0
  186. package/cjs/float32/encode.js.map +1 -0
  187. package/cjs/float32/guards.d.ts +37 -0
  188. package/cjs/float32/guards.d.ts.map +1 -0
  189. package/cjs/float32/guards.js +20 -0
  190. package/cjs/float32/guards.js.map +1 -0
  191. package/cjs/float32/index.d.ts +11 -0
  192. package/cjs/float32/index.d.ts.map +1 -0
  193. package/cjs/float32/index.js +27 -0
  194. package/cjs/float32/index.js.map +1 -0
  195. package/cjs/float32/round.d.ts +23 -0
  196. package/cjs/float32/round.d.ts.map +1 -0
  197. package/cjs/float32/round.js +36 -0
  198. package/cjs/float32/round.js.map +1 -0
  199. package/cjs/floor.d.ts +10 -0
  200. package/cjs/floor.d.ts.map +1 -0
  201. package/cjs/floor.js +32 -0
  202. package/cjs/floor.js.map +1 -0
  203. package/cjs/fround.d.ts +23 -0
  204. package/cjs/fround.d.ts.map +1 -0
  205. package/cjs/fround.js +35 -0
  206. package/cjs/fround.js.map +1 -0
  207. package/cjs/guards/finite.d.ts +23 -0
  208. package/cjs/guards/finite.d.ts.map +1 -0
  209. package/cjs/guards/finite.js +21 -0
  210. package/cjs/guards/finite.js.map +1 -0
  211. package/cjs/guards/index.d.ts +50 -0
  212. package/cjs/guards/index.d.ts.map +1 -0
  213. package/cjs/guards/index.js +66 -0
  214. package/cjs/guards/index.js.map +1 -0
  215. package/cjs/guards/infinity.d.ts +3 -0
  216. package/cjs/guards/infinity.d.ts.map +1 -0
  217. package/cjs/guards/infinity.js +19 -0
  218. package/cjs/guards/infinity.js.map +1 -0
  219. package/cjs/guards/integer.d.ts +47 -0
  220. package/cjs/guards/integer.d.ts.map +1 -0
  221. package/cjs/guards/integer.js +23 -0
  222. package/cjs/guards/integer.js.map +1 -0
  223. package/cjs/guards/nan.d.ts +61 -0
  224. package/cjs/guards/nan.d.ts.map +1 -0
  225. package/cjs/guards/nan.js +68 -0
  226. package/cjs/guards/nan.js.map +1 -0
  227. package/cjs/guards/negative_infinity.d.ts +19 -0
  228. package/cjs/guards/negative_infinity.d.ts.map +1 -0
  229. package/cjs/guards/negative_infinity.js +25 -0
  230. package/cjs/guards/negative_infinity.js.map +1 -0
  231. package/cjs/guards/negative_zero.d.ts +12 -0
  232. package/cjs/guards/negative_zero.d.ts.map +1 -0
  233. package/cjs/guards/negative_zero.js +24 -0
  234. package/cjs/guards/negative_zero.js.map +1 -0
  235. package/cjs/guards/positive_infinity.d.ts +19 -0
  236. package/cjs/guards/positive_infinity.d.ts.map +1 -0
  237. package/cjs/guards/positive_infinity.js +25 -0
  238. package/cjs/guards/positive_infinity.js.map +1 -0
  239. package/cjs/guards/positive_zero.d.ts +17 -0
  240. package/cjs/guards/positive_zero.d.ts.map +1 -0
  241. package/cjs/guards/positive_zero.js +36 -0
  242. package/cjs/guards/positive_zero.js.map +1 -0
  243. package/cjs/guards/safe_integer.d.ts +33 -0
  244. package/cjs/guards/safe_integer.d.ts.map +1 -0
  245. package/cjs/guards/safe_integer.js +27 -0
  246. package/cjs/guards/safe_integer.js.map +1 -0
  247. package/cjs/hypot.d.ts +18 -0
  248. package/cjs/hypot.d.ts.map +1 -0
  249. package/cjs/hypot.js +63 -0
  250. package/cjs/hypot.js.map +1 -0
  251. package/cjs/ieee754.d.ts +16 -0
  252. package/cjs/ieee754.d.ts.map +1 -0
  253. package/cjs/ieee754.js +32 -0
  254. package/cjs/ieee754.js.map +1 -0
  255. package/cjs/imul.d.ts +17 -0
  256. package/cjs/imul.d.ts.map +1 -0
  257. package/cjs/imul.js +24 -0
  258. package/cjs/imul.js.map +1 -0
  259. package/cjs/index.d.ts +84 -0
  260. package/cjs/index.d.ts.map +1 -0
  261. package/cjs/index.js +113 -0
  262. package/cjs/index.js.map +1 -0
  263. package/cjs/internal/ieee754.d.ts +174 -0
  264. package/cjs/internal/ieee754.d.ts.map +1 -0
  265. package/cjs/internal/ieee754.js +200 -0
  266. package/cjs/internal/ieee754.js.map +1 -0
  267. package/cjs/internal/primordials.d.ts +30 -0
  268. package/cjs/internal/primordials.d.ts.map +1 -0
  269. package/cjs/internal/primordials.js +30 -0
  270. package/cjs/internal/primordials.js.map +1 -0
  271. package/cjs/log.d.ts +9 -0
  272. package/cjs/log.d.ts.map +1 -0
  273. package/cjs/log.js +46 -0
  274. package/cjs/log.js.map +1 -0
  275. package/cjs/log10.d.ts +9 -0
  276. package/cjs/log10.d.ts.map +1 -0
  277. package/cjs/log10.js +21 -0
  278. package/cjs/log10.js.map +1 -0
  279. package/cjs/log1p.d.ts +10 -0
  280. package/cjs/log1p.d.ts.map +1 -0
  281. package/cjs/log1p.js +32 -0
  282. package/cjs/log1p.js.map +1 -0
  283. package/cjs/log2.d.ts +12 -0
  284. package/cjs/log2.d.ts.map +1 -0
  285. package/cjs/log2.js +24 -0
  286. package/cjs/log2.js.map +1 -0
  287. package/cjs/max.d.ts +22 -0
  288. package/cjs/max.d.ts.map +1 -0
  289. package/cjs/max.js +51 -0
  290. package/cjs/max.js.map +1 -0
  291. package/cjs/min.d.ts +10 -0
  292. package/cjs/min.d.ts.map +1 -0
  293. package/cjs/min.js +36 -0
  294. package/cjs/min.js.map +1 -0
  295. package/cjs/package.json +3 -0
  296. package/cjs/pow.d.ts +31 -0
  297. package/cjs/pow.d.ts.map +1 -0
  298. package/cjs/pow.js +36 -0
  299. package/cjs/pow.js.map +1 -0
  300. package/cjs/random.d.ts +93 -0
  301. package/cjs/random.d.ts.map +1 -0
  302. package/cjs/random.js +242 -0
  303. package/cjs/random.js.map +1 -0
  304. package/cjs/round.d.ts +9 -0
  305. package/cjs/round.d.ts.map +1 -0
  306. package/cjs/round.js +24 -0
  307. package/cjs/round.js.map +1 -0
  308. package/cjs/sign.d.ts +17 -0
  309. package/cjs/sign.d.ts.map +1 -0
  310. package/cjs/sign.js +22 -0
  311. package/cjs/sign.js.map +1 -0
  312. package/cjs/sin.d.ts +14 -0
  313. package/cjs/sin.d.ts.map +1 -0
  314. package/cjs/sin.js +31 -0
  315. package/cjs/sin.js.map +1 -0
  316. package/cjs/sinh.d.ts +14 -0
  317. package/cjs/sinh.d.ts.map +1 -0
  318. package/cjs/sinh.js +22 -0
  319. package/cjs/sinh.js.map +1 -0
  320. package/cjs/sqrt.d.ts +19 -0
  321. package/cjs/sqrt.d.ts.map +1 -0
  322. package/cjs/sqrt.js +45 -0
  323. package/cjs/sqrt.js.map +1 -0
  324. package/cjs/tan.d.ts +9 -0
  325. package/cjs/tan.d.ts.map +1 -0
  326. package/cjs/tan.js +26 -0
  327. package/cjs/tan.js.map +1 -0
  328. package/cjs/tanh.d.ts +17 -0
  329. package/cjs/tanh.d.ts.map +1 -0
  330. package/cjs/tanh.js +34 -0
  331. package/cjs/tanh.js.map +1 -0
  332. package/cjs/trunc.d.ts +21 -0
  333. package/cjs/trunc.d.ts.map +1 -0
  334. package/cjs/trunc.js +50 -0
  335. package/cjs/trunc.js.map +1 -0
  336. package/cjs/types/finite.d.ts +16 -0
  337. package/cjs/types/finite.d.ts.map +1 -0
  338. package/cjs/types/finite.js +4 -0
  339. package/cjs/types/finite.js.map +1 -0
  340. package/cjs/types/float.d.ts +65 -0
  341. package/cjs/types/float.d.ts.map +1 -0
  342. package/cjs/types/float.js +4 -0
  343. package/cjs/types/float.js.map +1 -0
  344. package/cjs/types/index.d.ts +6 -0
  345. package/cjs/types/index.d.ts.map +1 -0
  346. package/cjs/types/index.js +22 -0
  347. package/cjs/types/index.js.map +1 -0
  348. package/cjs/types/integer.d.ts +147 -0
  349. package/cjs/types/integer.d.ts.map +1 -0
  350. package/cjs/types/integer.js +5 -0
  351. package/cjs/types/integer.js.map +1 -0
  352. package/cjs/types/precision.d.ts +46 -0
  353. package/cjs/types/precision.d.ts.map +1 -0
  354. package/cjs/types/precision.js +9 -0
  355. package/cjs/types/precision.js.map +1 -0
  356. package/cjs/types/safe_integer.d.ts +17 -0
  357. package/cjs/types/safe_integer.d.ts.map +1 -0
  358. package/cjs/types/safe_integer.js +5 -0
  359. package/cjs/types/safe_integer.js.map +1 -0
  360. package/esm/abs.d.ts +14 -0
  361. package/esm/abs.d.ts.map +1 -0
  362. package/esm/abs.js +19 -0
  363. package/esm/abs.js.map +1 -0
  364. package/esm/acos.d.ts +17 -0
  365. package/esm/acos.d.ts.map +1 -0
  366. package/esm/acos.js +24 -0
  367. package/esm/acos.js.map +1 -0
  368. package/esm/acosh.d.ts +11 -0
  369. package/esm/acosh.d.ts.map +1 -0
  370. package/esm/acosh.js +32 -0
  371. package/esm/acosh.js.map +1 -0
  372. package/esm/asin.d.ts +11 -0
  373. package/esm/asin.d.ts.map +1 -0
  374. package/esm/asin.js +25 -0
  375. package/esm/asin.js.map +1 -0
  376. package/esm/asinh.d.ts +9 -0
  377. package/esm/asinh.d.ts.map +1 -0
  378. package/esm/asinh.js +23 -0
  379. package/esm/asinh.js.map +1 -0
  380. package/esm/atan.d.ts +11 -0
  381. package/esm/atan.d.ts.map +1 -0
  382. package/esm/atan.js +62 -0
  383. package/esm/atan.js.map +1 -0
  384. package/esm/atan2.d.ts +12 -0
  385. package/esm/atan2.d.ts.map +1 -0
  386. package/esm/atan2.js +67 -0
  387. package/esm/atan2.js.map +1 -0
  388. package/esm/atanh.d.ts +11 -0
  389. package/esm/atanh.d.ts.map +1 -0
  390. package/esm/atanh.js +29 -0
  391. package/esm/atanh.js.map +1 -0
  392. package/esm/cbrt.d.ts +9 -0
  393. package/esm/cbrt.d.ts.map +1 -0
  394. package/esm/cbrt.js +23 -0
  395. package/esm/cbrt.js.map +1 -0
  396. package/esm/ceil.d.ts +15 -0
  397. package/esm/ceil.d.ts.map +1 -0
  398. package/esm/ceil.js +31 -0
  399. package/esm/ceil.js.map +1 -0
  400. package/esm/clamp.d.ts +15 -0
  401. package/esm/clamp.d.ts.map +1 -0
  402. package/esm/clamp.js +29 -0
  403. package/esm/clamp.js.map +1 -0
  404. package/esm/clz32.d.ts +20 -0
  405. package/esm/clz32.d.ts.map +1 -0
  406. package/esm/clz32.js +45 -0
  407. package/esm/clz32.js.map +1 -0
  408. package/esm/constants/e.d.ts +17 -0
  409. package/esm/constants/e.d.ts.map +1 -0
  410. package/esm/constants/e.js +16 -0
  411. package/esm/constants/e.js.map +1 -0
  412. package/esm/constants/epsilon.d.ts +24 -0
  413. package/esm/constants/epsilon.d.ts.map +1 -0
  414. package/esm/constants/epsilon.js +23 -0
  415. package/esm/constants/epsilon.js.map +1 -0
  416. package/esm/constants/index.d.ts +23 -0
  417. package/esm/constants/index.d.ts.map +1 -0
  418. package/esm/constants/index.js +23 -0
  419. package/esm/constants/index.js.map +1 -0
  420. package/esm/constants/infinity.d.ts +3 -0
  421. package/esm/constants/infinity.d.ts.map +1 -0
  422. package/esm/constants/infinity.js +3 -0
  423. package/esm/constants/infinity.js.map +1 -0
  424. package/esm/constants/ln10.d.ts +10 -0
  425. package/esm/constants/ln10.d.ts.map +1 -0
  426. package/esm/constants/ln10.js +9 -0
  427. package/esm/constants/ln10.js.map +1 -0
  428. package/esm/constants/ln2.d.ts +10 -0
  429. package/esm/constants/ln2.d.ts.map +1 -0
  430. package/esm/constants/ln2.js +9 -0
  431. package/esm/constants/ln2.js.map +1 -0
  432. package/esm/constants/log10e.d.ts +10 -0
  433. package/esm/constants/log10e.d.ts.map +1 -0
  434. package/esm/constants/log10e.js +9 -0
  435. package/esm/constants/log10e.js.map +1 -0
  436. package/esm/constants/log2e.d.ts +10 -0
  437. package/esm/constants/log2e.d.ts.map +1 -0
  438. package/esm/constants/log2e.js +9 -0
  439. package/esm/constants/log2e.js.map +1 -0
  440. package/esm/constants/max_safe_integer.d.ts +11 -0
  441. package/esm/constants/max_safe_integer.d.ts.map +1 -0
  442. package/esm/constants/max_safe_integer.js +10 -0
  443. package/esm/constants/max_safe_integer.js.map +1 -0
  444. package/esm/constants/max_value.d.ts +10 -0
  445. package/esm/constants/max_value.d.ts.map +1 -0
  446. package/esm/constants/max_value.js +9 -0
  447. package/esm/constants/max_value.js.map +1 -0
  448. package/esm/constants/min_safe_integer.d.ts +12 -0
  449. package/esm/constants/min_safe_integer.d.ts.map +1 -0
  450. package/esm/constants/min_safe_integer.js +11 -0
  451. package/esm/constants/min_safe_integer.js.map +1 -0
  452. package/esm/constants/min_value.d.ts +10 -0
  453. package/esm/constants/min_value.d.ts.map +1 -0
  454. package/esm/constants/min_value.js +9 -0
  455. package/esm/constants/min_value.js.map +1 -0
  456. package/esm/constants/nan.d.ts +47 -0
  457. package/esm/constants/nan.d.ts.map +1 -0
  458. package/esm/constants/nan.js +27 -0
  459. package/esm/constants/nan.js.map +1 -0
  460. package/esm/constants/negative_infinity.d.ts +28 -0
  461. package/esm/constants/negative_infinity.d.ts.map +1 -0
  462. package/esm/constants/negative_infinity.js +12 -0
  463. package/esm/constants/negative_infinity.js.map +1 -0
  464. package/esm/constants/negative_zero.d.ts +31 -0
  465. package/esm/constants/negative_zero.d.ts.map +1 -0
  466. package/esm/constants/negative_zero.js +18 -0
  467. package/esm/constants/negative_zero.js.map +1 -0
  468. package/esm/constants/pi.d.ts +10 -0
  469. package/esm/constants/pi.d.ts.map +1 -0
  470. package/esm/constants/pi.js +9 -0
  471. package/esm/constants/pi.js.map +1 -0
  472. package/esm/constants/positive_infinity.d.ts +29 -0
  473. package/esm/constants/positive_infinity.d.ts.map +1 -0
  474. package/esm/constants/positive_infinity.js +13 -0
  475. package/esm/constants/positive_infinity.js.map +1 -0
  476. package/esm/constants/positive_zero.d.ts +38 -0
  477. package/esm/constants/positive_zero.d.ts.map +1 -0
  478. package/esm/constants/positive_zero.js +33 -0
  479. package/esm/constants/positive_zero.js.map +1 -0
  480. package/esm/constants/sqrt1_2.d.ts +9 -0
  481. package/esm/constants/sqrt1_2.d.ts.map +1 -0
  482. package/esm/constants/sqrt1_2.js +8 -0
  483. package/esm/constants/sqrt1_2.js.map +1 -0
  484. package/esm/constants/sqrt2.d.ts +9 -0
  485. package/esm/constants/sqrt2.d.ts.map +1 -0
  486. package/esm/constants/sqrt2.js +8 -0
  487. package/esm/constants/sqrt2.js.map +1 -0
  488. package/esm/cos.d.ts +10 -0
  489. package/esm/cos.d.ts.map +1 -0
  490. package/esm/cos.js +29 -0
  491. package/esm/cos.js.map +1 -0
  492. package/esm/cosh.d.ts +10 -0
  493. package/esm/cosh.d.ts.map +1 -0
  494. package/esm/cosh.js +18 -0
  495. package/esm/cosh.js.map +1 -0
  496. package/esm/exp.d.ts +20 -0
  497. package/esm/exp.d.ts.map +1 -0
  498. package/esm/exp.js +45 -0
  499. package/esm/exp.js.map +1 -0
  500. package/esm/expm1.d.ts +11 -0
  501. package/esm/expm1.d.ts.map +1 -0
  502. package/esm/expm1.js +35 -0
  503. package/esm/expm1.js.map +1 -0
  504. package/esm/f16round.d.ts +24 -0
  505. package/esm/f16round.d.ts.map +1 -0
  506. package/esm/f16round.js +39 -0
  507. package/esm/f16round.js.map +1 -0
  508. package/esm/float16/constants.d.ts +97 -0
  509. package/esm/float16/constants.d.ts.map +1 -0
  510. package/esm/float16/constants.js +96 -0
  511. package/esm/float16/constants.js.map +1 -0
  512. package/esm/float16/decode.d.ts +40 -0
  513. package/esm/float16/decode.d.ts.map +1 -0
  514. package/esm/float16/decode.js +61 -0
  515. package/esm/float16/decode.js.map +1 -0
  516. package/esm/float16/encode.d.ts +67 -0
  517. package/esm/float16/encode.d.ts.map +1 -0
  518. package/esm/float16/encode.js +71 -0
  519. package/esm/float16/encode.js.map +1 -0
  520. package/esm/float16/guards.d.ts +22 -0
  521. package/esm/float16/guards.d.ts.map +1 -0
  522. package/esm/float16/guards.js +12 -0
  523. package/esm/float16/guards.js.map +1 -0
  524. package/esm/float16/index.d.ts +11 -0
  525. package/esm/float16/index.d.ts.map +1 -0
  526. package/esm/float16/index.js +11 -0
  527. package/esm/float16/index.js.map +1 -0
  528. package/esm/float16/round.d.ts +25 -0
  529. package/esm/float16/round.d.ts.map +1 -0
  530. package/esm/float16/round.js +43 -0
  531. package/esm/float16/round.js.map +1 -0
  532. package/esm/float32/constants.d.ts +96 -0
  533. package/esm/float32/constants.d.ts.map +1 -0
  534. package/esm/float32/constants.js +95 -0
  535. package/esm/float32/constants.js.map +1 -0
  536. package/esm/float32/decode.d.ts +38 -0
  537. package/esm/float32/decode.d.ts.map +1 -0
  538. package/esm/float32/decode.js +64 -0
  539. package/esm/float32/decode.js.map +1 -0
  540. package/esm/float32/encode.d.ts +50 -0
  541. package/esm/float32/encode.d.ts.map +1 -0
  542. package/esm/float32/encode.js +71 -0
  543. package/esm/float32/encode.js.map +1 -0
  544. package/esm/float32/guards.d.ts +37 -0
  545. package/esm/float32/guards.d.ts.map +1 -0
  546. package/esm/float32/guards.js +16 -0
  547. package/esm/float32/guards.js.map +1 -0
  548. package/esm/float32/index.d.ts +11 -0
  549. package/esm/float32/index.d.ts.map +1 -0
  550. package/esm/float32/index.js +11 -0
  551. package/esm/float32/index.js.map +1 -0
  552. package/esm/float32/round.d.ts +23 -0
  553. package/esm/float32/round.d.ts.map +1 -0
  554. package/esm/float32/round.js +33 -0
  555. package/esm/float32/round.js.map +1 -0
  556. package/esm/floor.d.ts +10 -0
  557. package/esm/floor.d.ts.map +1 -0
  558. package/esm/floor.js +29 -0
  559. package/esm/floor.js.map +1 -0
  560. package/esm/fround.d.ts +23 -0
  561. package/esm/fround.d.ts.map +1 -0
  562. package/esm/fround.js +32 -0
  563. package/esm/fround.js.map +1 -0
  564. package/esm/guards/finite.d.ts +23 -0
  565. package/esm/guards/finite.d.ts.map +1 -0
  566. package/esm/guards/finite.js +18 -0
  567. package/esm/guards/finite.js.map +1 -0
  568. package/esm/guards/index.d.ts +50 -0
  569. package/esm/guards/index.d.ts.map +1 -0
  570. package/esm/guards/index.js +50 -0
  571. package/esm/guards/index.js.map +1 -0
  572. package/esm/guards/infinity.d.ts +3 -0
  573. package/esm/guards/infinity.d.ts.map +1 -0
  574. package/esm/guards/infinity.js +3 -0
  575. package/esm/guards/infinity.js.map +1 -0
  576. package/esm/guards/integer.d.ts +47 -0
  577. package/esm/guards/integer.d.ts.map +1 -0
  578. package/esm/guards/integer.js +19 -0
  579. package/esm/guards/integer.js.map +1 -0
  580. package/esm/guards/nan.d.ts +61 -0
  581. package/esm/guards/nan.d.ts.map +1 -0
  582. package/esm/guards/nan.js +63 -0
  583. package/esm/guards/nan.js.map +1 -0
  584. package/esm/guards/negative_infinity.d.ts +19 -0
  585. package/esm/guards/negative_infinity.d.ts.map +1 -0
  586. package/esm/guards/negative_infinity.js +21 -0
  587. package/esm/guards/negative_infinity.js.map +1 -0
  588. package/esm/guards/negative_zero.d.ts +12 -0
  589. package/esm/guards/negative_zero.d.ts.map +1 -0
  590. package/esm/guards/negative_zero.js +20 -0
  591. package/esm/guards/negative_zero.js.map +1 -0
  592. package/esm/guards/positive_infinity.d.ts +19 -0
  593. package/esm/guards/positive_infinity.d.ts.map +1 -0
  594. package/esm/guards/positive_infinity.js +21 -0
  595. package/esm/guards/positive_infinity.js.map +1 -0
  596. package/esm/guards/positive_zero.d.ts +17 -0
  597. package/esm/guards/positive_zero.d.ts.map +1 -0
  598. package/esm/guards/positive_zero.js +19 -0
  599. package/esm/guards/positive_zero.js.map +1 -0
  600. package/esm/guards/safe_integer.d.ts +33 -0
  601. package/esm/guards/safe_integer.d.ts.map +1 -0
  602. package/esm/guards/safe_integer.js +22 -0
  603. package/esm/guards/safe_integer.js.map +1 -0
  604. package/esm/hypot.d.ts +18 -0
  605. package/esm/hypot.d.ts.map +1 -0
  606. package/esm/hypot.js +60 -0
  607. package/esm/hypot.js.map +1 -0
  608. package/esm/ieee754.d.ts +16 -0
  609. package/esm/ieee754.d.ts.map +1 -0
  610. package/esm/ieee754.js +16 -0
  611. package/esm/ieee754.js.map +1 -0
  612. package/esm/imul.d.ts +17 -0
  613. package/esm/imul.d.ts.map +1 -0
  614. package/esm/imul.js +21 -0
  615. package/esm/imul.js.map +1 -0
  616. package/esm/index.d.ts +84 -0
  617. package/esm/index.d.ts.map +1 -0
  618. package/esm/index.js +84 -0
  619. package/esm/index.js.map +1 -0
  620. package/esm/internal/ieee754.d.ts +174 -0
  621. package/esm/internal/ieee754.d.ts.map +1 -0
  622. package/esm/internal/ieee754.js +194 -0
  623. package/esm/internal/ieee754.js.map +1 -0
  624. package/esm/internal/primordials.d.ts +30 -0
  625. package/esm/internal/primordials.d.ts.map +1 -0
  626. package/esm/internal/primordials.js +27 -0
  627. package/esm/internal/primordials.js.map +1 -0
  628. package/esm/log.d.ts +9 -0
  629. package/esm/log.d.ts.map +1 -0
  630. package/esm/log.js +43 -0
  631. package/esm/log.js.map +1 -0
  632. package/esm/log10.d.ts +9 -0
  633. package/esm/log10.d.ts.map +1 -0
  634. package/esm/log10.js +18 -0
  635. package/esm/log10.js.map +1 -0
  636. package/esm/log1p.d.ts +10 -0
  637. package/esm/log1p.d.ts.map +1 -0
  638. package/esm/log1p.js +29 -0
  639. package/esm/log1p.js.map +1 -0
  640. package/esm/log2.d.ts +12 -0
  641. package/esm/log2.d.ts.map +1 -0
  642. package/esm/log2.js +21 -0
  643. package/esm/log2.js.map +1 -0
  644. package/esm/max.d.ts +22 -0
  645. package/esm/max.d.ts.map +1 -0
  646. package/esm/max.js +48 -0
  647. package/esm/max.js.map +1 -0
  648. package/esm/min.d.ts +10 -0
  649. package/esm/min.d.ts.map +1 -0
  650. package/esm/min.js +33 -0
  651. package/esm/min.js.map +1 -0
  652. package/esm/package.json +3 -0
  653. package/esm/pow.d.ts +31 -0
  654. package/esm/pow.d.ts.map +1 -0
  655. package/esm/pow.js +33 -0
  656. package/esm/pow.js.map +1 -0
  657. package/esm/random.d.ts +93 -0
  658. package/esm/random.d.ts.map +1 -0
  659. package/esm/random.js +237 -0
  660. package/esm/random.js.map +1 -0
  661. package/esm/round.d.ts +9 -0
  662. package/esm/round.d.ts.map +1 -0
  663. package/esm/round.js +21 -0
  664. package/esm/round.js.map +1 -0
  665. package/esm/sign.d.ts +17 -0
  666. package/esm/sign.d.ts.map +1 -0
  667. package/esm/sign.js +19 -0
  668. package/esm/sign.js.map +1 -0
  669. package/esm/sin.d.ts +14 -0
  670. package/esm/sin.d.ts.map +1 -0
  671. package/esm/sin.js +28 -0
  672. package/esm/sin.js.map +1 -0
  673. package/esm/sinh.d.ts +14 -0
  674. package/esm/sinh.d.ts.map +1 -0
  675. package/esm/sinh.js +19 -0
  676. package/esm/sinh.js.map +1 -0
  677. package/esm/sqrt.d.ts +19 -0
  678. package/esm/sqrt.d.ts.map +1 -0
  679. package/esm/sqrt.js +42 -0
  680. package/esm/sqrt.js.map +1 -0
  681. package/esm/tan.d.ts +9 -0
  682. package/esm/tan.d.ts.map +1 -0
  683. package/esm/tan.js +23 -0
  684. package/esm/tan.js.map +1 -0
  685. package/esm/tanh.d.ts +17 -0
  686. package/esm/tanh.d.ts.map +1 -0
  687. package/esm/tanh.js +31 -0
  688. package/esm/tanh.js.map +1 -0
  689. package/esm/trunc.d.ts +21 -0
  690. package/esm/trunc.d.ts.map +1 -0
  691. package/esm/trunc.js +47 -0
  692. package/esm/trunc.js.map +1 -0
  693. package/esm/types/finite.d.ts +16 -0
  694. package/esm/types/finite.d.ts.map +1 -0
  695. package/esm/types/finite.js +3 -0
  696. package/esm/types/finite.js.map +1 -0
  697. package/esm/types/float.d.ts +65 -0
  698. package/esm/types/float.d.ts.map +1 -0
  699. package/esm/types/float.js +3 -0
  700. package/esm/types/float.js.map +1 -0
  701. package/esm/types/index.d.ts +6 -0
  702. package/esm/types/index.d.ts.map +1 -0
  703. package/esm/types/index.js +6 -0
  704. package/esm/types/index.js.map +1 -0
  705. package/esm/types/integer.d.ts +147 -0
  706. package/esm/types/integer.d.ts.map +1 -0
  707. package/esm/types/integer.js +4 -0
  708. package/esm/types/integer.js.map +1 -0
  709. package/esm/types/precision.d.ts +46 -0
  710. package/esm/types/precision.d.ts.map +1 -0
  711. package/esm/types/precision.js +8 -0
  712. package/esm/types/precision.js.map +1 -0
  713. package/esm/types/safe_integer.d.ts +17 -0
  714. package/esm/types/safe_integer.d.ts.map +1 -0
  715. package/esm/types/safe_integer.js +4 -0
  716. package/esm/types/safe_integer.js.map +1 -0
  717. package/package.json +1834 -0
  718. package/src/abs.ts +18 -0
  719. package/src/acos.ts +24 -0
  720. package/src/acosh.ts +28 -0
  721. package/src/asin.ts +24 -0
  722. package/src/asinh.ts +21 -0
  723. package/src/atan.ts +64 -0
  724. package/src/atan2.ts +58 -0
  725. package/src/atanh.ts +26 -0
  726. package/src/cbrt.ts +22 -0
  727. package/src/ceil.ts +27 -0
  728. package/src/clamp.ts +29 -0
  729. package/src/clz32.ts +45 -0
  730. package/src/constants/e.ts +18 -0
  731. package/src/constants/epsilon.ts +25 -0
  732. package/src/constants/index.ts +22 -0
  733. package/src/constants/infinity.ts +2 -0
  734. package/src/constants/ln10.ts +9 -0
  735. package/src/constants/ln2.ts +9 -0
  736. package/src/constants/log10e.ts +9 -0
  737. package/src/constants/log2e.ts +9 -0
  738. package/src/constants/max_safe_integer.ts +10 -0
  739. package/src/constants/max_value.ts +9 -0
  740. package/src/constants/min_safe_integer.ts +11 -0
  741. package/src/constants/min_value.ts +9 -0
  742. package/src/constants/nan.ts +57 -0
  743. package/src/constants/negative_infinity.ts +28 -0
  744. package/src/constants/negative_zero.ts +34 -0
  745. package/src/constants/pi.ts +9 -0
  746. package/src/constants/positive_infinity.ts +30 -0
  747. package/src/constants/positive_zero.ts +41 -0
  748. package/src/constants/sqrt1_2.ts +8 -0
  749. package/src/constants/sqrt2.ts +8 -0
  750. package/src/cos.ts +29 -0
  751. package/src/cosh.ts +18 -0
  752. package/src/exp.ts +45 -0
  753. package/src/expm1.ts +31 -0
  754. package/src/f16round.ts +39 -0
  755. package/src/float16/constants.ts +106 -0
  756. package/src/float16/decode.ts +61 -0
  757. package/src/float16/encode.ts +72 -0
  758. package/src/float16/guards.ts +33 -0
  759. package/src/float16/index.ts +10 -0
  760. package/src/float16/round.ts +43 -0
  761. package/src/float32/constants.ts +105 -0
  762. package/src/float32/decode.ts +64 -0
  763. package/src/float32/encode.ts +71 -0
  764. package/src/float32/guards.ts +54 -0
  765. package/src/float32/index.ts +10 -0
  766. package/src/float32/round.ts +33 -0
  767. package/src/floor.ts +26 -0
  768. package/src/fround.ts +32 -0
  769. package/src/guards/finite.ts +45 -0
  770. package/src/guards/index.ts +49 -0
  771. package/src/guards/infinity.ts +2 -0
  772. package/src/guards/integer.ts +62 -0
  773. package/src/guards/nan.ts +65 -0
  774. package/src/guards/negative_infinity.ts +22 -0
  775. package/src/guards/negative_zero.ts +21 -0
  776. package/src/guards/positive_infinity.ts +22 -0
  777. package/src/guards/positive_zero.ts +19 -0
  778. package/src/guards/safe_integer.ts +56 -0
  779. package/src/hypot.ts +59 -0
  780. package/src/ieee754.ts +15 -0
  781. package/src/imul.ts +21 -0
  782. package/src/index.ts +84 -0
  783. package/src/internal/ieee754.ts +255 -0
  784. package/src/internal/primordials.ts +33 -0
  785. package/src/log.ts +42 -0
  786. package/src/log10.ts +18 -0
  787. package/src/log1p.ts +26 -0
  788. package/src/log2.ts +21 -0
  789. package/src/max.ts +46 -0
  790. package/src/min.ts +32 -0
  791. package/src/pow.ts +33 -0
  792. package/src/random.ts +241 -0
  793. package/src/round.ts +20 -0
  794. package/src/sign.ts +19 -0
  795. package/src/sin.ts +29 -0
  796. package/src/sinh.ts +19 -0
  797. package/src/sqrt.ts +40 -0
  798. package/src/tan.ts +22 -0
  799. package/src/tanh.ts +28 -0
  800. package/src/trunc.ts +44 -0
  801. package/src/types/finite.ts +23 -0
  802. package/src/types/float.ts +74 -0
  803. package/src/types/index.ts +5 -0
  804. package/src/types/integer.ts +167 -0
  805. package/src/types/precision.ts +51 -0
  806. package/src/types/safe_integer.ts +18 -0
package/esm/max.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Returns the largest of its arguments, or `NaN` if any argument is `NaN`.
3
+ * If no arguments are provided, the result is `-Infinity`.
4
+ *
5
+ * This function is designed as a fast alternative to the built-in `Math.max`
6
+ * function. It is optimized for performance, and isn't susceptible to any
7
+ * global state changes or monkey-patching that might affect the built-in
8
+ * `Math.max` function.
9
+ *
10
+ * @param numbers The numbers to compare.
11
+ * @returns The largest number in the list.
12
+ * @category Comparison
13
+ * @example
14
+ * ```ts
15
+ * import { max } from "@nick/math";
16
+ *
17
+ * const largest = max(1, 2); // 2
18
+ * const alsoLargest = max(-1, 0); // 0
19
+ * ```
20
+ */
21
+ export declare function max(...numbers: number[]): number;
22
+ //# sourceMappingURL=max.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max.d.ts","sourceRoot":"","sources":["../src/max.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAQhD"}
package/esm/max.js ADDED
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Returns the largest of its arguments, or `NaN` if any argument is `NaN`.
3
+ * If no arguments are provided, the result is `-Infinity`.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * import { max } from "@nick/math";
8
+ *
9
+ * const atLeastZero = (x: number) => max(x, 0);
10
+ *
11
+ * atLeastZero(+1); // 1
12
+ * atLeastZero(-1); // 0
13
+ * ```
14
+ * @module max
15
+ */
16
+ import { NEGATIVE_INFINITY } from "./constants/negative_infinity.js";
17
+ /**
18
+ * Returns the largest of its arguments, or `NaN` if any argument is `NaN`.
19
+ * If no arguments are provided, the result is `-Infinity`.
20
+ *
21
+ * This function is designed as a fast alternative to the built-in `Math.max`
22
+ * function. It is optimized for performance, and isn't susceptible to any
23
+ * global state changes or monkey-patching that might affect the built-in
24
+ * `Math.max` function.
25
+ *
26
+ * @param numbers The numbers to compare.
27
+ * @returns The largest number in the list.
28
+ * @category Comparison
29
+ * @example
30
+ * ```ts
31
+ * import { max } from "@nick/math";
32
+ *
33
+ * const largest = max(1, 2); // 2
34
+ * const alsoLargest = max(-1, 0); // 0
35
+ * ```
36
+ */
37
+ export function max(...numbers) {
38
+ let result = NEGATIVE_INFINITY;
39
+ for (let i = 0; i < numbers.length; i++) {
40
+ const number = numbers[i];
41
+ if (number !== number)
42
+ return number;
43
+ if (number > result)
44
+ result = number;
45
+ }
46
+ return result;
47
+ }
48
+ //# sourceMappingURL=max.js.map
package/esm/max.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max.js","sourceRoot":"","sources":["../src/max.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,GAAG,CAAC,GAAG,OAAiB;IACtC,IAAI,MAAM,GAAG,iBAA2B,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACrC,IAAI,MAAM,GAAG,MAAM;YAAE,MAAM,GAAG,MAAM,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/esm/min.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Returns the smallest of its arguments, or `NaN` if any argument is `NaN`.
3
+ * If no arguments are provided, the result is `Infinity`.
4
+ *
5
+ * @param numbers The numbers to compare.
6
+ * @returns The smallest number in the list.
7
+ * @category Comparison
8
+ */
9
+ export declare function min(...numbers: number[]): number;
10
+ //# sourceMappingURL=min.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"min.d.ts","sourceRoot":"","sources":["../src/min.ts"],"names":[],"mappings":"AASA;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAchD"}
package/esm/min.js ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Returns the smallest of its arguments, or `NaN` if any argument is `NaN`.
3
+ * If no arguments are provided, the result is `Infinity`.
4
+ *
5
+ * @module min
6
+ */
7
+ import { POSITIVE_INFINITY } from "./constants/positive_infinity.js";
8
+ import { isNegativeZero } from "./guards/negative_zero.js";
9
+ /**
10
+ * Returns the smallest of its arguments, or `NaN` if any argument is `NaN`.
11
+ * If no arguments are provided, the result is `Infinity`.
12
+ *
13
+ * @param numbers The numbers to compare.
14
+ * @returns The smallest number in the list.
15
+ * @category Comparison
16
+ */
17
+ export function min(...numbers) {
18
+ let result = POSITIVE_INFINITY;
19
+ for (let i = 0; i < numbers.length; i++) {
20
+ const number = numbers[i];
21
+ if (number !== number)
22
+ return number;
23
+ if (number < result) {
24
+ result = number;
25
+ continue;
26
+ }
27
+ if (number === 0 && result === 0 && isNegativeZero(number)) {
28
+ result = number;
29
+ }
30
+ }
31
+ return result;
32
+ }
33
+ //# sourceMappingURL=min.js.map
package/esm/min.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"min.js","sourceRoot":"","sources":["../src/min.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CAAC,GAAG,OAAiB;IACtC,IAAI,MAAM,GAAG,iBAA2B,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACrC,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;YACpB,MAAM,GAAG,MAAM,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
package/esm/pow.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Calculates the base number raised to the power of the exponent.
3
+ *
4
+ * @module pow
5
+ */
6
+ /**
7
+ * Calculates the base number raised to the power of the exponent.
8
+ *
9
+ * **Note**: the `**` operator is equivalent to the `^` operator in standard
10
+ * mathematical notation, and is used to raise a number to a power. For those
11
+ * unfamiliar with its syntax: `x ** y` is the same as `x^y`.
12
+ *
13
+ * @param x The base number to raise to the power of `y`
14
+ * @param y The exponent to raise the base number by
15
+ * @returns The base number raised to the power of the exponent.
16
+ * @category Exponentiation
17
+ * @example
18
+ * ```ts
19
+ * import { pow } from "@nick/math";
20
+ *
21
+ * const MAX_SAFE_INTEGER = pow(2, 53) - 1;
22
+ *
23
+ * const foursquared = pow(4, 2); // 16
24
+ *
25
+ * const infinity = pow(1, 309); // Infinity
26
+ *
27
+ * const almost_infinity = pow(1, 308); // 1.7976931348623157e+308
28
+ * ```
29
+ */
30
+ export declare function pow(x: number, y: number): number;
31
+ //# sourceMappingURL=pow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pow.d.ts","sourceRoot":"","sources":["../src/pow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD"}
package/esm/pow.js ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Calculates the base number raised to the power of the exponent.
3
+ *
4
+ * @module pow
5
+ */
6
+ /**
7
+ * Calculates the base number raised to the power of the exponent.
8
+ *
9
+ * **Note**: the `**` operator is equivalent to the `^` operator in standard
10
+ * mathematical notation, and is used to raise a number to a power. For those
11
+ * unfamiliar with its syntax: `x ** y` is the same as `x^y`.
12
+ *
13
+ * @param x The base number to raise to the power of `y`
14
+ * @param y The exponent to raise the base number by
15
+ * @returns The base number raised to the power of the exponent.
16
+ * @category Exponentiation
17
+ * @example
18
+ * ```ts
19
+ * import { pow } from "@nick/math";
20
+ *
21
+ * const MAX_SAFE_INTEGER = pow(2, 53) - 1;
22
+ *
23
+ * const foursquared = pow(4, 2); // 16
24
+ *
25
+ * const infinity = pow(1, 309); // Infinity
26
+ *
27
+ * const almost_infinity = pow(1, 308); // 1.7976931348623157e+308
28
+ * ```
29
+ */
30
+ export function pow(x, y) {
31
+ return x ** y;
32
+ }
33
+ //# sourceMappingURL=pow.js.map
package/esm/pow.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pow.js","sourceRoot":"","sources":["../src/pow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Mersenne Twister implementation in TypeScript.
3
+ *
4
+ * Based on the original C-code by Makoto Matsumoto and Takuji Nishimura.
5
+ *
6
+ * @remarks
7
+ * This implementation is a simplified version of the original API, providing
8
+ * only a `random()` and `randomInt()` method for generating pseudo-random
9
+ * numbers, and a `init()` method for seeding the generator.
10
+ *
11
+ * Benchmarks show this API to be ever-so-slightly slower than the native
12
+ * `Math.random` function, while still performing well within an acceptable
13
+ * timing window. Since this is a pure-JS implementation, achieving speeds on
14
+ * the same level as a native API is simply not possible.
15
+ * @example
16
+ * ```ts
17
+ * import { MT19937 } from "@nick/math/random";
18
+ *
19
+ * const mt = new MT19937();
20
+ * const n = mt.random(); // e.g. 0.9507143115624784
21
+ * ```
22
+ * @example
23
+ * ```ts
24
+ * import { MT19937 } from "@nick/math/random";
25
+ *
26
+ * const mt = new MT19937(42);
27
+ * console.log(mt.random()); // 0.37454011430963874
28
+ * ```
29
+ *
30
+ * @see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html for the
31
+ * original C code this is based on and more information on Mersenne Twister.
32
+ */
33
+ export declare class MT19937 {
34
+ #private;
35
+ /**
36
+ * Initialize the singleton instance with a seed.
37
+ *
38
+ * @param seed - The seed value.
39
+ * @returns The singleton instance.
40
+ */
41
+ static init(...seed: number[]): MT19937;
42
+ /**
43
+ * Generates a random number on [0, 1)-real-interval.
44
+ * @returns A floating-point number between 0 and 1.
45
+ */
46
+ static random(): number;
47
+ /**
48
+ * Generates a random number on [0, 0xffffffff]-interval.
49
+ * @returns A 32-bit unsigned integer.
50
+ */
51
+ static randomInt(): number;
52
+ /**
53
+ * Initializes a new instance of the MersenneTwister class.
54
+ * @param seed - The seed value.
55
+ */
56
+ constructor(seed?: number);
57
+ /**
58
+ * Initializes mt[N] with a seed.
59
+ * @param seed - The seed value.
60
+ */
61
+ init(seed?: number): this;
62
+ /**
63
+ * Initialize by an array with array-length.
64
+ * @param seeds - The array for initializing keys.
65
+ */
66
+ initFromArray(...seeds: number[]): this;
67
+ /**
68
+ * Generates a random number on [0, 0xffffffff]-interval.
69
+ * @returns A 32-bit unsigned integer.
70
+ */
71
+ randomInt(): number;
72
+ /**
73
+ * Generates a random number on [0, 1)-real-interval.
74
+ * @returns A floating-point number between 0 and 1.
75
+ */
76
+ random(): number;
77
+ }
78
+ /**
79
+ * Generates a pseudo-random number in the range `[0, 1)`. This function is not
80
+ * cryptographically secure, and should not be used for any security-sensitive
81
+ * applications. It was designed to be a drop-in replacement for the native
82
+ * `Math.random()` function, with support for seeding the generator.
83
+ *
84
+ * @returns A pseudo-random number in the range `[0, 1)`.
85
+ * @category Random
86
+ * @see {@linkcode random.init} for seeding the generator.
87
+ * @see {@linkcode MT19937} for the Mersenne-Twister implementation this uses.
88
+ */
89
+ export declare function random(): number;
90
+ export declare namespace random {
91
+ var init: typeof MT19937.init;
92
+ }
93
+ //# sourceMappingURL=random.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"AA8BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,OAAO;;IAGlB;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;IAQvC;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,MAAM;IAIvB;;;OAGG;IACH,MAAM,CAAC,SAAS,IAAI,MAAM;IAU1B;;;OAGG;gBACS,IAAI,CAAC,EAAE,MAAM;IAIzB;;;OAGG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAezB;;;OAGG;IACH,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAmCvC;;;OAGG;IACH,SAAS,IAAI,MAAM;IAoCnB;;;OAGG;IACH,MAAM,IAAI,MAAM;CAGjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;yBAFe,MAAM"}
package/esm/random.js ADDED
@@ -0,0 +1,237 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _a, _MT19937_instance, _MT19937_mt, _MT19937_mti;
13
+ /**
14
+ * Generates a pseudo-random number in the range `[0, 1)`.
15
+ *
16
+ * **Important**: This function is not cryptographically secure. Do not use it
17
+ * for security-sensitive applications.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { random } from "@nick/math/random";
22
+ *
23
+ * console.log(random());
24
+ * // => 0.5390711768976619
25
+ * ```
26
+ * @module random
27
+ */
28
+ import { ArrayFrom, DateNow } from "./internal/primordials.js";
29
+ /** Period parameters */
30
+ const N = 624;
31
+ /** The number of 32 bit words */
32
+ const M = 397;
33
+ /** Constant Vector A */
34
+ const MATRIX_A = 0x9908b0df;
35
+ /** Most significant W-R bits */
36
+ const UPPER_MASK = 0x80000000;
37
+ /** Least significant R bits */
38
+ const LOWER_MASK = 0x7fffffff;
39
+ /** UPPER_MASK + LOWER_MASK + 1 */
40
+ const TOTAL_MASK = 0x100000000;
41
+ /**
42
+ * Mersenne Twister implementation in TypeScript.
43
+ *
44
+ * Based on the original C-code by Makoto Matsumoto and Takuji Nishimura.
45
+ *
46
+ * @remarks
47
+ * This implementation is a simplified version of the original API, providing
48
+ * only a `random()` and `randomInt()` method for generating pseudo-random
49
+ * numbers, and a `init()` method for seeding the generator.
50
+ *
51
+ * Benchmarks show this API to be ever-so-slightly slower than the native
52
+ * `Math.random` function, while still performing well within an acceptable
53
+ * timing window. Since this is a pure-JS implementation, achieving speeds on
54
+ * the same level as a native API is simply not possible.
55
+ * @example
56
+ * ```ts
57
+ * import { MT19937 } from "@nick/math/random";
58
+ *
59
+ * const mt = new MT19937();
60
+ * const n = mt.random(); // e.g. 0.9507143115624784
61
+ * ```
62
+ * @example
63
+ * ```ts
64
+ * import { MT19937 } from "@nick/math/random";
65
+ *
66
+ * const mt = new MT19937(42);
67
+ * console.log(mt.random()); // 0.37454011430963874
68
+ * ```
69
+ *
70
+ * @see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html for the
71
+ * original C code this is based on and more information on Mersenne Twister.
72
+ */
73
+ export class MT19937 {
74
+ /**
75
+ * Initialize the singleton instance with a seed.
76
+ *
77
+ * @param seed - The seed value.
78
+ * @returns The singleton instance.
79
+ */
80
+ static init(...seed) {
81
+ if (seed.length > 1) {
82
+ return __classPrivateFieldGet(_a, _a, "f", _MT19937_instance).initFromArray(...seed);
83
+ }
84
+ else {
85
+ return __classPrivateFieldGet(_a, _a, "f", _MT19937_instance).init(seed[0]);
86
+ }
87
+ }
88
+ /**
89
+ * Generates a random number on [0, 1)-real-interval.
90
+ * @returns A floating-point number between 0 and 1.
91
+ */
92
+ static random() {
93
+ return __classPrivateFieldGet(_a, _a, "f", _MT19937_instance).random();
94
+ }
95
+ /**
96
+ * Generates a random number on [0, 0xffffffff]-interval.
97
+ * @returns A 32-bit unsigned integer.
98
+ */
99
+ static randomInt() {
100
+ return __classPrivateFieldGet(_a, _a, "f", _MT19937_instance).randomInt();
101
+ }
102
+ /**
103
+ * Initializes a new instance of the MersenneTwister class.
104
+ * @param seed - The seed value.
105
+ */
106
+ constructor(seed) {
107
+ /** the array for the state vector */
108
+ _MT19937_mt.set(this, ArrayFrom({ length: N }, () => 0));
109
+ /** mti == N + 1 means mt[N] is not initialized */
110
+ _MT19937_mti.set(this, N + 1);
111
+ this.init(seed);
112
+ }
113
+ /**
114
+ * Initializes mt[N] with a seed.
115
+ * @param seed - The seed value.
116
+ */
117
+ init(seed) {
118
+ seed ?? (seed = DateNow());
119
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[0] = seed >>> 0;
120
+ const mt = __classPrivateFieldGet(this, _MT19937_mt, "f");
121
+ const x = 1812433253, y = 0xffff0000, z = 0x0000ffff;
122
+ for (let i = 1; i < N; i++) {
123
+ const s = mt[i - 1] ^ (mt[i - 1] >>> 30);
124
+ const l = (((s & y) >>> 16) * x) << 16;
125
+ const r = (s & z) * x;
126
+ mt[__classPrivateFieldSet(this, _MT19937_mti, i, "f")] = (l + r + i) >>> 0;
127
+ }
128
+ __classPrivateFieldSet(this, _MT19937_mti, N, "f");
129
+ return this;
130
+ }
131
+ /**
132
+ * Initialize by an array with array-length.
133
+ * @param seeds - The array for initializing keys.
134
+ */
135
+ initFromArray(...seeds) {
136
+ let i = 1, j = 0;
137
+ const len = seeds.length;
138
+ this.init(19650218);
139
+ let k = N > len ? N : len;
140
+ const w = 1566083941;
141
+ const x = 1664525, y = 0xffff0000, z = 0x0000ffff;
142
+ for (; k > 0; k--) {
143
+ const s = __classPrivateFieldGet(this, _MT19937_mt, "f")[i - 1] ^ (__classPrivateFieldGet(this, _MT19937_mt, "f")[i - 1] >>> 30);
144
+ const u = (s & z) * x;
145
+ let t = ((s & y) >>> 16) * x << 16;
146
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[i] = (t = __classPrivateFieldGet(this, _MT19937_mt, "f")[i] ^ t + u, t += seeds[j] + j, t >>> 0);
147
+ i++, j++;
148
+ if (i >= N) {
149
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[0] = __classPrivateFieldGet(this, _MT19937_mt, "f")[N - 1];
150
+ i = 1;
151
+ }
152
+ if (j >= len)
153
+ j = 0;
154
+ }
155
+ for (k = N - 1; k > 0; k--) {
156
+ const s = __classPrivateFieldGet(this, _MT19937_mt, "f")[i - 1] ^ (__classPrivateFieldGet(this, _MT19937_mt, "f")[i - 1] >>> 30);
157
+ let t = __classPrivateFieldGet(this, _MT19937_mt, "f")[i];
158
+ t ^= (((s & y) >>> 16) * w << 16) + (s & z) * w;
159
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[i] = (t - i) >>> 0;
160
+ i++;
161
+ if (i >= N) {
162
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[0] = __classPrivateFieldGet(this, _MT19937_mt, "f")[N - 1];
163
+ i = 1;
164
+ }
165
+ }
166
+ /* MSB is 1; assuring non-zero initial array */
167
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[0] = 0x80000000;
168
+ return this;
169
+ }
170
+ /**
171
+ * Generates a random number on [0, 0xffffffff]-interval.
172
+ * @returns A 32-bit unsigned integer.
173
+ */
174
+ randomInt() {
175
+ var _b, _c;
176
+ let y;
177
+ const mag01 = [0x0, MATRIX_A];
178
+ if (__classPrivateFieldGet(this, _MT19937_mti, "f") >= N) {
179
+ let kk;
180
+ /* a default initial seed is used */
181
+ if (__classPrivateFieldGet(this, _MT19937_mti, "f") === N + 1)
182
+ this.init(5489);
183
+ for (kk = 0; kk < N - M; kk++) {
184
+ y = (__classPrivateFieldGet(this, _MT19937_mt, "f")[kk] & UPPER_MASK) | (__classPrivateFieldGet(this, _MT19937_mt, "f")[kk + 1] & LOWER_MASK);
185
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[kk] = __classPrivateFieldGet(this, _MT19937_mt, "f")[kk + M] ^ (y >>> 1) ^ mag01[y & 0x1];
186
+ }
187
+ for (; kk < N - 1; kk++) {
188
+ y = (__classPrivateFieldGet(this, _MT19937_mt, "f")[kk] & UPPER_MASK) | (__classPrivateFieldGet(this, _MT19937_mt, "f")[kk + 1] & LOWER_MASK);
189
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[kk] = __classPrivateFieldGet(this, _MT19937_mt, "f")[kk + (M - N)] ^ (y >>> 1) ^ mag01[y & 0x1];
190
+ }
191
+ y = (__classPrivateFieldGet(this, _MT19937_mt, "f")[N - 1] & UPPER_MASK) | (__classPrivateFieldGet(this, _MT19937_mt, "f")[0] & LOWER_MASK);
192
+ __classPrivateFieldGet(this, _MT19937_mt, "f")[N - 1] = __classPrivateFieldGet(this, _MT19937_mt, "f")[M - 1] ^ (y >>> 1) ^ mag01[y & 0x1];
193
+ __classPrivateFieldSet(this, _MT19937_mti, 0, "f");
194
+ }
195
+ y = __classPrivateFieldGet(this, _MT19937_mt, "f")[__classPrivateFieldSet(this, _MT19937_mti, (_c = __classPrivateFieldGet(this, _MT19937_mti, "f"), _b = _c++, _c), "f"), _b];
196
+ // Tempering
197
+ y ^= y >>> 11;
198
+ y ^= (y << 7) & 0x9d2c5680;
199
+ y ^= (y << 15) & 0xefc60000;
200
+ y ^= y >>> 18;
201
+ return y >>> 0;
202
+ }
203
+ /**
204
+ * Generates a random number on [0, 1)-real-interval.
205
+ * @returns A floating-point number between 0 and 1.
206
+ */
207
+ random() {
208
+ return this.randomInt() / TOTAL_MASK;
209
+ }
210
+ }
211
+ _a = MT19937, _MT19937_mt = new WeakMap(), _MT19937_mti = new WeakMap();
212
+ _MT19937_instance = { value: new _a() };
213
+ /**
214
+ * Generates a pseudo-random number in the range `[0, 1)`. This function is not
215
+ * cryptographically secure, and should not be used for any security-sensitive
216
+ * applications. It was designed to be a drop-in replacement for the native
217
+ * `Math.random()` function, with support for seeding the generator.
218
+ *
219
+ * @returns A pseudo-random number in the range `[0, 1)`.
220
+ * @category Random
221
+ * @see {@linkcode random.init} for seeding the generator.
222
+ * @see {@linkcode MT19937} for the Mersenne-Twister implementation this uses.
223
+ */
224
+ export function random() {
225
+ return MT19937.random();
226
+ }
227
+ /**
228
+ * Initializes the random number generator with a seed or sequence of seeds.
229
+ *
230
+ * This is useful for testing, allowing you to generate a deterministic
231
+ * sequence of pseudo-random numbers based on the provided seed value.
232
+ *
233
+ * @param seed - The seed value or sequence of seed values.
234
+ * @returns The singleton instance of the random number generator.
235
+ */
236
+ random.init = MT19937.init;
237
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"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"}
package/esm/round.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Rounds a number to the nearest whole number.
3
+ *
4
+ * @param x The number to round to the nearest whole number
5
+ * @returns The nearest whole number to the provided number.
6
+ * @category Rounding
7
+ */
8
+ export declare function round(x: number): number;
9
+ //# sourceMappingURL=round.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.d.ts","sourceRoot":"","sources":["../src/round.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKvC"}
package/esm/round.js ADDED
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Rounds a number to the nearest whole number.
3
+ *
4
+ * @module round
5
+ */
6
+ import { floor } from "./floor.js";
7
+ /**
8
+ * Rounds a number to the nearest whole number.
9
+ *
10
+ * @param x The number to round to the nearest whole number
11
+ * @returns The nearest whole number to the provided number.
12
+ * @category Rounding
13
+ */
14
+ export function round(x) {
15
+ x = +x;
16
+ if (x !== x || x === 0)
17
+ return x;
18
+ const rounded = floor(x + 0.5);
19
+ return rounded === 0 && x < 0 ? -0 : rounded;
20
+ }
21
+ //# sourceMappingURL=round.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.js","sourceRoot":"","sources":["../src/round.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,CAAC,GAAG,CAAC,CAAC,CAAC;IACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/B,OAAO,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC"}
package/esm/sign.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Returns the sign of a number, indicating whether the number is positive,
3
+ * negative, or zero.
4
+ *
5
+ * @module sign
6
+ */
7
+ /**
8
+ * Returns the sign of a number, indicating whether the number is positive,
9
+ * negative, or zero. This preserves the sign of `-0`, and returns `NaN` as-is.
10
+ *
11
+ * @param x The number to return the sign of
12
+ * @returns `1` if `x` is positive, `-1` if it is negative, and `0` if it is
13
+ * zero. This preserves the sign of `-0`, and returns `NaN` as-is.
14
+ * @category Arithmetic
15
+ */
16
+ export declare function sign(x: number): number;
17
+ //# sourceMappingURL=sign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtC"}
package/esm/sign.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Returns the sign of a number, indicating whether the number is positive,
3
+ * negative, or zero.
4
+ *
5
+ * @module sign
6
+ */
7
+ /**
8
+ * Returns the sign of a number, indicating whether the number is positive,
9
+ * negative, or zero. This preserves the sign of `-0`, and returns `NaN` as-is.
10
+ *
11
+ * @param x The number to return the sign of
12
+ * @returns `1` if `x` is positive, `-1` if it is negative, and `0` if it is
13
+ * zero. This preserves the sign of `-0`, and returns `NaN` as-is.
14
+ * @category Arithmetic
15
+ */
16
+ export function sign(x) {
17
+ return x < 0 ? -1 : x > 0 ? 1 : x;
18
+ }
19
+ //# sourceMappingURL=sign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
package/esm/sin.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Calculates the sine of a number, returning a value in the range `[-1, 1]`.
3
+ *
4
+ * @module sin
5
+ */
6
+ /**
7
+ * Calculates the sine of a number, returning a value in the range `[-1, 1]`.
8
+ *
9
+ * @param x The angle in radians whose sine is to be calculated.
10
+ * @returns The sine of the provided angle.
11
+ * @category Trigonometry
12
+ */
13
+ export declare function sin(x: number): number;
14
+ //# sourceMappingURL=sin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sin.d.ts","sourceRoot":"","sources":["../src/sin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAUrC"}