@thi.ng/dual-algebra 0.4.3 → 0.4.4

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/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Change Log
2
2
 
3
- - **Last updated**: 2021-12-13T10:26:00Z
3
+ - **Last updated**: 2022-03-11T12:13:49Z
4
4
  - **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
5
5
 
6
6
  All notable changes to this project will be documented in this file.
package/README.md CHANGED
@@ -237,4 +237,4 @@ If this project contributes to an academic publication, please cite it as:
237
237
 
238
238
  ## License
239
239
 
240
- © 2020 - 2021 Karsten Schmidt // Apache Software License 2.0
240
+ © 2020 - 2022 Karsten Schmidt // Apache Software License 2.0
package/ops.d.ts CHANGED
@@ -10,29 +10,29 @@ export declare const dual: (real: number, n?: number, i?: number) => Dual;
10
10
  /**
11
11
  * Creates a 1-dual number of `r`. Syntax sugar for {@link dual}.
12
12
  *
13
- * @param r
14
- * @param i
13
+ * @param r -
14
+ * @param i -
15
15
  */
16
16
  export declare const $: (r: number, i?: number) => number[];
17
17
  /**
18
18
  * Creates a 2-dual number of `r`. Syntax sugar for {@link dual}.
19
19
  *
20
- * @param r
21
- * @param i
20
+ * @param r -
21
+ * @param i -
22
22
  */
23
23
  export declare const $2: (r: number, i?: number) => import("@thi.ng/api").NumericArray;
24
24
  /**
25
25
  * Creates a 3-dual number of `r`. Syntax sugar for {@link dual}.
26
26
  *
27
- * @param r
28
- * @param i
27
+ * @param r -
28
+ * @param i -
29
29
  */
30
30
  export declare const $3: (r: number, i?: number) => import("@thi.ng/api").NumericArray;
31
31
  /**
32
32
  * Creates a 4-dual number of `r`. Syntax sugar for {@link dual}.
33
33
  *
34
- * @param r
35
- * @param i
34
+ * @param r -
35
+ * @param i -
36
36
  */
37
37
  export declare const $4: (r: number, i?: number) => import("@thi.ng/api").NumericArray;
38
38
  export declare const defOp: <T extends Function>(single: T, multi: T, dispatch?: number) => T;
@@ -53,9 +53,9 @@ export declare const atan: Op1;
53
53
  /**
54
54
  * Linear interpolation for dual numbers: `a + (b - a) * t`
55
55
  *
56
- * @param a
57
- * @param b
58
- * @param t
56
+ * @param a -
57
+ * @param b -
58
+ * @param t -
59
59
  */
60
60
  export declare const mix: (a: Dual, b: Dual, t: Dual) => import("@thi.ng/api").NumericArray;
61
61
  /**
@@ -71,19 +71,19 @@ export declare const mix: (a: Dual, b: Dual, t: Dual) => import("@thi.ng/api").N
71
71
  * - index 1 - derivative of first var at `x`
72
72
  * - index 2 - derivative of second var at `y`
73
73
  *
74
- * @param fn
74
+ * @param fn -
75
75
  */
76
76
  export declare const evalFn2: (fn: Op2) => (x: number, y: number) => import("@thi.ng/api").NumericArray;
77
77
  /**
78
78
  * Same as {@link evalFn2}, but 3-multivariate functions.
79
79
  *
80
- * @param fn
80
+ * @param fn -
81
81
  */
82
82
  export declare const evalFn3: (fn: Op3) => (x: number, y: number, z: number) => import("@thi.ng/api").NumericArray;
83
83
  /**
84
84
  * Same as {@link evalFn4}, but 4-multivariate functions.
85
85
  *
86
- * @param fn
86
+ * @param fn -
87
87
  */
88
88
  export declare const evalFn4: (fn: Op4) => (x: number, y: number, z: number, w: number) => import("@thi.ng/api").NumericArray;
89
89
  //# sourceMappingURL=ops.d.ts.map
