@thi.ng/math 5.11.35 → 5.13.3
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/README.md +1 -1
- package/mix.d.ts +135 -2
- package/mix.js +35 -1
- package/package.json +147 -147
- package/CHANGELOG.md +0 -83
package/README.md
CHANGED
package/mix.d.ts
CHANGED
|
@@ -27,8 +27,43 @@ export declare const mix: FnN3;
|
|
|
27
27
|
* @param v - 2nd interpolation factor
|
|
28
28
|
*/
|
|
29
29
|
export declare const mixBilinear: FnN6;
|
|
30
|
+
/**
|
|
31
|
+
* Trilinear interpolation of given values (`a`..`h`) with interpolation factors
|
|
32
|
+
* `u`,`v`,`w` (in `[0,1]` range).
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```text
|
|
36
|
+
* c +-------+ d
|
|
37
|
+
* |\ :\
|
|
38
|
+
* | \ : \
|
|
39
|
+
* |g +-------+ h
|
|
40
|
+
* | | : |
|
|
41
|
+
* a +··|····+ b|
|
|
42
|
+
* \ | \ |
|
|
43
|
+
* \| \|
|
|
44
|
+
* e +-------+ f
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* @param a
|
|
48
|
+
* @param b
|
|
49
|
+
* @param c
|
|
50
|
+
* @param d
|
|
51
|
+
* @param e
|
|
52
|
+
* @param f
|
|
53
|
+
* @param g
|
|
54
|
+
* @param h
|
|
55
|
+
* @param u
|
|
56
|
+
* @param v
|
|
57
|
+
* @param w
|
|
58
|
+
*/
|
|
59
|
+
export declare const mixTrilinear: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, u: number, v: number, w: number) => number;
|
|
30
60
|
/**
|
|
31
61
|
* Computes quadratic bezier interpolation for normalized value `t`.
|
|
62
|
+
* Interpolated result is between end points `a` and `c` with `b` a control
|
|
63
|
+
* point.
|
|
64
|
+
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* [Interactive graph](https://www.desmos.com/calculator/s3cvphot1o)
|
|
32
67
|
*
|
|
33
68
|
* @param a
|
|
34
69
|
* @param b
|
|
@@ -37,7 +72,11 @@ export declare const mixBilinear: FnN6;
|
|
|
37
72
|
*/
|
|
38
73
|
export declare const mixQuadratic: FnN4;
|
|
39
74
|
/**
|
|
40
|
-
* Computes cubic bezier interpolation for normalized value `t`.
|
|
75
|
+
* Computes cubic bezier interpolation for normalized value `t`. Interpolated
|
|
76
|
+
* result is between end points `a` and `d` with `b` and `c` control points.
|
|
77
|
+
*
|
|
78
|
+
* @remarks
|
|
79
|
+
* [Interactive graph](https://www.desmos.com/calculator/dfc6twzlmk)
|
|
41
80
|
*
|
|
42
81
|
* @param a
|
|
43
82
|
* @param b
|
|
@@ -52,6 +91,7 @@ export declare const mixCubic: FnN5;
|
|
|
52
91
|
* inform the tangent of the interpolation curve. The interpolated result is
|
|
53
92
|
* that of `b` and `c`.
|
|
54
93
|
*
|
|
94
|
+
* @remarks
|
|
55
95
|
* Assumes all inputs are uniformly spaced. If that's not the case, use
|
|
56
96
|
* {@link mixCubicHermite} with one of the tangent generators supporting
|
|
57
97
|
* non-uniform spacing of points.
|
|
@@ -129,6 +169,27 @@ export declare const mixCubicHermiteFromPoints: FnN5;
|
|
|
129
169
|
* @param v -
|
|
130
170
|
*/
|
|
131
171
|
export declare const mixBicubic: (s00: number, s01: number, s02: number, s03: number, s10: number, s11: number, s12: number, s13: number, s20: number, s21: number, s22: number, s23: number, s30: number, s31: number, s32: number, s33: number, u: number, v: number) => number;
|
|
172
|
+
/**
|
|
173
|
+
* Parametric interpolation function for 4 samples `a`...`d` and interpolation
|
|
174
|
+
* `kernel` and factor `t`. The interpolation is assumed to be between `b` and
|
|
175
|
+
* `c`, using `a` and `d` as neighbors. Interpolation factor `t` is in the [0,1]
|
|
176
|
+
* range.
|
|
177
|
+
*
|
|
178
|
+
* @remarks
|
|
179
|
+
* The `kernel` is avaluated for 4 different `t`s @ `t-1`, `t`, `t+1`, `t+2`
|
|
180
|
+
* (corresponding to samples `a`..`d`).
|
|
181
|
+
*
|
|
182
|
+
* This function can be used with e.g. {@link defLanczos} (filter radius=2) or
|
|
183
|
+
* {@link defMitchell}.
|
|
184
|
+
*
|
|
185
|
+
* @param kernel
|
|
186
|
+
* @param a
|
|
187
|
+
* @param b
|
|
188
|
+
* @param c
|
|
189
|
+
* @param d
|
|
190
|
+
* @param t
|
|
191
|
+
*/
|
|
192
|
+
export declare const mixKernel4: (kernel: FnN, a: number, b: number, c: number, d: number, t: number) => number;
|
|
132
193
|
/**
|
|
133
194
|
* Helper function for {@link mixCubicHermite}. Computes cardinal tangents based
|
|
134
195
|
* on point neighbors of a point B (not given), i.e. `a` (predecessor) and `c`
|
|
@@ -318,12 +379,39 @@ export declare const sincNormalized: FnN2;
|
|
|
318
379
|
* returns 0.
|
|
319
380
|
*
|
|
320
381
|
* @remarks
|
|
321
|
-
*
|
|
382
|
+
* References:
|
|
383
|
+
*
|
|
384
|
+
* - [Interactive graph](https://www.desmos.com/calculator/ccpog9yol8)
|
|
385
|
+
* - https://en.wikipedia.org/wiki/Lanczos_resampling
|
|
322
386
|
*
|
|
323
387
|
* @param a -
|
|
324
388
|
* @param t -
|
|
325
389
|
*/
|
|
326
390
|
export declare const lanczos: FnN2;
|
|
391
|
+
/**
|
|
392
|
+
* Higher-order version of {@link lanczos} for filter size `a` (should be 1, 2
|
|
393
|
+
* or 3). Returns function which takes single param `t` and computes its Lanczos
|
|
394
|
+
* filter coefficient.
|
|
395
|
+
*
|
|
396
|
+
* @param a
|
|
397
|
+
*/
|
|
398
|
+
export declare const defLanczos: (a: number) => FnN;
|
|
399
|
+
/**
|
|
400
|
+
* Higher-order Mitchell-Netravali filter kernel for params `b` and `c`. Returns
|
|
401
|
+
* function which takes single param `t` and computes its filter coefficient.
|
|
402
|
+
*
|
|
403
|
+
* @remarks
|
|
404
|
+
* Default `b` and `c` values are: b=1/3, c=1/3. The returned function can be
|
|
405
|
+
* used with {@link mixKernel4}.
|
|
406
|
+
*
|
|
407
|
+
* References:
|
|
408
|
+
*
|
|
409
|
+
* - https://en.wikipedia.org/wiki/Mitchell%E2%80%93Netravali_filters
|
|
410
|
+
*
|
|
411
|
+
* @param b
|
|
412
|
+
* @param c
|
|
413
|
+
*/
|
|
414
|
+
export declare const defMitchell: (b?: number, c?: number) => (t: number) => number;
|
|
327
415
|
/**
|
|
328
416
|
* Sigmoid function for inputs arounds center bias.
|
|
329
417
|
*
|
|
@@ -372,6 +460,51 @@ export declare const schlick: FnN3;
|
|
|
372
460
|
* @param num -
|
|
373
461
|
*/
|
|
374
462
|
export declare const expFactor: FnN3;
|
|
463
|
+
/**
|
|
464
|
+
* Computes framerate-independent interpolation factor `t` for use with
|
|
465
|
+
* `mix(a,b, t)`, where `delta` is the time passed since last frame, `rate` is a
|
|
466
|
+
* user-defined interpolation rate and `fps` is the reference framerate (default
|
|
467
|
+
* = 60).
|
|
468
|
+
*
|
|
469
|
+
* @remarks
|
|
470
|
+
* Reference:
|
|
471
|
+
* https://blog.pkh.me/p/41-fixing-the-iterative-damping-interpolation-in-video-games.html
|
|
472
|
+
*
|
|
473
|
+
* @example
|
|
474
|
+
* ```ts tangle:../export/exp-rate.ts
|
|
475
|
+
* import { mix, expRate } from "@thi.ng/math";
|
|
476
|
+
*
|
|
477
|
+
* // fixed example framerate
|
|
478
|
+
* const FPS = 5;
|
|
479
|
+
* // arbitrary interpolation rate
|
|
480
|
+
* const RATE = 0.5;
|
|
481
|
+
*
|
|
482
|
+
* // start value
|
|
483
|
+
* let value = 0;
|
|
484
|
+
*
|
|
485
|
+
* // interpolate for 3 seconds at given FPS
|
|
486
|
+
* for(let i = 0; i < 3 * FPS; i++) {
|
|
487
|
+
* // compute current frame delta time (here static)
|
|
488
|
+
* const delta = 1 / FPS;
|
|
489
|
+
* // iteratively interpolate to target=100 in a framerate agnostic manner,
|
|
490
|
+
* // using RATE and 60 fps as reference frame rate
|
|
491
|
+
* value = mix(value, 100, expRate(delta, RATE, 60));
|
|
492
|
+
* console.log(i, value);
|
|
493
|
+
* }
|
|
494
|
+
* // 0 9.554162585016023
|
|
495
|
+
* // 1 18.195504943022847
|
|
496
|
+
* // 2 26.01123940261784
|
|
497
|
+
* // ...
|
|
498
|
+
* // 12 72.89486380583645
|
|
499
|
+
* // 13 75.48453258671687
|
|
500
|
+
* // 14 77.82678020185855
|
|
501
|
+
* ```
|
|
502
|
+
*
|
|
503
|
+
* @param delta
|
|
504
|
+
* @param rate
|
|
505
|
+
* @param fps
|
|
506
|
+
*/
|
|
507
|
+
export declare const expRate: (delta: number, rate: number, fps?: number) => number;
|
|
375
508
|
/**
|
|
376
509
|
* Computes gaussian bell curve for given center `bias` and `sigma` (spread).
|
|
377
510
|
*
|
package/mix.js
CHANGED
|
@@ -5,6 +5,16 @@ const mixBilinear = (a, b, c, d, u, v) => {
|
|
|
5
5
|
const iv = 1 - v;
|
|
6
6
|
return a * iu * iv + b * u * iv + c * iu * v + d * u * v;
|
|
7
7
|
};
|
|
8
|
+
const mixTrilinear = (a, b, c, d, e, f, g, h, u, v, w) => {
|
|
9
|
+
const iu = 1 - u;
|
|
10
|
+
const iv = 1 - v;
|
|
11
|
+
const iw = 1 - w;
|
|
12
|
+
const uv = u * v;
|
|
13
|
+
const u_iv = u * iv;
|
|
14
|
+
const iu_v = iu * v;
|
|
15
|
+
const iuv = iu * iv;
|
|
16
|
+
return a * iuv * iw + b * u_iv * iw + c * iu_v * iw + d * uv * iw + e * iuv * w + f * u_iv * w + g * iu_v * w + h * uv * w;
|
|
17
|
+
};
|
|
8
18
|
const mixQuadratic = (a, b, c, t) => {
|
|
9
19
|
const s = 1 - t;
|
|
10
20
|
return a * s * s + b * 2 * s * t + c * t * t;
|
|
@@ -46,6 +56,7 @@ const mixBicubic = (s00, s01, s02, s03, s10, s11, s12, s13, s20, s21, s22, s23,
|
|
|
46
56
|
mixCubicHermiteFromPoints(s30, s31, s32, s33, u),
|
|
47
57
|
v
|
|
48
58
|
);
|
|
59
|
+
const mixKernel4 = (kernel, a, b, c, d, t) => a * kernel(t + 1) + b * kernel(t) + c * kernel(t - 1) + d * kernel(t - 2);
|
|
49
60
|
const tangentCardinal = (prev, next, scale = 0.5, ta = 0, tc = 2) => scale * ((next - prev) / (tc - ta));
|
|
50
61
|
const tangentDiff3 = (prev, curr, next, ta = 0, tb = 1, tc = 2) => 0.5 * ((next - curr) / (tc - tb) + (curr - prev) / (tb - ta));
|
|
51
62
|
const tween = (f, from, to) => (t) => mix(from, to, f(t));
|
|
@@ -79,12 +90,30 @@ const cubicPulse = (w, c, t) => {
|
|
|
79
90
|
};
|
|
80
91
|
const sinc = (t) => t !== 0 ? Math.sin(t) / t : 1;
|
|
81
92
|
const sincNormalized = (k, t) => sinc(PI * k * t);
|
|
82
|
-
const lanczos = (a, t) => t !== 0 ? -a < t && t < a ?
|
|
93
|
+
const lanczos = (a, t) => t !== 0 ? -a < t && t < a ? (t *= PI, a * Math.sin(t) * Math.sin(t / a) / (t * t)) : 0 : 1;
|
|
94
|
+
const defLanczos = (a) => (t) => lanczos(a, t);
|
|
95
|
+
const defMitchell = (b = 1 / 3, c = 1 / 3) => {
|
|
96
|
+
const b12 = 12 * b;
|
|
97
|
+
const c6 = 6 * c;
|
|
98
|
+
const k1 = 12 - 9 * b - c6;
|
|
99
|
+
const k2 = -18 + b12 + c6;
|
|
100
|
+
const k3 = 6 - 2 * b;
|
|
101
|
+
const k4 = -b - c6;
|
|
102
|
+
const k5 = 6 * b + 30 * c;
|
|
103
|
+
const k6 = -b12 - 48 * c;
|
|
104
|
+
const k7 = 8 * b + 24 * c;
|
|
105
|
+
return (t) => {
|
|
106
|
+
if (t < 0) t = -t;
|
|
107
|
+
const t2 = t * t;
|
|
108
|
+
return t < 1 ? (k1 * t2 * t + k2 * t2 + k3) / 6 : t < 2 ? (k4 * t2 * t + k5 * t2 + k6 * t + k7) / 6 : 0;
|
|
109
|
+
};
|
|
110
|
+
};
|
|
83
111
|
const sigmoid = (bias, k, t) => t != bias ? 1 / (1 + Math.exp(-k * (t - bias))) : 0.5;
|
|
84
112
|
const sigmoid01 = (k, t) => sigmoid(0.5, k, t);
|
|
85
113
|
const sigmoid11 = (k, t) => sigmoid(0, k, t);
|
|
86
114
|
const schlick = (a, b, t) => t <= b ? b * t / (t + a * (b - t) + EPS) : (1 - b) * (t - 1) / (1 - t - a * (b - t) + EPS) + 1;
|
|
87
115
|
const expFactor = (a, b, num) => (b / a) ** (1 / num);
|
|
116
|
+
const expRate = (delta, rate, fps = 60) => 1 - Math.exp(-delta * -fps * Math.log(1 - rate / fps));
|
|
88
117
|
const gaussian = (bias, sigma, t) => Math.exp(-((t - bias) ** 2) / (2 * sigma * sigma));
|
|
89
118
|
export {
|
|
90
119
|
bounce,
|
|
@@ -92,8 +121,11 @@ export {
|
|
|
92
121
|
cosine,
|
|
93
122
|
cubicPulse,
|
|
94
123
|
decimated,
|
|
124
|
+
defLanczos,
|
|
125
|
+
defMitchell,
|
|
95
126
|
ease,
|
|
96
127
|
expFactor,
|
|
128
|
+
expRate,
|
|
97
129
|
gain,
|
|
98
130
|
gaussian,
|
|
99
131
|
impulse,
|
|
@@ -107,7 +139,9 @@ export {
|
|
|
107
139
|
mixCubicHermite,
|
|
108
140
|
mixCubicHermiteFromPoints,
|
|
109
141
|
mixHermite,
|
|
142
|
+
mixKernel4,
|
|
110
143
|
mixQuadratic,
|
|
144
|
+
mixTrilinear,
|
|
111
145
|
parabola,
|
|
112
146
|
schlick,
|
|
113
147
|
sigmoid,
|
package/package.json
CHANGED
|
@@ -1,148 +1,148 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
2
|
+
"name": "@thi.ng/math",
|
|
3
|
+
"version": "5.13.3",
|
|
4
|
+
"description": "Assorted common math functions & utilities",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"module": "./index.js",
|
|
7
|
+
"typings": "./index.d.ts",
|
|
8
|
+
"sideEffects": false,
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/thi-ng/umbrella.git"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://thi.ng/math",
|
|
14
|
+
"funding": [
|
|
15
|
+
{
|
|
16
|
+
"type": "github",
|
|
17
|
+
"url": "https://github.com/sponsors/postspectacular"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "patreon",
|
|
21
|
+
"url": "https://patreon.com/thing_umbrella"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"type": "liberapay",
|
|
25
|
+
"url": "https://liberapay.com/thi.ng"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"author": "Karsten Schmidt (https://thi.ng)",
|
|
29
|
+
"contributors": [
|
|
30
|
+
"@nkint (https://github.com/nkint)"
|
|
31
|
+
],
|
|
32
|
+
"license": "Apache-2.0",
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "yarn build:esbuild && yarn build:decl",
|
|
35
|
+
"build:decl": "tsc --declaration --emitDeclarationOnly",
|
|
36
|
+
"build:esbuild": "esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts",
|
|
37
|
+
"clean": "bun ../../tools/src/clean-package.ts",
|
|
38
|
+
"doc": "typedoc --options ../../typedoc.json --out doc src/index.ts",
|
|
39
|
+
"doc:readme": "bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts",
|
|
40
|
+
"pub": "npm publish --access public",
|
|
41
|
+
"test": "bun test",
|
|
42
|
+
"tool:tangle": "../../node_modules/.bin/tangle src/**/*.ts"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@thi.ng/api": "^8.12.6"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"esbuild": "^0.25.11",
|
|
49
|
+
"typedoc": "^0.28.14",
|
|
50
|
+
"typescript": "^5.9.3"
|
|
51
|
+
},
|
|
52
|
+
"keywords": [
|
|
53
|
+
"animation",
|
|
54
|
+
"bezier",
|
|
55
|
+
"cubic",
|
|
56
|
+
"easing",
|
|
57
|
+
"hermite",
|
|
58
|
+
"interpolation",
|
|
59
|
+
"interval",
|
|
60
|
+
"math",
|
|
61
|
+
"prime",
|
|
62
|
+
"quadratic",
|
|
63
|
+
"smoothmax",
|
|
64
|
+
"smoothstep",
|
|
65
|
+
"solver",
|
|
66
|
+
"trigonometry",
|
|
67
|
+
"typescript"
|
|
68
|
+
],
|
|
69
|
+
"publishConfig": {
|
|
70
|
+
"access": "public"
|
|
71
|
+
},
|
|
72
|
+
"engines": {
|
|
73
|
+
"node": ">=18"
|
|
74
|
+
},
|
|
75
|
+
"files": [
|
|
76
|
+
"./*.js",
|
|
77
|
+
"./*.d.ts"
|
|
78
|
+
],
|
|
79
|
+
"exports": {
|
|
80
|
+
".": {
|
|
81
|
+
"default": "./index.js"
|
|
82
|
+
},
|
|
83
|
+
"./abs": {
|
|
84
|
+
"default": "./abs.js"
|
|
85
|
+
},
|
|
86
|
+
"./angle": {
|
|
87
|
+
"default": "./angle.js"
|
|
88
|
+
},
|
|
89
|
+
"./api": {
|
|
90
|
+
"default": "./api.js"
|
|
91
|
+
},
|
|
92
|
+
"./crossing": {
|
|
93
|
+
"default": "./crossing.js"
|
|
94
|
+
},
|
|
95
|
+
"./easing": {
|
|
96
|
+
"default": "./easing.js"
|
|
97
|
+
},
|
|
98
|
+
"./eqdelta": {
|
|
99
|
+
"default": "./eqdelta.js"
|
|
100
|
+
},
|
|
101
|
+
"./extrema": {
|
|
102
|
+
"default": "./extrema.js"
|
|
103
|
+
},
|
|
104
|
+
"./fit": {
|
|
105
|
+
"default": "./fit.js"
|
|
106
|
+
},
|
|
107
|
+
"./int": {
|
|
108
|
+
"default": "./int.js"
|
|
109
|
+
},
|
|
110
|
+
"./interval": {
|
|
111
|
+
"default": "./interval.js"
|
|
112
|
+
},
|
|
113
|
+
"./libc": {
|
|
114
|
+
"default": "./libc.js"
|
|
115
|
+
},
|
|
116
|
+
"./min-error": {
|
|
117
|
+
"default": "./min-error.js"
|
|
118
|
+
},
|
|
119
|
+
"./mix": {
|
|
120
|
+
"default": "./mix.js"
|
|
121
|
+
},
|
|
122
|
+
"./permutations": {
|
|
123
|
+
"default": "./permutations.js"
|
|
124
|
+
},
|
|
125
|
+
"./prec": {
|
|
126
|
+
"default": "./prec.js"
|
|
127
|
+
},
|
|
128
|
+
"./prime": {
|
|
129
|
+
"default": "./prime.js"
|
|
130
|
+
},
|
|
131
|
+
"./ratio": {
|
|
132
|
+
"default": "./ratio.js"
|
|
133
|
+
},
|
|
134
|
+
"./safe-div": {
|
|
135
|
+
"default": "./safe-div.js"
|
|
136
|
+
},
|
|
137
|
+
"./solve": {
|
|
138
|
+
"default": "./solve.js"
|
|
139
|
+
},
|
|
140
|
+
"./step": {
|
|
141
|
+
"default": "./step.js"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"thi.ng": {
|
|
145
|
+
"year": 2013
|
|
146
|
+
},
|
|
147
|
+
"gitHead": "136a5e5ef0b69e82329db00d806c3c4e8f1aa063\n"
|
|
148
|
+
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
- **Last updated**: 2025-08-04T09:13:01Z
|
|
4
|
-
- **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
|
|
5
|
-
|
|
6
|
-
All notable changes to this project will be documented in this file.
|
|
7
|
-
Only versions published since **2022-01-01** are listed here.
|
|
8
|
-
Please consult the Git history for older version information.
|
|
9
|
-
See [Conventional Commits](https://conventionalcommits.org/) for commit guidelines.
|
|
10
|
-
|
|
11
|
-
**Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
|
|
12
|
-
and/or version bumps of transitive dependencies.
|
|
13
|
-
|
|
14
|
-
## [5.11.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.11.0) (2024-06-21)
|
|
15
|
-
|
|
16
|
-
#### 🚀 Features
|
|
17
|
-
|
|
18
|
-
- add solveTridiagonal() ([1277a0a](https://github.com/thi-ng/umbrella/commit/1277a0a))
|
|
19
|
-
|
|
20
|
-
#### ♻️ Refactoring
|
|
21
|
-
|
|
22
|
-
- enforce uniform naming convention of internal functions ([56992b2](https://github.com/thi-ng/umbrella/commit/56992b2))
|
|
23
|
-
|
|
24
|
-
## [5.10.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.10.0) (2024-02-16)
|
|
25
|
-
|
|
26
|
-
#### 🚀 Features
|
|
27
|
-
|
|
28
|
-
- add fromDMS()/toDMS() conversions ([1714067](https://github.com/thi-ng/umbrella/commit/1714067))
|
|
29
|
-
|
|
30
|
-
## [5.9.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.9.0) (2024-02-06)
|
|
31
|
-
|
|
32
|
-
#### 🚀 Features
|
|
33
|
-
|
|
34
|
-
- add easing functions ([e4966fd](https://github.com/thi-ng/umbrella/commit/e4966fd))
|
|
35
|
-
- add easing functions, ported from [@thi.ng/shader-ast-std](https://github.com/thi-ng/umbrella/tree/main/packages/shader-ast-std) pkg
|
|
36
|
-
|
|
37
|
-
## [5.8.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.8.0) (2024-01-26)
|
|
38
|
-
|
|
39
|
-
#### 🚀 Features
|
|
40
|
-
|
|
41
|
-
- add signedPow(), add docs ([5207ba3](https://github.com/thi-ng/umbrella/commit/5207ba3))
|
|
42
|
-
|
|
43
|
-
### [5.7.2](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.7.2) (2023-11-09)
|
|
44
|
-
|
|
45
|
-
#### ♻️ Refactoring
|
|
46
|
-
|
|
47
|
-
- update all tests (packages A-S) ([e3085e4](https://github.com/thi-ng/umbrella/commit/e3085e4))
|
|
48
|
-
|
|
49
|
-
## [5.7.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.7.0) (2023-10-27)
|
|
50
|
-
|
|
51
|
-
#### 🚀 Features
|
|
52
|
-
|
|
53
|
-
- add foldback01() ([1272647](https://github.com/thi-ng/umbrella/commit/1272647))
|
|
54
|
-
|
|
55
|
-
## [5.6.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.6.0) (2023-08-24)
|
|
56
|
-
|
|
57
|
-
#### 🚀 Features
|
|
58
|
-
|
|
59
|
-
- add minMax() ([76ca59d](https://github.com/thi-ng/umbrella/commit/76ca59d))
|
|
60
|
-
|
|
61
|
-
## [5.5.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.5.0) (2023-07-14)
|
|
62
|
-
|
|
63
|
-
#### 🚀 Features
|
|
64
|
-
|
|
65
|
-
- add smoothStep01/smootherStep01() ([152f93c](https://github.com/thi-ng/umbrella/commit/152f93c))
|
|
66
|
-
|
|
67
|
-
### [5.4.4](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.4.4) (2023-03-02)
|
|
68
|
-
|
|
69
|
-
#### ♻️ Refactoring
|
|
70
|
-
|
|
71
|
-
- update sincos/cossin return types ([ae5cd82](https://github.com/thi-ng/umbrella/commit/ae5cd82))
|
|
72
|
-
|
|
73
|
-
## [5.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.4.0) (2023-01-10)
|
|
74
|
-
|
|
75
|
-
#### 🚀 Features
|
|
76
|
-
|
|
77
|
-
- add factorial. permutation/combination fns ([965af0d](https://github.com/thi-ng/umbrella/commit/965af0d))
|
|
78
|
-
|
|
79
|
-
## [5.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/math@5.3.0) (2022-03-11)
|
|
80
|
-
|
|
81
|
-
#### 🚀 Features
|
|
82
|
-
|
|
83
|
-
- add ldiv() ([35d1e97](https://github.com/thi-ng/umbrella/commit/35d1e97))
|