@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
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.roundFloat16 = roundFloat16;
4
+ /**
5
+ * This module provides functions for rounding numbers to 16-bit floating point
6
+ * values that follow the IEEE 754-2008 standard for half-precision binary16
7
+ * floating point numbers.
8
+ *
9
+ * The `roundFloat16` function rounds a number to the nearest 16-bit floating
10
+ * point value (half precision), following the same rounding and conversion
11
+ * rules as the native `Math.f16round` function from the TC39 Proposal for
12
+ * [Float16Array], which began shipping in ES2024.
13
+ *
14
+ * [Float16Array]: https://github.com/tc39/proposal-float16array
15
+ *
16
+ * @module float16/round
17
+ */
18
+ const encode_js_1 = require("./encode.js");
19
+ const decode_js_1 = require("./decode.js");
20
+ /**
21
+ * Rounds a number to the nearest 16-bit floating point value (half precision).
22
+ *
23
+ * Based on `Math.f16round` function from the TC39 Proposal for [Float16Array],
24
+ * which began shipping in ES2024, this function follows the same rounding and
25
+ * conversion rules as per the IEEE 754-2008 specification for half-precision
26
+ * floating-point numbers (also known as binary16).
27
+ *
28
+ * [Float16Array]: https://github.com/tc39/proposal-float16array
29
+ *
30
+ * @param x The number to round.
31
+ * @returns The 16-bit floating point rounded value of the number.
32
+ * @category Rounding
33
+ * @tags float, float16
34
+ * @example
35
+ * ```ts
36
+ * import { roundFloat16 } from "@nick/math/float16/round";
37
+ * import { PI } from "@nick/math/constants";
38
+ * import assert from "node:assert";
39
+ *
40
+ * assert.strictEqual(roundFloat16(PI), 3.140625); // OK
41
+ * ```
42
+ */
43
+ function roundFloat16(x) {
44
+ return (0, decode_js_1.decodeFloat16)((0, encode_js_1.encodeFloat16)(+x));
45
+ }
46
+ //# sourceMappingURL=round.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.js","sourceRoot":"","sources":["../../src/float16/round.ts"],"names":[],"mappings":";;AAwCA,oCAEC;AA1CD;;;;;;;;;;;;;GAaG;AACH,2CAA4C;AAC5C,2CAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,YAAY,CAAC,CAAS;IACpC,OAAO,IAAA,yBAAa,EAAC,IAAA,yBAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * This module provides constants used by the encoding/decoding APIs in the
3
+ * `@nick/math/float32` suite. These are primarily used to handle special cases
4
+ * such as `NaN`, `Infinity`, and `-0`, which have unique representations in
5
+ * the IEEE-754 half-precision floating point format.
6
+ *
7
+ * These are intended for primarily internal use, but are exported for the sake
8
+ * of completeness and transparency, as well as for potential userland usage in
9
+ * cases where the constants are needed for custom encoding/decoding logic.
10
+ *
11
+ * @module float32/constants
12
+ */
13
+ /**
14
+ * The number of bits used for the exponent in the IEEE-754 single-precision
15
+ * (or "binary32") format.
16
+ *
17
+ * @category Constants
18
+ * @tags float32, ieee-754, exponent
19
+ */
20
+ export declare const FLOAT32_EXPONENT_BITS = 8;
21
+ /**
22
+ * The number of bits used for the mantissa in the IEEE-754 single-precision
23
+ * (or "binary32") format.
24
+ *
25
+ * @category Constants
26
+ * @tags float32, ieee-754, mantissa
27
+ */
28
+ export declare const FLOAT32_MANTISSA_BITS = 23;
29
+ /**
30
+ * The exponent bias used in the IEEE-754 single-precision (or "binary32") format.
31
+ *
32
+ * @category Constants
33
+ * @tags float32, ieee-754, exponent, bias
34
+ */
35
+ export declare const FLOAT32_EXPONENT_BIAS = 127;
36
+ /**
37
+ * Well-known bit pattern representing `NaN` in the IEEE-754 single-precision (or
38
+ * "binary32") format.
39
+ *
40
+ * @category Constants
41
+ * @tags float32, ieee-754, NaN
42
+ */
43
+ export declare const FLOAT32_NAN = 2143289344;
44
+ /**
45
+ * Well-known bit pattern representing `+Infinity` (positive infinity) in the
46
+ * IEEE-754 single-precision (or "binary32") format.
47
+ *
48
+ * @category Constants
49
+ * @tags float32, ieee-754, Infinity
50
+ */
51
+ export declare const FLOAT32_POSITIVE_INFINITY = 2139095040;
52
+ /**
53
+ * Well-known bit pattern representing `-Infinity` (negative infinity) in the
54
+ * IEEE-754 single-precision (or "binary32") format.
55
+ *
56
+ * @category Constants
57
+ * @tags float32, ieee-754, Infinity
58
+ */
59
+ export declare const FLOAT32_NEGATIVE_INFINITY = 4286578688;
60
+ /**
61
+ * Well-known bit pattern representing `-0` (negative zero) in the IEEE-754
62
+ * single-precision (or "binary32") format.
63
+ *
64
+ * @category Constants
65
+ * @tags float32, ieee-754, zero
66
+ */
67
+ export declare const FLOAT32_NEGATIVE_ZERO = 2147483648;
68
+ /**
69
+ * Well-known bit pattern representing `+0` (positive zero) in the IEEE-754
70
+ * single-precision (or "binary32") format.
71
+ *
72
+ * **Note**: This constant, unlike the others, is equivalent to its bit pattern
73
+ * representation (all bits are zero). As such, this is not strictly necessary
74
+ * for encoding/decoding, but is included for completeness and consistency.
75
+ *
76
+ * @category Constants
77
+ * @tags float32, ieee-754, zero
78
+ */
79
+ export declare const FLOAT32_POSITIVE_ZERO = 0;
80
+ /**
81
+ * Represents the IEEE-754 binary32 (single-precision) floating-point format.
82
+ *
83
+ * @internal
84
+ */
85
+ declare const _default: {
86
+ readonly exponent: 8;
87
+ readonly mantissa: 23;
88
+ readonly bias: 127;
89
+ readonly nan: 2143289344;
90
+ readonly positive_infinity: 2139095040;
91
+ readonly negative_infinity: 4286578688;
92
+ readonly negative_zero: 2147483648;
93
+ readonly positive_zero: 0;
94
+ };
95
+ export default _default;
96
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/float32/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,aAAa,CAAC;AAEpD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,aAAa,CAAC;AAEpD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,IAAa,CAAC;AAEhD;;;;GAIG;;;;;;;;;;;AACH,wBASiC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * This module provides constants used by the encoding/decoding APIs in the
4
+ * `@nick/math/float32` suite. These are primarily used to handle special cases
5
+ * such as `NaN`, `Infinity`, and `-0`, which have unique representations in
6
+ * the IEEE-754 half-precision floating point format.
7
+ *
8
+ * These are intended for primarily internal use, but are exported for the sake
9
+ * of completeness and transparency, as well as for potential userland usage in
10
+ * cases where the constants are needed for custom encoding/decoding logic.
11
+ *
12
+ * @module float32/constants
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.FLOAT32_POSITIVE_ZERO = exports.FLOAT32_NEGATIVE_ZERO = exports.FLOAT32_NEGATIVE_INFINITY = exports.FLOAT32_POSITIVE_INFINITY = exports.FLOAT32_NAN = exports.FLOAT32_EXPONENT_BIAS = exports.FLOAT32_MANTISSA_BITS = exports.FLOAT32_EXPONENT_BITS = void 0;
16
+ /**
17
+ * The number of bits used for the exponent in the IEEE-754 single-precision
18
+ * (or "binary32") format.
19
+ *
20
+ * @category Constants
21
+ * @tags float32, ieee-754, exponent
22
+ */
23
+ exports.FLOAT32_EXPONENT_BITS = 8;
24
+ /**
25
+ * The number of bits used for the mantissa in the IEEE-754 single-precision
26
+ * (or "binary32") format.
27
+ *
28
+ * @category Constants
29
+ * @tags float32, ieee-754, mantissa
30
+ */
31
+ exports.FLOAT32_MANTISSA_BITS = 23;
32
+ /**
33
+ * The exponent bias used in the IEEE-754 single-precision (or "binary32") format.
34
+ *
35
+ * @category Constants
36
+ * @tags float32, ieee-754, exponent, bias
37
+ */
38
+ exports.FLOAT32_EXPONENT_BIAS = 127;
39
+ /**
40
+ * Well-known bit pattern representing `NaN` in the IEEE-754 single-precision (or
41
+ * "binary32") format.
42
+ *
43
+ * @category Constants
44
+ * @tags float32, ieee-754, NaN
45
+ */
46
+ exports.FLOAT32_NAN = 0x7FC00000;
47
+ /**
48
+ * Well-known bit pattern representing `+Infinity` (positive infinity) in the
49
+ * IEEE-754 single-precision (or "binary32") format.
50
+ *
51
+ * @category Constants
52
+ * @tags float32, ieee-754, Infinity
53
+ */
54
+ exports.FLOAT32_POSITIVE_INFINITY = 0x7F800000;
55
+ /**
56
+ * Well-known bit pattern representing `-Infinity` (negative infinity) in the
57
+ * IEEE-754 single-precision (or "binary32") format.
58
+ *
59
+ * @category Constants
60
+ * @tags float32, ieee-754, Infinity
61
+ */
62
+ exports.FLOAT32_NEGATIVE_INFINITY = 0xFF800000;
63
+ /**
64
+ * Well-known bit pattern representing `-0` (negative zero) in the IEEE-754
65
+ * single-precision (or "binary32") format.
66
+ *
67
+ * @category Constants
68
+ * @tags float32, ieee-754, zero
69
+ */
70
+ exports.FLOAT32_NEGATIVE_ZERO = 0x80000000;
71
+ /**
72
+ * Well-known bit pattern representing `+0` (positive zero) in the IEEE-754
73
+ * single-precision (or "binary32") format.
74
+ *
75
+ * **Note**: This constant, unlike the others, is equivalent to its bit pattern
76
+ * representation (all bits are zero). As such, this is not strictly necessary
77
+ * for encoding/decoding, but is included for completeness and consistency.
78
+ *
79
+ * @category Constants
80
+ * @tags float32, ieee-754, zero
81
+ */
82
+ exports.FLOAT32_POSITIVE_ZERO = 0x00000000;
83
+ /**
84
+ * Represents the IEEE-754 binary32 (single-precision) floating-point format.
85
+ *
86
+ * @internal
87
+ */
88
+ exports.default = {
89
+ exponent: exports.FLOAT32_EXPONENT_BITS,
90
+ mantissa: exports.FLOAT32_MANTISSA_BITS,
91
+ bias: exports.FLOAT32_EXPONENT_BIAS,
92
+ nan: exports.FLOAT32_NAN,
93
+ positive_infinity: exports.FLOAT32_POSITIVE_INFINITY,
94
+ negative_infinity: exports.FLOAT32_NEGATIVE_INFINITY,
95
+ negative_zero: exports.FLOAT32_NEGATIVE_ZERO,
96
+ positive_zero: exports.FLOAT32_POSITIVE_ZERO,
97
+ };
98
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/float32/constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAIH;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAExC;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAEzC;;;;;;GAMG;AACU,QAAA,WAAW,GAAG,UAAU,CAAC;AAEtC;;;;;;GAMG;AACU,QAAA,yBAAyB,GAAG,UAAU,CAAC;AAEpD;;;;;;GAMG;AACU,QAAA,yBAAyB,GAAG,UAAU,CAAC;AAEpD;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAEhD;;;;;;;;;;GAUG;AACU,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAEhD;;;;GAIG;AACH,kBAAe;IACb,QAAQ,EAAE,6BAAqB;IAC/B,QAAQ,EAAE,6BAAqB;IAC/B,IAAI,EAAE,6BAAqB;IAC3B,GAAG,EAAE,mBAAW;IAChB,iBAAiB,EAAE,iCAAyB;IAC5C,iBAAiB,EAAE,iCAAyB;IAC5C,aAAa,EAAE,6BAAqB;IACpC,aAAa,EAAE,6BAAqB;CACN,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Decodes a 32-bit unsigned integer (`Uint32`) into a 32-bit single-precision
3
+ * floating point value (`Float32`) with 23 bits of mantissa. This function
4
+ * follows the IEEE 754-2008 spec for single-precision floating point numbers.
5
+ *
6
+ * The input value is expected to be the result of an encoding operation, such
7
+ * as the value returned by the {@linkcode encodeFloat32} function, or by
8
+ * DataView's `getUint32` method when reading a single-precision float.
9
+ *
10
+ * This function is used internally by the {@linkcode fround} function to
11
+ * convert the intermediate value back into a standard JavaScript number.
12
+ *
13
+ * ## Special Cases
14
+ *
15
+ * The following special cases are handled separately, short-circuiting the
16
+ * decoding process to return a well-known constant value (as per IEEE spec):
17
+ *
18
+ * - `0x7FC00000` (2139095040) decodes to `NaN`
19
+ * - `0x7F800000` (2139095040) decodes to `+Infinity`
20
+ * - `0xFF800000` (4286578688) decodes to `-Infinity`
21
+ * - `0x80000000` (2147483648) decodes to `-0`
22
+ *
23
+ * @param bits The encoded 32-bit single-precision floating point value.
24
+ * @returns The decoded standard JavaScript number.
25
+ * @example
26
+ * ```ts
27
+ * import { decodeFloat32 } from "@nick/math/float32";
28
+ *
29
+ * console.log(decodeFloat32(0x40490FDB)); // 3.
30
+ *
31
+ * const view = new DataView(new Float32Array([3.14]).buffer);
32
+ * console.log(decodeFloat32(view.getUint32(0)));
33
+ * ```
34
+ * @category IEEE-754
35
+ * @tags float, float32, decode
36
+ */
37
+ export declare function decodeFloat32(bits: number): number;
38
+ //# sourceMappingURL=decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/float32/decode.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.decodeFloat32 = decodeFloat32;
7
+ /**
8
+ * This module provides functions for decoding 32-bit single-precision floating
9
+ * point numbers (`Float32`) from IEEE 754-2008 encoded `Uint32` values, like
10
+ * those returned by {@linkcode encodeFloat32} or DataView's `geUint32` method.
11
+ *
12
+ * The `Float32` format is a 32-bit representation of a floating point number
13
+ * that follows the IEEE 754-2008 standard for single-precision binary32
14
+ * floating point numbers. This format is used to store floating point values
15
+ * in a DataView via `setUint32`, and is equivalent to the result of calling
16
+ * `DataView.prototype.getUint32` when reading a single-precision float.
17
+ *
18
+ * To encode a standard JavaScript number into a `Float32` value, use the
19
+ * {@linkcode encodeFloat32} function of the `./encode` module, passing it the
20
+ * number you want to encode. The result can then be stored in a DataView via
21
+ * `setUint32`, or used as an intermediate value for further processing.
22
+ *
23
+ * To decode the `Float32` value back into a standard JavaScript number (but
24
+ * with 32-bits of precision), use the {@linkcode decodeFloat32} function of
25
+ * this module, passing it the encoded value.
26
+ *
27
+ * @module float32/decode
28
+ */
29
+ const constants_js_1 = __importDefault(require("./constants.js"));
30
+ const ieee754_js_1 = require("../internal/ieee754.js");
31
+ /**
32
+ * Decodes a 32-bit unsigned integer (`Uint32`) into a 32-bit single-precision
33
+ * floating point value (`Float32`) with 23 bits of mantissa. This function
34
+ * follows the IEEE 754-2008 spec for single-precision floating point numbers.
35
+ *
36
+ * The input value is expected to be the result of an encoding operation, such
37
+ * as the value returned by the {@linkcode encodeFloat32} function, or by
38
+ * DataView's `getUint32` method when reading a single-precision float.
39
+ *
40
+ * This function is used internally by the {@linkcode fround} function to
41
+ * convert the intermediate value back into a standard JavaScript number.
42
+ *
43
+ * ## Special Cases
44
+ *
45
+ * The following special cases are handled separately, short-circuiting the
46
+ * decoding process to return a well-known constant value (as per IEEE spec):
47
+ *
48
+ * - `0x7FC00000` (2139095040) decodes to `NaN`
49
+ * - `0x7F800000` (2139095040) decodes to `+Infinity`
50
+ * - `0xFF800000` (4286578688) decodes to `-Infinity`
51
+ * - `0x80000000` (2147483648) decodes to `-0`
52
+ *
53
+ * @param bits The encoded 32-bit single-precision floating point value.
54
+ * @returns The decoded standard JavaScript number.
55
+ * @example
56
+ * ```ts
57
+ * import { decodeFloat32 } from "@nick/math/float32";
58
+ *
59
+ * console.log(decodeFloat32(0x40490FDB)); // 3.
60
+ *
61
+ * const view = new DataView(new Float32Array([3.14]).buffer);
62
+ * console.log(decodeFloat32(view.getUint32(0)));
63
+ * ```
64
+ * @category IEEE-754
65
+ * @tags float, float32, decode
66
+ */
67
+ function decodeFloat32(bits) {
68
+ return (0, ieee754_js_1.decode)(bits, constants_js_1.default);
69
+ }
70
+ //# sourceMappingURL=decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/float32/decode.ts"],"names":[],"mappings":";;;;;AA6DA,sCAEC;AA/DD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,kEAAqC;AACrC,uDAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,IAAA,mBAAM,EAAC,IAAI,EAAE,sBAAO,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Encodes a standard JavaScript number (a 64-bit double-precision floating
3
+ * point value, 52 bits of mantissa) into a 32-bit unsigned integer (Uint32).
4
+ * This function follows the IEEE 754-2008 standard for single-precision 32-bit
5
+ * floating point numbers, also known as `Float32` (or `binary32`).
6
+ *
7
+ * This function is used internally by the {@linkcode fround} function to
8
+ * convert the input number into a portable intermediate form, which it then
9
+ * transforms into the `Float32` format via the {@linkcode decodeFloat32}.
10
+ *
11
+ * The returned value can be used to store single-precision floating point
12
+ * values in a DataView via `setUint32`, since it is equivalent to the result
13
+ * of `DataView.prototype.getUint32` when reading a single-precision float.
14
+ *
15
+ * ## Encoding Scheme
16
+ *
17
+ * The encoding scheme varies based on the input value classification:
18
+ *
19
+ * - Normal (within the normal range of representable values)
20
+ * - Subnormal (too small to be represented with full precision)
21
+ * - Special cases (see below)
22
+ *
23
+ * ## Special Cases
24
+ *
25
+ * The following special cases are handled separately, short-circuiting the
26
+ * encoding process to return a well-known constant value:
27
+ *
28
+ * - `NaN` is encoded as `0x7FC00000` (2139095040).
29
+ * - `Infinity` is encoded as `0x7F800000` (2139095040).
30
+ * - `-Infinity` is encoded as `0xFF800000` (4286578688).
31
+ * - `-0` is encoded as `0x80000000` (2147483648).
32
+ *
33
+ * @param value The standard JavaScript number to encode.
34
+ * @returns An encoded unsigned 32-bit integer that represents the input value.
35
+ * @example
36
+ * ```ts
37
+ * import { encodeFloat32 } from "@nick/math/ieee754";
38
+ *
39
+ * console.log(encodeFloat32(3.14)); // 0x40490FDB (1078523339)
40
+ *
41
+ * const view = new DataView(new ArrayBuffer(4));
42
+ * view.setUint32(0, encodeFloat32(3.14));
43
+ * console.log(view.getUint32(0)); // 1078523339
44
+ * console.log(view.getFloat32(0)); // 3.140625
45
+ * ```
46
+ * @category IEEE-754
47
+ * @tags float32, encode
48
+ */
49
+ export declare function encodeFloat32(value: number): number;
50
+ //# sourceMappingURL=encode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/float32/encode.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.encodeFloat32 = encodeFloat32;
7
+ /**
8
+ * This module provides functions for encoding standard JavaScript numbers
9
+ * (64-bit double-precision floating point values) into 32-bit unsigned
10
+ * integers (Uint32) that represent single-precision floating point numbers.
11
+ *
12
+ * The `Float32` format is a 32-bit representation of a floating point number
13
+ * that follows the IEEE 754-2008 standard for single-precision binary32
14
+ * floating point numbers. This format is used to store floating point values
15
+ * in a DataView via `setUint32`, and is equivalent to the result of calling
16
+ * `DataView.prototype.getUint32` when reading a single-precision float.
17
+ *
18
+ * To decode a `Float32` value back into a standard JavaScript number, use the
19
+ * {@linkcode decodeFloat32} function of the `./decode` module, passing it the
20
+ * encoded value returned by {@linkcode encodeFloat32}.
21
+ *
22
+ * @module float32/encode
23
+ */
24
+ const constants_js_1 = __importDefault(require("./constants.js"));
25
+ const ieee754_js_1 = require("../internal/ieee754.js");
26
+ /**
27
+ * Encodes a standard JavaScript number (a 64-bit double-precision floating
28
+ * point value, 52 bits of mantissa) into a 32-bit unsigned integer (Uint32).
29
+ * This function follows the IEEE 754-2008 standard for single-precision 32-bit
30
+ * floating point numbers, also known as `Float32` (or `binary32`).
31
+ *
32
+ * This function is used internally by the {@linkcode fround} function to
33
+ * convert the input number into a portable intermediate form, which it then
34
+ * transforms into the `Float32` format via the {@linkcode decodeFloat32}.
35
+ *
36
+ * The returned value can be used to store single-precision floating point
37
+ * values in a DataView via `setUint32`, since it is equivalent to the result
38
+ * of `DataView.prototype.getUint32` when reading a single-precision float.
39
+ *
40
+ * ## Encoding Scheme
41
+ *
42
+ * The encoding scheme varies based on the input value classification:
43
+ *
44
+ * - Normal (within the normal range of representable values)
45
+ * - Subnormal (too small to be represented with full precision)
46
+ * - Special cases (see below)
47
+ *
48
+ * ## Special Cases
49
+ *
50
+ * The following special cases are handled separately, short-circuiting the
51
+ * encoding process to return a well-known constant value:
52
+ *
53
+ * - `NaN` is encoded as `0x7FC00000` (2139095040).
54
+ * - `Infinity` is encoded as `0x7F800000` (2139095040).
55
+ * - `-Infinity` is encoded as `0xFF800000` (4286578688).
56
+ * - `-0` is encoded as `0x80000000` (2147483648).
57
+ *
58
+ * @param value The standard JavaScript number to encode.
59
+ * @returns An encoded unsigned 32-bit integer that represents the input value.
60
+ * @example
61
+ * ```ts
62
+ * import { encodeFloat32 } from "@nick/math/ieee754";
63
+ *
64
+ * console.log(encodeFloat32(3.14)); // 0x40490FDB (1078523339)
65
+ *
66
+ * const view = new DataView(new ArrayBuffer(4));
67
+ * view.setUint32(0, encodeFloat32(3.14));
68
+ * console.log(view.getUint32(0)); // 1078523339
69
+ * console.log(view.getFloat32(0)); // 3.140625
70
+ * ```
71
+ * @category IEEE-754
72
+ * @tags float32, encode
73
+ */
74
+ function encodeFloat32(value) {
75
+ return (0, ieee754_js_1.encode)(value, constants_js_1.default);
76
+ }
77
+ //# sourceMappingURL=encode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/float32/encode.ts"],"names":[],"mappings":";;;;;AAoEA,sCAEC;AAtED;;;;;;;;;;;;;;;;GAgBG;AACH,kEAAqC;AACrC,uDAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,IAAA,mBAAM,EAAC,KAAK,EAAE,sBAAO,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { type Finite } from "../guards/finite.js";
2
+ import type { Float32 } from "../types/float.js";
3
+ /**
4
+ * Checks if a value is a valid {@linkcode Float32} as per IEEE 754-2008.
5
+ *
6
+ * @param it The value to check.
7
+ * @returns `true` if the value is a {@linkcode Float32}; otherwise, false.
8
+ * @see https://en.wikipedia.org/wiki/Single-precision_floating-point_format
9
+ * @see https://en.wikipedia.org/wiki/IEEE_754
10
+ * @example
11
+ * ```ts
12
+ * import { isFloat32 } from "@nick/math/float32/guards";
13
+ *
14
+ * console.log(isFloat32(0.5)); // true
15
+ * console.log(isFloat32(0.1)); // false
16
+ * ```
17
+ * @see {@linkcode isFloat16} for a similar function for float16 numbers.
18
+ * @category Guards
19
+ * @tags float32
20
+ */
21
+ export declare function isFloat32<N extends number>(it: N): it is Float32<N>;
22
+ export declare function isFloat32(it: unknown): it is Float32<number>;
23
+ /**
24
+ * Checks if the given value is a finite float32 number, as per the IEEE
25
+ * 754-2008 spec. This is a stricter version of {@linkcode isFloat32} that also
26
+ * checks if the value is finite, i.e. neither `Infinity`, `-Infinity`, nor
27
+ * `NaN`.
28
+ *
29
+ * @param value The value to check.
30
+ * @returns `true` if the value is a finite float32 number, `false` otherwise.
31
+ * @see {@linkcode isFloat32} for a less strict version of this function.
32
+ * @category Guards
33
+ * @tags float32
34
+ */
35
+ export declare function isFiniteFloat32<N extends number>(it: N): it is Finite<N> & Float32<N>;
36
+ export declare function isFiniteFloat32(it: unknown): it is Float32<number>;
37
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/float32/guards.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AACrE,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AAK9D;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,EAAE,EAAE,CAAC,GACJ,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFloat32 = isFloat32;
4
+ exports.isFiniteFloat32 = isFiniteFloat32;
5
+ /**
6
+ * This submodule provides type guards specific to the float32 module of the
7
+ * `@nick/math` library, namely the {@linkcode isFloat32} predicate function.
8
+ *
9
+ * @module float32/guards
10
+ */
11
+ const nan_js_1 = require("../guards/nan.js");
12
+ const finite_js_1 = require("../guards/finite.js");
13
+ const round_js_1 = require("./round.js");
14
+ function isFloat32(it) {
15
+ return typeof it === "number" && !(0, nan_js_1.isNaN)(it) && it === (0, round_js_1.roundFloat32)(it);
16
+ }
17
+ function isFiniteFloat32(it) {
18
+ return isFloat32(it) && (0, finite_js_1.isFinite)(it);
19
+ }
20
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/float32/guards.ts"],"names":[],"mappings":";;AA+BA,8BAEC;AAkBD,0CAEC;AArDD;;;;;GAKG;AACH,6CAAyC;AACzC,mDAA4D;AAE5D,yCAA0C;AAsB1C,SAAgB,SAAS,CAAC,EAAW;IACnC,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAA,cAAK,EAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAA,uBAAY,EAAC,EAAE,CAAC,CAAC;AACzE,CAAC;AAkBD,SAAgB,eAAe,CAAC,EAAW;IACzC,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,IAAA,oBAAQ,EAAC,EAAE,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Utilities for working with `float32` values (32-bit single precision
3
+ * floating point numbers), as defined by IEEE 754-2008.
4
+ *
5
+ * @module float32
6
+ */
7
+ export * from "./decode.js";
8
+ export * from "./encode.js";
9
+ export * from "./guards.js";
10
+ export * from "./round.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/float32/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * Utilities for working with `float32` values (32-bit single precision
19
+ * floating point numbers), as defined by IEEE 754-2008.
20
+ *
21
+ * @module float32
22
+ */
23
+ __exportStar(require("./decode.js"), exports);
24
+ __exportStar(require("./encode.js"), exports);
25
+ __exportStar(require("./guards.js"), exports);
26
+ __exportStar(require("./round.js"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/float32/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,6CAA2B"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Rounds a number to the nearest 32-bit floating point value (single
3
+ * precision).
4
+ *
5
+ * Based on `Math.fround` function, this function follows the same rounding and
6
+ * conversion rules as per the IEEE 754-2008 specification for single-precision
7
+ * floating-point numbers (also known as `binary32`).
8
+ *
9
+ * @param x The number to round.
10
+ * @returns The 32-bit floating point rounded value of the number.
11
+ * @category Rounding
12
+ * @tags float, float32
13
+ * @example
14
+ * ```ts
15
+ * import { roundFloat32 } from "@nick/math/float32/round";
16
+ * import { PI } from "@nick/math/constants";
17
+ * import assert from "node:assert";
18
+ *
19
+ * assert.strictEqual(roundFloat32(PI), Math.fround(PI)); // OK
20
+ * ```
21
+ */
22
+ export declare function roundFloat32(x: number): number;
23
+ //# sourceMappingURL=round.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.d.ts","sourceRoot":"","sources":["../../src/float32/round.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C"}