@fluixi/utils 1.0.0-alpha.53

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 (354) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/dist/index.cjs +1 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +1 -0
  7. package/dist/index.mjs +1 -0
  8. package/dist/lib/array/advanced.cjs +1 -0
  9. package/dist/lib/array/advanced.d.ts +1116 -0
  10. package/dist/lib/array/advanced.d.ts.map +1 -0
  11. package/dist/lib/array/advanced.js +2429 -0
  12. package/dist/lib/array/advanced.mjs +1 -0
  13. package/dist/lib/array/array.cjs +1 -0
  14. package/dist/lib/array/array.d.ts +6 -0
  15. package/dist/lib/array/array.d.ts.map +1 -0
  16. package/dist/lib/array/array.js +31 -0
  17. package/dist/lib/array/array.mjs +1 -0
  18. package/dist/lib/array/index.cjs +1 -0
  19. package/dist/lib/array/index.d.ts +4 -0
  20. package/dist/lib/array/index.d.ts.map +1 -0
  21. package/dist/lib/array/index.js +3 -0
  22. package/dist/lib/array/index.mjs +1 -0
  23. package/dist/lib/array/utils.cjs +1 -0
  24. package/dist/lib/array/utils.d.ts +100 -0
  25. package/dist/lib/array/utils.d.ts.map +1 -0
  26. package/dist/lib/array/utils.js +165 -0
  27. package/dist/lib/array/utils.mjs +1 -0
  28. package/dist/lib/color/color.cjs +1 -0
  29. package/dist/lib/color/color.d.ts +366 -0
  30. package/dist/lib/color/color.d.ts.map +1 -0
  31. package/dist/lib/color/color.js +722 -0
  32. package/dist/lib/color/color.mjs +1 -0
  33. package/dist/lib/color/constants.cjs +1 -0
  34. package/dist/lib/color/constants.d.ts +361 -0
  35. package/dist/lib/color/constants.d.ts.map +1 -0
  36. package/dist/lib/color/constants.js +358 -0
  37. package/dist/lib/color/constants.mjs +1 -0
  38. package/dist/lib/color/conversions.cjs +1 -0
  39. package/dist/lib/color/conversions.d.ts +166 -0
  40. package/dist/lib/color/conversions.d.ts.map +1 -0
  41. package/dist/lib/color/conversions.js +766 -0
  42. package/dist/lib/color/conversions.mjs +1 -0
  43. package/dist/lib/color/helpers.cjs +1 -0
  44. package/dist/lib/color/helpers.d.ts +75 -0
  45. package/dist/lib/color/helpers.d.ts.map +1 -0
  46. package/dist/lib/color/helpers.js +419 -0
  47. package/dist/lib/color/helpers.mjs +1 -0
  48. package/dist/lib/color/index.cjs +1 -0
  49. package/dist/lib/color/index.d.ts +12 -0
  50. package/dist/lib/color/index.d.ts.map +1 -0
  51. package/dist/lib/color/index.js +15 -0
  52. package/dist/lib/color/index.mjs +1 -0
  53. package/dist/lib/color/types.cjs +1 -0
  54. package/dist/lib/color/types.d.ts +179 -0
  55. package/dist/lib/color/types.d.ts.map +1 -0
  56. package/dist/lib/color/types.js +1 -0
  57. package/dist/lib/color/types.mjs +0 -0
  58. package/dist/lib/color/utils.cjs +1 -0
  59. package/dist/lib/color/utils.d.ts +199 -0
  60. package/dist/lib/color/utils.d.ts.map +1 -0
  61. package/dist/lib/color/utils.js +858 -0
  62. package/dist/lib/color/utils.mjs +1 -0
  63. package/dist/lib/compare/comparators.cjs +1 -0
  64. package/dist/lib/compare/comparators.d.ts +65 -0
  65. package/dist/lib/compare/comparators.d.ts.map +1 -0
  66. package/dist/lib/compare/comparators.js +210 -0
  67. package/dist/lib/compare/comparators.mjs +1 -0
  68. package/dist/lib/compare/index.cjs +1 -0
  69. package/dist/lib/compare/index.d.ts +2 -0
  70. package/dist/lib/compare/index.d.ts.map +1 -0
  71. package/dist/lib/compare/index.js +1 -0
  72. package/dist/lib/compare/index.mjs +1 -0
  73. package/dist/lib/crypto/hash.cjs +1 -0
  74. package/dist/lib/crypto/hash.d.ts +6 -0
  75. package/dist/lib/crypto/hash.d.ts.map +1 -0
  76. package/dist/lib/crypto/hash.js +53 -0
  77. package/dist/lib/crypto/hash.mjs +1 -0
  78. package/dist/lib/crypto/index.cjs +1 -0
  79. package/dist/lib/crypto/index.d.ts +2 -0
  80. package/dist/lib/crypto/index.d.ts.map +1 -0
  81. package/dist/lib/crypto/index.js +1 -0
  82. package/dist/lib/crypto/index.mjs +1 -0
  83. package/dist/lib/dom/events.cjs +1 -0
  84. package/dist/lib/dom/events.d.ts +159 -0
  85. package/dist/lib/dom/events.d.ts.map +1 -0
  86. package/dist/lib/dom/events.js +50 -0
  87. package/dist/lib/dom/events.mjs +1 -0
  88. package/dist/lib/dom/index.cjs +1 -0
  89. package/dist/lib/dom/index.d.ts +3 -0
  90. package/dist/lib/dom/index.d.ts.map +1 -0
  91. package/dist/lib/dom/index.js +2 -0
  92. package/dist/lib/dom/index.mjs +1 -0
  93. package/dist/lib/dom/utils.cjs +1 -0
  94. package/dist/lib/dom/utils.d.ts +6 -0
  95. package/dist/lib/dom/utils.d.ts.map +1 -0
  96. package/dist/lib/dom/utils.js +37 -0
  97. package/dist/lib/dom/utils.mjs +1 -0
  98. package/dist/lib/functions/functions.cjs +1 -0
  99. package/dist/lib/functions/functions.d.ts +329 -0
  100. package/dist/lib/functions/functions.d.ts.map +1 -0
  101. package/dist/lib/functions/functions.js +585 -0
  102. package/dist/lib/functions/functions.mjs +1 -0
  103. package/dist/lib/functions/index.cjs +1 -0
  104. package/dist/lib/functions/index.d.ts +3 -0
  105. package/dist/lib/functions/index.d.ts.map +1 -0
  106. package/dist/lib/functions/index.js +1 -0
  107. package/dist/lib/functions/index.mjs +1 -0
  108. package/dist/lib/functions/types.cjs +1 -0
  109. package/dist/lib/functions/types.d.ts +2 -0
  110. package/dist/lib/functions/types.d.ts.map +1 -0
  111. package/dist/lib/functions/types.js +1 -0
  112. package/dist/lib/functions/types.mjs +0 -0
  113. package/dist/lib/helpers.cjs +1 -0
  114. package/dist/lib/helpers.d.ts +13 -0
  115. package/dist/lib/helpers.d.ts.map +1 -0
  116. package/dist/lib/helpers.js +66 -0
  117. package/dist/lib/helpers.mjs +1 -0
  118. package/dist/lib/index.cjs +1 -0
  119. package/dist/lib/index.d.ts +6 -0
  120. package/dist/lib/index.d.ts.map +1 -0
  121. package/dist/lib/index.js +8 -0
  122. package/dist/lib/index.mjs +1 -0
  123. package/dist/lib/maths/constants.cjs +1 -0
  124. package/dist/lib/maths/constants.d.ts +84 -0
  125. package/dist/lib/maths/constants.d.ts.map +1 -0
  126. package/dist/lib/maths/constants.js +79 -0
  127. package/dist/lib/maths/constants.mjs +1 -0
  128. package/dist/lib/maths/fn/advanced.cjs +1 -0
  129. package/dist/lib/maths/fn/advanced.d.ts +149 -0
  130. package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
  131. package/dist/lib/maths/fn/advanced.js +264 -0
  132. package/dist/lib/maths/fn/advanced.mjs +1 -0
  133. package/dist/lib/maths/fn/basic.cjs +1 -0
  134. package/dist/lib/maths/fn/basic.d.ts +182 -0
  135. package/dist/lib/maths/fn/basic.d.ts.map +1 -0
  136. package/dist/lib/maths/fn/basic.js +343 -0
  137. package/dist/lib/maths/fn/basic.mjs +1 -0
  138. package/dist/lib/maths/fn/complex.cjs +1 -0
  139. package/dist/lib/maths/fn/complex.d.ts +153 -0
  140. package/dist/lib/maths/fn/complex.d.ts.map +1 -0
  141. package/dist/lib/maths/fn/complex.js +383 -0
  142. package/dist/lib/maths/fn/complex.mjs +1 -0
  143. package/dist/lib/maths/fn/index.cjs +1 -0
  144. package/dist/lib/maths/fn/index.d.ts +10 -0
  145. package/dist/lib/maths/fn/index.d.ts.map +1 -0
  146. package/dist/lib/maths/fn/index.js +9 -0
  147. package/dist/lib/maths/fn/index.mjs +1 -0
  148. package/dist/lib/maths/fn/trigo.cjs +1 -0
  149. package/dist/lib/maths/fn/trigo.d.ts +147 -0
  150. package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
  151. package/dist/lib/maths/fn/trigo.js +227 -0
  152. package/dist/lib/maths/fn/trigo.mjs +1 -0
  153. package/dist/lib/maths/fn/vector.cjs +1 -0
  154. package/dist/lib/maths/fn/vector.d.ts +512 -0
  155. package/dist/lib/maths/fn/vector.d.ts.map +1 -0
  156. package/dist/lib/maths/fn/vector.js +1136 -0
  157. package/dist/lib/maths/fn/vector.mjs +1 -0
  158. package/dist/lib/maths/formatter.cjs +1 -0
  159. package/dist/lib/maths/formatter.d.ts +35 -0
  160. package/dist/lib/maths/formatter.d.ts.map +1 -0
  161. package/dist/lib/maths/formatter.js +56 -0
  162. package/dist/lib/maths/formatter.mjs +1 -0
  163. package/dist/lib/maths/guards.cjs +1 -0
  164. package/dist/lib/maths/guards.d.ts +166 -0
  165. package/dist/lib/maths/guards.d.ts.map +1 -0
  166. package/dist/lib/maths/guards.js +315 -0
  167. package/dist/lib/maths/guards.mjs +1 -0
  168. package/dist/lib/maths/index.cjs +1 -0
  169. package/dist/lib/maths/index.d.ts +24 -0
  170. package/dist/lib/maths/index.d.ts.map +1 -0
  171. package/dist/lib/maths/index.js +29 -0
  172. package/dist/lib/maths/index.mjs +1 -0
  173. package/dist/lib/maths/parser.cjs +1 -0
  174. package/dist/lib/maths/parser.d.ts +20 -0
  175. package/dist/lib/maths/parser.d.ts.map +1 -0
  176. package/dist/lib/maths/parser.js +78 -0
  177. package/dist/lib/maths/parser.mjs +1 -0
  178. package/dist/lib/maths/random.cjs +1 -0
  179. package/dist/lib/maths/random.d.ts +27 -0
  180. package/dist/lib/maths/random.d.ts.map +1 -0
  181. package/dist/lib/maths/random.js +49 -0
  182. package/dist/lib/maths/random.mjs +1 -0
  183. package/dist/lib/maths/types/advanced.cjs +1 -0
  184. package/dist/lib/maths/types/advanced.d.ts +357 -0
  185. package/dist/lib/maths/types/advanced.d.ts.map +1 -0
  186. package/dist/lib/maths/types/advanced.js +5 -0
  187. package/dist/lib/maths/types/advanced.mjs +0 -0
  188. package/dist/lib/maths/types/basic.cjs +1 -0
  189. package/dist/lib/maths/types/basic.d.ts +95 -0
  190. package/dist/lib/maths/types/basic.d.ts.map +1 -0
  191. package/dist/lib/maths/types/basic.js +5 -0
  192. package/dist/lib/maths/types/basic.mjs +0 -0
  193. package/dist/lib/maths/types/index.cjs +1 -0
  194. package/dist/lib/maths/types/index.d.ts +4 -0
  195. package/dist/lib/maths/types/index.d.ts.map +1 -0
  196. package/dist/lib/maths/types/index.js +3 -0
  197. package/dist/lib/maths/types/index.mjs +0 -0
  198. package/dist/lib/maths/types/negative.cjs +1 -0
  199. package/dist/lib/maths/types/negative.d.ts +51 -0
  200. package/dist/lib/maths/types/negative.d.ts.map +1 -0
  201. package/dist/lib/maths/types/negative.js +5 -0
  202. package/dist/lib/maths/types/negative.mjs +0 -0
  203. package/dist/lib/maths/types/operations.cjs +1 -0
  204. package/dist/lib/maths/types/operations.d.ts +188 -0
  205. package/dist/lib/maths/types/operations.d.ts.map +1 -0
  206. package/dist/lib/maths/types/operations.js +6 -0
  207. package/dist/lib/maths/types/operations.mjs +0 -0
  208. package/dist/lib/object/clone.cjs +1 -0
  209. package/dist/lib/object/clone.d.ts +46 -0
  210. package/dist/lib/object/clone.d.ts.map +1 -0
  211. package/dist/lib/object/clone.js +104 -0
  212. package/dist/lib/object/clone.mjs +1 -0
  213. package/dist/lib/object/diff.cjs +1 -0
  214. package/dist/lib/object/diff.d.ts +203 -0
  215. package/dist/lib/object/diff.d.ts.map +1 -0
  216. package/dist/lib/object/diff.js +805 -0
  217. package/dist/lib/object/diff.mjs +1 -0
  218. package/dist/lib/object/getter-setter.cjs +1 -0
  219. package/dist/lib/object/getter-setter.d.ts +361 -0
  220. package/dist/lib/object/getter-setter.d.ts.map +1 -0
  221. package/dist/lib/object/getter-setter.js +1771 -0
  222. package/dist/lib/object/getter-setter.mjs +1 -0
  223. package/dist/lib/object/index.cjs +6 -0
  224. package/dist/lib/object/index.d.ts +13 -0
  225. package/dist/lib/object/index.d.ts.map +1 -0
  226. package/dist/lib/object/index.js +12 -0
  227. package/dist/lib/object/index.mjs +6 -0
  228. package/dist/lib/object/merge.cjs +1 -0
  229. package/dist/lib/object/merge.d.ts +93 -0
  230. package/dist/lib/object/merge.d.ts.map +1 -0
  231. package/dist/lib/object/merge.js +474 -0
  232. package/dist/lib/object/merge.mjs +1 -0
  233. package/dist/lib/object/object.cjs +1 -0
  234. package/dist/lib/object/object.d.ts +128 -0
  235. package/dist/lib/object/object.d.ts.map +1 -0
  236. package/dist/lib/object/object.js +432 -0
  237. package/dist/lib/object/object.mjs +1 -0
  238. package/dist/lib/object/omit.cjs +1 -0
  239. package/dist/lib/object/omit.d.ts +351 -0
  240. package/dist/lib/object/omit.d.ts.map +1 -0
  241. package/dist/lib/object/omit.js +656 -0
  242. package/dist/lib/object/omit.mjs +1 -0
  243. package/dist/lib/object/reconcile.cjs +1 -0
  244. package/dist/lib/object/reconcile.d.ts +7 -0
  245. package/dist/lib/object/reconcile.d.ts.map +1 -0
  246. package/dist/lib/object/reconcile.js +122 -0
  247. package/dist/lib/object/reconcile.mjs +1 -0
  248. package/dist/lib/object/selector.cjs +1 -0
  249. package/dist/lib/object/selector.d.ts +50 -0
  250. package/dist/lib/object/selector.d.ts.map +1 -0
  251. package/dist/lib/object/selector.js +371 -0
  252. package/dist/lib/object/selector.mjs +1 -0
  253. package/dist/lib/object/sort.cjs +1 -0
  254. package/dist/lib/object/sort.d.ts +149 -0
  255. package/dist/lib/object/sort.d.ts.map +1 -0
  256. package/dist/lib/object/sort.js +298 -0
  257. package/dist/lib/object/sort.mjs +1 -0
  258. package/dist/lib/object/transform.cjs +1 -0
  259. package/dist/lib/object/transform.d.ts +620 -0
  260. package/dist/lib/object/transform.d.ts.map +1 -0
  261. package/dist/lib/object/transform.js +1058 -0
  262. package/dist/lib/object/transform.mjs +1 -0
  263. package/dist/lib/object/types.cjs +1 -0
  264. package/dist/lib/object/types.d.ts +250 -0
  265. package/dist/lib/object/types.d.ts.map +1 -0
  266. package/dist/lib/object/types.js +1 -0
  267. package/dist/lib/object/types.mjs +0 -0
  268. package/dist/lib/object/utils.cjs +6 -0
  269. package/dist/lib/object/utils.d.ts +165 -0
  270. package/dist/lib/object/utils.d.ts.map +1 -0
  271. package/dist/lib/object/utils.js +444 -0
  272. package/dist/lib/object/utils.mjs +6 -0
  273. package/dist/lib/primitive/boolean/boolean.cjs +1 -0
  274. package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
  275. package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
  276. package/dist/lib/primitive/boolean/boolean.js +615 -0
  277. package/dist/lib/primitive/boolean/boolean.mjs +1 -0
  278. package/dist/lib/primitive/boolean/index.cjs +1 -0
  279. package/dist/lib/primitive/boolean/index.d.ts +3 -0
  280. package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
  281. package/dist/lib/primitive/boolean/index.js +2 -0
  282. package/dist/lib/primitive/boolean/index.mjs +1 -0
  283. package/dist/lib/primitive/boolean/types.cjs +1 -0
  284. package/dist/lib/primitive/boolean/types.d.ts +14 -0
  285. package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
  286. package/dist/lib/primitive/boolean/types.js +1 -0
  287. package/dist/lib/primitive/boolean/types.mjs +0 -0
  288. package/dist/lib/primitive/date/date.cjs +1 -0
  289. package/dist/lib/primitive/date/date.d.ts +641 -0
  290. package/dist/lib/primitive/date/date.d.ts.map +1 -0
  291. package/dist/lib/primitive/date/date.js +1998 -0
  292. package/dist/lib/primitive/date/date.mjs +1 -0
  293. package/dist/lib/primitive/date/index.cjs +1 -0
  294. package/dist/lib/primitive/date/index.d.ts +3 -0
  295. package/dist/lib/primitive/date/index.d.ts.map +1 -0
  296. package/dist/lib/primitive/date/index.js +2 -0
  297. package/dist/lib/primitive/date/index.mjs +1 -0
  298. package/dist/lib/primitive/date/types.cjs +1 -0
  299. package/dist/lib/primitive/date/types.d.ts +205 -0
  300. package/dist/lib/primitive/date/types.d.ts.map +1 -0
  301. package/dist/lib/primitive/date/types.js +7 -0
  302. package/dist/lib/primitive/date/types.mjs +0 -0
  303. package/dist/lib/primitive/index.cjs +5 -0
  304. package/dist/lib/primitive/index.d.ts +5 -0
  305. package/dist/lib/primitive/index.d.ts.map +1 -0
  306. package/dist/lib/primitive/index.js +4 -0
  307. package/dist/lib/primitive/index.mjs +5 -0
  308. package/dist/lib/primitive/string/index.cjs +5 -0
  309. package/dist/lib/primitive/string/index.d.ts +3 -0
  310. package/dist/lib/primitive/string/index.d.ts.map +1 -0
  311. package/dist/lib/primitive/string/index.js +2 -0
  312. package/dist/lib/primitive/string/index.mjs +5 -0
  313. package/dist/lib/primitive/string/parser-2.cjs +8 -0
  314. package/dist/lib/primitive/string/parser-2.d.ts +17 -0
  315. package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
  316. package/dist/lib/primitive/string/parser-2.js +656 -0
  317. package/dist/lib/primitive/string/parser-2.mjs +8 -0
  318. package/dist/lib/primitive/string/parser.cjs +3 -0
  319. package/dist/lib/primitive/string/parser.d.ts +9 -0
  320. package/dist/lib/primitive/string/parser.d.ts.map +1 -0
  321. package/dist/lib/primitive/string/parser.js +775 -0
  322. package/dist/lib/primitive/string/parser.mjs +3 -0
  323. package/dist/lib/primitive/string/string.cjs +5 -0
  324. package/dist/lib/primitive/string/string.d.ts +535 -0
  325. package/dist/lib/primitive/string/string.d.ts.map +1 -0
  326. package/dist/lib/primitive/string/string.js +1301 -0
  327. package/dist/lib/primitive/string/string.mjs +5 -0
  328. package/dist/lib/primitive/string/types.cjs +1 -0
  329. package/dist/lib/primitive/string/types.d.ts +318 -0
  330. package/dist/lib/primitive/string/types.d.ts.map +1 -0
  331. package/dist/lib/primitive/string/types.js +5 -0
  332. package/dist/lib/primitive/string/types.mjs +0 -0
  333. package/dist/lib/primitive/types.cjs +1 -0
  334. package/dist/lib/primitive/types.d.ts +27 -0
  335. package/dist/lib/primitive/types.d.ts.map +1 -0
  336. package/dist/lib/primitive/types.js +1 -0
  337. package/dist/lib/primitive/types.mjs +0 -0
  338. package/dist/lib/url/index.cjs +1 -0
  339. package/dist/lib/url/index.d.ts +3 -0
  340. package/dist/lib/url/index.d.ts.map +1 -0
  341. package/dist/lib/url/index.js +2 -0
  342. package/dist/lib/url/index.mjs +1 -0
  343. package/dist/lib/url/parser.cjs +1 -0
  344. package/dist/lib/url/parser.d.ts +216 -0
  345. package/dist/lib/url/parser.d.ts.map +1 -0
  346. package/dist/lib/url/parser.js +488 -0
  347. package/dist/lib/url/parser.mjs +1 -0
  348. package/dist/lib/url/types.cjs +1 -0
  349. package/dist/lib/url/types.d.ts +18 -0
  350. package/dist/lib/url/types.d.ts.map +1 -0
  351. package/dist/lib/url/types.js +1 -0
  352. package/dist/lib/url/types.mjs +0 -0
  353. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  354. package/package.json +150 -0
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Advanced mathematical operations.
3
+ * @module AdvancedMathFunctions
4
+ */
5
+ import { gcd, round } from './basic.js';
6
+ /**
7
+ * Calculates the natural logarithm of a number.
8
+ * @param value - The number
9
+ * @returns The natural logarithm
10
+ * @throws {Error} If value is not positive
11
+ */
12
+ export function ln(value) {
13
+ if (value <= 0) {
14
+ throw new Error('Natural logarithm is only defined for positive numbers');
15
+ }
16
+ return Math.log(value);
17
+ }
18
+ /**
19
+ * Calculates the base-10 logarithm of a number.
20
+ * @param value - The number
21
+ * @returns The base-10 logarithm
22
+ * @throws {Error} If value is not positive
23
+ */
24
+ export function log10(value) {
25
+ if (value <= 0) {
26
+ throw new Error('Logarithm is only defined for positive numbers');
27
+ }
28
+ return Math.log10(value);
29
+ }
30
+ /**
31
+ * Calculates the base-2 logarithm of a number.
32
+ * @param value - The number
33
+ * @returns The base-2 logarithm
34
+ * @throws {Error} If value is not positive
35
+ */
36
+ export function log2(value) {
37
+ if (value <= 0) {
38
+ throw new Error('Logarithm is only defined for positive numbers');
39
+ }
40
+ return Math.log2(value);
41
+ }
42
+ /**
43
+ * Calculates the logarithm of a number with a custom base.
44
+ * @param value - The number
45
+ * @param base - The logarithm base
46
+ * @returns The logarithm with specified base
47
+ * @throws {Error} If value or base is not positive
48
+ */
49
+ export function log(value, base) {
50
+ if (value <= 0 || base <= 0) {
51
+ throw new Error('Logarithm is only defined for positive numbers and bases');
52
+ }
53
+ return Math.log(value) / Math.log(base);
54
+ }
55
+ /**
56
+ * Calculates the exponential function e^x.
57
+ * @param x - The exponent
58
+ * @returns e raised to the power x
59
+ */
60
+ export function exp(x) {
61
+ return Math.exp(x);
62
+ }
63
+ /**
64
+ * Calculates the cube root of a number.
65
+ * @param value - The number
66
+ * @returns The cube root
67
+ */
68
+ export function cbrt(value) {
69
+ return Math.cbrt(value);
70
+ }
71
+ /**
72
+ * Calculates the nth root of a number.
73
+ * @param value - The number
74
+ * @param n - The root degree
75
+ * @returns The nth root
76
+ * @throws {Error} If n is 0 or value is negative for even n
77
+ */
78
+ export function nthRoot(value, n) {
79
+ if (n === 0) {
80
+ throw new Error('Cannot calculate 0th root');
81
+ }
82
+ if (value < 0 && n % 2 === 0) {
83
+ throw new Error('Cannot calculate even root of negative number');
84
+ }
85
+ const exponent = 1 / n;
86
+ return Math.sign(value) * Math.pow(Math.abs(value), exponent);
87
+ }
88
+ /**
89
+ * Solves a quadratic equation ax^2 + bx + c = 0.
90
+ * @param a - Coefficient of x^2
91
+ * @param b - Coefficient of x
92
+ * @param c - Constant term
93
+ * @returns Array of real roots (0, 1, or 2 roots)
94
+ */
95
+ export function solveQuadratic(a, b, c) {
96
+ if (a === 0) {
97
+ // Linear equation
98
+ if (b === 0)
99
+ return [];
100
+ return [-c / b];
101
+ }
102
+ const discriminant = b * b - 4 * a * c;
103
+ if (discriminant < 0) {
104
+ return [];
105
+ }
106
+ else if (discriminant === 0) {
107
+ return [-b / (2 * a)];
108
+ }
109
+ else {
110
+ const sqrtDiscriminant = Math.sqrt(discriminant);
111
+ return [
112
+ (-b - sqrtDiscriminant) / (2 * a),
113
+ (-b + sqrtDiscriminant) / (2 * a)
114
+ ];
115
+ }
116
+ }
117
+ /**
118
+ * Evaluates a polynomial at a given x value.
119
+ * @param coefficients - Polynomial coefficients from highest to lowest degree
120
+ * @param x - The value to evaluate at
121
+ * @returns The polynomial value at x
122
+ */
123
+ export function evaluatePolynomial(coefficients, x) {
124
+ let result = 0;
125
+ for (let i = 0; i < coefficients.length; i++) {
126
+ result = result * x + coefficients[i];
127
+ }
128
+ return result;
129
+ }
130
+ /**
131
+ * Simplifies a fraction to its lowest terms.
132
+ * @param fraction - The fraction to simplify
133
+ * @returns The simplified fraction
134
+ */
135
+ export function simplifyFraction(fraction) {
136
+ const divisor = gcd(fraction.numerator, fraction.denominator);
137
+ return {
138
+ numerator: fraction.numerator / divisor,
139
+ denominator: fraction.denominator / divisor
140
+ };
141
+ }
142
+ /**
143
+ * Adds two fractions.
144
+ * @param a - First fraction
145
+ * @param b - Second fraction
146
+ * @returns The sum as a simplified fraction
147
+ */
148
+ export function addFractions(a, b) {
149
+ const numerator = a.numerator * b.denominator + b.numerator * a.denominator;
150
+ const denominator = a.denominator * b.denominator;
151
+ return simplifyFraction({ numerator, denominator });
152
+ }
153
+ /**
154
+ * Multiplies two fractions.
155
+ * @param a - First fraction
156
+ * @param b - Second fraction
157
+ * @returns The product as a simplified fraction
158
+ */
159
+ export function multiplyFractions(a, b) {
160
+ const numerator = a.numerator * b.numerator;
161
+ const denominator = a.denominator * b.denominator;
162
+ return simplifyFraction({ numerator, denominator });
163
+ }
164
+ /**
165
+ * Calculates the percentage of a number.
166
+ * @param value - The number
167
+ * @param percentage - The percentage (e.g., 25 for 25%)
168
+ * @param precision - The number of decimal places
169
+ * @returns The percentage of the number
170
+ */
171
+ export const percentage = (value, total, precision = 2) => {
172
+ if (total === 0)
173
+ return 0;
174
+ const percent = (value / total) * 100;
175
+ return round(percent, precision);
176
+ };
177
+ /**
178
+ * Converts a number to a specified base (2-36)
179
+ *
180
+ * @param number - The number
181
+ */
182
+ export const toBase = (number, base, minLength = 1) => {
183
+ if (base < 2 || base > 36) {
184
+ throw new Error('Base must be between 2 and 36');
185
+ }
186
+ const result = number.toString(base);
187
+ return result.padStart(minLength, '0');
188
+ };
189
+ /**
190
+ * Converts a number to ordinal string (1st, 2nd, 3rd, etc.)
191
+ *
192
+ * @param n - The number
193
+ */
194
+ export const toOrdinal = (n) => {
195
+ const suffix = ['th', 'st', 'nd', 'rd'];
196
+ const v = n % 100;
197
+ return n + (suffix[(v - 20) % 10] || suffix[v] || suffix[0]);
198
+ };
199
+ /**
200
+ * Generates a sequence of numbers
201
+ *
202
+ * @param start - The starting number
203
+ * @param end - The ending number
204
+ * @param step - The step size
205
+ *
206
+ * @returns An array of numbers
207
+ */
208
+ export const range = (start, end, step = 1) => {
209
+ const result = [];
210
+ if (step === 0)
211
+ return result;
212
+ if (step > 0) {
213
+ for (let i = start; i < end; i += step) {
214
+ result.push(i);
215
+ }
216
+ }
217
+ else {
218
+ for (let i = start; i > end; i += step) {
219
+ result.push(i);
220
+ }
221
+ }
222
+ return result;
223
+ };
224
+ /**
225
+ * Limits the number of decimal places without rounding
226
+ *
227
+ * @param value - The number
228
+ * @param decimalPlaces - The number of decimal places
229
+ *
230
+ * @returns The truncated number
231
+ */
232
+ export const truncateDecimals = (value, decimalPlaces) => {
233
+ if (!Number.isFinite(value))
234
+ return value;
235
+ const factor = 10 ** decimalPlaces;
236
+ return Math.trunc(value * factor) / factor;
237
+ };
238
+ /**
239
+ * Normalizes a value to a 0-1 range based on min/max
240
+ *
241
+ * @param value - The number
242
+ * @param min - The minimum value
243
+ * @param max - The maximum value
244
+ *
245
+ * @returns The normalized value
246
+ */
247
+ export const normalize = (value, min, max) => {
248
+ if (min === max)
249
+ return 0;
250
+ return (value - min) / (max - min);
251
+ };
252
+ /**
253
+ * Wraps a value within a range (like modulo for floats)
254
+ *
255
+ * @param value - The number
256
+ * @param min - The minimum value
257
+ * @param max - The maximum value
258
+ *
259
+ * @returns The wrapped value
260
+ */
261
+ export const wrap = (value, min, max) => {
262
+ const range = max - min;
263
+ return ((((value - min) % range) + range) % range) + min;
264
+ };
@@ -0,0 +1 @@
1
+ var c=(r,n=0,e="round")=>{if(e==="david")return f(r,n,e);if(!Number.isFinite(r))return r;if(n===0)return Math[e](r);if(n<0){let b=10**-n;return Math[e](r/b)*b}let t=10**n,o=Math.pow(2,-52),u=r*t,m=Math.sign(u)*o*Math.abs(u),i;switch(e){case"round":i=Math.round(u+m);break;case"ceil":i=Math.ceil(u-o);break;case"floor":i=Math.floor(u+o);break;case"trunc":i=u<0?Math.ceil(u):Math.floor(u);break;default:i=Math.round(u+m)}return i/t},f=(r,n=0,e="round")=>{let t=Math.abs(r),o=r<0?-1:1;if(n===0)return Math.round(t)*o;if(!Number.isFinite(t))return t*o;let u=10**n,m=t*u,i=Math.pow(2,-53),b=Math.sign(m)*i*Math.abs(m);return m+=b,Math.round(m)/u*o};function a(r,n){for(r=Math.abs(r),n=Math.abs(n);n!==0;){let e=n;n=r%n,r=e}return r}function l(r){if(r<=0)throw new Error("Natural logarithm is only defined for positive numbers");return Math.log(r)}function g(r){if(r<=0)throw new Error("Logarithm is only defined for positive numbers");return Math.log10(r)}function x(r){if(r<=0)throw new Error("Logarithm is only defined for positive numbers");return Math.log2(r)}function M(r,n){if(r<=0||n<=0)throw new Error("Logarithm is only defined for positive numbers and bases");return Math.log(r)/Math.log(n)}function w(r){return Math.exp(r)}function y(r){return Math.cbrt(r)}function F(r,n){if(n===0)throw new Error("Cannot calculate 0th root");if(r<0&&n%2===0)throw new Error("Cannot calculate even root of negative number");let e=1/n;return Math.sign(r)*Math.pow(Math.abs(r),e)}function N(r,n,e){if(r===0)return n===0?[]:[-e/n];let t=n*n-4*r*e;if(t<0)return[];if(t===0)return[-n/(2*r)];{let o=Math.sqrt(t);return[(-n-o)/(2*r),(-n+o)/(2*r)]}}function E(r,n){let e=0;for(let t=0;t<r.length;t++)e=e*n+r[t];return e}function s(r){let n=a(r.numerator,r.denominator);return{numerator:r.numerator/n,denominator:r.denominator/n}}function T(r,n){let e=r.numerator*n.denominator+n.numerator*r.denominator,t=r.denominator*n.denominator;return s({numerator:e,denominator:t})}function S(r,n){let e=r.numerator*n.numerator,t=r.denominator*n.denominator;return s({numerator:e,denominator:t})}var A=(r,n,e=2)=>{if(n===0)return 0;let t=r/n*100;return c(t,e)},q=(r,n,e=1)=>{if(n<2||n>36)throw new Error("Base must be between 2 and 36");return r.toString(n).padStart(e,"0")},R=r=>{let n=["th","st","nd","rd"],e=r%100;return r+(n[(e-20)%10]||n[e]||n[0])},L=(r,n,e=1)=>{let t=[];if(e===0)return t;if(e>0)for(let o=r;o<n;o+=e)t.push(o);else for(let o=r;o>n;o+=e)t.push(o);return t},j=(r,n)=>{if(!Number.isFinite(r))return r;let e=10**n;return Math.trunc(r*e)/e},k=(r,n,e)=>n===e?0:(r-n)/(e-n),C=(r,n,e)=>{let t=e-n;return((r-n)%t+t)%t+n};export{T as addFractions,y as cbrt,E as evaluatePolynomial,w as exp,l as ln,M as log,g as log10,x as log2,S as multiplyFractions,k as normalize,F as nthRoot,A as percentage,L as range,s as simplifyFraction,N as solveQuadratic,q as toBase,R as toOrdinal,j as truncateDecimals,C as wrap};
@@ -0,0 +1 @@
1
+ "use strict";var a=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var g=(r,n)=>{for(var e in n)a(r,e,{get:n[e],enumerable:!0})},x=(r,n,e,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of l(n))!M.call(r,u)&&u!==e&&a(r,u,{get:()=>n[u],enumerable:!(t=p(n,u))||t.enumerable});return r};var w=r=>x(a({},"__esModule",{value:!0}),r);var K={};g(K,{abs:()=>R,add:()=>y,average:()=>z,ceil:()=>q,clamp:()=>s,divide:()=>T,factorial:()=>D,floor:()=>j,gcd:()=>f,invLerp:()=>h,lcm:()=>G,lerp:()=>d,mapRange:()=>I,max:()=>U,median:()=>H,min:()=>L,modulo:()=>A,power:()=>F,product:()=>J,round:()=>c,sign:()=>C,sqrt:()=>S,subtract:()=>N,sum:()=>B,trunc:()=>E});module.exports=w(K);function y(r,n){return r+n}function N(r,n){return r-n}var T=(r,n,e)=>n===0?e!==void 0?e:NaN:r/n;function A(r,n){return r%n}function F(r,n){return Math.pow(r,n)}function S(r){if(r<0)throw new Error("Cannot calculate square root of negative number");return Math.sqrt(r)}function R(r){return Math.abs(r)}var c=(r,n=0,e="round")=>{if(e==="david")return k(r,n,e);if(!Number.isFinite(r))return r;if(n===0)return Math[e](r);if(n<0){let m=10**-n;return Math[e](r/m)*m}let t=10**n,u=Math.pow(2,-52),o=r*t,i=Math.sign(o)*u*Math.abs(o),b;switch(e){case"round":b=Math.round(o+i);break;case"ceil":b=Math.ceil(o-u);break;case"floor":b=Math.floor(o+u);break;case"trunc":b=o<0?Math.ceil(o):Math.floor(o);break;default:b=Math.round(o+i)}return b/t},k=(r,n=0,e="round")=>{let t=Math.abs(r),u=r<0?-1:1;if(n===0)return Math.round(t)*u;if(!Number.isFinite(t))return t*u;let o=10**n,i=t*o,b=Math.pow(2,-53),m=Math.sign(i)*b*Math.abs(i);return i+=m,Math.round(i)/o*u},q=(r,n=0)=>c(r,n,"ceil"),j=(r,n=0)=>c(r,n,"floor"),E=(r,n=0)=>c(r,n,"trunc"),s=(r,n,e)=>(n>e&&([n,e]=[e,n]),r<n?n:r>e?e:r);function C(r){return r>0?1:r<0?-1:0}function D(r){if(!Number.isInteger(r)||r<0)throw new Error("Factorial is only defined for non-negative integers");if(r===0||r===1)return 1;let n=1;for(let e=2;e<=r;e++)n*=e;return n}function f(r,n){for(r=Math.abs(r),n=Math.abs(n);n!==0;){let e=n;n=r%n,r=e}return r}function G(r,n){return Math.abs(r*n)/f(r,n)}function d(r,n,e){return r+(n-r)*s(e,0,1)}var h=(r,n,e)=>s((e-r)/(n-r),0,1),I=(r,n,e,t,u)=>{let o=h(n,e,r);return d(t,u,o)};function L(...r){return Math.min(...r)}function U(...r){return Math.max(...r)}var z=(...r)=>{if(!Array.isArray(r)||r.length===0)return 0;let n=0,e=0;for(let t of r)Number.isFinite(t)&&(n+=t,e++);return e===0?0:n/e},B=(...r)=>Array.isArray(r)?r.reduce((n,e)=>n+(Number.isFinite(e)?e:0),0):0,H=(...r)=>{if(!Array.isArray(r)||r.length===0)return 0;let n=r.filter(Number.isFinite);if(n.length===0)return 0;n.sort((t,u)=>t-u);let e=Math.floor(n.length/2);return n.length%2===0?(n[e-1]+n[e])/2:n[e]};function J(...r){return r.reduce((n,e)=>n*e,1)}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Basic mathematical operations.
3
+ * @module BasicMathFunctions
4
+ */
5
+ import type { RoundingMode, Sign } from '../types/basic.js';
6
+ /**
7
+ * Adds two numbers.
8
+ * @param a - First operand
9
+ * @param b - Second operand
10
+ * @returns The sum of a and b
11
+ */
12
+ export declare function add(a: number, b: number): number;
13
+ /**
14
+ * Subtracts two numbers.
15
+ * @param a - First operand
16
+ * @param b - Second operand
17
+ * @returns The difference of a and b (a - b)
18
+ */
19
+ export declare function subtract(a: number, b: number): number;
20
+ /**
21
+ * Divides two numbers.
22
+ * @param a - Dividend
23
+ * @param b - Divisor
24
+ * @returns The quotient of a divided by b
25
+ * @throws {Error} If b is 0
26
+ */
27
+ export declare const divide: <T = number>(dividend: number, divisor: number, fallback?: T) => number | T;
28
+ /**
29
+ * Calculates the modulo/remainder.
30
+ * @param a - Dividend
31
+ * @param b - Divisor
32
+ * @returns The remainder of a divided by b
33
+ */
34
+ export declare function modulo(a: number, b: number): number;
35
+ /**
36
+ * Calculates the power of a number.
37
+ * @param base - The base number
38
+ * @param exponent - The exponent
39
+ * @returns base raised to the power of exponent
40
+ */
41
+ export declare function power(base: number, exponent: number): number;
42
+ /**
43
+ * Calculates the square root of a number.
44
+ * @param value - The number
45
+ * @returns The square root of the number
46
+ * @throws {Error} If value is negative
47
+ */
48
+ export declare function sqrt(value: number): number;
49
+ /**
50
+ * Calculates the absolute value of a number.
51
+ * @param value - The number
52
+ * @returns The absolute value
53
+ */
54
+ export declare function abs(value: number): number;
55
+ /**
56
+ * Robust rounding using David Gay's dtoa algorithm approach
57
+ * @param value - The value to round
58
+ * @param precision - Decimal precision (default: 0)
59
+ * @returns Rounded number
60
+ * @example
61
+ * round(1.005, 2) // 1.01
62
+ * round(123.456, -1) // 120
63
+ */
64
+ export declare const round: (value: number, precision?: number, mode?: RoundingMode) => number;
65
+ /**
66
+ * Rounds a number up to the nearest integer.
67
+ * @param value - The number to round up
68
+ * @returns The ceiling integer
69
+ */
70
+ export declare const ceil: (value: number, precision?: number) => number;
71
+ /**
72
+ * Rounds a number down to the nearest integer.
73
+ * @param value - The number to round down
74
+ * @returns The floored integer
75
+ */
76
+ export declare const floor: (value: number, precision?: number) => number;
77
+ /**
78
+ * Truncates the decimal part of a number.
79
+ * @param value - The number to truncate
80
+ * @returns The truncated integer
81
+ */
82
+ export declare const trunc: (value: number, precision?: number) => number;
83
+ /**
84
+ * Clamps a value between a minimum and maximum.
85
+ * @param value - The value to clamp
86
+ * @param min - The minimum allowed value
87
+ * @param max - The maximum allowed value
88
+ * @returns The clamped value
89
+ */
90
+ export declare const clamp: (value: number, min: number, max: number) => number;
91
+ /**
92
+ * Returns the sign of a number: -1, 0, or 1.
93
+ * @param value - The number
94
+ * @returns The sign of the number
95
+ */
96
+ export declare function sign<T extends number>(value: T): Sign<T>;
97
+ /**
98
+ * Calculates the factorial of a non-negative integer.
99
+ * @param n - The integer
100
+ * @returns The factorial of n
101
+ * @throws {Error} If n is negative or not an integer
102
+ */
103
+ export declare function factorial(n: number): number;
104
+ /**
105
+ * Calculates the greatest common divisor (GCD) of two numbers.
106
+ * @param a - First number
107
+ * @param b - Second number
108
+ * @returns The GCD of a and b
109
+ */
110
+ export declare function gcd(a: number, b: number): number;
111
+ /**
112
+ * Calculates the least common multiple (LCM) of two numbers.
113
+ * @param a - First number
114
+ * @param b - Second number
115
+ * @returns The LCM of a and b
116
+ */
117
+ export declare function lcm(a: number, b: number): number;
118
+ /**
119
+ * Linearly interpolates between two values.
120
+ * @param start - The starting value
121
+ * @param end - The ending value
122
+ * @param t - The interpolation factor (0 to 1)
123
+ * @returns The interpolated value
124
+ */
125
+ export declare function lerp(start: number, end: number, t: number): number;
126
+ /**
127
+ * Inverse linear interpolation.
128
+ * @param start - The starting value
129
+ * @param end - The ending value
130
+ * @param value - The value to interpolate
131
+ * @returns The interpolation factor (0 to 1)
132
+ */
133
+ export declare const invLerp: (start: number, end: number, value: number) => number;
134
+ /**
135
+ * Maps a value from one range to another
136
+ * @param value - The value to map
137
+ * @param inMin - The minimum value of the input range
138
+ * @param inMax - The maximum value of the input range
139
+ * @param outMin - The minimum value of the output range
140
+ * @param outMax - The maximum value of the output range
141
+ * @returns The mapped value
142
+ * Optimized: Uses lerp and invLerp
143
+ */
144
+ export declare const mapRange: (value: number, inMin: number, inMax: number, outMin: number, outMax: number) => number;
145
+ /**
146
+ * Returns the minimum of two or more numbers.
147
+ * @param values - Numbers to compare
148
+ * @returns The smallest number
149
+ */
150
+ export declare function min(...values: number[]): number;
151
+ /**
152
+ * Returns the maximum of two or more numbers.
153
+ * @param values - Numbers to compare
154
+ * @returns The largest number
155
+ */
156
+ export declare function max(...values: number[]): number;
157
+ /**
158
+ * Calculates the average of numbers.
159
+ * @param values - Numbers to average
160
+ * @returns The average
161
+ */
162
+ export declare const average: (...numbers: number[]) => number;
163
+ /**
164
+ * Calculates the sum of numbers.
165
+ * @param values - Numbers to sum
166
+ * @returns The sum
167
+ */
168
+ export declare const sum: (...numbers: number[]) => number;
169
+ /**
170
+ * Calculates the median of an array of numbers
171
+ * @param numbers - Array of numbers
172
+ * @returns The median
173
+ * Optimized: Sorts only when necessary
174
+ */
175
+ export declare const median: (...numbers: number[]) => number;
176
+ /**
177
+ * Calculates the product of numbers.
178
+ * @param values - Numbers to multiply
179
+ * @returns The product
180
+ */
181
+ export declare function product(...values: number[]): number;
182
+ //# sourceMappingURL=basic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../src/lib/maths/fn/basic.ts"],"names":[],"mappings":"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"}