@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 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.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.17...@thi.ng/dual-algebra@0.1.18) (2021-08-17)
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.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.16...@thi.ng/dual-algebra@0.1.17) (2021-08-08)
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
- ## [0.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.15...@thi.ng/dual-algebra@0.1.16) (2021-08-08)
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
- ## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.13...@thi.ng/dual-algebra@0.1.14) (2021-07-01)
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
- # 0.1.0 (2020-09-13)
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
- ### Features
59
+ ### Features
58
60
 
59
- * **dual-algebra:** import as new package ([eec4f1c](https://github.com/thi-ng/umbrella/commit/eec4f1c588b194711477e5b992206840657d140f))
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
- // ES module
127
- <script type="module" src="https://unpkg.com/@thi.ng/dual-algebra?module" crossorigin></script>
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
- // UMD
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: 916 bytes / CJS: 1.03 KB / UMD: 1.08 KB
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
@@ -7,4 +7,5 @@ export declare type Op3 = FnU3<Dual>;
7
7
  export declare type Op4 = FnU4<Dual>;
8
8
  export declare type Op5 = FnU5<Dual>;
9
9
  export declare type Op6 = FnU6<Dual>;
10
+ export declare type OpV2 = FnU2<Dual[]>;
10
11
  //# sourceMappingURL=api.d.ts.map
package/index.d.ts CHANGED
@@ -1,4 +1,5 @@
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";
4
5
  //# sourceMappingURL=index.d.ts.map
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) => any[];
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) => any[];
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) => any[];
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) => any[];
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 > 2 ? multi(...xs) : single(...xs)));
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.1.18",
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 && yarn build:es6 && node ../../scripts/bundle-module",
28
- "build:release": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module all",
29
- "build:es6": "tsc --declaration",
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": "typedoc --excludePrivate --out doc --theme ../../tools/doc/typedoc-theme src/index.ts",
38
- "pub": "yarn build:release && yarn publish --access public"
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": "^7.1.9"
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
- "sideEffects": false,
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": "3365151f112c39f224541f5ac4cedf3370eb9ba4"
89
+ "gitHead": "3c5f903104da150588946a94bb118ad559ad395d"
73
90
  }
package/poly.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { FnU4, FnU5, FnU6 } from "@thi.ng/api";
2
- import type { Dual, Op4, Op5 } from "./api";
2
+ 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
  *
package/poly.js CHANGED
@@ -1,4 +1,4 @@
1
- import { add, mul } from "./ops";
1
+ import { add, mul } from "./ops.js";
2
2
  /**
3
3
  * Computes: `ax^2 + bx + c`. All args must have same size/arity.
4
4
  *
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})}));
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.umd.js","sources":["../ops.js","../poly.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;AAOY,UAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;IAC5C,IAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,OAAO,GAAG,CAAC;IACf,EAAE;AAOU,UAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAOxC,UAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAOlC,UAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAOlC,UAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,UAAC,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG;AAChH,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACxF,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACxF,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC7E,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;IACzF,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACvC,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;IACvG,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC/C,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;IAClF,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK;IACjC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,CAAC,KAAK;IACV,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACvB,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK;IACvC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtB,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,CAAC,KAAK;IACV,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK;IACvE,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;IACvF,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;IACjF,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;IAClF,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK;IACvC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,CAAC,KAAK;IACV,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AACS,UAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;IACpF,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;IACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE;AAgBS,UAAC,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAMtD,UAAC,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAM7E,UAAC,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;ACvKxG,UAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAUvE,UAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAUxE,UAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;IACxC,IAAI,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,EAAE;AAWU,UAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAW3E,UAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;IAC7C,IAAI,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,IAAI,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1B,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxF,EAAE;AAYU,UAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}