@thi.ng/dual-algebra 0.1.18 → 0.3.2
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 +23 -21
- package/README.md +27 -5
- package/api.d.ts +1 -0
- package/index.d.ts +4 -3
- package/index.js +4 -3
- package/ops.d.ts +13 -5
- package/ops.js +9 -1
- package/package.json +39 -22
- package/poly.d.ts +1 -1
- package/poly.js +1 -1
- package/vector.d.ts +42 -0
- package/vector.js +41 -0
- package/lib/index.js +0 -169
- package/lib/index.js.map +0 -1
- package/lib/index.umd.js +0 -1
- package/lib/index.umd.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [0.
|
|
6
|
+
## [0.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.3.1...@thi.ng/dual-algebra@0.3.2) (2021-10-15)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @thi.ng/dual-algebra
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
## [0.1
|
|
14
|
+
## [0.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.3.0...@thi.ng/dual-algebra@0.3.1) (2021-10-13)
|
|
15
15
|
|
|
16
16
|
**Note:** Version bump only for package @thi.ng/dual-algebra
|
|
17
17
|
|
|
@@ -19,41 +19,43 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
**Note:** Version bump only for package @thi.ng/dual-algebra
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.14...@thi.ng/dual-algebra@0.1.15) (2021-08-04)
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @thi.ng/dual-algebra
|
|
22
|
+
# [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.2.0...@thi.ng/dual-algebra@0.3.0) (2021-10-12)
|
|
33
23
|
|
|
34
24
|
|
|
25
|
+
### Build System
|
|
35
26
|
|
|
27
|
+
* major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
|
|
36
28
|
|
|
37
29
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
**Note:** Version bump only for package @thi.ng/dual-algebra
|
|
30
|
+
### BREAKING CHANGES
|
|
41
31
|
|
|
32
|
+
* discontinue CommonJS & UMD versions
|
|
42
33
|
|
|
34
|
+
- only ESM modules will be published from now on
|
|
35
|
+
- CJS obsolete due to ESM support in recent versions of node:
|
|
36
|
+
- i.e. launch NodeJS via:
|
|
37
|
+
- `node --experimental-specifier-resolution=node --experimental-repl-await`
|
|
38
|
+
- in the node REPL use `await import(...)` instead of `require()`
|
|
39
|
+
- UMD obsolete due to widespread browser support for ESM
|
|
43
40
|
|
|
41
|
+
Also:
|
|
42
|
+
- normalize/restructure/reorg all package.json files
|
|
43
|
+
- cleanup all build scripts, remove obsolete
|
|
44
|
+
- switch from mocha to @thi.ng/testament for all tests
|
|
44
45
|
|
|
45
46
|
|
|
46
|
-
## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.12...@thi.ng/dual-algebra@0.1.13) (2021-06-08)
|
|
47
47
|
|
|
48
|
-
**Note:** Version bump only for package @thi.ng/dual-algebra
|
|
49
48
|
|
|
50
49
|
|
|
51
50
|
|
|
51
|
+
# [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.18...@thi.ng/dual-algebra@0.2.0) (2021-09-03)
|
|
52
52
|
|
|
53
|
+
### Features
|
|
53
54
|
|
|
54
|
-
|
|
55
|
+
- **dual-algebra:** add mix(), add vector ops ([091f872](https://github.com/thi-ng/umbrella/commit/091f872e12dd6ba404a22be8b33bfa97ff345557))
|
|
55
56
|
|
|
57
|
+
# 0.1.0 (2020-09-13)
|
|
56
58
|
|
|
57
|
-
###
|
|
59
|
+
### Features
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
- **dual-algebra:** import as new package ([eec4f1c](https://github.com/thi-ng/umbrella/commit/eec4f1c588b194711477e5b992206840657d140f))
|
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ This project is part of the
|
|
|
14
14
|
- [Related packages](#related-packages)
|
|
15
15
|
- [Installation](#installation)
|
|
16
16
|
- [Dependencies](#dependencies)
|
|
17
|
+
- [Usage examples](#usage-examples)
|
|
17
18
|
- [API](#api)
|
|
18
19
|
- [Authors](#authors)
|
|
19
20
|
- [License](#license)
|
|
@@ -122,20 +123,41 @@ are suffixed with `S` (for "scalar"): `quadraticS`, `cubicS` and `quarticS`...
|
|
|
122
123
|
yarn add @thi.ng/dual-algebra
|
|
123
124
|
```
|
|
124
125
|
|
|
126
|
+
ES module import:
|
|
127
|
+
|
|
125
128
|
```html
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
<script type="module" src="https://cdn.skypack.dev/@thi.ng/dual-algebra"></script>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
[Skypack documentation](https://docs.skypack.dev/)
|
|
133
|
+
|
|
134
|
+
For Node.js REPL:
|
|
135
|
+
|
|
136
|
+
```text
|
|
137
|
+
# with flag only for < v16
|
|
138
|
+
node --experimental-repl-await
|
|
128
139
|
|
|
129
|
-
|
|
130
|
-
<script src="https://unpkg.com/@thi.ng/dual-algebra/lib/index.umd.js" crossorigin></script>
|
|
140
|
+
> const dualAlgebra = await import("@thi.ng/dual-algebra");
|
|
131
141
|
```
|
|
132
142
|
|
|
133
|
-
Package sizes (gzipped, pre-treeshake): ESM:
|
|
143
|
+
Package sizes (gzipped, pre-treeshake): ESM: 1.00 KB
|
|
134
144
|
|
|
135
145
|
## Dependencies
|
|
136
146
|
|
|
137
147
|
- [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api)
|
|
138
148
|
|
|
149
|
+
## Usage examples
|
|
150
|
+
|
|
151
|
+
Several demos in this repo's
|
|
152
|
+
[/examples](https://github.com/thi-ng/umbrella/tree/develop/examples)
|
|
153
|
+
directory are using this package.
|
|
154
|
+
|
|
155
|
+
A selection:
|
|
156
|
+
|
|
157
|
+
| Screenshot | Description | Live demo | Source |
|
|
158
|
+
|:----------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------|:-----------------------------------------------------|:----------------------------------------------------------------------------------|
|
|
159
|
+
| <img src="https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/examples/spline-tangent.png" width="240"/> | Compute cubic spline position & tangent using Dual Numbers | [Demo](https://demo.thi.ng/umbrella/spline-tangent/) | [Source](https://github.com/thi-ng/umbrella/tree/develop/examples/spline-tangent) |
|
|
160
|
+
|
|
139
161
|
## API
|
|
140
162
|
|
|
141
163
|
[Generated API docs](https://docs.thi.ng/umbrella/dual-algebra/)
|
package/api.d.ts
CHANGED
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export * from "./api";
|
|
2
|
-
export * from "./ops";
|
|
3
|
-
export * from "./poly";
|
|
1
|
+
export * from "./api.js";
|
|
2
|
+
export * from "./ops.js";
|
|
3
|
+
export * from "./poly.js";
|
|
4
|
+
export * from "./vector.js";
|
package/ops.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Op1, Op1N, Op2, Op3, Op4 } from "./api";
|
|
1
|
+
import type { Dual, Op1, Op1N, Op2, Op3, Op4 } from "./api.js";
|
|
2
2
|
/**
|
|
3
3
|
* Creates a multivariate dual number.
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@ import type { Op1, Op1N, Op2, Op3, Op4 } from "./api";
|
|
|
6
6
|
* @param n - number of variables (default: 1)
|
|
7
7
|
* @param i - variable index (0 < i <= n)
|
|
8
8
|
*/
|
|
9
|
-
export declare const dual: (real: number, n?: number, i?: number) =>
|
|
9
|
+
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
|
*
|
|
@@ -20,21 +20,21 @@ export declare const $: (r: number, i?: number) => number[];
|
|
|
20
20
|
* @param r
|
|
21
21
|
* @param i
|
|
22
22
|
*/
|
|
23
|
-
export declare const $2: (r: number, i?: number) =>
|
|
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
27
|
* @param r
|
|
28
28
|
* @param i
|
|
29
29
|
*/
|
|
30
|
-
export declare const $3: (r: number, i?: number) =>
|
|
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
34
|
* @param r
|
|
35
35
|
* @param i
|
|
36
36
|
*/
|
|
37
|
-
export declare const $4: (r: number, i?: number) =>
|
|
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;
|
|
39
39
|
export declare const add: Op2;
|
|
40
40
|
export declare const sub: Op2;
|
|
@@ -50,6 +50,14 @@ export declare const sin: Op1;
|
|
|
50
50
|
export declare const cos: Op1;
|
|
51
51
|
export declare const tan: Op1;
|
|
52
52
|
export declare const atan: Op1;
|
|
53
|
+
/**
|
|
54
|
+
* Linear interpolation for dual numbers: `a + (b - a) * t`
|
|
55
|
+
*
|
|
56
|
+
* @param a
|
|
57
|
+
* @param b
|
|
58
|
+
* @param t
|
|
59
|
+
*/
|
|
60
|
+
export declare const mix: (a: Dual, b: Dual, t: Dual) => import("@thi.ng/api").NumericArray;
|
|
53
61
|
/**
|
|
54
62
|
* Higher order function. Takes a 2-multivariate {@link Op2} and returns new
|
|
55
63
|
* function which takes two real numbers `x` and `y` representing variables in
|
package/ops.js
CHANGED
|
@@ -39,7 +39,7 @@ export const $3 = (r, i = 0) => dual(r, 3, i);
|
|
|
39
39
|
* @param i
|
|
40
40
|
*/
|
|
41
41
|
export const $4 = (r, i = 0) => dual(r, 4, i);
|
|
42
|
-
export const defOp = (single, multi, dispatch = 0) => (((...xs) => xs[dispatch].length
|
|
42
|
+
export const defOp = (single, multi, dispatch = 0) => (((...xs) => xs[dispatch].length < 3 ? single(...xs) : multi(...xs)));
|
|
43
43
|
export const add = defOp((a, b) => [a[0] + b[0], a[1] + b[1]], (a, b) => a.map((x, i) => x + b[i]));
|
|
44
44
|
export const sub = defOp((a, b) => [a[0] - b[0], a[1] - b[1]], (a, b) => a.map((x, i) => x - b[i]));
|
|
45
45
|
export const neg = defOp((a) => [-a[0], -a[1]], (a) => a.map((x) => (x !== 0 ? -x : 0)));
|
|
@@ -147,6 +147,14 @@ export const atan = defOp(([ar, ad]) => [Math.atan(ar), ad / (1 + ar * ar)], (a)
|
|
|
147
147
|
}
|
|
148
148
|
return out;
|
|
149
149
|
});
|
|
150
|
+
/**
|
|
151
|
+
* Linear interpolation for dual numbers: `a + (b - a) * t`
|
|
152
|
+
*
|
|
153
|
+
* @param a
|
|
154
|
+
* @param b
|
|
155
|
+
* @param t
|
|
156
|
+
*/
|
|
157
|
+
export const mix = (a, b, t) => add(a, mul(sub(b, a), t));
|
|
150
158
|
/**
|
|
151
159
|
* Higher order function. Takes a 2-multivariate {@link Op2} and returns new
|
|
152
160
|
* function which takes two real numbers `x` and `y` representing variables in
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thi.ng/dual-algebra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Multivariate dual number algebra, automatic differentiation",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"module": "./index.js",
|
|
6
|
-
"main": "./lib/index.js",
|
|
7
|
-
"umd:main": "./lib/index.umd.js",
|
|
8
7
|
"typings": "./index.d.ts",
|
|
8
|
+
"sideEffects": false,
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "https://github.com/thi-ng/umbrella.git"
|
|
@@ -24,27 +24,21 @@
|
|
|
24
24
|
"author": "Karsten Schmidt <k+npm@thi.ng>",
|
|
25
25
|
"license": "Apache-2.0",
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "yarn clean &&
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"build:test": "rimraf build && tsc -p test/tsconfig.json",
|
|
31
|
-
"build:check": "tsc --isolatedModules --noEmit",
|
|
32
|
-
"test": "mocha test",
|
|
33
|
-
"cover": "nyc mocha test && nyc report --reporter=lcov",
|
|
34
|
-
"clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib",
|
|
35
|
-
"doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts",
|
|
27
|
+
"build": "yarn clean && tsc --declaration",
|
|
28
|
+
"clean": "rimraf *.js *.d.ts *.map doc",
|
|
29
|
+
"doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
|
|
36
30
|
"doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose",
|
|
37
|
-
"doc": "
|
|
38
|
-
"
|
|
31
|
+
"doc:readme": "yarn doc:stats && ../../scripts/node-esm ../../tools/src/readme.ts",
|
|
32
|
+
"doc:stats": "../../scripts/node-esm ../../tools/src/module-stats.ts",
|
|
33
|
+
"pub": "yarn build && yarn publish --access public",
|
|
34
|
+
"test": "testament test"
|
|
39
35
|
},
|
|
40
36
|
"dependencies": {
|
|
41
|
-
"@thi.ng/api": "^
|
|
37
|
+
"@thi.ng/api": "^8.0.2"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@thi.ng/testament": "^0.1.2"
|
|
42
41
|
},
|
|
43
|
-
"files": [
|
|
44
|
-
"*.js",
|
|
45
|
-
"*.d.ts",
|
|
46
|
-
"lib"
|
|
47
|
-
],
|
|
48
42
|
"keywords": [
|
|
49
43
|
"algebra",
|
|
50
44
|
"datastructure",
|
|
@@ -61,7 +55,30 @@
|
|
|
61
55
|
"publishConfig": {
|
|
62
56
|
"access": "public"
|
|
63
57
|
},
|
|
64
|
-
"
|
|
58
|
+
"engines": {
|
|
59
|
+
"node": ">=12.7"
|
|
60
|
+
},
|
|
61
|
+
"files": [
|
|
62
|
+
"*.js",
|
|
63
|
+
"*.d.ts"
|
|
64
|
+
],
|
|
65
|
+
"exports": {
|
|
66
|
+
".": {
|
|
67
|
+
"import": "./index.js"
|
|
68
|
+
},
|
|
69
|
+
"./api": {
|
|
70
|
+
"import": "./api.js"
|
|
71
|
+
},
|
|
72
|
+
"./ops": {
|
|
73
|
+
"import": "./ops.js"
|
|
74
|
+
},
|
|
75
|
+
"./poly": {
|
|
76
|
+
"import": "./poly.js"
|
|
77
|
+
},
|
|
78
|
+
"./vector": {
|
|
79
|
+
"import": "./vector.js"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
65
82
|
"thi.ng": {
|
|
66
83
|
"related": [
|
|
67
84
|
"math"
|
|
@@ -69,5 +86,5 @@
|
|
|
69
86
|
"status": "alpha",
|
|
70
87
|
"year": 2020
|
|
71
88
|
},
|
|
72
|
-
"gitHead": "
|
|
89
|
+
"gitHead": "3c5f903104da150588946a94bb118ad559ad395d"
|
|
73
90
|
}
|
package/poly.d.ts
CHANGED
package/poly.js
CHANGED
package/vector.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { FnU2 } from "@thi.ng/api";
|
|
2
|
+
import type { Dual, OpV2 } from "./api.js";
|
|
3
|
+
/**
|
|
4
|
+
* Dual vector addition. Applies {@link add} in a component-wise manner. Returns
|
|
5
|
+
* new (dual) vector.
|
|
6
|
+
*
|
|
7
|
+
* @param a
|
|
8
|
+
* @param b
|
|
9
|
+
*/
|
|
10
|
+
export declare const vadd: OpV2;
|
|
11
|
+
/**
|
|
12
|
+
* Dual vector subtraction. Applies {@link sub} in a component-wise manner.
|
|
13
|
+
* Returns new (dual) vector.
|
|
14
|
+
*
|
|
15
|
+
* @param a
|
|
16
|
+
* @param b
|
|
17
|
+
*/
|
|
18
|
+
export declare const vsub: OpV2;
|
|
19
|
+
/**
|
|
20
|
+
* Dual vector multiplication. Applies {@link mul} in a component-wise manner.
|
|
21
|
+
* Returns new (dual) vector.
|
|
22
|
+
*
|
|
23
|
+
* @param a
|
|
24
|
+
* @param b
|
|
25
|
+
*/
|
|
26
|
+
export declare const vmul: OpV2;
|
|
27
|
+
/**
|
|
28
|
+
* Dual vector division. Applies {@link div} in a component-wise manner.
|
|
29
|
+
* Returns new (dual) vector.
|
|
30
|
+
*
|
|
31
|
+
* @param a
|
|
32
|
+
* @param b
|
|
33
|
+
*/
|
|
34
|
+
export declare const vdiv: OpV2;
|
|
35
|
+
/**
|
|
36
|
+
* Computes dot product of 2 dual vectors.
|
|
37
|
+
*
|
|
38
|
+
* @param a
|
|
39
|
+
* @param b
|
|
40
|
+
*/
|
|
41
|
+
export declare const dot: FnU2<Dual[], Dual>;
|
|
42
|
+
//# sourceMappingURL=vector.d.ts.map
|
package/vector.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { add, div, dual, mul, sub } from "./ops.js";
|
|
2
|
+
const defVecOp2 = (op) => (a, b) => a.map((a, i) => op(a, b[i]));
|
|
3
|
+
/**
|
|
4
|
+
* Dual vector addition. Applies {@link add} in a component-wise manner. Returns
|
|
5
|
+
* new (dual) vector.
|
|
6
|
+
*
|
|
7
|
+
* @param a
|
|
8
|
+
* @param b
|
|
9
|
+
*/
|
|
10
|
+
export const vadd = defVecOp2(add);
|
|
11
|
+
/**
|
|
12
|
+
* Dual vector subtraction. Applies {@link sub} in a component-wise manner.
|
|
13
|
+
* Returns new (dual) vector.
|
|
14
|
+
*
|
|
15
|
+
* @param a
|
|
16
|
+
* @param b
|
|
17
|
+
*/
|
|
18
|
+
export const vsub = defVecOp2(sub);
|
|
19
|
+
/**
|
|
20
|
+
* Dual vector multiplication. Applies {@link mul} in a component-wise manner.
|
|
21
|
+
* Returns new (dual) vector.
|
|
22
|
+
*
|
|
23
|
+
* @param a
|
|
24
|
+
* @param b
|
|
25
|
+
*/
|
|
26
|
+
export const vmul = defVecOp2(mul);
|
|
27
|
+
/**
|
|
28
|
+
* Dual vector division. Applies {@link div} in a component-wise manner.
|
|
29
|
+
* Returns new (dual) vector.
|
|
30
|
+
*
|
|
31
|
+
* @param a
|
|
32
|
+
* @param b
|
|
33
|
+
*/
|
|
34
|
+
export const vdiv = defVecOp2(div);
|
|
35
|
+
/**
|
|
36
|
+
* Computes dot product of 2 dual vectors.
|
|
37
|
+
*
|
|
38
|
+
* @param a
|
|
39
|
+
* @param b
|
|
40
|
+
*/
|
|
41
|
+
export const dot = (a, b) => a.reduce((acc, a, i) => add(acc, mul(a, b[i])), dual(0, a[0].length));
|
package/lib/index.js
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const dual = (real, n = 1, i = 0) => {
|
|
6
|
-
const out = new Array(n + 1).fill(0, 1);
|
|
7
|
-
out[0] = real;
|
|
8
|
-
i > 0 && (out[i] = 1);
|
|
9
|
-
return out;
|
|
10
|
-
};
|
|
11
|
-
const $ = (r, i = 0) => [r, i === 1 ? 1 : 0];
|
|
12
|
-
const $2 = (r, i = 0) => dual(r, 2, i);
|
|
13
|
-
const $3 = (r, i = 0) => dual(r, 3, i);
|
|
14
|
-
const $4 = (r, i = 0) => dual(r, 4, i);
|
|
15
|
-
const defOp = (single, multi, dispatch = 0) => (((...xs) => xs[dispatch].length > 2 ? multi(...xs) : single(...xs)));
|
|
16
|
-
const add = defOp((a, b) => [a[0] + b[0], a[1] + b[1]], (a, b) => a.map((x, i) => x + b[i]));
|
|
17
|
-
const sub = defOp((a, b) => [a[0] - b[0], a[1] - b[1]], (a, b) => a.map((x, i) => x - b[i]));
|
|
18
|
-
const neg = defOp((a) => [-a[0], -a[1]], (a) => a.map((x) => (x !== 0 ? -x : 0)));
|
|
19
|
-
const mul = defOp(([ar, ad], [br, bd]) => [ar * br, ar * bd + ad * br], (a, b) => {
|
|
20
|
-
const ar = a[0];
|
|
21
|
-
const br = b[0];
|
|
22
|
-
const out = [ar * br];
|
|
23
|
-
for (let i = a.length; --i >= 1;) {
|
|
24
|
-
out[i] = ar * b[i] + a[i] * br;
|
|
25
|
-
}
|
|
26
|
-
return out;
|
|
27
|
-
});
|
|
28
|
-
const div = defOp(([ar, ad], [br, bd]) => [ar / br, (ad * br - ar * bd) / (br * br)], (a, b) => {
|
|
29
|
-
const ar = a[0];
|
|
30
|
-
const br = b[0];
|
|
31
|
-
const ibr = 1 / (br * br);
|
|
32
|
-
const out = [ar / br];
|
|
33
|
-
for (let i = a.length; --i >= 1;) {
|
|
34
|
-
out[i] = (a[i] * br - ar * b[i]) * ibr;
|
|
35
|
-
}
|
|
36
|
-
return out;
|
|
37
|
-
});
|
|
38
|
-
const abs = defOp(([ar, ad]) => [Math.abs(ar), ad * Math.sign(ar)], (a) => {
|
|
39
|
-
const s = Math.sign(a[0]);
|
|
40
|
-
const out = [Math.abs(a[0])];
|
|
41
|
-
for (let i = a.length; --i >= 1;) {
|
|
42
|
-
out[i] = s * a[i];
|
|
43
|
-
}
|
|
44
|
-
return out;
|
|
45
|
-
});
|
|
46
|
-
const sqrt = defOp((a) => {
|
|
47
|
-
const s = Math.sqrt(a[0]);
|
|
48
|
-
return [s, (0.5 * a[1]) / s];
|
|
49
|
-
}, (a) => {
|
|
50
|
-
const s = Math.sqrt(a[0]);
|
|
51
|
-
const si = 0.5 / s;
|
|
52
|
-
const out = [s];
|
|
53
|
-
for (let i = a.length; --i >= 1;) {
|
|
54
|
-
out[i] = si * a[i];
|
|
55
|
-
}
|
|
56
|
-
return out;
|
|
57
|
-
});
|
|
58
|
-
const exp = defOp(([ar, ad]) => {
|
|
59
|
-
ar = Math.exp(ar);
|
|
60
|
-
return [ar, ad * ar];
|
|
61
|
-
}, (a) => {
|
|
62
|
-
const ar = Math.exp(a[0]);
|
|
63
|
-
const out = [ar];
|
|
64
|
-
for (let i = a.length; --i >= 1;) {
|
|
65
|
-
out[i] = ar * a[i];
|
|
66
|
-
}
|
|
67
|
-
return out;
|
|
68
|
-
});
|
|
69
|
-
const log = defOp(([ar, ad]) => [Math.log(ar), ad / ar], (a) => {
|
|
70
|
-
const ar = Math.log(a[0]);
|
|
71
|
-
const iar = 1 / ar;
|
|
72
|
-
const out = [ar];
|
|
73
|
-
for (let i = a.length; --i >= 1;) {
|
|
74
|
-
out[i] = iar * a[i];
|
|
75
|
-
}
|
|
76
|
-
return out;
|
|
77
|
-
});
|
|
78
|
-
const pow = defOp(([ar, ad], k) => [ar ** k, ad * k * ar ** (k - 1)], (a, k) => {
|
|
79
|
-
const f = k * a[0] ** (k - 1);
|
|
80
|
-
const out = [a[0] ** k];
|
|
81
|
-
for (let i = a.length; --i >= 1;) {
|
|
82
|
-
out[i] = f * a[i];
|
|
83
|
-
}
|
|
84
|
-
return out;
|
|
85
|
-
});
|
|
86
|
-
const sin = defOp(([ar, ad]) => [Math.sin(ar), ad * Math.cos(ar)], (a) => {
|
|
87
|
-
const c = Math.cos(a[0]);
|
|
88
|
-
const out = [Math.sin(a[0])];
|
|
89
|
-
for (let i = a.length; --i >= 1;) {
|
|
90
|
-
out[i] = c * a[i];
|
|
91
|
-
}
|
|
92
|
-
return out;
|
|
93
|
-
});
|
|
94
|
-
const cos = defOp(([ar, ad]) => [Math.cos(ar), -ad * Math.sin(ar)], (a) => {
|
|
95
|
-
const s = -Math.sin(a[0]);
|
|
96
|
-
const out = [Math.cos(a[0])];
|
|
97
|
-
for (let i = a.length; --i >= 1;) {
|
|
98
|
-
out[i] = s * a[i];
|
|
99
|
-
}
|
|
100
|
-
return out;
|
|
101
|
-
});
|
|
102
|
-
const tan = defOp(([ar, ad]) => {
|
|
103
|
-
const c = Math.cos(ar);
|
|
104
|
-
return [Math.tan(ar), ad / (c * c)];
|
|
105
|
-
}, (a) => {
|
|
106
|
-
const c = Math.cos(a[0]);
|
|
107
|
-
const ic = 1 / (c * c);
|
|
108
|
-
const out = [Math.tan(a[0])];
|
|
109
|
-
for (let i = a.length; --i >= 1;) {
|
|
110
|
-
out[i] = ic * a[i];
|
|
111
|
-
}
|
|
112
|
-
return out;
|
|
113
|
-
});
|
|
114
|
-
const atan = defOp(([ar, ad]) => [Math.atan(ar), ad / (1 + ar * ar)], (a) => {
|
|
115
|
-
const ar = a[0];
|
|
116
|
-
const iar = 1 / (1 + ar * ar);
|
|
117
|
-
const out = [Math.atan(ar)];
|
|
118
|
-
for (let i = a.length; --i >= 1;) {
|
|
119
|
-
out[i] = iar * a[i];
|
|
120
|
-
}
|
|
121
|
-
return out;
|
|
122
|
-
});
|
|
123
|
-
const evalFn2 = (fn) => (x, y) => fn([x, 1, 0], [y, 0, 1]);
|
|
124
|
-
const evalFn3 = (fn) => (x, y, z) => fn([x, 1, 0, 0], [y, 0, 1, 0], [z, 0, 0, 1]);
|
|
125
|
-
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]);
|
|
126
|
-
|
|
127
|
-
const quadratic = (x, a, b, c) => add(add(mul(a, mul(x, x)), mul(b, x)), c);
|
|
128
|
-
const quadraticS = (x, a, b, c) => quadratic([x, 1], [a, 0], [b, 0], [c, 0]);
|
|
129
|
-
const cubic = (x, a, b, c, d) => {
|
|
130
|
-
const x2 = mul(x, x);
|
|
131
|
-
return add(add(add(mul(a, mul(x2, x)), mul(b, x2)), mul(c, x)), d);
|
|
132
|
-
};
|
|
133
|
-
const cubicS = (x, a, b, c, d) => cubic([x, 1], [a, 0], [b, 0], [c, 0], [d, 0]);
|
|
134
|
-
const quartic = (x, a, b, c, d, e) => {
|
|
135
|
-
const x2 = mul(x, x);
|
|
136
|
-
const x3 = mul(x2, x);
|
|
137
|
-
return add(add(add(add(mul(a, mul(x3, x)), mul(b, x3)), mul(c, x2)), mul(d, x)), e);
|
|
138
|
-
};
|
|
139
|
-
const quarticS = (x, a, b, c, d, e) => quartic([x, 1], [a, 0], [b, 0], [c, 0], [d, 0], [e, 0]);
|
|
140
|
-
|
|
141
|
-
exports.$ = $;
|
|
142
|
-
exports.$2 = $2;
|
|
143
|
-
exports.$3 = $3;
|
|
144
|
-
exports.$4 = $4;
|
|
145
|
-
exports.abs = abs;
|
|
146
|
-
exports.add = add;
|
|
147
|
-
exports.atan = atan;
|
|
148
|
-
exports.cos = cos;
|
|
149
|
-
exports.cubic = cubic;
|
|
150
|
-
exports.cubicS = cubicS;
|
|
151
|
-
exports.defOp = defOp;
|
|
152
|
-
exports.div = div;
|
|
153
|
-
exports.dual = dual;
|
|
154
|
-
exports.evalFn2 = evalFn2;
|
|
155
|
-
exports.evalFn3 = evalFn3;
|
|
156
|
-
exports.evalFn4 = evalFn4;
|
|
157
|
-
exports.exp = exp;
|
|
158
|
-
exports.log = log;
|
|
159
|
-
exports.mul = mul;
|
|
160
|
-
exports.neg = neg;
|
|
161
|
-
exports.pow = pow;
|
|
162
|
-
exports.quadratic = quadratic;
|
|
163
|
-
exports.quadraticS = quadraticS;
|
|
164
|
-
exports.quartic = quartic;
|
|
165
|
-
exports.quarticS = quarticS;
|
|
166
|
-
exports.sin = sin;
|
|
167
|
-
exports.sqrt = sqrt;
|
|
168
|
-
exports.sub = sub;
|
|
169
|
-
exports.tan = tan;
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../ops.js","../poly.js"],"sourcesContent":null,"names":[],"mappings":"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"}
|
package/lib/index.umd.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(((t="undefined"!=typeof globalThis?globalThis:t||self).thi=t.thi||{},t.thi.ng=t.thi.ng||{},t.thi.ng.dualAlgebra={}))}(this,(function(t){"use strict";const n=(t,n=1,e=0)=>{const r=new Array(n+1).fill(0,1);return r[0]=t,e>0&&(r[e]=1),r},e=(t,n,e=0)=>(...r)=>r[e].length>2?n(...r):t(...r),r=e(((t,n)=>[t[0]+n[0],t[1]+n[1]]),((t,n)=>t.map(((t,e)=>t+n[e])))),a=e(((t,n)=>[t[0]-n[0],t[1]-n[1]]),((t,n)=>t.map(((t,e)=>t-n[e])))),o=e((t=>[-t[0],-t[1]]),(t=>t.map((t=>0!==t?-t:0)))),s=e((([t,n],[e,r])=>[t*e,t*r+n*e]),((t,n)=>{const e=t[0],r=n[0],a=[e*r];for(let o=t.length;--o>=1;)a[o]=e*n[o]+t[o]*r;return a})),h=e((([t,n],[e,r])=>[t/e,(n*e-t*r)/(e*e)]),((t,n)=>{const e=t[0],r=n[0],a=1/(r*r),o=[e/r];for(let s=t.length;--s>=1;)o[s]=(t[s]*r-e*n[s])*a;return o})),l=e((([t,n])=>[Math.abs(t),n*Math.sign(t)]),(t=>{const n=Math.sign(t[0]),e=[Math.abs(t[0])];for(let r=t.length;--r>=1;)e[r]=n*t[r];return e})),c=e((t=>{const n=Math.sqrt(t[0]);return[n,.5*t[1]/n]}),(t=>{const n=Math.sqrt(t[0]),e=.5/n,r=[n];for(let n=t.length;--n>=1;)r[n]=e*t[n];return r})),u=e((([t,n])=>[t=Math.exp(t),n*t]),(t=>{const n=Math.exp(t[0]),e=[n];for(let r=t.length;--r>=1;)e[r]=n*t[r];return e})),i=e((([t,n])=>[Math.log(t),n/t]),(t=>{const n=Math.log(t[0]),e=1/n,r=[n];for(let n=t.length;--n>=1;)r[n]=e*t[n];return r})),f=e((([t,n],e)=>[t**e,n*e*t**(e-1)]),((t,n)=>{const e=n*t[0]**(n-1),r=[t[0]**n];for(let n=t.length;--n>=1;)r[n]=e*t[n];return r})),M=e((([t,n])=>[Math.sin(t),n*Math.cos(t)]),(t=>{const n=Math.cos(t[0]),e=[Math.sin(t[0])];for(let r=t.length;--r>=1;)e[r]=n*t[r];return e})),g=e((([t,n])=>[Math.cos(t),-n*Math.sin(t)]),(t=>{const n=-Math.sin(t[0]),e=[Math.cos(t[0])];for(let r=t.length;--r>=1;)e[r]=n*t[r];return e})),d=e((([t,n])=>{const e=Math.cos(t);return[Math.tan(t),n/(e*e)]}),(t=>{const n=Math.cos(t[0]),e=1/(n*n),r=[Math.tan(t[0])];for(let n=t.length;--n>=1;)r[n]=e*t[n];return r})),p=e((([t,n])=>[Math.atan(t),n/(1+t*t)]),(t=>{const n=t[0],e=1/(1+n*n),r=[Math.atan(n)];for(let n=t.length;--n>=1;)r[n]=e*t[n];return r})),b=(t,n,e,a)=>r(r(s(n,s(t,t)),s(e,t)),a),q=(t,n,e,a,o)=>{const h=s(t,t);return r(r(r(s(n,s(h,t)),s(e,h)),s(a,t)),o)},m=(t,n,e,a,o,h)=>{const l=s(t,t),c=s(l,t);return r(r(r(r(s(n,s(c,t)),s(e,c)),s(a,l)),s(o,t)),h)};t.$=(t,n=0)=>[t,1===n?1:0],t.$2=(t,e=0)=>n(t,2,e),t.$3=(t,e=0)=>n(t,3,e),t.$4=(t,e=0)=>n(t,4,e),t.abs=l,t.add=r,t.atan=p,t.cos=g,t.cubic=q,t.cubicS=(t,n,e,r,a)=>q([t,1],[n,0],[e,0],[r,0],[a,0]),t.defOp=e,t.div=h,t.dual=n,t.evalFn2=t=>(n,e)=>t([n,1,0],[e,0,1]),t.evalFn3=t=>(n,e,r)=>t([n,1,0,0],[e,0,1,0],[r,0,0,1]),t.evalFn4=t=>(n,e,r,a)=>t([n,1,0,0,0],[e,0,1,0,0],[r,0,0,1,0],[a,0,0,0,1]),t.exp=u,t.log=i,t.mul=s,t.neg=o,t.pow=f,t.quadratic=b,t.quadraticS=(t,n,e,r)=>b([t,1],[n,0],[e,0],[r,0]),t.quartic=m,t.quarticS=(t,n,e,r,a,o)=>m([t,1],[n,0],[e,0],[r,0],[a,0],[o,0]),t.sin=M,t.sqrt=c,t.sub=a,t.tan=d,Object.defineProperty(t,"__esModule",{value:!0})}));
|
package/lib/index.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../ops.js","../poly.js"],"sourcesContent":null,"names":[],"mappings":"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"}
|