@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/sin.js ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Calculates the sine of a number, returning a value in the range `[-1, 1]`.
3
+ *
4
+ * @module sin
5
+ */
6
+ import { abs } from "./abs.js";
7
+ import { EPSILON } from "./constants/epsilon.js";
8
+ import { NAN } from "./constants/nan.js";
9
+ import { isFinite } from "./guards/finite.js";
10
+ /**
11
+ * Calculates the sine of a number, returning a value in the range `[-1, 1]`.
12
+ *
13
+ * @param x The angle in radians whose sine is to be calculated.
14
+ * @returns The sine of the provided angle.
15
+ * @category Trigonometry
16
+ */
17
+ export function sin(x) {
18
+ if (!isFinite(x))
19
+ return NAN;
20
+ let sum = (x = +x), term = x, n = 1;
21
+ while (abs(term) > EPSILON) {
22
+ n += 2;
23
+ term *= -x * x / (n * (n - 1));
24
+ sum += term;
25
+ }
26
+ return sum;
27
+ }
28
+ //# sourceMappingURL=sin.js.map
package/esm/sin.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sin.js","sourceRoot":"","sources":["../src/sin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS;IAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAE7B,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;QAC3B,CAAC,IAAI,CAAC,CAAC;QACP,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/B,GAAG,IAAI,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/esm/sinh.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Calculates the hyperbolic sine of a number.
3
+ *
4
+ * @module sinh
5
+ */
6
+ /**
7
+ * Calculates the hyperbolic sine of a number.
8
+ *
9
+ * @param x The number whose hyperbolic sine is to be calculated.
10
+ * @returns The hyperbolic sine of the provided number.
11
+ * @category Trigonometry
12
+ */
13
+ export declare function sinh(x: number): number;
14
+ //# sourceMappingURL=sinh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sinh.d.ts","sourceRoot":"","sources":["../src/sinh.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGtC"}
package/esm/sinh.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Calculates the hyperbolic sine of a number.
3
+ *
4
+ * @module sinh
5
+ */
6
+ import { exp } from "./exp.js";
7
+ /**
8
+ * Calculates the hyperbolic sine of a number.
9
+ *
10
+ * @param x The number whose hyperbolic sine is to be calculated.
11
+ * @returns The hyperbolic sine of the provided number.
12
+ * @category Trigonometry
13
+ */
14
+ export function sinh(x) {
15
+ if (x === 0)
16
+ return x;
17
+ return (exp(x) - exp(-x)) / 2;
18
+ }
19
+ //# sourceMappingURL=sinh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sinh.js","sourceRoot":"","sources":["../src/sinh.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC"}
package/esm/sqrt.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Calculates the square root of a number.
3
+ *
4
+ * @param x The number to calculate the square root of
5
+ * @returns The square root of the provided number.
6
+ * @example
7
+ * ```ts
8
+ * import * as math from "@nick/math";
9
+ *
10
+ * math.sqrt(4); // 2
11
+ * math.sqrt(16); // 4
12
+ * math.sqrt(0); // 0
13
+ * math.sqrt(1); // 1
14
+ * math.sqrt(-1); // NaN
15
+ * math.sqrt(-4); // NaN
16
+ * ```
17
+ */
18
+ export declare function sqrt(x: number): number;
19
+ //# sourceMappingURL=sqrt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqrt.d.ts","sourceRoot":"","sources":["../src/sqrt.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAYtC"}
package/esm/sqrt.js ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Calculates the square root of a number.
3
+ *
4
+ * @module sqrt
5
+ */
6
+ import { EPSILON } from "./constants/epsilon.js";
7
+ import { NAN } from "./constants/nan.js";
8
+ import { POSITIVE_INFINITY } from "./constants/positive_infinity.js";
9
+ import { abs } from "./abs.js";
10
+ /**
11
+ * Calculates the square root of a number.
12
+ *
13
+ * @param x The number to calculate the square root of
14
+ * @returns The square root of the provided number.
15
+ * @example
16
+ * ```ts
17
+ * import * as math from "@nick/math";
18
+ *
19
+ * math.sqrt(4); // 2
20
+ * math.sqrt(16); // 4
21
+ * math.sqrt(0); // 0
22
+ * math.sqrt(1); // 1
23
+ * math.sqrt(-1); // NaN
24
+ * math.sqrt(-4); // NaN
25
+ * ```
26
+ */
27
+ export function sqrt(x) {
28
+ if (x < 0)
29
+ return NAN; // negative numbers have no real square root
30
+ if (x === 0 || x === 1)
31
+ return x; // sqrt(0) = 0, sqrt(1) = 1
32
+ if (x === POSITIVE_INFINITY)
33
+ return x;
34
+ // use Newton's method to approximate the square root
35
+ let z = x / 2, prev;
36
+ do {
37
+ prev = z;
38
+ z = (z + x / z) / 2;
39
+ } while (abs(z - prev) > EPSILON);
40
+ return z;
41
+ }
42
+ //# sourceMappingURL=sqrt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqrt.js","sourceRoot":"","sources":["../src/sqrt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,4CAA4C;IACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,2BAA2B;IAC7D,IAAI,CAAC,KAAK,iBAAiB;QAAE,OAAO,CAAC,CAAC;IAEtC,qDAAqD;IACrD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACpB,GAAG,CAAC;QACF,IAAI,GAAG,CAAC,CAAC;QACT,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,EAAE;IAClC,OAAO,CAAC,CAAC;AACX,CAAC"}
package/esm/tan.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Calculates the tangent of a number, returning a value in range `[-∞, +∞]`.
3
+ *
4
+ * @param x The angle in radians whose tangent is to be calculated.
5
+ * @returns The tangent of the provided angle.
6
+ * @category Trigonometry
7
+ */
8
+ export declare function tan(x: number): number;
9
+ //# sourceMappingURL=tan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tan.d.ts","sourceRoot":"","sources":["../src/tan.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrC"}
package/esm/tan.js ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Calculates the tangent of `x`, returning a value in the range `[-∞, +∞]`.
3
+ *
4
+ * @category Trigonometry
5
+ * @module tan
6
+ */
7
+ import { NAN } from "./constants/nan.js";
8
+ import { isFinite } from "./guards/finite.js";
9
+ import { cos } from "./cos.js";
10
+ import { sin } from "./sin.js";
11
+ /**
12
+ * Calculates the tangent of a number, returning a value in range `[-∞, +∞]`.
13
+ *
14
+ * @param x The angle in radians whose tangent is to be calculated.
15
+ * @returns The tangent of the provided angle.
16
+ * @category Trigonometry
17
+ */
18
+ export function tan(x) {
19
+ if (!isFinite(x))
20
+ return NAN;
21
+ return sin(x) / cos(x);
22
+ }
23
+ //# sourceMappingURL=tan.js.map
package/esm/tan.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tan.js","sourceRoot":"","sources":["../src/tan.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS;IAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC"}
package/esm/tanh.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Calculates the hyperbolic tangent of a number, returning a value in the
3
+ * range `[-1, 1]`.
4
+ *
5
+ * @category Trigonometry
6
+ * @module tanh
7
+ */
8
+ /**
9
+ * Calculates the hyperbolic tangent of a number, returning a value in the
10
+ * range `[-1, 1]`.
11
+ *
12
+ * @param x The number whose hyperbolic tangent is to be calculated.
13
+ * @returns The hyperbolic tangent of the provided number.
14
+ * @category Trigonometry
15
+ */
16
+ export declare function tanh(x: number): number;
17
+ //# sourceMappingURL=tanh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tanh.d.ts","sourceRoot":"","sources":["../src/tanh.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMtC"}
package/esm/tanh.js ADDED
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Calculates the hyperbolic tangent of a number, returning a value in the
3
+ * range `[-1, 1]`.
4
+ *
5
+ * @category Trigonometry
6
+ * @module tanh
7
+ */
8
+ import { exp } from "./exp.js";
9
+ import { isNaN, NAN } from "./guards/nan.js";
10
+ import { isPositiveInfinity } from "./guards/positive_infinity.js";
11
+ import { isNegativeInfinity } from "./guards/negative_infinity.js";
12
+ /**
13
+ * Calculates the hyperbolic tangent of a number, returning a value in the
14
+ * range `[-1, 1]`.
15
+ *
16
+ * @param x The number whose hyperbolic tangent is to be calculated.
17
+ * @returns The hyperbolic tangent of the provided number.
18
+ * @category Trigonometry
19
+ */
20
+ export function tanh(x) {
21
+ if (x === 0)
22
+ return x;
23
+ if (isNaN(x))
24
+ return NAN;
25
+ if (isPositiveInfinity(x))
26
+ return 1;
27
+ if (isNegativeInfinity(x))
28
+ return -1;
29
+ return (exp(x) - exp(-x)) / (exp(x) + exp(-x));
30
+ }
31
+ //# sourceMappingURL=tanh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tanh.js","sourceRoot":"","sources":["../src/tanh.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACzB,IAAI,kBAAkB,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,kBAAkB,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
package/esm/trunc.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Truncates a number to an integer, removing any fractional digits.
3
+ *
4
+ * This is a local implementation of the native `Math.trunc` function.
5
+ *
6
+ * @param x The number to truncate
7
+ * @returns The integer part of the provided number.
8
+ * @category Rounding
9
+ * @example
10
+ * ```ts
11
+ * import * as math from "@nick/math";
12
+ *
13
+ * math.trunc(13.37); // 13
14
+ * math.trunc(42.195); // 42
15
+ * math.trunc(-7.8); // -7
16
+ * math.trunc(-0.123); // 0
17
+ * math.trunc(0); // 0
18
+ * ```
19
+ */
20
+ export declare function trunc(x: number): number;
21
+ //# sourceMappingURL=trunc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trunc.d.ts","sourceRoot":"","sources":["../src/trunc.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvC"}
package/esm/trunc.js ADDED
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Truncates a number to an integer, removing any fractional digits.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * import * as math from "@nick/math";
7
+ *
8
+ * math.trunc(13.37); // 13
9
+ * math.trunc(42.195); // 42
10
+ * math.trunc(-7.8); // -7
11
+ * math.trunc(-0.123); // 0
12
+ * math.trunc(0); // 0
13
+ * ```
14
+ * @module trunc
15
+ */
16
+ import { ceil } from "./ceil.js";
17
+ import { floor } from "./floor.js";
18
+ /**
19
+ * Truncates a number to an integer, removing any fractional digits.
20
+ *
21
+ * This is a local implementation of the native `Math.trunc` function.
22
+ *
23
+ * @param x The number to truncate
24
+ * @returns The integer part of the provided number.
25
+ * @category Rounding
26
+ * @example
27
+ * ```ts
28
+ * import * as math from "@nick/math";
29
+ *
30
+ * math.trunc(13.37); // 13
31
+ * math.trunc(42.195); // 42
32
+ * math.trunc(-7.8); // -7
33
+ * math.trunc(-0.123); // 0
34
+ * math.trunc(0); // 0
35
+ * ```
36
+ */
37
+ export function trunc(x) {
38
+ x = +x;
39
+ if (x !== x)
40
+ return x;
41
+ if (x === 0)
42
+ return x;
43
+ if (x > -1 && x < 0)
44
+ return -0;
45
+ return x < 0 ? ceil(x) : floor(x);
46
+ }
47
+ //# sourceMappingURL=trunc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trunc.js","sourceRoot":"","sources":["../src/trunc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,CAAC,GAAG,CAAC,CAAC,CAAC;IACP,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { NEGATIVE_INFINITY, POSITIVE_INFINITY } from "../constants/infinity.js";
2
+ import type { NAN } from "../constants/nan.js";
3
+ declare const Finite: unique symbol;
4
+ interface IsFinite {
5
+ readonly [Finite]: never;
6
+ }
7
+ /**
8
+ * Branded nominal type that represents a finite number, which is a real number
9
+ * that is not infinite or `NaN`.
10
+ *
11
+ * @category Types
12
+ * @tags number, nominal, finite
13
+ */
14
+ export type Finite<N extends number = number> = (Exclude<N, NAN | POSITIVE_INFINITY | NEGATIVE_INFINITY> & IsFinite) extends infer U extends N ? U : never;
15
+ export {};
16
+ //# sourceMappingURL=finite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finite.d.ts","sourceRoot":"","sources":["../../src/types/finite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE/C,QAAA,MAAM,MAAM,EAAE,OAAO,MAAyB,CAAC;AAE/C,UAAU,QAAQ;IAChB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAC5C,OAAO,CAAC,CAAC,EAAE,GAAG,GAAG,iBAAiB,GAAG,iBAAiB,CAAC,GACvD,QAAQ,CACX,SAAS,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ const Finite = Symbol("Finite");
2
+ export {};
3
+ //# sourceMappingURL=finite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finite.js","sourceRoot":"","sources":["../../src/types/finite.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,GAAkB,MAAM,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * This module provides nominal (branded) types for working with floating-point
3
+ * numbers of various precisions, which can be used to enforce type safety and
4
+ * prevent accidental mixing of floating-point values of different precisions.
5
+ *
6
+ * The types provided by this module are branded with unique symbols that are
7
+ * specific to floating-point numbers, and are designed to be used as generic
8
+ * type arguments to other functions and classes that work with floats.
9
+ *
10
+ * @module types/float
11
+ */
12
+ import type { FloatPrecision, P32 } from "./precision.js";
13
+ declare const Float: unique symbol;
14
+ interface IsFloat<N extends FloatPrecision> {
15
+ readonly [Float]: N;
16
+ }
17
+ /**
18
+ * Represents a floating-point number `N`, branded with the precision specified
19
+ * by the generic type argument `P` (default: 32).
20
+ *
21
+ * This is a branded nominal type that accepts an optional generic type
22
+ * argument. When passed a literal number, it will "brand" it with an
23
+ * unforgeable unique symbol that is specific to floating points.
24
+ *
25
+ * @template {number} [N=number] The type of numeric value to check.
26
+ * @template {FloatPrecision} [P=P32] Precision of the floating-point number.
27
+ * @category Types
28
+ * @tags Float, Branded
29
+ */
30
+ export type Float<N extends number = number, P extends FloatPrecision = P32> = number extends N ? number & IsFloat<P> : `${N}` extends `${bigint}` ? N extends 0 ? N & IsFloat<P> : never : N & IsFloat<P>;
31
+ /**
32
+ * Represents floating-point numbers of 16-bit precision.
33
+ *
34
+ * This is a branded nominal type that accepts an optional generic type
35
+ * argument. When passed a literal number, it will "brand" it with an
36
+ * unforgeable unique symbol that is specific to 16-bit floating points.
37
+ *
38
+ * @category Types
39
+ * @tags Float, 16-bit, Branded
40
+ */
41
+ export type Float16<N extends number = number> = Float<N, 16>;
42
+ /**
43
+ * Represents floating-point numbers of 32-bit precision.
44
+ *
45
+ * This is a branded nominal type that accepts an optional generic type
46
+ * argument. When passed a literal number, it will "brand" it with an
47
+ * unforgeable unique symbol that is specific to 32-bit floating points.
48
+ *
49
+ * @category Types
50
+ * @tags Float, 32-bit, Branded
51
+ */
52
+ export type Float32<N extends number = number> = Float<N, 32>;
53
+ /**
54
+ * Represents floating-point numbers of 64-bit precision.
55
+ *
56
+ * This is a branded nominal type that accepts an optional generic type
57
+ * argument. When passed a literal number, it will "brand" it with an
58
+ * unforgeable unique symbol that is specific to 64-bit floating points.
59
+ *
60
+ * @category Types
61
+ * @tags Float, 64-bit, Branded
62
+ */
63
+ export type Float64<N extends number = number> = Float<N, 64>;
64
+ export type { Float64 as Double };
65
+ //# sourceMappingURL=float.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float.d.ts","sourceRoot":"","sources":["../../src/types/float.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE1D,QAAA,MAAM,KAAK,EAAE,OAAO,MAAwB,CAAC;AAE7C,UAAU,OAAO,CAAC,CAAC,SAAS,cAAc;IACxC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,cAAc,GAAG,GAAG,IACzE,MAAM,SAAS,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAClC,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,GACjE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAErB;;;;;;;;;GASG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE9D,YAAY,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ const Float = Symbol("Float");
2
+ export {};
3
+ //# sourceMappingURL=float.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float.js","sourceRoot":"","sources":["../../src/types/float.ts"],"names":[],"mappings":"AAaA,MAAM,KAAK,GAAkB,MAAM,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./finite.js";
2
+ export * from "./float.js";
3
+ export * from "./integer.js";
4
+ export * from "./precision.js";
5
+ export * from "./safe_integer.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./finite.js";
2
+ export * from "./float.js";
3
+ export * from "./integer.js";
4
+ export * from "./precision.js";
5
+ export * from "./safe_integer.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * This module provides branded nominal types for signed and unsigned integers
3
+ * of various precisions, as well as bigints for 64-bit integers.
4
+ *
5
+ * @module types/integer
6
+ */
7
+ import type { P32, Precision } from "./precision.js";
8
+ declare const Integer: unique symbol;
9
+ declare const Unsigned: unique symbol;
10
+ interface IsInt<N extends Precision = P32> {
11
+ readonly [Integer]: N;
12
+ }
13
+ interface IsUint<N extends Precision = P32> extends IsInt<N> {
14
+ readonly [Unsigned]: true;
15
+ }
16
+ /**
17
+ * Represents a signed/unsigned integer of a specific precision (default: 32).
18
+ *
19
+ * This type can be provided with a literal number for its first type argument,
20
+ * which will be checked at compile-time to ensure it is a valid integer.
21
+ *
22
+ * There is currently no realistic solution for checking that the value is
23
+ * within the range of the specified precision, so that part is left up to the
24
+ * runtime. This type will, however, brand the number with a unique symbol for
25
+ * the specified precision level `P`, preventing other numbers of different
26
+ * precisions from being assigned to the same variable/parameter.
27
+ *
28
+ * If you need to allow multiple precisions or multiple numbers, simply provide
29
+ * a union of the desired types to each of the type parameters.
30
+ *
31
+ * @category Types
32
+ * @tags integer, nominal
33
+ * @see {@linkcode Unsigned} for unsigned integers.
34
+ */
35
+ export type Integer<N extends number = number, P extends Precision = P32> = number extends N ? number & IsInt<P> : `${N}` extends `${bigint}` ? N & IsInt<P> : never;
36
+ /**
37
+ * Represents an unsigned integer of a specific precision (default: 32).
38
+ *
39
+ * This type can be provided with a literal number for its first type argument,
40
+ * which will be checked at compile-time to ensure it is a positive integer.
41
+ *
42
+ * There is currently no realistic solution for checking that the value is
43
+ * within the range of the specified precision, so that part is left up to the
44
+ * runtime. This type will, however, brand the number with a unique symbol for
45
+ * the specified precision level `P`, preventing other numbers of different
46
+ * precisions from being assigned to the same variable/parameter.
47
+ *
48
+ * If you need to allow multiple precisions or multiple numbers, simply provide
49
+ * a union of the desired types to each of the type parameters.
50
+ *
51
+ * @category Types
52
+ * @tags integer, nominal, unsigned
53
+ * @see {@linkcode Integer} for signed/unsigned integers.
54
+ */
55
+ export type Unsigned<N extends number = number, P extends Precision = P32> = number extends N ? number & IsUint<P> : `${N}` extends `${bigint}` ? `${N}` extends `-${string}` ? never : N & IsUint<P> : never;
56
+ /**
57
+ * Represents a signed/unsigned 8-bit integer. When given a number, this will
58
+ * verify it is an integer and brand it with the `Int8` symbol.
59
+ *
60
+ * @see {@linkcode Integer} for more information about how nominal types work.
61
+ * @category Types
62
+ * @tags integer, nominal, int8
63
+ */
64
+ export type Int8<N extends number = number> = N & IsInt<8>;
65
+ /**
66
+ * Represents an unsigned 8-bit integer. When given a number, this will verify
67
+ * it is an integer and brand it with the `Uint8` symbol.
68
+ *
69
+ * @see {@linkcode Unsigned} for more information about how nominal types work.
70
+ * @category Types
71
+ * @tags integer, nominal, unsigned, uint8
72
+ */
73
+ export type Uint8<N extends number = number> = N & IsUint<8>;
74
+ /**
75
+ * Represents a signed/unsigned 16-bit integer. When given a number, this will
76
+ * verify it is an integer and brand it with the `Int16` symbol.
77
+ *
78
+ * @see {@linkcode Integer} for more information about how nominal types work.
79
+ * @category Types
80
+ * @tags integer, nominal, int16
81
+ */
82
+ export type Int16<N extends number = number> = N & IsInt<16>;
83
+ /**
84
+ * Represents an unsigned 16-bit integer. When given a number, this will verify
85
+ * it is an integer and brand it with the `Uint16` symbol.
86
+ *
87
+ * @see {@linkcode Unsigned} for more information about how nominal types work.
88
+ * @category Types
89
+ * @tags integer, nominal, unsigned, uint16
90
+ */
91
+ export type Uint16<N extends number = number> = N & IsUint<16>;
92
+ /**
93
+ * Represents a signed/unsigned 32-bit integer. When given a number, this will
94
+ * verify it is an integer and brand it with the `Int32` symbol.
95
+ *
96
+ * @see {@linkcode Integer} for more information about how nominal types work.
97
+ * @category Types
98
+ * @tags integer, nominal, int32
99
+ */
100
+ export type Int32<N extends number = number> = N & IsInt<32>;
101
+ /**
102
+ * Represents an unsigned 32-bit integer. When given a number, this will verify
103
+ * it is an integer and brand it with the `Uint32` symbol.
104
+ *
105
+ * @see {@linkcode Unsigned} for more information about how nominal types work.
106
+ * @category Types
107
+ * @tags integer, nominal, unsigned, uint32
108
+ */
109
+ export type Uint32<N extends number = number> = N & IsUint<32>;
110
+ /**
111
+ * Represents a signed/unsigned 64-bit integer. When given a number, this will
112
+ * verify it is an integer and brand it with the `Int64` symbol.
113
+ *
114
+ * @see {@linkcode Integer} for more information about how nominal types work.
115
+ * @category Types
116
+ * @tags integer, nominal, int64
117
+ */
118
+ export type Int64<N extends number = number> = N & IsInt<64>;
119
+ /**
120
+ * Represents an unsigned 64-bit integer. When given a number, this will verify
121
+ * it is an integer and brand it with the `Uint64` symbol.
122
+ *
123
+ * @see {@linkcode Unsigned} for more information about how nominal types work.
124
+ * @category Types
125
+ * @tags integer, nominal, unsigned, uint64
126
+ */
127
+ export type Uint64<N extends number = number> = N & IsUint<64>;
128
+ /**
129
+ * Represents a signed/unsigned 64-bit bigint. This is like {@linkcode Int64},
130
+ * but for bigints instead of numbers.
131
+ *
132
+ * @see {@linkcode Integer} for more information about how nominal types work.
133
+ * @category Types
134
+ * @tags integer, bigint, nominal
135
+ */
136
+ export type BigInt64<I extends bigint = bigint> = I & IsInt<64>;
137
+ /**
138
+ * Represents an unsigned 64-bit bigint. This is like {@linkcode Uint64}, but
139
+ * for bigints instead of numbers.
140
+ *
141
+ * @see {@linkcode Unsigned} for more information about how nominal types work.
142
+ * @category Types
143
+ * @tags integer, bigint, nominal, unsigned
144
+ */
145
+ export type BigUint64<I extends bigint = bigint> = I & IsUint<64>;
146
+ export {};
147
+ //# sourceMappingURL=integer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer.d.ts","sourceRoot":"","sources":["../../src/types/integer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAErD,QAAA,MAAM,OAAO,EAAE,OAAO,MAA0B,CAAC;AACjD,QAAA,MAAM,QAAQ,EAAE,OAAO,MAA2B,CAAC;AAEnD,UAAU,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,GAAG;IACvC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;CACvB;AAED,UAAU,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,GAAG,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,SAAS,GAAG,GAAG,IACtE,MAAM,SAAS,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAChC,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GACzC,KAAK,CAAC;AAEZ;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,SAAS,GAAG,GAAG,IACvE,MAAM,SAAS,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GACjC,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAAG,KAAK,GAC9D,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GACf,KAAK,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ const Integer = Symbol("Integer");
2
+ const Unsigned = Symbol("Unsigned");
3
+ export {};
4
+ //# sourceMappingURL=integer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer.js","sourceRoot":"","sources":["../../src/types/integer.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,GAAkB,MAAM,CAAC,SAAS,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAkB,MAAM,CAAC,UAAU,CAAC,CAAC"}