@thi.ng/fuzzy 1.0.2 → 2.0.1
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 +35 -36
- package/README.md +14 -5
- package/defuzz.d.ts +2 -2
- package/defuzz.js +3 -3
- package/index.d.ts +9 -9
- package/index.js +9 -9
- package/package.json +59 -24
- package/rules.d.ts +1 -1
- package/rules.js +1 -1
- package/shapes.d.ts +1 -1
- package/shapes.js +4 -1
- package/strategies/bisector.d.ts +1 -1
- package/strategies/bisector.js +2 -2
- package/strategies/centroid.d.ts +1 -1
- package/strategies/centroid.js +1 -1
- package/strategies/maxima.d.ts +1 -1
- package/strategies/maxima.js +2 -2
- package/strategies/opts.d.ts +1 -1
- package/strategies/opts.js +5 -1
- package/tnorms.js +4 -2
- package/var.d.ts +2 -2
- package/lib/index.js +0 -270
- 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
|
-
## [
|
|
6
|
+
## [2.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy@2.0.0...@thi.ng/fuzzy@2.0.1) (2021-10-13)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @thi.ng/fuzzy
|
|
9
9
|
|
|
@@ -11,58 +11,57 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
**Note:** Version bump only for package @thi.ng/fuzzy
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy@0.1.13...@thi.ng/fuzzy@0.1.14) (2021-08-04)
|
|
23
|
-
|
|
24
|
-
**Note:** Version bump only for package @thi.ng/fuzzy
|
|
14
|
+
# [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy@1.0.4...@thi.ng/fuzzy@2.0.0) (2021-10-12)
|
|
25
15
|
|
|
26
16
|
|
|
17
|
+
### Build System
|
|
27
18
|
|
|
19
|
+
* major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
|
|
28
20
|
|
|
29
21
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @thi.ng/fuzzy
|
|
22
|
+
### BREAKING CHANGES
|
|
33
23
|
|
|
24
|
+
* discontinue CommonJS & UMD versions
|
|
34
25
|
|
|
26
|
+
- only ESM modules will be published from now on
|
|
27
|
+
- CJS obsolete due to ESM support in recent versions of node:
|
|
28
|
+
- i.e. launch NodeJS via:
|
|
29
|
+
- `node --experimental-specifier-resolution=node --experimental-repl-await`
|
|
30
|
+
- in the node REPL use `await import(...)` instead of `require()`
|
|
31
|
+
- UMD obsolete due to widespread browser support for ESM
|
|
35
32
|
|
|
33
|
+
Also:
|
|
34
|
+
- normalize/restructure/reorg all package.json files
|
|
35
|
+
- cleanup all build scripts, remove obsolete
|
|
36
|
+
- switch from mocha to @thi.ng/testament for all tests
|
|
36
37
|
|
|
37
38
|
|
|
38
|
-
## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy@0.1.11...@thi.ng/fuzzy@0.1.12) (2021-06-08)
|
|
39
|
-
|
|
40
|
-
**Note:** Version bump only for package @thi.ng/fuzzy
|
|
41
|
-
|
|
42
39
|
|
|
43
40
|
|
|
44
41
|
|
|
45
42
|
|
|
46
|
-
|
|
43
|
+
## [1.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/fuzzy@1.0.3...@thi.ng/fuzzy@1.0.4) (2021-09-03)
|
|
47
44
|
|
|
45
|
+
**Note:** Version bump only for package @thi.ng/fuzzy
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
# 0.1.0 (2020-12-22)
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
* **fuzzy:** add evaluate() ([0ffc9d0](https://github.com/thi-ng/umbrella/commit/0ffc9d01f9bd40ba616d1f59e3ced74fa7c0dc7f))
|
|
53
|
-
* **fuzzy:** add maxima(), compose(), restructure ([f15d8d7](https://github.com/thi-ng/umbrella/commit/f15d8d73df2a438d4866d57fc25fed625acd7a8a))
|
|
54
|
-
* **fuzzy:** add min true threshold for classify() ([6f49a30](https://github.com/thi-ng/umbrella/commit/6f49a308c62a598f6d0a0e6e5046cd8e24d81eab))
|
|
55
|
-
* **fuzzy:** add shapes, strongAnd(), update combineTerms() ([5bf8f0c](https://github.com/thi-ng/umbrella/commit/5bf8f0c01541afeb367eff21cb45118a1b62549a))
|
|
56
|
-
* **fuzzy:** add strict arg for classify(), update docs ([b39248f](https://github.com/thi-ng/umbrella/commit/b39248f359aa0148ff72c484d78175f8f435fe97))
|
|
57
|
-
* **fuzzy:** add/update/migrate defuzz strategies ([c1ee15f](https://github.com/thi-ng/umbrella/commit/c1ee15fdce2b08176c5bc97ba9ca7a56a84817c7))
|
|
58
|
-
* **fuzzy:** import as new pkg, refactor ([a578194](https://github.com/thi-ng/umbrella/commit/a57819454f38de4c35095b64b9e7028d9ac21454))
|
|
59
|
-
* **fuzzy:** make lvar, rules, defuzz() typesafe ([0b210c3](https://github.com/thi-ng/umbrella/commit/0b210c3841ce9184b8dfb83ca2dde5ceca0a3b6e))
|
|
60
|
-
* **fuzzy:** migrate t-norms from [@thi](https://github.com/thi).ng/math pkg ([f8993e0](https://github.com/thi-ng/umbrella/commit/f8993e0dc1aed0243629a21d36ee85e91b2e938d))
|
|
61
|
-
* **fuzzy:** update defuzz() & strategies ([cf337f3](https://github.com/thi-ng/umbrella/commit/cf337f36dbf24a9cfc4c6f364c3aea82428b5940))
|
|
62
|
-
* **fuzzy:** update defuzz() output prep ([81abe8c](https://github.com/thi-ng/umbrella/commit/81abe8cb718ce335940234aecf693ba53564a715))
|
|
63
|
-
* **fuzzy:** update types, update compose ([566469d](https://github.com/thi-ng/umbrella/commit/566469d5c420cc2c4fdc3b107e04b52929b61915))
|
|
49
|
+
### Features
|
|
64
50
|
|
|
51
|
+
- **fuzzy:** add alphaCut() & implication() fns ([8ec15fa](https://github.com/thi-ng/umbrella/commit/8ec15fa5c0f33fd7342c4047a5523e9fd0597ed1))
|
|
52
|
+
- **fuzzy:** add evaluate() ([0ffc9d0](https://github.com/thi-ng/umbrella/commit/0ffc9d01f9bd40ba616d1f59e3ced74fa7c0dc7f))
|
|
53
|
+
- **fuzzy:** add maxima(), compose(), restructure ([f15d8d7](https://github.com/thi-ng/umbrella/commit/f15d8d73df2a438d4866d57fc25fed625acd7a8a))
|
|
54
|
+
- **fuzzy:** add min true threshold for classify() ([6f49a30](https://github.com/thi-ng/umbrella/commit/6f49a308c62a598f6d0a0e6e5046cd8e24d81eab))
|
|
55
|
+
- **fuzzy:** add shapes, strongAnd(), update combineTerms() ([5bf8f0c](https://github.com/thi-ng/umbrella/commit/5bf8f0c01541afeb367eff21cb45118a1b62549a))
|
|
56
|
+
- **fuzzy:** add strict arg for classify(), update docs ([b39248f](https://github.com/thi-ng/umbrella/commit/b39248f359aa0148ff72c484d78175f8f435fe97))
|
|
57
|
+
- **fuzzy:** add/update/migrate defuzz strategies ([c1ee15f](https://github.com/thi-ng/umbrella/commit/c1ee15fdce2b08176c5bc97ba9ca7a56a84817c7))
|
|
58
|
+
- **fuzzy:** import as new pkg, refactor ([a578194](https://github.com/thi-ng/umbrella/commit/a57819454f38de4c35095b64b9e7028d9ac21454))
|
|
59
|
+
- **fuzzy:** make lvar, rules, defuzz() typesafe ([0b210c3](https://github.com/thi-ng/umbrella/commit/0b210c3841ce9184b8dfb83ca2dde5ceca0a3b6e))
|
|
60
|
+
- **fuzzy:** migrate t-norms from [@thi](https://github.com/thi).ng/math pkg ([f8993e0](https://github.com/thi-ng/umbrella/commit/f8993e0dc1aed0243629a21d36ee85e91b2e938d))
|
|
61
|
+
- **fuzzy:** update defuzz() & strategies ([cf337f3](https://github.com/thi-ng/umbrella/commit/cf337f36dbf24a9cfc4c6f364c3aea82428b5940))
|
|
62
|
+
- **fuzzy:** update defuzz() output prep ([81abe8c](https://github.com/thi-ng/umbrella/commit/81abe8cb718ce335940234aecf693ba53564a715))
|
|
63
|
+
- **fuzzy:** update types, update compose ([566469d](https://github.com/thi-ng/umbrella/commit/566469d5c420cc2c4fdc3b107e04b52929b61915))
|
|
65
64
|
|
|
66
|
-
###
|
|
65
|
+
### Performance Improvements
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
- **fuzzy:** update defuzz() ([60030dd](https://github.com/thi-ng/umbrella/commit/60030dd9a5ceb02d58ad89766e14f80019f6f72f))
|
package/README.md
CHANGED
|
@@ -72,15 +72,24 @@ Fuzzy logic operators & configurable rule inferencing engine.
|
|
|
72
72
|
yarn add @thi.ng/fuzzy
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
+
ES module import:
|
|
76
|
+
|
|
75
77
|
```html
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
<script type="module" src="https://cdn.skypack.dev/@thi.ng/fuzzy"></script>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
[Skypack documentation](https://docs.skypack.dev/)
|
|
82
|
+
|
|
83
|
+
For Node.js REPL:
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
# with flag only for < v16
|
|
87
|
+
node --experimental-repl-await
|
|
78
88
|
|
|
79
|
-
|
|
80
|
-
<script src="https://unpkg.com/@thi.ng/fuzzy/lib/index.umd.js" crossorigin></script>
|
|
89
|
+
> const fuzzy = await import("@thi.ng/fuzzy");
|
|
81
90
|
```
|
|
82
91
|
|
|
83
|
-
Package sizes (gzipped, pre-treeshake): ESM: 1.
|
|
92
|
+
Package sizes (gzipped, pre-treeshake): ESM: 1.66 KB
|
|
84
93
|
|
|
85
94
|
## Dependencies
|
|
86
95
|
|
package/defuzz.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LVarSet, Rule } from "./api";
|
|
1
|
+
import type { LVarSet, Rule } from "./api.js";
|
|
2
2
|
/**
|
|
3
3
|
* Takes an object of input {@link variable}s, an object of output variable,
|
|
4
4
|
* rule array and an object of input values. Evaluates relevant terms of input
|
|
@@ -25,5 +25,5 @@ import type { LVarSet, Rule } from "./api";
|
|
|
25
25
|
* @param imply
|
|
26
26
|
* @param combine
|
|
27
27
|
*/
|
|
28
|
-
export declare const defuzz: <I extends LVarSet<string>, O extends LVarSet<string>>(ins: I, outs: O, rules: Rule<I, O>[], vals: Partial<Record<keyof I, number>>, strategy?: import("./api").DefuzzStrategy, imply?: import("@thi.ng/api").FnN2, combine?: import("@thi.ng/api").FnN2) => Partial<Record<keyof O, number>>;
|
|
28
|
+
export declare const defuzz: <I extends LVarSet<string>, O extends LVarSet<string>>(ins: I, outs: O, rules: Rule<I, O>[], vals: Partial<Record<keyof I, number>>, strategy?: import("./api.js").DefuzzStrategy, imply?: import("@thi.ng/api").FnN2, combine?: import("@thi.ng/api").FnN2) => Partial<Record<keyof O, number>>;
|
|
29
29
|
//# sourceMappingURL=defuzz.d.ts.map
|
package/defuzz.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { constant, intersect, union, weighted } from "./shapes";
|
|
2
|
-
import { centroidStrategy } from "./strategies/centroid";
|
|
3
|
-
import { snormMax, tnormMin } from "./tnorms";
|
|
1
|
+
import { constant, intersect, union, weighted } from "./shapes.js";
|
|
2
|
+
import { centroidStrategy } from "./strategies/centroid.js";
|
|
3
|
+
import { snormMax, tnormMin } from "./tnorms.js";
|
|
4
4
|
/**
|
|
5
5
|
* Takes an object of input {@link variable}s, an object of output variable,
|
|
6
6
|
* rule array and an object of input values. Evaluates relevant terms of input
|
package/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * from "./api";
|
|
2
|
-
export * from "./defuzz";
|
|
3
|
-
export * from "./rules";
|
|
4
|
-
export * from "./shapes";
|
|
5
|
-
export * from "./tnorms";
|
|
6
|
-
export * from "./var";
|
|
7
|
-
export * from "./strategies/bisector";
|
|
8
|
-
export * from "./strategies/centroid";
|
|
9
|
-
export * from "./strategies/maxima";
|
|
1
|
+
export * from "./api.js";
|
|
2
|
+
export * from "./defuzz.js";
|
|
3
|
+
export * from "./rules.js";
|
|
4
|
+
export * from "./shapes.js";
|
|
5
|
+
export * from "./tnorms.js";
|
|
6
|
+
export * from "./var.js";
|
|
7
|
+
export * from "./strategies/bisector.js";
|
|
8
|
+
export * from "./strategies/centroid.js";
|
|
9
|
+
export * from "./strategies/maxima.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * from "./api";
|
|
2
|
-
export * from "./defuzz";
|
|
3
|
-
export * from "./rules";
|
|
4
|
-
export * from "./shapes";
|
|
5
|
-
export * from "./tnorms";
|
|
6
|
-
export * from "./var";
|
|
7
|
-
export * from "./strategies/bisector";
|
|
8
|
-
export * from "./strategies/centroid";
|
|
9
|
-
export * from "./strategies/maxima";
|
|
1
|
+
export * from "./api.js";
|
|
2
|
+
export * from "./defuzz.js";
|
|
3
|
+
export * from "./rules.js";
|
|
4
|
+
export * from "./shapes.js";
|
|
5
|
+
export * from "./tnorms.js";
|
|
6
|
+
export * from "./var.js";
|
|
7
|
+
export * from "./strategies/bisector.js";
|
|
8
|
+
export * from "./strategies/centroid.js";
|
|
9
|
+
export * from "./strategies/maxima.js";
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thi.ng/fuzzy",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Fuzzy logic operators & configurable rule inferencing engine",
|
|
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,29 +24,22 @@
|
|
|
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 strategies",
|
|
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 strategies",
|
|
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": "^
|
|
42
|
-
"@thi.ng/math": "^
|
|
37
|
+
"@thi.ng/api": "^8.0.1",
|
|
38
|
+
"@thi.ng/math": "^5.0.1"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@thi.ng/testament": "^0.1.1"
|
|
43
42
|
},
|
|
44
|
-
"files": [
|
|
45
|
-
"*.js",
|
|
46
|
-
"*.d.ts",
|
|
47
|
-
"lib",
|
|
48
|
-
"strategies"
|
|
49
|
-
],
|
|
50
43
|
"keywords": [
|
|
51
44
|
"agent",
|
|
52
45
|
"functional",
|
|
@@ -61,9 +54,51 @@
|
|
|
61
54
|
"publishConfig": {
|
|
62
55
|
"access": "public"
|
|
63
56
|
},
|
|
64
|
-
"
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=12.7"
|
|
59
|
+
},
|
|
60
|
+
"files": [
|
|
61
|
+
"*.js",
|
|
62
|
+
"*.d.ts",
|
|
63
|
+
"strategies"
|
|
64
|
+
],
|
|
65
|
+
"exports": {
|
|
66
|
+
".": {
|
|
67
|
+
"import": "./index.js"
|
|
68
|
+
},
|
|
69
|
+
"./api": {
|
|
70
|
+
"import": "./api.js"
|
|
71
|
+
},
|
|
72
|
+
"./defuzz": {
|
|
73
|
+
"import": "./defuzz.js"
|
|
74
|
+
},
|
|
75
|
+
"./rules": {
|
|
76
|
+
"import": "./rules.js"
|
|
77
|
+
},
|
|
78
|
+
"./shapes": {
|
|
79
|
+
"import": "./shapes.js"
|
|
80
|
+
},
|
|
81
|
+
"./strategies/bisector": {
|
|
82
|
+
"import": "./strategies/bisector.js"
|
|
83
|
+
},
|
|
84
|
+
"./strategies/centroid": {
|
|
85
|
+
"import": "./strategies/centroid.js"
|
|
86
|
+
},
|
|
87
|
+
"./strategies/maxima": {
|
|
88
|
+
"import": "./strategies/maxima.js"
|
|
89
|
+
},
|
|
90
|
+
"./strategies/opts": {
|
|
91
|
+
"import": "./strategies/opts.js"
|
|
92
|
+
},
|
|
93
|
+
"./tnorms": {
|
|
94
|
+
"import": "./tnorms.js"
|
|
95
|
+
},
|
|
96
|
+
"./var": {
|
|
97
|
+
"import": "./var.js"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
65
100
|
"thi.ng": {
|
|
66
101
|
"year": 2020
|
|
67
102
|
},
|
|
68
|
-
"gitHead": "
|
|
103
|
+
"gitHead": "2e6b3d7c0f4c5686c1e9bdb4902ed7d3f90bcc19"
|
|
69
104
|
}
|
package/rules.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FnN2 } from "@thi.ng/api";
|
|
2
|
-
import type { LVarKeySet, LVarSet, Rule } from "./api";
|
|
2
|
+
import type { LVarKeySet, LVarSet, Rule } from "./api.js";
|
|
3
3
|
/**
|
|
4
4
|
* Defines and returns a new rule object. Takes a T-norm (or S-norm) `op`, an
|
|
5
5
|
* object of input conditions, an object of results and optional rule `weight`.
|
package/rules.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { snormMax, tnormMin, tnormProduct } from "./tnorms";
|
|
1
|
+
import { snormMax, tnormMin, tnormProduct } from "./tnorms.js";
|
|
2
2
|
/**
|
|
3
3
|
* Defines and returns a new rule object. Takes a T-norm (or S-norm) `op`, an
|
|
4
4
|
* object of input conditions, an object of results and optional rule `weight`.
|
package/shapes.d.ts
CHANGED
package/shapes.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { EPS
|
|
1
|
+
import { EPS } from "@thi.ng/math/api";
|
|
2
|
+
import { eqDelta } from "@thi.ng/math/eqdelta";
|
|
3
|
+
import { fit, fitClamped } from "@thi.ng/math/fit";
|
|
4
|
+
import { gaussian as $gaussian, sigmoid as $sigmoid } from "@thi.ng/math/mix";
|
|
2
5
|
/**
|
|
3
6
|
* HOF {@link FuzzyFn} always yielding given `x` (should be in [0,1]
|
|
4
7
|
* interval).
|
package/strategies/bisector.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api";
|
|
1
|
+
import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api.js";
|
|
2
2
|
/**
|
|
3
3
|
* Higher-order function: Bisector-of-Area defuzzification strategy. Returns
|
|
4
4
|
* strategy which computes the integral of a given fuzzy set in the defined
|
package/strategies/bisector.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { fit } from "@thi.ng/math";
|
|
2
|
-
import { defaultOpts } from "./opts";
|
|
1
|
+
import { fit } from "@thi.ng/math/fit";
|
|
2
|
+
import { defaultOpts } from "./opts.js";
|
|
3
3
|
/**
|
|
4
4
|
* Higher-order function: Bisector-of-Area defuzzification strategy. Returns
|
|
5
5
|
* strategy which computes the integral of a given fuzzy set in the defined
|
package/strategies/centroid.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api";
|
|
1
|
+
import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api.js";
|
|
2
2
|
/**
|
|
3
3
|
* Higher-order function: Centre-of-gravity defuzzification strategy, yielding
|
|
4
4
|
* the approx. center of gravity position of a given fuzzy set. The domain is
|
package/strategies/centroid.js
CHANGED
package/strategies/maxima.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api";
|
|
1
|
+
import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api.js";
|
|
2
2
|
/**
|
|
3
3
|
* Higher-order function. Returns Mean-of-Maxima defuzzification strategy,
|
|
4
4
|
* yielding the approx. mean of the maximum region of a given fuzzy set.
|
package/strategies/maxima.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { eqDelta } from "@thi.ng/math";
|
|
2
|
-
import { defaultOpts } from "./opts";
|
|
1
|
+
import { eqDelta } from "@thi.ng/math/eqdelta";
|
|
2
|
+
import { defaultOpts } from "./opts.js";
|
|
3
3
|
/**
|
|
4
4
|
* Higher-order function. Returns Mean-of-Maxima defuzzification strategy,
|
|
5
5
|
* yielding the approx. mean of the maximum region of a given fuzzy set.
|
package/strategies/opts.d.ts
CHANGED
package/strategies/opts.js
CHANGED
package/tnorms.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { norm } from "@thi.ng/math/fit";
|
|
2
|
+
import { clamp0 } from "@thi.ng/math/interval";
|
|
2
3
|
// https://en.wikipedia.org/wiki/T-norm
|
|
3
4
|
export const tnormMin = (x, y) => Math.min(x, y);
|
|
4
5
|
export const tnormProduct = (x, y) => x * y;
|
|
@@ -47,7 +48,8 @@ export const tnormDombi = (p = 2) => p === 0
|
|
|
47
48
|
*
|
|
48
49
|
* @param p - curve param [0..∞], default: 2
|
|
49
50
|
*/
|
|
50
|
-
export const tnormAczelAlsina = (p = 2) => (x, y) => Math.exp(-((Math.abs(Math.log(x)) ** p + Math.abs(Math.log(y)) ** p) **
|
|
51
|
+
export const tnormAczelAlsina = (p = 2) => (x, y) => Math.exp(-((Math.abs(Math.log(x)) ** p + Math.abs(Math.log(y)) ** p) **
|
|
52
|
+
(1 / p)));
|
|
51
53
|
/**
|
|
52
54
|
* S-norm (T-conorm), dual of {@link tnormMin}.
|
|
53
55
|
*
|
package/var.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LVar } from "./api";
|
|
1
|
+
import type { LVar } from "./api.js";
|
|
2
2
|
/**
|
|
3
3
|
* Takes a `domain` interval and on object of named fuzzy sets and returns a new
|
|
4
4
|
* Linguistic variable, which can then be used as input or output var for
|
|
@@ -18,7 +18,7 @@ import type { LVar } from "./api";
|
|
|
18
18
|
* @param domain
|
|
19
19
|
* @param terms
|
|
20
20
|
*/
|
|
21
|
-
export declare const variable: <K extends string>(domain: import("@thi.ng/api").Range, terms: import("./api").LVarTerms<K>) => LVar<K>;
|
|
21
|
+
export declare const variable: <K extends string>(domain: import("@thi.ng/api").Range, terms: import("./api.js").LVarTerms<K>) => LVar<K>;
|
|
22
22
|
/**
|
|
23
23
|
* Takes an LVar and a domain value `x`. Returns the ID of the var's fuzzy set
|
|
24
24
|
* term which yields the max truth value for given `x`. If `threshold` is
|
package/lib/index.js
DELETED
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var math = require('@thi.ng/math');
|
|
6
|
-
|
|
7
|
-
const constant = (x) => () => x;
|
|
8
|
-
const point = (p, eps = math.EPS) => (x) => math.eqDelta(x, p, eps) ? 1 : 0;
|
|
9
|
-
const ramp = (a, b) => (x) => math.fitClamped(x, a, b, 0, 1);
|
|
10
|
-
const triangle = (a, b, c) => (x) => x < a || x > c ? 0 : x <= b ? math.fit(x, a, b, 0, 1) : math.fit(x, b, c, 1, 0);
|
|
11
|
-
const trapezoid = (a, b, c, d) => (x) => x < a || x > d
|
|
12
|
-
? 0
|
|
13
|
-
: x > b && x < c
|
|
14
|
-
? 1
|
|
15
|
-
: x <= b
|
|
16
|
-
? math.fit(x, a, b, 0, 1)
|
|
17
|
-
: math.fit(x, c, d, 1, 0);
|
|
18
|
-
const sigmoid = (bias, steep) => (x) => math.sigmoid(bias, steep, x);
|
|
19
|
-
const gaussian = (bias, sigma) => (x) => math.gaussian(bias, sigma, x);
|
|
20
|
-
const negate = (fn) => (x) => 1 - fn(x);
|
|
21
|
-
const invRamp = (a, b) => negate(ramp(a, b));
|
|
22
|
-
const invSigmoid = (bias, steep) => negate(sigmoid(bias, steep));
|
|
23
|
-
const weighted = (fn, weight) => (x) => weight * fn(x);
|
|
24
|
-
const alphaCut = (fn, alpha = 0.5) => (x) => {
|
|
25
|
-
const y = fn(x);
|
|
26
|
-
return y > alpha ? y : 0;
|
|
27
|
-
};
|
|
28
|
-
const invAlphaCut = (fn, alpha = 0.5) => (x) => {
|
|
29
|
-
const y = fn(x);
|
|
30
|
-
return y < alpha ? y : 0;
|
|
31
|
-
};
|
|
32
|
-
const compose = (op, initial, ...fns) => {
|
|
33
|
-
const [a, b] = fns;
|
|
34
|
-
switch (fns.length) {
|
|
35
|
-
case 0:
|
|
36
|
-
throw new Error("no fuzzy sets given");
|
|
37
|
-
case 1:
|
|
38
|
-
return a;
|
|
39
|
-
case 2:
|
|
40
|
-
return (x) => op(a(x), b(x));
|
|
41
|
-
default:
|
|
42
|
-
return (x) => fns.reduce((acc, f) => op(acc, f(x)), initial);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
const intersect = (op, ...fns) => compose(op, 1, ...fns);
|
|
46
|
-
const union = (op, ...fns) => compose(op, 0, ...fns);
|
|
47
|
-
|
|
48
|
-
const defaultOpts = (opts) => (Object.assign({ samples: 100, eps: 1e-6 }, opts));
|
|
49
|
-
|
|
50
|
-
const centroidStrategy = (opts) => {
|
|
51
|
-
let { samples } = defaultOpts(opts);
|
|
52
|
-
return (fn, [min, max]) => {
|
|
53
|
-
const delta = (max - min) / samples;
|
|
54
|
-
let num = 0;
|
|
55
|
-
let denom = 0;
|
|
56
|
-
for (let i = 0; i <= samples; i++) {
|
|
57
|
-
const x = min + i * delta;
|
|
58
|
-
const y = fn(x);
|
|
59
|
-
num += x * y;
|
|
60
|
-
denom += y;
|
|
61
|
-
}
|
|
62
|
-
return num / denom;
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
const tnormMin = (x, y) => Math.min(x, y);
|
|
67
|
-
const tnormProduct = (x, y) => x * y;
|
|
68
|
-
const tnormLukasiewicz = (x, y) => math.clamp0(x + y - 1);
|
|
69
|
-
const tnormDrastic = (x, y) => (x === 1 ? y : y === 1 ? x : 0);
|
|
70
|
-
const tnormNilpotent = (x, y) => (x + y > 1 ? Math.min(x, y) : 0);
|
|
71
|
-
const tnormHamacher = (p = 2) => (x, y) => x === 0 && y === 0 ? 0 : (x * y) / (p + (1 - p) * (x + y - x * y));
|
|
72
|
-
const tnormYager = (p = 2) => p === 0
|
|
73
|
-
? () => 0
|
|
74
|
-
: (x, y) => math.clamp0(1 - ((1 - x) ** p + (1 - y) ** p) ** (1 / p));
|
|
75
|
-
const tnormDombi = (p = 2) => p === 0
|
|
76
|
-
? () => 0
|
|
77
|
-
: (x, y) => x === 0 || y === 0
|
|
78
|
-
? 0
|
|
79
|
-
: 1 /
|
|
80
|
-
(1 + (((1 - x) / x) ** p + ((1 - y) / y) ** p) ** (1 / p));
|
|
81
|
-
const tnormAczelAlsina = (p = 2) => (x, y) => Math.exp(-((Math.abs(Math.log(x)) ** p + Math.abs(Math.log(y)) ** p) ** (1 / p)));
|
|
82
|
-
const snormMax = (x, y) => Math.max(x, y);
|
|
83
|
-
const snormProbabilistic = (x, y) => x + y - x * y;
|
|
84
|
-
const snormBoundedSum = (x, y) => Math.min(x + y, 1);
|
|
85
|
-
const snormDrastic = (x, y) => (x === 0 ? y : y === 0 ? x : 1);
|
|
86
|
-
const snormNilpotent = (x, y) => (x + y < 1 ? Math.max(x, y) : 1);
|
|
87
|
-
const snormEinstein = (x, y) => (x + y) / (1 + x * y);
|
|
88
|
-
const ordinalSum = (specs) => (x, y) => {
|
|
89
|
-
for (let s of specs) {
|
|
90
|
-
const [a, b] = s.domain;
|
|
91
|
-
if (x >= a && x <= b && y >= a && y <= b) {
|
|
92
|
-
return a + (b - a) * s.tnorm(math.norm(x, a, b), math.norm(y, a, b));
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return Math.min(x, y);
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
const defuzz = (ins, outs, rules, vals, strategy = centroidStrategy(), imply = tnormMin, combine = snormMax) => {
|
|
99
|
-
const ruleTerms = rules.map((r) => {
|
|
100
|
-
let alpha = null;
|
|
101
|
-
for (let id in vals) {
|
|
102
|
-
if (r.if[id]) {
|
|
103
|
-
const v = ins[id].terms[r.if[id]](vals[id]);
|
|
104
|
-
alpha = alpha !== null ? r.op(alpha, v) : v;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
const terms = {};
|
|
108
|
-
if (alpha) {
|
|
109
|
-
const aterm = constant(alpha);
|
|
110
|
-
for (let id in r.then) {
|
|
111
|
-
if (outs[id]) {
|
|
112
|
-
const oterm = outs[id].terms[r.then[id]];
|
|
113
|
-
terms[id] = intersect(imply, r.weight == 1 ? oterm : weighted(oterm, r.weight), aterm);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return terms;
|
|
118
|
-
});
|
|
119
|
-
const res = {};
|
|
120
|
-
for (let id in outs) {
|
|
121
|
-
res[id] = strategy(union(combine, ...ruleTerms.map((r) => r[id]).filter((f) => !!f)), outs[id].domain);
|
|
122
|
-
}
|
|
123
|
-
return res;
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
const rule = (op, $if, then, weight = 1) => ({
|
|
127
|
-
if: $if,
|
|
128
|
-
then,
|
|
129
|
-
op,
|
|
130
|
-
weight,
|
|
131
|
-
});
|
|
132
|
-
const and = ($if, then, weight) => rule(tnormMin, $if, then, weight);
|
|
133
|
-
const strongAnd = ($if, then, weight) => rule(tnormProduct, $if, then, weight);
|
|
134
|
-
const or = ($if, then, weight) => rule(snormMax, $if, then, weight);
|
|
135
|
-
|
|
136
|
-
const variable = (domain, terms) => ({
|
|
137
|
-
domain,
|
|
138
|
-
terms,
|
|
139
|
-
});
|
|
140
|
-
const classify = ({ terms }, x, threshold = 0.5) => {
|
|
141
|
-
let max = threshold;
|
|
142
|
-
let maxID;
|
|
143
|
-
for (let id in terms) {
|
|
144
|
-
const t = terms[id](x);
|
|
145
|
-
if (t >= max) {
|
|
146
|
-
max = t;
|
|
147
|
-
maxID = id;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return maxID;
|
|
151
|
-
};
|
|
152
|
-
const evaluate = ({ terms }, x) => {
|
|
153
|
-
const res = {};
|
|
154
|
-
for (let id in terms) {
|
|
155
|
-
res[id] = terms[id](x);
|
|
156
|
-
}
|
|
157
|
-
return res;
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
const bisectorStrategy = (opts) => {
|
|
161
|
-
let { samples } = defaultOpts(opts);
|
|
162
|
-
return (fn, [min, max]) => {
|
|
163
|
-
const delta = (max - min) / samples;
|
|
164
|
-
let sum = [];
|
|
165
|
-
for (let i = 0, acc = 0; i <= samples; i++) {
|
|
166
|
-
acc += fn(min + i * delta);
|
|
167
|
-
sum.push(acc);
|
|
168
|
-
}
|
|
169
|
-
if (!sum.length)
|
|
170
|
-
return min;
|
|
171
|
-
const mean = sum[samples] * 0.5;
|
|
172
|
-
for (let i = 1; i <= samples; i++) {
|
|
173
|
-
if (sum[i] >= mean) {
|
|
174
|
-
return math.fit(mean, sum[i - 1], sum[i], min + (i - 1) * delta, min + i * delta);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return min;
|
|
178
|
-
};
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
const meanOfMaximaStrategy = (opts) => {
|
|
182
|
-
const { samples, eps } = defaultOpts(opts);
|
|
183
|
-
return (fn, [min, max]) => {
|
|
184
|
-
const delta = (max - min) / samples;
|
|
185
|
-
let peak = -Infinity;
|
|
186
|
-
let peakPos = min;
|
|
187
|
-
let n = 1;
|
|
188
|
-
for (let i = 0; i <= samples; i++) {
|
|
189
|
-
const t = min + i * delta;
|
|
190
|
-
const x = fn(t);
|
|
191
|
-
if (math.eqDelta(x, peak, eps)) {
|
|
192
|
-
peakPos += t;
|
|
193
|
-
n++;
|
|
194
|
-
}
|
|
195
|
-
else if (x > peak) {
|
|
196
|
-
peak = x;
|
|
197
|
-
peakPos = t;
|
|
198
|
-
n = 1;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return peakPos / n;
|
|
202
|
-
};
|
|
203
|
-
};
|
|
204
|
-
const firstOfMaximaStrategy = (opts) => {
|
|
205
|
-
const { samples } = defaultOpts(opts);
|
|
206
|
-
return (fn, [min, max]) => {
|
|
207
|
-
const delta = (max - min) / samples;
|
|
208
|
-
let peak = -Infinity;
|
|
209
|
-
let peakPos = min;
|
|
210
|
-
for (let i = 0; i <= samples; i++) {
|
|
211
|
-
const t = min + i * delta;
|
|
212
|
-
const x = fn(t);
|
|
213
|
-
if (x > peak) {
|
|
214
|
-
peak = x;
|
|
215
|
-
peakPos = t;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return peakPos;
|
|
219
|
-
};
|
|
220
|
-
};
|
|
221
|
-
const lastOfMaximaStrategy = (opts) => {
|
|
222
|
-
const impl = firstOfMaximaStrategy(opts);
|
|
223
|
-
return (fn, [min, max]) => impl(fn, [max, min]);
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
exports.alphaCut = alphaCut;
|
|
227
|
-
exports.and = and;
|
|
228
|
-
exports.bisectorStrategy = bisectorStrategy;
|
|
229
|
-
exports.centroidStrategy = centroidStrategy;
|
|
230
|
-
exports.classify = classify;
|
|
231
|
-
exports.compose = compose;
|
|
232
|
-
exports.constant = constant;
|
|
233
|
-
exports.defuzz = defuzz;
|
|
234
|
-
exports.evaluate = evaluate;
|
|
235
|
-
exports.firstOfMaximaStrategy = firstOfMaximaStrategy;
|
|
236
|
-
exports.gaussian = gaussian;
|
|
237
|
-
exports.intersect = intersect;
|
|
238
|
-
exports.invAlphaCut = invAlphaCut;
|
|
239
|
-
exports.invRamp = invRamp;
|
|
240
|
-
exports.invSigmoid = invSigmoid;
|
|
241
|
-
exports.lastOfMaximaStrategy = lastOfMaximaStrategy;
|
|
242
|
-
exports.meanOfMaximaStrategy = meanOfMaximaStrategy;
|
|
243
|
-
exports.negate = negate;
|
|
244
|
-
exports.or = or;
|
|
245
|
-
exports.ordinalSum = ordinalSum;
|
|
246
|
-
exports.point = point;
|
|
247
|
-
exports.ramp = ramp;
|
|
248
|
-
exports.rule = rule;
|
|
249
|
-
exports.sigmoid = sigmoid;
|
|
250
|
-
exports.snormBoundedSum = snormBoundedSum;
|
|
251
|
-
exports.snormDrastic = snormDrastic;
|
|
252
|
-
exports.snormEinstein = snormEinstein;
|
|
253
|
-
exports.snormMax = snormMax;
|
|
254
|
-
exports.snormNilpotent = snormNilpotent;
|
|
255
|
-
exports.snormProbabilistic = snormProbabilistic;
|
|
256
|
-
exports.strongAnd = strongAnd;
|
|
257
|
-
exports.tnormAczelAlsina = tnormAczelAlsina;
|
|
258
|
-
exports.tnormDombi = tnormDombi;
|
|
259
|
-
exports.tnormDrastic = tnormDrastic;
|
|
260
|
-
exports.tnormHamacher = tnormHamacher;
|
|
261
|
-
exports.tnormLukasiewicz = tnormLukasiewicz;
|
|
262
|
-
exports.tnormMin = tnormMin;
|
|
263
|
-
exports.tnormNilpotent = tnormNilpotent;
|
|
264
|
-
exports.tnormProduct = tnormProduct;
|
|
265
|
-
exports.tnormYager = tnormYager;
|
|
266
|
-
exports.trapezoid = trapezoid;
|
|
267
|
-
exports.triangle = triangle;
|
|
268
|
-
exports.union = union;
|
|
269
|
-
exports.variable = variable;
|
|
270
|
-
exports.weighted = weighted;
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../shapes.js","../strategies/opts.js","../strategies/centroid.js","../tnorms.js","../defuzz.js","../rules.js","../var.js","../strategies/bisector.js","../strategies/maxima.js"],"sourcesContent":null,"names":["EPS","eqDelta","fitClamped","fit","$sigmoid","$gaussian","clamp0","norm"],"mappings":";;;;;;AAOY,MAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE;AAQ3B,MAAC,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,GAAGA,QAAG,KAAK,CAAC,CAAC,KAAKC,YAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAQ7D,MAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAKC,eAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAUnD,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAGC,QAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAGA,QAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAWtG,MAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9D,MAAM,CAAC;AACP,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACpB,UAAU,CAAC;AACX,UAAU,CAAC,IAAI,CAAC;AAChB,cAAcA,QAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,cAAcA,QAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAQrB,MAAC,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,KAAKC,YAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAQ5D,MAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,KAAKC,aAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAO9D,MAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;AAOnC,MAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAOxC,MAAC,UAAU,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAQ5D,MAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE;AAQlD,MAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK;AACpD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,EAAE;AAQU,MAAC,WAAW,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK;AACvD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,EAAE;AA+CU,MAAC,OAAO,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK;AAChD,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;AACvB,IAAI,QAAQ,GAAG,CAAC,MAAM;AACtB,QAAQ,KAAK,CAAC;AACd,YAAY,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACnD,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,QAAQ;AACR,YAAY,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACzE,KAAK;AACL,EAAE;AAQU,MAAC,SAAS,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE;AAQpD,MAAC,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG;;AChMnD,MAAM,WAAW,GAAG,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;;AC+B3E,MAAC,gBAAgB,GAAG,CAAC,IAAI,KAAK;AAC1C,IAAI,IAAI,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK;AAC/B,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC;AAC5C,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC;AACpB,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AACtC,YAAY,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,YAAY,KAAK,IAAI,CAAC,CAAC;AACvB,SAAS;AACT,QAAQ,OAAO,GAAG,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC;AACN;;AC3CY,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACrC,MAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;AAChC,MAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,KAAKC,WAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAChD,MAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC1D,MAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;AAS7D,MAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AASzG,MAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,MAAM,MAAM,CAAC;AACb,MAAM,CAAC,CAAC,EAAE,CAAC,KAAKA,WAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AASzD,MAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,MAAM,MAAM,CAAC;AACb,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,UAAU,CAAC;AACX,UAAU,CAAC;AACX,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAS3D,MAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAO3H,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AAQrC,MAAC,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAO9C,MAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAIhD,MAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAO1D,MAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;AAQ7D,MAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAUjD,MAAC,UAAU,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/C,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;AACzB,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClD,YAAY,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAACC,SAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEA,SAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B;;AC/EY,MAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,gBAAgB,EAAE,EAAE,KAAK,GAAG,QAAQ,EAAE,OAAO,GAAG,QAAQ,KAAK;AACvH,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACvC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE;AAC7B,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5D,gBAAgB,KAAK,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC;AACzB,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAY,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;AACnC,gBAAgB,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE;AAC9B,oBAAoB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,oBAAoB,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3G,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE;AACzB,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/G,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf;;ACpBY,MAAC,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM;AACpD,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,IAAI;AACR,IAAI,EAAE;AACN,IAAI,MAAM;AACV,CAAC,EAAE;AACS,MAAC,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;AAChE,MAAC,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;AAC1E,MAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;;ACxB7D,MAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,MAAM;AAC5C,IAAI,MAAM;AACV,IAAI,KAAK;AACT,CAAC,EAAE;AAyBS,MAAC,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,GAAG,KAAK;AAC3D,IAAI,IAAI,GAAG,GAAG,SAAS,CAAC;AACxB,IAAI,IAAI,KAAK,CAAC;AACd,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,EAAE;AAC1B,QAAQ,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,YAAY,GAAG,GAAG,CAAC,CAAC;AACpB,YAAY,KAAK,GAAG,EAAE,CAAC;AACvB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,EAAE;AAsBU,MAAC,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK;AAC1C,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,EAAE;AAC1B,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf;;ACtDY,MAAC,gBAAgB,GAAG,CAAC,IAAI,KAAK;AAC1C,IAAI,IAAI,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK;AAC/B,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC;AAC5C,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AACvC,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM;AACvB,YAAY,OAAO,GAAG,CAAC;AACvB,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;AACxC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAChC,gBAAgB,OAAOJ,QAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC7F,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN;;ACtBY,MAAC,oBAAoB,GAAG,CAAC,IAAI,KAAK;AAC9C,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK;AAC/B,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC;AAC5C,QAAQ,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC7B,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC;AAC1B,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AACtC,YAAY,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAY,IAAIF,YAAO,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACvC,gBAAgB,OAAO,IAAI,CAAC,CAAC;AAC7B,gBAAgB,CAAC,EAAE,CAAC;AACpB,aAAa;AACb,iBAAiB,IAAI,CAAC,GAAG,IAAI,EAAE;AAC/B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,gBAAgB,OAAO,GAAG,CAAC,CAAC;AAC5B,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,OAAO,GAAG,CAAC,CAAC;AAC3B,KAAK,CAAC;AACN,EAAE;AA6BU,MAAC,qBAAqB,GAAG,CAAC,IAAI,KAAK;AAC/C,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK;AAC/B,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC;AAC5C,QAAQ,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC7B,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC;AAC1B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AACtC,YAAY,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,gBAAgB,OAAO,GAAG,CAAC,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK,CAAC;AACN,EAAE;AA6BU,MAAC,oBAAoB,GAAG,CAAC,IAAI,KAAK;AAC9C,IAAI,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/lib/index.umd.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@thi.ng/math")):"function"==typeof define&&define.amd?define(["exports","@thi.ng/math"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).thi=t.thi||{},t.thi.ng=t.thi.ng||{},t.thi.ng.fuzzy={}),t.thi.ng.math)}(this,(function(t,e){"use strict";const n=t=>()=>t,r=(t,n)=>r=>e.fitClamped(r,t,n,0,1),o=(t,n)=>r=>e.sigmoid(t,n,r),i=t=>e=>1-t(e),s=(t,e)=>n=>e*t(n),a=(t,e,...n)=>{const[r,o]=n;switch(n.length){case 0:throw new Error("no fuzzy sets given");case 1:return r;case 2:return e=>t(r(e),o(e));default:return r=>n.reduce(((e,n)=>t(e,n(r))),e)}},l=(t,...e)=>a(t,1,...e),m=(t,...e)=>a(t,0,...e),u=t=>Object.assign({samples:100,eps:1e-6},t),f=t=>{let{samples:e}=u(t);return(t,[n,r])=>{const o=(r-n)/e;let i=0,s=0;for(let r=0;r<=e;r++){const e=n+r*o,a=t(e);i+=e*a,s+=a}return i/s}},c=(t,e)=>Math.min(t,e),h=(t,e)=>t*e,p=(t,e)=>Math.max(t,e),g=(t,e,n,r=1)=>({if:e,then:n,op:t,weight:r}),d=t=>{const{samples:e}=u(t);return(t,[n,r])=>{const o=(r-n)/e;let i=-1/0,s=n;for(let r=0;r<=e;r++){const e=n+r*o,a=t(e);a>i&&(i=a,s=e)}return s}};t.alphaCut=(t,e=.5)=>n=>{const r=t(n);return r>e?r:0},t.and=(t,e,n)=>g(c,t,e,n),t.bisectorStrategy=t=>{let{samples:n}=u(t);return(t,[r,o])=>{const i=(o-r)/n;let s=[];for(let e=0,o=0;e<=n;e++)o+=t(r+e*i),s.push(o);if(!s.length)return r;const a=.5*s[n];for(let t=1;t<=n;t++)if(s[t]>=a)return e.fit(a,s[t-1],s[t],r+(t-1)*i,r+t*i);return r}},t.centroidStrategy=f,t.classify=({terms:t},e,n=.5)=>{let r,o=n;for(let n in t){const i=t[n](e);i>=o&&(o=i,r=n)}return r},t.compose=a,t.constant=n,t.defuzz=(t,e,r,o,i=f(),a=c,u=p)=>{const h=r.map((r=>{let i=null;for(let e in o)if(r.if[e]){const n=t[e].terms[r.if[e]](o[e]);i=null!==i?r.op(i,n):n}const m={};if(i){const t=n(i);for(let n in r.then)if(e[n]){const o=e[n].terms[r.then[n]];m[n]=l(a,1==r.weight?o:s(o,r.weight),t)}}return m})),g={};for(let t in e)g[t]=i(m(u,...h.map((e=>e[t])).filter((t=>!!t))),e[t].domain);return g},t.evaluate=({terms:t},e)=>{const n={};for(let r in t)n[r]=t[r](e);return n},t.firstOfMaximaStrategy=d,t.gaussian=(t,n)=>r=>e.gaussian(t,n,r),t.intersect=l,t.invAlphaCut=(t,e=.5)=>n=>{const r=t(n);return r<e?r:0},t.invRamp=(t,e)=>i(r(t,e)),t.invSigmoid=(t,e)=>i(o(t,e)),t.lastOfMaximaStrategy=t=>{const e=d(t);return(t,[n,r])=>e(t,[r,n])},t.meanOfMaximaStrategy=t=>{const{samples:n,eps:r}=u(t);return(t,[o,i])=>{const s=(i-o)/n;let a=-1/0,l=o,m=1;for(let i=0;i<=n;i++){const n=o+i*s,u=t(n);e.eqDelta(u,a,r)?(l+=n,m++):u>a&&(a=u,l=n,m=1)}return l/m}},t.negate=i,t.or=(t,e,n)=>g(p,t,e,n),t.ordinalSum=t=>(n,r)=>{for(let o of t){const[t,i]=o.domain;if(n>=t&&n<=i&&r>=t&&r<=i)return t+(i-t)*o.tnorm(e.norm(n,t,i),e.norm(r,t,i))}return Math.min(n,r)},t.point=(t,n=e.EPS)=>r=>e.eqDelta(r,t,n)?1:0,t.ramp=r,t.rule=g,t.sigmoid=o,t.snormBoundedSum=(t,e)=>Math.min(t+e,1),t.snormDrastic=(t,e)=>0===t?e:0===e?t:1,t.snormEinstein=(t,e)=>(t+e)/(1+t*e),t.snormMax=p,t.snormNilpotent=(t,e)=>t+e<1?Math.max(t,e):1,t.snormProbabilistic=(t,e)=>t+e-t*e,t.strongAnd=(t,e,n)=>g(h,t,e,n),t.tnormAczelAlsina=(t=2)=>(e,n)=>Math.exp(-((Math.abs(Math.log(e))**t+Math.abs(Math.log(n))**t)**(1/t))),t.tnormDombi=(t=2)=>0===t?()=>0:(e,n)=>0===e||0===n?0:1/(1+(((1-e)/e)**t+((1-n)/n)**t)**(1/t)),t.tnormDrastic=(t,e)=>1===t?e:1===e?t:0,t.tnormHamacher=(t=2)=>(e,n)=>0===e&&0===n?0:e*n/(t+(1-t)*(e+n-e*n)),t.tnormLukasiewicz=(t,n)=>e.clamp0(t+n-1),t.tnormMin=c,t.tnormNilpotent=(t,e)=>t+e>1?Math.min(t,e):0,t.tnormProduct=h,t.tnormYager=(t=2)=>0===t?()=>0:(n,r)=>e.clamp0(1-((1-n)**t+(1-r)**t)**(1/t)),t.trapezoid=(t,n,r,o)=>i=>i<t||i>o?0:i>n&&i<r?1:i<=n?e.fit(i,t,n,0,1):e.fit(i,r,o,1,0),t.triangle=(t,n,r)=>o=>o<t||o>r?0:o<=n?e.fit(o,t,n,0,1):e.fit(o,n,r,1,0),t.union=m,t.variable=(t,e)=>({domain:t,terms:e}),t.weighted=s,Object.defineProperty(t,"__esModule",{value:!0})}));
|
package/lib/index.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../shapes.js","../strategies/opts.js","../strategies/centroid.js","../tnorms.js","../defuzz.js","../rules.js","../var.js","../strategies/bisector.js","../strategies/maxima.js"],"sourcesContent":null,"names":["EPS","eqDelta","fitClamped","fit","$sigmoid","$gaussian","clamp0","norm"],"mappings":"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"}
|