package/ops.js CHANGED
@@ -14,29 +14,29 @@ export const dual = (real, n = 1, i = 0) => {
14
14
  /**
15
15
  * Creates a 1-dual number of `r`. Syntax sugar for {@link dual}.
16
16
  *
17
- * @param r
18
- * @param i
17
+ * @param r -
18
+ * @param i -
19
19
  */
20
20
  export const $ = (r, i = 0) => [r, i === 1 ? 1 : 0];
21
21
  /**
22
22
  * Creates a 2-dual number of `r`. Syntax sugar for {@link dual}.
23
23
  *
24
- * @param r
25
- * @param i
24
+ * @param r -
25
+ * @param i -
26
26
  */
27
27
  export const $2 = (r, i = 0) => dual(r, 2, i);
28
28
  /**
29
29
  * Creates a 3-dual number of `r`. Syntax sugar for {@link dual}.
30
30
  *
31
- * @param r
32
- * @param i
31
+ * @param r -
32
+ * @param i -
33
33
  */
34
34
  export const $3 = (r, i = 0) => dual(r, 3, i);
35
35
  /**
36
36
  * Creates a 4-dual number of `r`. Syntax sugar for {@link dual}.
37
37
  *
38
- * @param r
39
- * @param i
38
+ * @param r -
39
+ * @param i -
40
40
  */
41
41
  export const $4 = (r, i = 0) => dual(r, 4, i);
42
42
  export const defOp = (single, multi, dispatch = 0) => (((...xs) => xs[dispatch].length < 3 ? single(...xs) : multi(...xs)));
@@ -150,9 +150,9 @@ export const atan = defOp(([ar, ad]) => [Math.atan(ar), ad / (1 + ar * ar)], (a)
150
150
  /**
151
151
  * Linear interpolation for dual numbers: `a + (b - a) * t`
152
152
  *
153
- * @param a
154
- * @param b
155
- * @param t
153
+ * @param a -
154
+ * @param b -
155
+ * @param t -
156
156
  */
157
157
  export const mix = (a, b, t) => add(a, mul(sub(b, a), t));
158
158
  /**
@@ -168,18 +168,18 @@ export const mix = (a, b, t) => add(a, mul(sub(b, a), t));
168
168
  * - index 1 - derivative of first var at `x`
169
169
  * - index 2 - derivative of second var at `y`
170
170
  *
171
- * @param fn
171
+ * @param fn -
172
172
  */
173
173
  export const evalFn2 = (fn) => (x, y) => fn([x, 1, 0], [y, 0, 1]);
174
174
  /**
175
175
  * Same as {@link evalFn2}, but 3-multivariate functions.
176
176
  *
177
- * @param fn
177
+ * @param fn -
178
178
  */
179
179
  export const evalFn3 = (fn) => (x, y, z) => fn([x, 1, 0, 0], [y, 0, 1, 0], [z, 0, 0, 1]);
180
180
  /**
181
181
  * Same as {@link evalFn4}, but 4-multivariate functions.
182
182
  *
183
- * @param fn
183
+ * @param fn -
184
184
  */
185
185
  export const evalFn4 = (fn) => (x, y, z, w) => fn([x, 1, 0, 0, 0], [y, 0, 1, 0, 0], [z, 0, 0, 1, 0], [w, 0, 0, 0, 1]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thi.ng/dual-algebra",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Multivariate dual number algebra, automatic differentiation",
5
5
  "type": "module",
6
6
  "module": "./index.js",
@@ -34,15 +34,15 @@
34
34
  "test": "testament test"
35
35
  },
36
36
  "dependencies": {
37
- "@thi.ng/api": "^8.3.3"
37
+ "@thi.ng/api": "^8.3.4"
38
38
  },
39
39
  "devDependencies": {
40
- "@microsoft/api-extractor": "^7.19.2",
41
- "@thi.ng/testament": "^0.2.3",
40
+ "@microsoft/api-extractor": "^7.19.4",
41
+ "@thi.ng/testament": "^0.2.4",
42
42
  "rimraf": "^3.0.2",
43
43
  "tools": "^0.0.1",
44
- "typedoc": "^0.22.10",
45
- "typescript": "^4.5.3"
44
+ "typedoc": "^0.22.13",
45
+ "typescript": "^4.6.2"
46
46
  },
47
47
  "keywords": [
48
48
  "algebra",
@@ -91,5 +91,5 @@
91
91
  "status": "alpha",
92
92
  "year": 2020
93
93
  },
94
- "gitHead": "2db9dd34c0c2c60cbfde3dad0bca352b20292f5c\n"
94
+ "gitHead": "0fc692a3225c068aacafdc4cb6140cf603c67ad8\n"
95
95
  }
package/poly.d.ts CHANGED
@@ -3,64 +3,64 @@ import type { Dual, Op4, Op5 } from "./api.js";
3
3
  /**
4
4
  * Computes: `ax^2 + bx + c`. All args must have same size/arity.
5
5
  *
6
- * @param x
7
- * @param a
8
- * @param b
9
- * @param c
6
+ * @param x -
7
+ * @param a -
8
+ * @param b -
9
+ * @param c -
10
10
  */
11
11
  export declare const quadratic: Op4;
12
12
  /**
13
13
  * Same as {@link quadratic}, but for real/scalar inputs. `x` is treated as
14
14
  * variable `x+1ε`, the rest as `n+0ε`.
15
15
  *
16
- * @param x
17
- * @param a
18
- * @param b
19
- * @param c
16
+ * @param x -
17
+ * @param a -
18
+ * @param b -
19
+ * @param c -
20
20
  */
21
21
  export declare const quadraticS: FnU4<number, Dual>;
22
22
  /**
23
23
  * Computes: `ax^3 + bx^2 + cx + d`. All args must have same size/arity.
24
24
  *
25
- * @param x
26
- * @param a
27
- * @param b
28
- * @param c
29
- * @param d
25
+ * @param x -
26
+ * @param a -
27
+ * @param b -
28
+ * @param c -
29
+ * @param d -
30
30
  */
31
31
  export declare const cubic: Op5;
32
32
  /**
33
33
  * Same as {@link cubic}, but for real/scalar inputs. `x` is treated as variable
34
34
  * `x+1ε`, the rest as `n+0ε`.
35
35
  *
36
- * @param x
37
- * @param a
38
- * @param b
39
- * @param c
40
- * @param d
36
+ * @param x -
37
+ * @param a -
38
+ * @param b -
39
+ * @param c -
40
+ * @param d -
41
41
  */
42
42
  export declare const cubicS: FnU5<number, Dual>;
43
43
  /**
44
44
  * Computes: `ax^4 + bx^3 + cx^2 + dx + e`. All args must have same size/arity.
45
45
  *
46
- * @param x
47
- * @param a
48
- * @param b
49
- * @param c
50
- * @param d
51
- * @param e
46
+ * @param x -
47
+ * @param a -
48
+ * @param b -
49
+ * @param c -
50
+ * @param d -
51
+ * @param e -
52
52
  */
53
53
  export declare const quartic: (x: Dual, a: Dual, b: Dual, c: Dual, d: Dual, e: Dual) => import("@thi.ng/api").NumericArray;
54
54
  /**
55
55
  * Same as {@link quartic}, but for real/scalar inputs. `x` is treated as
56
56
  * variable `x+1ε`, the rest as `n+0ε`.
57
57
  *
58
- * @param x
59
- * @param a
60
- * @param b
61
- * @param c
62
- * @param d
63
- * @param e
58
+ * @param x -
59
+ * @param a -
60
+ * @param b -
61
+ * @param c -
62
+ * @param d -
63
+ * @param e -
64
64
  */
65
65
  export declare const quarticS: FnU6<number, Dual>;
66
66
  //# sourceMappingURL=poly.d.ts.map
package/poly.js CHANGED
@@ -2,30 +2,30 @@ import { add, mul } from "./ops.js";
2
2
  /**
3
3
  * Computes: `ax^2 + bx + c`. All args must have same size/arity.
4
4
  *
5
- * @param x
6
- * @param a
7
- * @param b
8
- * @param c
5
+ * @param x -
6
+ * @param a -
7
+ * @param b -
8
+ * @param c -
9
9
  */
10
10
  export const quadratic = (x, a, b, c) => add(add(mul(a, mul(x, x)), mul(b, x)), c);
11
11
  /**
12
12
  * Same as {@link quadratic}, but for real/scalar inputs. `x` is treated as
13
13
  * variable `x+1ε`, the rest as `n+0ε`.
14
14
  *
15
- * @param x
16
- * @param a
17
- * @param b
18
- * @param c
15
+ * @param x -
16
+ * @param a -
17
+ * @param b -
18
+ * @param c -
19
19
  */
20
20
  export const quadraticS = (x, a, b, c) => quadratic([x, 1], [a, 0], [b, 0], [c, 0]);
21
21
  /**
22
22
  * Computes: `ax^3 + bx^2 + cx + d`. All args must have same size/arity.
23
23
  *
24
- * @param x
25
- * @param a
26
- * @param b
27
- * @param c
28
- * @param d
24
+ * @param x -
25
+ * @param a -
26
+ * @param b -
27
+ * @param c -
28
+ * @param d -
29
29
  */
30
30
  export const cubic = (x, a, b, c, d) => {
31
31
  const x2 = mul(x, x);
@@ -35,22 +35,22 @@ export const cubic = (x, a, b, c, d) => {
35
35
  * Same as {@link cubic}, but for real/scalar inputs. `x` is treated as variable
36
36
  * `x+1ε`, the rest as `n+0ε`.
37
37
  *
38
- * @param x
39
- * @param a
40
- * @param b
41
- * @param c
42
- * @param d
38
+ * @param x -
39
+ * @param a -
40
+ * @param b -
41
+ * @param c -
42
+ * @param d -
43
43
  */
44
44
  export const cubicS = (x, a, b, c, d) => cubic([x, 1], [a, 0], [b, 0], [c, 0], [d, 0]);
45
45
  /**
46
46
  * Computes: `ax^4 + bx^3 + cx^2 + dx + e`. All args must have same size/arity.
47
47
  *
48
- * @param x
49
- * @param a
50
- * @param b
51
- * @param c
52
- * @param d
53
- * @param e
48
+ * @param x -
49
+ * @param a -
50
+ * @param b -
51
+ * @param c -
52
+ * @param d -
53
+ * @param e -
54
54
  */
55
55
  export const quartic = (x, a, b, c, d, e) => {
56
56
  const x2 = mul(x, x);
@@ -61,11 +61,11 @@ export const quartic = (x, a, b, c, d, e) => {
61
61
  * Same as {@link quartic}, but for real/scalar inputs. `x` is treated as
62
62
  * variable `x+1ε`, the rest as `n+0ε`.
63
63
  *
64
- * @param x
65
- * @param a
66
- * @param b
67
- * @param c
68
- * @param d
69
- * @param e
64
+ * @param x -
65
+ * @param a -
66
+ * @param b -
67
+ * @param c -
68
+ * @param d -
69
+ * @param e -
70
70
  */
71
71
  export const quarticS = (x, a, b, c, d, e) => quartic([x, 1], [a, 0], [b, 0], [c, 0], [d, 0], [e, 0]);
package/vector.d.ts CHANGED
@@ -4,39 +4,39 @@ import type { Dual, OpV2 } from "./api.js";
4
4
  * Dual vector addition. Applies {@link add} in a component-wise manner. Returns
5
5
  * new (dual) vector.
6
6
  *
7
- * @param a
8
- * @param b
7
+ * @param a -
8
+ * @param b -
9
9
  */
10
10
  export declare const vadd: OpV2;
11
11
  /**
12
12
  * Dual vector subtraction. Applies {@link sub} in a component-wise manner.
13
13
  * Returns new (dual) vector.
14
14
  *
15
- * @param a
16
- * @param b
15
+ * @param a -
16
+ * @param b -
17
17
  */
18
18
  export declare const vsub: OpV2;
19
19
  /**
20
20
  * Dual vector multiplication. Applies {@link mul} in a component-wise manner.
21
21
  * Returns new (dual) vector.
22
22
  *
23
- * @param a
24
- * @param b
23
+ * @param a -
24
+ * @param b -
25
25
  */
26
26
  export declare const vmul: OpV2;
27
27
  /**
28
28
  * Dual vector division. Applies {@link div} in a component-wise manner.
29
29
  * Returns new (dual) vector.
30
30
  *
31
- * @param a
32
- * @param b
31
+ * @param a -
32
+ * @param b -
33
33
  */
34
34
  export declare const vdiv: OpV2;
35
35
  /**
36
36
  * Computes dot product of 2 dual vectors.
37
37
  *
38
- * @param a
39
- * @param b
38
+ * @param a -
39
+ * @param b -
40
40
  */
41
41
  export declare const dot: FnU2<Dual[], Dual>;
42
42
  //# sourceMappingURL=vector.d.ts.map
package/vector.js CHANGED
@@ -4,38 +4,38 @@ const defVecOp2 = (op) => (a, b) => a.map((a, i) => op(a, b[i]));
4
4
  * Dual vector addition. Applies {@link add} in a component-wise manner. Returns
5
5
  * new (dual) vector.
6
6
  *
7
- * @param a
8
- * @param b
7
+ * @param a -
8
+ * @param b -
9
9
  */
10
10
  export const vadd = defVecOp2(add);
11
11
  /**
12
12
  * Dual vector subtraction. Applies {@link sub} in a component-wise manner.
13
13
  * Returns new (dual) vector.
14
14
  *
15
- * @param a
16
- * @param b
15
+ * @param a -
16
+ * @param b -
17
17
  */
18
18
  export const vsub = defVecOp2(sub);
19
19
  /**
20
20
  * Dual vector multiplication. Applies {@link mul} in a component-wise manner.
21
21
  * Returns new (dual) vector.
22
22
  *
23
- * @param a
24
- * @param b
23
+ * @param a -
24
+ * @param b -
25
25
  */
26
26
  export const vmul = defVecOp2(mul);
27
27
  /**
28
28
  * Dual vector division. Applies {@link div} in a component-wise manner.
29
29
  * Returns new (dual) vector.
30
30
  *
31
- * @param a
32
- * @param b
31
+ * @param a -
32
+ * @param b -
33
33
  */
34
34
  export const vdiv = defVecOp2(div);
35
35
  /**
36
36
  * Computes dot product of 2 dual vectors.
37
37
  *
38
- * @param a
39
- * @param b
38
+ * @param a -
39
+ * @param b -
40
40
  */
41
41
  export const dot = (a, b) => a.reduce((acc, a, i) => add(acc, mul(a, b[i])), dual(0, a[0].length));