@thi.ng/dual-algebra 0.1.16 → 0.3.0

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,41 +3,43 @@
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.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)
6
+ # [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)
7
7
 
8
- **Note:** Version bump only for package @thi.ng/dual-algebra
9
8
 
9
+ ### Build System
10
10
 
11
+ * major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
11
12
 
12
13
 
14
+ ### BREAKING CHANGES
13
15
 
14
- ## [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)
16
+ * discontinue CommonJS & UMD versions
15
17
 
16
- **Note:** Version bump only for package @thi.ng/dual-algebra
18
+ - only ESM modules will be published from now on
19
+ - CJS obsolete due to ESM support in recent versions of node:
20
+ - i.e. launch NodeJS via:
21
+ - `node --experimental-specifier-resolution=node --experimental-repl-await`
22
+ - in the node REPL use `await import(...)` instead of `require()`
23
+ - UMD obsolete due to widespread browser support for ESM
17
24
 
25
+ Also:
26
+ - normalize/restructure/reorg all package.json files
27
+ - cleanup all build scripts, remove obsolete
28
+ - switch from mocha to @thi.ng/testament for all tests
18
29
 
19
30
 
20
31
 
21
32
 
22
- ## [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)
23
33
 
24
- **Note:** Version bump only for package @thi.ng/dual-algebra
25
34
 
35
+ # [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)
26
36
 
37
+ ### Features
27
38
 
39
+ - **dual-algebra:** add mix(), add vector ops ([091f872](https://github.com/thi-ng/umbrella/commit/091f872e12dd6ba404a22be8b33bfa97ff345557))
28
40
 
41
+ # 0.1.0 (2020-09-13)
29
42
 
30
- ## [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)
43
+ ### Features
31
44
 
32
- **Note:** Version bump only for package @thi.ng/dual-algebra
33
-
34
-
35
-
36
-
37
-
38
- # 0.1.0 (2020-09-13)
39
-
40
-
41
- ### Features
42
-
43
- * **dual-algebra:** import as new package ([eec4f1c](https://github.com/thi-ng/umbrella/commit/eec4f1c588b194711477e5b992206840657d140f))
45
+ - **dual-algebra:** import as new package ([eec4f1c](https://github.com/thi-ng/umbrella/commit/eec4f1c588b194711477e5b992206840657d140f))
package/README.md CHANGED
@@ -11,8 +11,10 @@ This project is part of the
11
11
 
12
12
  - [About](#about)
13
13
  - [Status](#status)
14
+ - [Related packages](#related-packages)
14
15
  - [Installation](#installation)
15
16
  - [Dependencies](#dependencies)
17
+ - [Usage examples](#usage-examples)
16
18
  - [API](#api)
17
19
  - [Authors](#authors)
18
20
  - [License](#license)
@@ -97,9 +99,9 @@ Trigonometry:
97
99
 
98
100
  Polynomials:
99
101
 
100
- - `quadratic(x, a, b, c)`
101
- - `cubic(x, a, b, c, d)`
102
- - `quartic(x, a, b, c, d)`
102
+ - `quadratic(x, a, b, c)` ⇒ _ax^2 + bx + c_
103
+ - `cubic(x, a, b, c, d)` ⇒ _ax^3 + bx^2 + cx + d_
104
+ - `quartic(x, a, b, c, d, e)` ⇒ _ax^4 + bx^3 + cx^2 + dx + e_
103
105
 
104
106
  For each polynomial, there're scalar versions available too, taking only
105
107
  rational numbers as arguments (rather than dual numbers already). These versions
@@ -111,26 +113,50 @@ are suffixed with `S` (for "scalar"): `quadraticS`, `cubicS` and `quarticS`...
111
113
 
112
114
  [Search or submit any issues for this package](https://github.com/thi-ng/umbrella/issues?q=%5Bdual-algebra%5D+in%3Atitle)
113
115
 
116
+ ### Related packages
117
+
118
+ - [@thi.ng/math](https://github.com/thi-ng/umbrella/tree/develop/packages/math) - Assorted common math functions & utilities
119
+
114
120
  ## Installation
115
121
 
116
122
  ```bash
117
123
  yarn add @thi.ng/dual-algebra
118
124
  ```
119
125
 
126
+ ES module import:
127
+
120
128
  ```html
121
- // ES module
122
- <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 NodeJS (v14.6+):
123
135
 
124
- // UMD
125
- <script src="https://unpkg.com/@thi.ng/dual-algebra/lib/index.umd.js" crossorigin></script>
136
+ ```text
137
+ node --experimental-specifier-resolution=node --experimental-repl-await
138
+
139
+ > const dualAlgebra = await import("@thi.ng/dual-algebra");
126
140
  ```
127
141
 
128
- Package sizes (gzipped, pre-treeshake): ESM: 916 bytes / CJS: 1.03 KB / UMD: 1.08 KB
142
+ Package sizes (gzipped, pre-treeshake): ESM: 1.00 KB
129
143
 
130
144
  ## Dependencies
131
145
 
132
146
  - [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api)
133
147
 
148
+ ## Usage examples
149
+
150
+ Several demos in this repo's
151
+ [/examples](https://github.com/thi-ng/umbrella/tree/develop/examples)
152
+ directory are using this package.
153
+
154
+ A selection:
155
+
156
+ | Screenshot | Description | Live demo | Source |
157
+ |:----------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------|:-----------------------------------------------------|:----------------------------------------------------------------------------------|
158
+ | <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) |
159
+
134
160
  ## API
135
161
 
136
162
  [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
1
  export * from "./api";
2
2
  export * from "./ops";
3
3
  export * from "./poly";
4
+ export * from "./vector";
4
5
  //# sourceMappingURL=index.d.ts.map
package/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./api";
2
2
  export * from "./ops";
3
3
  export * from "./poly";
4
+ export * from "./vector";
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";
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.16",
3
+ "version": "0.3.0",
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.8"
37
+ "@thi.ng/api": "^8.0.0"
38
+ },
39
+ "devDependencies": {
40
+ "@thi.ng/testament": "^0.1.0"
42
41
  },
43
- "files": [
44
- "*.js",
45
- "*.d.ts",
46
- "lib"
47
- ],
48
42
  "keywords": [
49
43
  "algebra",
50
44
  "datastructure",
@@ -61,10 +55,33 @@
61
55
  "publishConfig": {
62
56
  "access": "public"
63
57
  },
64
- "sideEffects": false,
58
+ "files": [
59
+ "*.js",
60
+ "*.d.ts"
61
+ ],
62
+ "exports": {
63
+ ".": {
64
+ "import": "./index.js"
65
+ },
66
+ "./api": {
67
+ "import": "./api.js"
68
+ },
69
+ "./ops": {
70
+ "import": "./ops.js"
71
+ },
72
+ "./poly": {
73
+ "import": "./poly.js"
74
+ },
75
+ "./vector": {
76
+ "import": "./vector.js"
77
+ }
78
+ },
65
79
  "thi.ng": {
80
+ "related": [
81
+ "math"
82
+ ],
66
83
  "status": "alpha",
67
84
  "year": 2020
68
85
  },
69
- "gitHead": "c3d907d40c82572fea9c259007dd68c9acbd5f1d"
86
+ "gitHead": "9ac1344b38b565eb894306fbf72233b6c0b2d115"
70
87
  }
package/vector.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ import type { FnU2 } from "@thi.ng/api";
2
+ import type { Dual, OpV2 } from "./api";
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";
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":"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"}