@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 +21 -19
- package/README.md +34 -8
- package/api.d.ts +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/ops.d.ts +13 -5
- package/ops.js +9 -1
- package/package.json +39 -22
- 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,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
|
-
|
|
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
|
-
|
|
16
|
+
* discontinue CommonJS & UMD versions
|
|
15
17
|
|
|
16
|
-
|
|
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
|
-
|
|
43
|
+
### Features
|
|
31
44
|
|
|
32
|
-
**
|
|
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
|
-
|
|
122
|
-
|
|
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
|
-
|
|
125
|
-
|
|
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:
|
|
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
package/index.d.ts
CHANGED
package/index.js
CHANGED
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) =>
|
|
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.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 &&
|
|
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.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
|
-
"
|
|
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": "
|
|
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})}));
|
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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"}
|