@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.
- package/LICENSE +21 -0
- package/README.md +73 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/dist/lib/array/advanced.cjs +1 -0
- package/dist/lib/array/advanced.d.ts +1116 -0
- package/dist/lib/array/advanced.d.ts.map +1 -0
- package/dist/lib/array/advanced.js +2429 -0
- package/dist/lib/array/advanced.mjs +1 -0
- package/dist/lib/array/array.cjs +1 -0
- package/dist/lib/array/array.d.ts +6 -0
- package/dist/lib/array/array.d.ts.map +1 -0
- package/dist/lib/array/array.js +31 -0
- package/dist/lib/array/array.mjs +1 -0
- package/dist/lib/array/index.cjs +1 -0
- package/dist/lib/array/index.d.ts +4 -0
- package/dist/lib/array/index.d.ts.map +1 -0
- package/dist/lib/array/index.js +3 -0
- package/dist/lib/array/index.mjs +1 -0
- package/dist/lib/array/utils.cjs +1 -0
- package/dist/lib/array/utils.d.ts +100 -0
- package/dist/lib/array/utils.d.ts.map +1 -0
- package/dist/lib/array/utils.js +165 -0
- package/dist/lib/array/utils.mjs +1 -0
- package/dist/lib/color/color.cjs +1 -0
- package/dist/lib/color/color.d.ts +366 -0
- package/dist/lib/color/color.d.ts.map +1 -0
- package/dist/lib/color/color.js +722 -0
- package/dist/lib/color/color.mjs +1 -0
- package/dist/lib/color/constants.cjs +1 -0
- package/dist/lib/color/constants.d.ts +361 -0
- package/dist/lib/color/constants.d.ts.map +1 -0
- package/dist/lib/color/constants.js +358 -0
- package/dist/lib/color/constants.mjs +1 -0
- package/dist/lib/color/conversions.cjs +1 -0
- package/dist/lib/color/conversions.d.ts +166 -0
- package/dist/lib/color/conversions.d.ts.map +1 -0
- package/dist/lib/color/conversions.js +766 -0
- package/dist/lib/color/conversions.mjs +1 -0
- package/dist/lib/color/helpers.cjs +1 -0
- package/dist/lib/color/helpers.d.ts +75 -0
- package/dist/lib/color/helpers.d.ts.map +1 -0
- package/dist/lib/color/helpers.js +419 -0
- package/dist/lib/color/helpers.mjs +1 -0
- package/dist/lib/color/index.cjs +1 -0
- package/dist/lib/color/index.d.ts +12 -0
- package/dist/lib/color/index.d.ts.map +1 -0
- package/dist/lib/color/index.js +15 -0
- package/dist/lib/color/index.mjs +1 -0
- package/dist/lib/color/types.cjs +1 -0
- package/dist/lib/color/types.d.ts +179 -0
- package/dist/lib/color/types.d.ts.map +1 -0
- package/dist/lib/color/types.js +1 -0
- package/dist/lib/color/types.mjs +0 -0
- package/dist/lib/color/utils.cjs +1 -0
- package/dist/lib/color/utils.d.ts +199 -0
- package/dist/lib/color/utils.d.ts.map +1 -0
- package/dist/lib/color/utils.js +858 -0
- package/dist/lib/color/utils.mjs +1 -0
- package/dist/lib/compare/comparators.cjs +1 -0
- package/dist/lib/compare/comparators.d.ts +65 -0
- package/dist/lib/compare/comparators.d.ts.map +1 -0
- package/dist/lib/compare/comparators.js +210 -0
- package/dist/lib/compare/comparators.mjs +1 -0
- package/dist/lib/compare/index.cjs +1 -0
- package/dist/lib/compare/index.d.ts +2 -0
- package/dist/lib/compare/index.d.ts.map +1 -0
- package/dist/lib/compare/index.js +1 -0
- package/dist/lib/compare/index.mjs +1 -0
- package/dist/lib/crypto/hash.cjs +1 -0
- package/dist/lib/crypto/hash.d.ts +6 -0
- package/dist/lib/crypto/hash.d.ts.map +1 -0
- package/dist/lib/crypto/hash.js +53 -0
- package/dist/lib/crypto/hash.mjs +1 -0
- package/dist/lib/crypto/index.cjs +1 -0
- package/dist/lib/crypto/index.d.ts +2 -0
- package/dist/lib/crypto/index.d.ts.map +1 -0
- package/dist/lib/crypto/index.js +1 -0
- package/dist/lib/crypto/index.mjs +1 -0
- package/dist/lib/dom/events.cjs +1 -0
- package/dist/lib/dom/events.d.ts +159 -0
- package/dist/lib/dom/events.d.ts.map +1 -0
- package/dist/lib/dom/events.js +50 -0
- package/dist/lib/dom/events.mjs +1 -0
- package/dist/lib/dom/index.cjs +1 -0
- package/dist/lib/dom/index.d.ts +3 -0
- package/dist/lib/dom/index.d.ts.map +1 -0
- package/dist/lib/dom/index.js +2 -0
- package/dist/lib/dom/index.mjs +1 -0
- package/dist/lib/dom/utils.cjs +1 -0
- package/dist/lib/dom/utils.d.ts +6 -0
- package/dist/lib/dom/utils.d.ts.map +1 -0
- package/dist/lib/dom/utils.js +37 -0
- package/dist/lib/dom/utils.mjs +1 -0
- package/dist/lib/functions/functions.cjs +1 -0
- package/dist/lib/functions/functions.d.ts +329 -0
- package/dist/lib/functions/functions.d.ts.map +1 -0
- package/dist/lib/functions/functions.js +585 -0
- package/dist/lib/functions/functions.mjs +1 -0
- package/dist/lib/functions/index.cjs +1 -0
- package/dist/lib/functions/index.d.ts +3 -0
- package/dist/lib/functions/index.d.ts.map +1 -0
- package/dist/lib/functions/index.js +1 -0
- package/dist/lib/functions/index.mjs +1 -0
- package/dist/lib/functions/types.cjs +1 -0
- package/dist/lib/functions/types.d.ts +2 -0
- package/dist/lib/functions/types.d.ts.map +1 -0
- package/dist/lib/functions/types.js +1 -0
- package/dist/lib/functions/types.mjs +0 -0
- package/dist/lib/helpers.cjs +1 -0
- package/dist/lib/helpers.d.ts +13 -0
- package/dist/lib/helpers.d.ts.map +1 -0
- package/dist/lib/helpers.js +66 -0
- package/dist/lib/helpers.mjs +1 -0
- package/dist/lib/index.cjs +1 -0
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +8 -0
- package/dist/lib/index.mjs +1 -0
- package/dist/lib/maths/constants.cjs +1 -0
- package/dist/lib/maths/constants.d.ts +84 -0
- package/dist/lib/maths/constants.d.ts.map +1 -0
- package/dist/lib/maths/constants.js +79 -0
- package/dist/lib/maths/constants.mjs +1 -0
- package/dist/lib/maths/fn/advanced.cjs +1 -0
- package/dist/lib/maths/fn/advanced.d.ts +149 -0
- package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
- package/dist/lib/maths/fn/advanced.js +264 -0
- package/dist/lib/maths/fn/advanced.mjs +1 -0
- package/dist/lib/maths/fn/basic.cjs +1 -0
- package/dist/lib/maths/fn/basic.d.ts +182 -0
- package/dist/lib/maths/fn/basic.d.ts.map +1 -0
- package/dist/lib/maths/fn/basic.js +343 -0
- package/dist/lib/maths/fn/basic.mjs +1 -0
- package/dist/lib/maths/fn/complex.cjs +1 -0
- package/dist/lib/maths/fn/complex.d.ts +153 -0
- package/dist/lib/maths/fn/complex.d.ts.map +1 -0
- package/dist/lib/maths/fn/complex.js +383 -0
- package/dist/lib/maths/fn/complex.mjs +1 -0
- package/dist/lib/maths/fn/index.cjs +1 -0
- package/dist/lib/maths/fn/index.d.ts +10 -0
- package/dist/lib/maths/fn/index.d.ts.map +1 -0
- package/dist/lib/maths/fn/index.js +9 -0
- package/dist/lib/maths/fn/index.mjs +1 -0
- package/dist/lib/maths/fn/trigo.cjs +1 -0
- package/dist/lib/maths/fn/trigo.d.ts +147 -0
- package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
- package/dist/lib/maths/fn/trigo.js +227 -0
- package/dist/lib/maths/fn/trigo.mjs +1 -0
- package/dist/lib/maths/fn/vector.cjs +1 -0
- package/dist/lib/maths/fn/vector.d.ts +512 -0
- package/dist/lib/maths/fn/vector.d.ts.map +1 -0
- package/dist/lib/maths/fn/vector.js +1136 -0
- package/dist/lib/maths/fn/vector.mjs +1 -0
- package/dist/lib/maths/formatter.cjs +1 -0
- package/dist/lib/maths/formatter.d.ts +35 -0
- package/dist/lib/maths/formatter.d.ts.map +1 -0
- package/dist/lib/maths/formatter.js +56 -0
- package/dist/lib/maths/formatter.mjs +1 -0
- package/dist/lib/maths/guards.cjs +1 -0
- package/dist/lib/maths/guards.d.ts +166 -0
- package/dist/lib/maths/guards.d.ts.map +1 -0
- package/dist/lib/maths/guards.js +315 -0
- package/dist/lib/maths/guards.mjs +1 -0
- package/dist/lib/maths/index.cjs +1 -0
- package/dist/lib/maths/index.d.ts +24 -0
- package/dist/lib/maths/index.d.ts.map +1 -0
- package/dist/lib/maths/index.js +29 -0
- package/dist/lib/maths/index.mjs +1 -0
- package/dist/lib/maths/parser.cjs +1 -0
- package/dist/lib/maths/parser.d.ts +20 -0
- package/dist/lib/maths/parser.d.ts.map +1 -0
- package/dist/lib/maths/parser.js +78 -0
- package/dist/lib/maths/parser.mjs +1 -0
- package/dist/lib/maths/random.cjs +1 -0
- package/dist/lib/maths/random.d.ts +27 -0
- package/dist/lib/maths/random.d.ts.map +1 -0
- package/dist/lib/maths/random.js +49 -0
- package/dist/lib/maths/random.mjs +1 -0
- package/dist/lib/maths/types/advanced.cjs +1 -0
- package/dist/lib/maths/types/advanced.d.ts +357 -0
- package/dist/lib/maths/types/advanced.d.ts.map +1 -0
- package/dist/lib/maths/types/advanced.js +5 -0
- package/dist/lib/maths/types/advanced.mjs +0 -0
- package/dist/lib/maths/types/basic.cjs +1 -0
- package/dist/lib/maths/types/basic.d.ts +95 -0
- package/dist/lib/maths/types/basic.d.ts.map +1 -0
- package/dist/lib/maths/types/basic.js +5 -0
- package/dist/lib/maths/types/basic.mjs +0 -0
- package/dist/lib/maths/types/index.cjs +1 -0
- package/dist/lib/maths/types/index.d.ts +4 -0
- package/dist/lib/maths/types/index.d.ts.map +1 -0
- package/dist/lib/maths/types/index.js +3 -0
- package/dist/lib/maths/types/index.mjs +0 -0
- package/dist/lib/maths/types/negative.cjs +1 -0
- package/dist/lib/maths/types/negative.d.ts +51 -0
- package/dist/lib/maths/types/negative.d.ts.map +1 -0
- package/dist/lib/maths/types/negative.js +5 -0
- package/dist/lib/maths/types/negative.mjs +0 -0
- package/dist/lib/maths/types/operations.cjs +1 -0
- package/dist/lib/maths/types/operations.d.ts +188 -0
- package/dist/lib/maths/types/operations.d.ts.map +1 -0
- package/dist/lib/maths/types/operations.js +6 -0
- package/dist/lib/maths/types/operations.mjs +0 -0
- package/dist/lib/object/clone.cjs +1 -0
- package/dist/lib/object/clone.d.ts +46 -0
- package/dist/lib/object/clone.d.ts.map +1 -0
- package/dist/lib/object/clone.js +104 -0
- package/dist/lib/object/clone.mjs +1 -0
- package/dist/lib/object/diff.cjs +1 -0
- package/dist/lib/object/diff.d.ts +203 -0
- package/dist/lib/object/diff.d.ts.map +1 -0
- package/dist/lib/object/diff.js +805 -0
- package/dist/lib/object/diff.mjs +1 -0
- package/dist/lib/object/getter-setter.cjs +1 -0
- package/dist/lib/object/getter-setter.d.ts +361 -0
- package/dist/lib/object/getter-setter.d.ts.map +1 -0
- package/dist/lib/object/getter-setter.js +1771 -0
- package/dist/lib/object/getter-setter.mjs +1 -0
- package/dist/lib/object/index.cjs +6 -0
- package/dist/lib/object/index.d.ts +13 -0
- package/dist/lib/object/index.d.ts.map +1 -0
- package/dist/lib/object/index.js +12 -0
- package/dist/lib/object/index.mjs +6 -0
- package/dist/lib/object/merge.cjs +1 -0
- package/dist/lib/object/merge.d.ts +93 -0
- package/dist/lib/object/merge.d.ts.map +1 -0
- package/dist/lib/object/merge.js +474 -0
- package/dist/lib/object/merge.mjs +1 -0
- package/dist/lib/object/object.cjs +1 -0
- package/dist/lib/object/object.d.ts +128 -0
- package/dist/lib/object/object.d.ts.map +1 -0
- package/dist/lib/object/object.js +432 -0
- package/dist/lib/object/object.mjs +1 -0
- package/dist/lib/object/omit.cjs +1 -0
- package/dist/lib/object/omit.d.ts +351 -0
- package/dist/lib/object/omit.d.ts.map +1 -0
- package/dist/lib/object/omit.js +656 -0
- package/dist/lib/object/omit.mjs +1 -0
- package/dist/lib/object/reconcile.cjs +1 -0
- package/dist/lib/object/reconcile.d.ts +7 -0
- package/dist/lib/object/reconcile.d.ts.map +1 -0
- package/dist/lib/object/reconcile.js +122 -0
- package/dist/lib/object/reconcile.mjs +1 -0
- package/dist/lib/object/selector.cjs +1 -0
- package/dist/lib/object/selector.d.ts +50 -0
- package/dist/lib/object/selector.d.ts.map +1 -0
- package/dist/lib/object/selector.js +371 -0
- package/dist/lib/object/selector.mjs +1 -0
- package/dist/lib/object/sort.cjs +1 -0
- package/dist/lib/object/sort.d.ts +149 -0
- package/dist/lib/object/sort.d.ts.map +1 -0
- package/dist/lib/object/sort.js +298 -0
- package/dist/lib/object/sort.mjs +1 -0
- package/dist/lib/object/transform.cjs +1 -0
- package/dist/lib/object/transform.d.ts +620 -0
- package/dist/lib/object/transform.d.ts.map +1 -0
- package/dist/lib/object/transform.js +1058 -0
- package/dist/lib/object/transform.mjs +1 -0
- package/dist/lib/object/types.cjs +1 -0
- package/dist/lib/object/types.d.ts +250 -0
- package/dist/lib/object/types.d.ts.map +1 -0
- package/dist/lib/object/types.js +1 -0
- package/dist/lib/object/types.mjs +0 -0
- package/dist/lib/object/utils.cjs +6 -0
- package/dist/lib/object/utils.d.ts +165 -0
- package/dist/lib/object/utils.d.ts.map +1 -0
- package/dist/lib/object/utils.js +444 -0
- package/dist/lib/object/utils.mjs +6 -0
- package/dist/lib/primitive/boolean/boolean.cjs +1 -0
- package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
- package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/boolean.js +615 -0
- package/dist/lib/primitive/boolean/boolean.mjs +1 -0
- package/dist/lib/primitive/boolean/index.cjs +1 -0
- package/dist/lib/primitive/boolean/index.d.ts +3 -0
- package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/index.js +2 -0
- package/dist/lib/primitive/boolean/index.mjs +1 -0
- package/dist/lib/primitive/boolean/types.cjs +1 -0
- package/dist/lib/primitive/boolean/types.d.ts +14 -0
- package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/types.js +1 -0
- package/dist/lib/primitive/boolean/types.mjs +0 -0
- package/dist/lib/primitive/date/date.cjs +1 -0
- package/dist/lib/primitive/date/date.d.ts +641 -0
- package/dist/lib/primitive/date/date.d.ts.map +1 -0
- package/dist/lib/primitive/date/date.js +1998 -0
- package/dist/lib/primitive/date/date.mjs +1 -0
- package/dist/lib/primitive/date/index.cjs +1 -0
- package/dist/lib/primitive/date/index.d.ts +3 -0
- package/dist/lib/primitive/date/index.d.ts.map +1 -0
- package/dist/lib/primitive/date/index.js +2 -0
- package/dist/lib/primitive/date/index.mjs +1 -0
- package/dist/lib/primitive/date/types.cjs +1 -0
- package/dist/lib/primitive/date/types.d.ts +205 -0
- package/dist/lib/primitive/date/types.d.ts.map +1 -0
- package/dist/lib/primitive/date/types.js +7 -0
- package/dist/lib/primitive/date/types.mjs +0 -0
- package/dist/lib/primitive/index.cjs +5 -0
- package/dist/lib/primitive/index.d.ts +5 -0
- package/dist/lib/primitive/index.d.ts.map +1 -0
- package/dist/lib/primitive/index.js +4 -0
- package/dist/lib/primitive/index.mjs +5 -0
- package/dist/lib/primitive/string/index.cjs +5 -0
- package/dist/lib/primitive/string/index.d.ts +3 -0
- package/dist/lib/primitive/string/index.d.ts.map +1 -0
- package/dist/lib/primitive/string/index.js +2 -0
- package/dist/lib/primitive/string/index.mjs +5 -0
- package/dist/lib/primitive/string/parser-2.cjs +8 -0
- package/dist/lib/primitive/string/parser-2.d.ts +17 -0
- package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
- package/dist/lib/primitive/string/parser-2.js +656 -0
- package/dist/lib/primitive/string/parser-2.mjs +8 -0
- package/dist/lib/primitive/string/parser.cjs +3 -0
- package/dist/lib/primitive/string/parser.d.ts +9 -0
- package/dist/lib/primitive/string/parser.d.ts.map +1 -0
- package/dist/lib/primitive/string/parser.js +775 -0
- package/dist/lib/primitive/string/parser.mjs +3 -0
- package/dist/lib/primitive/string/string.cjs +5 -0
- package/dist/lib/primitive/string/string.d.ts +535 -0
- package/dist/lib/primitive/string/string.d.ts.map +1 -0
- package/dist/lib/primitive/string/string.js +1301 -0
- package/dist/lib/primitive/string/string.mjs +5 -0
- package/dist/lib/primitive/string/types.cjs +1 -0
- package/dist/lib/primitive/string/types.d.ts +318 -0
- package/dist/lib/primitive/string/types.d.ts.map +1 -0
- package/dist/lib/primitive/string/types.js +5 -0
- package/dist/lib/primitive/string/types.mjs +0 -0
- package/dist/lib/primitive/types.cjs +1 -0
- package/dist/lib/primitive/types.d.ts +27 -0
- package/dist/lib/primitive/types.d.ts.map +1 -0
- package/dist/lib/primitive/types.js +1 -0
- package/dist/lib/primitive/types.mjs +0 -0
- package/dist/lib/url/index.cjs +1 -0
- package/dist/lib/url/index.d.ts +3 -0
- package/dist/lib/url/index.d.ts.map +1 -0
- package/dist/lib/url/index.js +2 -0
- package/dist/lib/url/index.mjs +1 -0
- package/dist/lib/url/parser.cjs +1 -0
- package/dist/lib/url/parser.d.ts +216 -0
- package/dist/lib/url/parser.d.ts.map +1 -0
- package/dist/lib/url/parser.js +488 -0
- package/dist/lib/url/parser.mjs +1 -0
- package/dist/lib/url/types.cjs +1 -0
- package/dist/lib/url/types.d.ts +18 -0
- package/dist/lib/url/types.d.ts.map +1 -0
- package/dist/lib/url/types.js +1 -0
- package/dist/lib/url/types.mjs +0 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- 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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"}
|