@datagrok-libraries/statistics 1.1.7 → 1.2.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/.eslintrc.json +8 -3
- package/package.json +6 -5
- package/src/box-plot-statistics.d.ts +9 -0
- package/src/box-plot-statistics.d.ts.map +1 -0
- package/src/box-plot-statistics.js +57 -0
- package/src/correlation-coefficient.d.ts +1 -1
- package/src/correlation-coefficient.d.ts.map +1 -1
- package/src/correlation-coefficient.js +1 -2
- package/src/fit/fit-curve.d.ts +207 -0
- package/src/fit/fit-curve.d.ts.map +1 -0
- package/src/fit/fit-curve.js +417 -0
- package/src/fit/fit-data.d.ts +24 -0
- package/src/fit/fit-data.d.ts.map +1 -0
- package/src/fit/fit-data.js +86 -0
- package/tsconfig.json +1 -1
- package/src/parameter-estimation/fit-curve.d.ts +0 -48
- package/src/parameter-estimation/fit-curve.d.ts.map +0 -1
- package/src/parameter-estimation/fit-curve.js +0 -263
package/.eslintrc.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"env": {
|
|
3
3
|
"browser": true,
|
|
4
|
-
"
|
|
4
|
+
"es2022": true
|
|
5
5
|
},
|
|
6
6
|
"extends": [
|
|
7
7
|
"google"
|
|
@@ -20,10 +20,15 @@
|
|
|
20
20
|
120
|
|
21
21
|
],
|
|
22
22
|
"require-jsdoc": "off",
|
|
23
|
-
"spaced-comment": "off"
|
|
23
|
+
"spaced-comment": "off",
|
|
24
|
+
"linebreak-style": "off",
|
|
25
|
+
"curly": [
|
|
26
|
+
"error",
|
|
27
|
+
"multi-or-nest"
|
|
28
|
+
]
|
|
24
29
|
},
|
|
25
30
|
"parser": "@typescript-eslint/parser",
|
|
26
31
|
"plugins": [
|
|
27
32
|
"@typescript-eslint"
|
|
28
33
|
]
|
|
29
|
-
}
|
|
34
|
+
}
|
package/package.json
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"friendlyName": "statistics",
|
|
7
|
-
|
|
7
|
+
"version": "1.2.0",
|
|
8
8
|
"description": "",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"datagrok-api": "^1.
|
|
11
|
-
"@datagrok-libraries/utils": "
|
|
10
|
+
"datagrok-api": "^1.16.0",
|
|
11
|
+
"@datagrok-libraries/utils": "^4.0.0",
|
|
12
12
|
"cash-dom": "latest",
|
|
13
13
|
"jstat": "latest",
|
|
14
|
-
"dayjs": "
|
|
14
|
+
"dayjs": "^1.11.7"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"ts-loader": "^9.2.6",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"build-statistics": "tsc",
|
|
32
32
|
"build": "tsc",
|
|
33
33
|
"lint": "eslint src --ext .ts",
|
|
34
|
-
"lint-fix": "eslint src --ext .ts --fix"
|
|
34
|
+
"lint-fix": "eslint src --ext .ts --fix",
|
|
35
|
+
"build-all": "npm --prefix ./../../js-api run build && npm --prefix ./../../libraries/utils run build && npm run build"
|
|
35
36
|
}
|
|
36
37
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare type BoxPlotStatistics = {
|
|
2
|
+
q1: number;
|
|
3
|
+
q2: number;
|
|
4
|
+
q3: number;
|
|
5
|
+
lowerAdjacentValue: number;
|
|
6
|
+
upperAdjacentValue: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function calculateBoxPlotStatistics(values: number[]): BoxPlotStatistics;
|
|
9
|
+
//# sourceMappingURL=box-plot-statistics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box-plot-statistics.d.ts","sourceRoot":"","sources":["box-plot-statistics.ts"],"names":[],"mappings":"AACA,oBAAY,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAGF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAiC9E"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export function calculateBoxPlotStatistics(values) {
|
|
2
|
+
values.sort();
|
|
3
|
+
const q1 = values[Math.trunc(values.length / 4)];
|
|
4
|
+
const q2 = values.length % 2 === 0 ?
|
|
5
|
+
(values[Math.trunc(values.length / 2)] + values[Math.trunc(values.length / 2) - 1]) / 2 :
|
|
6
|
+
values[Math.trunc(values.length / 2)];
|
|
7
|
+
const q3 = values[Math.trunc(values.length * 3 / 4)];
|
|
8
|
+
const hSpread = q3 - q1;
|
|
9
|
+
const step = hSpread * 1.5;
|
|
10
|
+
let upperIdx = arrayBinarySearch(values, q3 + step);
|
|
11
|
+
if (upperIdx < 0)
|
|
12
|
+
upperIdx = ~upperIdx;
|
|
13
|
+
let upperAdjacentValue = values[Math.max(0, upperIdx - 1)];
|
|
14
|
+
if (upperAdjacentValue < q3)
|
|
15
|
+
upperAdjacentValue = q3;
|
|
16
|
+
let lowerIdx = arrayBinarySearch(values, q1 - step);
|
|
17
|
+
if (lowerIdx < 0)
|
|
18
|
+
lowerIdx = ~lowerIdx;
|
|
19
|
+
let lowerAdjacentValue = values[lowerIdx];
|
|
20
|
+
if (lowerAdjacentValue > q1)
|
|
21
|
+
lowerAdjacentValue = q1;
|
|
22
|
+
return {
|
|
23
|
+
q1: q1,
|
|
24
|
+
q2: q2,
|
|
25
|
+
q3: q3,
|
|
26
|
+
lowerAdjacentValue: lowerAdjacentValue,
|
|
27
|
+
upperAdjacentValue: upperAdjacentValue,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function arrayBinarySearch(items, value, left = 0, right) {
|
|
31
|
+
if (items.length === 0)
|
|
32
|
+
return -1; //~0;
|
|
33
|
+
if (right === undefined)
|
|
34
|
+
right = items.length - 1;
|
|
35
|
+
if (value < items[left])
|
|
36
|
+
return -1; //~left;
|
|
37
|
+
if (value > items[right])
|
|
38
|
+
return -(right + 1); //~(right+1);
|
|
39
|
+
while (right - left > 1) {
|
|
40
|
+
const mid = Math.trunc((right + left) / 2);
|
|
41
|
+
if (value === items[mid])
|
|
42
|
+
return mid;
|
|
43
|
+
if (value < items[mid])
|
|
44
|
+
right = mid;
|
|
45
|
+
else
|
|
46
|
+
left = mid;
|
|
47
|
+
}
|
|
48
|
+
if (items[left] === value)
|
|
49
|
+
return left;
|
|
50
|
+
if (items[right] === 0)
|
|
51
|
+
return right;
|
|
52
|
+
// no match - returning inverted index
|
|
53
|
+
if (value < items[left])
|
|
54
|
+
return -(left + 1); //~left;
|
|
55
|
+
return -(right + 1); //~right;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LXBsb3Qtc3RhdGlzdGljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJveC1wbG90LXN0YXRpc3RpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE1BQWdCO0lBQ3pELE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVkLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekYsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckQsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUN4QixNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBRTNCLElBQUksUUFBUSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDcEQsSUFBSSxRQUFRLEdBQUcsQ0FBQztRQUNkLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUN2QixJQUFJLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUFJLGtCQUFrQixHQUFHLEVBQUU7UUFDekIsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTFCLElBQUksUUFBUSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDcEQsSUFBSSxRQUFRLEdBQUcsQ0FBQztRQUNkLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUN2QixJQUFJLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxJQUFJLGtCQUFrQixHQUFHLEVBQUU7UUFDekIsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTFCLE9BQU87UUFDTCxFQUFFLEVBQUUsRUFBRTtRQUNOLEVBQUUsRUFBRSxFQUFFO1FBQ04sRUFBRSxFQUFFLEVBQUU7UUFDTixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsa0JBQWtCLEVBQUUsa0JBQWtCO0tBQ3ZDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFlLEVBQUUsS0FBYSxFQUFFLE9BQWUsQ0FBQyxFQUFFLEtBQWM7SUFDekYsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDcEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7SUFFbEIsSUFBSSxLQUFLLEtBQUssU0FBUztRQUNyQixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFM0IsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNyQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtJQUNyQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWE7SUFFcEMsT0FBTyxLQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDdEIsT0FBTyxHQUFHLENBQUM7UUFDYixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3BCLEtBQUssR0FBRyxHQUFHLENBQUM7O1lBRVosSUFBSSxHQUFHLEdBQUcsQ0FBQztLQUNkO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFFZixzQ0FBc0M7SUFDdEMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNyQixPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0lBQzlCLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXRhYnMgKi9cbmV4cG9ydCB0eXBlIEJveFBsb3RTdGF0aXN0aWNzID0ge1xuICBxMTogbnVtYmVyLFxuXHRxMjogbnVtYmVyLFxuXHRxMzogbnVtYmVyLFxuXHRsb3dlckFkamFjZW50VmFsdWU6IG51bWJlcixcblx0dXBwZXJBZGphY2VudFZhbHVlOiBudW1iZXIsXG59O1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVCb3hQbG90U3RhdGlzdGljcyh2YWx1ZXM6IG51bWJlcltdKTogQm94UGxvdFN0YXRpc3RpY3Mge1xuICB2YWx1ZXMuc29ydCgpO1xuXG4gIGNvbnN0IHExID0gdmFsdWVzW01hdGgudHJ1bmModmFsdWVzLmxlbmd0aCAvIDQpXTtcbiAgY29uc3QgcTIgPSB2YWx1ZXMubGVuZ3RoICUgMiA9PT0gMCA/XG4gICAgKHZhbHVlc1tNYXRoLnRydW5jKHZhbHVlcy5sZW5ndGggLyAyKV0gKyB2YWx1ZXNbTWF0aC50cnVuYyh2YWx1ZXMubGVuZ3RoIC8gMikgLSAxXSkgLyAyIDpcbiAgICB2YWx1ZXNbTWF0aC50cnVuYyh2YWx1ZXMubGVuZ3RoIC8gMildO1xuICBjb25zdCBxMyA9IHZhbHVlc1tNYXRoLnRydW5jKHZhbHVlcy5sZW5ndGggKiAzIC8gNCldO1xuXG4gIGNvbnN0IGhTcHJlYWQgPSBxMyAtIHExO1xuICBjb25zdCBzdGVwID0gaFNwcmVhZCAqIDEuNTtcblxuICBsZXQgdXBwZXJJZHggPSBhcnJheUJpbmFyeVNlYXJjaCh2YWx1ZXMsIHEzICsgc3RlcCk7XG4gIGlmICh1cHBlcklkeCA8IDApXG4gICAgdXBwZXJJZHggPSB+dXBwZXJJZHg7XG4gIGxldCB1cHBlckFkamFjZW50VmFsdWUgPSB2YWx1ZXNbTWF0aC5tYXgoMCwgdXBwZXJJZHggLSAxKV07XG4gIGlmICh1cHBlckFkamFjZW50VmFsdWUgPCBxMylcbiAgICB1cHBlckFkamFjZW50VmFsdWUgPSBxMztcblxuICBsZXQgbG93ZXJJZHggPSBhcnJheUJpbmFyeVNlYXJjaCh2YWx1ZXMsIHExIC0gc3RlcCk7XG4gIGlmIChsb3dlcklkeCA8IDApXG4gICAgbG93ZXJJZHggPSB+bG93ZXJJZHg7XG4gIGxldCBsb3dlckFkamFjZW50VmFsdWUgPSB2YWx1ZXNbbG93ZXJJZHhdO1xuICBpZiAobG93ZXJBZGphY2VudFZhbHVlID4gcTEpXG4gICAgbG93ZXJBZGphY2VudFZhbHVlID0gcTE7XG5cbiAgcmV0dXJuIHtcbiAgICBxMTogcTEsXG4gICAgcTI6IHEyLFxuICAgIHEzOiBxMyxcbiAgICBsb3dlckFkamFjZW50VmFsdWU6IGxvd2VyQWRqYWNlbnRWYWx1ZSxcbiAgICB1cHBlckFkamFjZW50VmFsdWU6IHVwcGVyQWRqYWNlbnRWYWx1ZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXJyYXlCaW5hcnlTZWFyY2goaXRlbXM6IG51bWJlcltdLCB2YWx1ZTogbnVtYmVyLCBsZWZ0OiBudW1iZXIgPSAwLCByaWdodD86IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChpdGVtcy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIC0xOyAvL34wO1xuXG4gIGlmIChyaWdodCA9PT0gdW5kZWZpbmVkKVxuICAgIHJpZ2h0ID0gaXRlbXMubGVuZ3RoIC0gMTtcblxuICBpZiAodmFsdWUgPCBpdGVtc1tsZWZ0XSlcbiAgICByZXR1cm4gLTE7IC8vfmxlZnQ7XG4gIGlmICh2YWx1ZSA+IGl0ZW1zW3JpZ2h0XSlcbiAgICByZXR1cm4gLShyaWdodCArIDEpOyAvL34ocmlnaHQrMSk7XG5cbiAgd2hpbGUgKHJpZ2h0ISAtIGxlZnQgPiAxKSB7XG4gICAgY29uc3QgbWlkID0gTWF0aC50cnVuYygocmlnaHQgKyBsZWZ0KSAvIDIpO1xuICAgIGlmICh2YWx1ZSA9PT0gaXRlbXNbbWlkXSlcbiAgICAgIHJldHVybiBtaWQ7XG4gICAgaWYgKHZhbHVlIDwgaXRlbXNbbWlkXSlcbiAgICAgIHJpZ2h0ID0gbWlkO1xuICAgIGVsc2VcbiAgICAgIGxlZnQgPSBtaWQ7XG4gIH1cblxuICBpZiAoaXRlbXNbbGVmdF0gPT09IHZhbHVlKVxuICAgIHJldHVybiBsZWZ0O1xuICBpZiAoaXRlbXNbcmlnaHRdID09PSAwKVxuICAgIHJldHVybiByaWdodDtcblxuICAvLyBubyBtYXRjaCAtIHJldHVybmluZyBpbnZlcnRlZCBpbmRleFxuICBpZiAodmFsdWUgPCBpdGVtc1tsZWZ0XSlcbiAgICByZXR1cm4gLShsZWZ0ICsgMSk7IC8vfmxlZnQ7XG4gIHJldHVybiAtKHJpZ2h0ICsgMSk7IC8vfnJpZ2h0O1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Options } from '
|
|
1
|
+
import { Options } from '@datagrok-libraries/utils/src/type-declarations';
|
|
2
2
|
/**
|
|
3
3
|
* Calculates Kendall's tau, a correlation measure for ordinal data, and an associated p-value.
|
|
4
4
|
* Returns: Kendall's tau, two-tailed p-value.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlation-coefficient.d.ts","sourceRoot":"","sources":["correlation-coefficient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"correlation-coefficient.d.ts","sourceRoot":"","sources":["correlation-coefficient.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,iDAAiD,CAAC;AAuDxE;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAiC7D"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//import {Options} from '@datagrok-libraries/utils/src/type-declarations';
|
|
2
1
|
/**
|
|
3
2
|
* Returns the error function erf(x).
|
|
4
3
|
*
|
|
@@ -97,4 +96,4 @@ export function kendallsTau(x, y) {
|
|
|
97
96
|
const prob = erfc(Math.abs(z) / 1.4142136);
|
|
98
97
|
return { test: tau, z: z, prob: prob };
|
|
99
98
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVsYXRpb24tY29lZmZpY2llbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb3JyZWxhdGlvbi1jb2VmZmljaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7Ozs7O0dBTUc7QUFDSCxTQUFTLEdBQUcsQ0FBQyxDQUFTO0lBQ3BCLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7UUFDNUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQjtRQUNoRSxrQkFBa0IsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsaUJBQWlCO1FBQzNELGlCQUFpQixFQUFFLGVBQWUsRUFBRSxDQUFDLGVBQWU7UUFDcEQsY0FBYyxFQUFFLGNBQWMsRUFBRSxDQUFDLGNBQWM7UUFDL0MsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVk7UUFDNUMsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVc7UUFDdkMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVM7UUFDakMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUTtRQUM5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ1osSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNYLElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksRUFBRSxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztJQUVoRixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDVCxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFD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LElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMzQyxPQUFPLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHtPcHRpb25zfSBmcm9tICcuLi8uLi91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy90eXBlLWRlY2xhcmF0aW9ucyc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZXJyb3IgZnVuY3Rpb24gZXJmKHgpLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IEFuIGFyZ3VtZW50LlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgcmVzdWx0LlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2pzdGF0L2pzdGF0L2Jsb2IvNjVjZTA5NmE5OWY3NTNkNmEyMjQ4MmU1ZTc0YWNjYmZjMWMzMzc2Ny9kaXN0L2pzdGF0LmpzI0wxNTYyXG4gKi9cbmZ1bmN0aW9uIGVyZih4OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBjb2YgPSBbLTEuMzAyNjUzNzE5NzgxNzA5NCwgNi40MTk2OTc5MjM1NjQ5MDI2ZS0xLCAxLjk0NzY0NzMyMDQxODU4MzZlLTIsXG4gICAgLTkuNTYxNTE0Nzg2ODA4NjMxZS0zLCAtOS40NjU5NTM0NDQ4MjAzNmUtNCwgMy42NjgzOTQ5Nzg1Mjc2MWUtNCxcbiAgICA0LjI1MjMzMjQ4MDY5MDdlLTUsIC0yLjAyNzg1NzgxMTI1MzRlLTUsIC0xLjYyNDI5MDAwNDY0N2UtNixcbiAgICAxLjMwMzY1NTgzNTU4MGUtNiwgMS41NjI2NDQxNzIyZS04LCAtOC41MjM4MDk1OTE1ZS04LFxuICAgIDYuNTI5MDU0NDM5ZS05LCA1LjA1OTM0MzQ5NWUtOSwgLTkuOTEzNjQxNTZlLTEwLFxuICAgIC0yLjI3MzY1MTIyZS0xMCwgOS42NDY3OTExZS0xMSwgMi4zOTQwMzhlLTEyLFxuICAgIC02Ljg4NjAyN2UtMTIsIDguOTQ0ODdlLTEzLCAzLjEzMDkyZS0xMyxcbiAgICAtMS4xMjcwOGUtMTMsIDMuODFlLTE2LCA3LjEwNmUtMTUsXG4gICAgLTEuNTIzZS0xNSwgLTkuNGUtMTcsIDEuMjFlLTE2LFxuICAgIC0yLjhlLTE3XTtcbiAgbGV0IGogPSBjb2YubGVuZ3RoIC0gMTtcbiAgbGV0IGlzbmVnID0gZmFsc2U7XG4gIGxldCBkID0gMDtcbiAgbGV0IGRkID0gMDtcbiAgbGV0IHQ6IG51bWJlciA9IDA7IGxldCB0eTogbnVtYmVyID0gMDsgbGV0IHRtcDogbnVtYmVyID0gMDsgbGV0IHJlczogbnVtYmVyID0gMDtcblxuICBpZiAoeCA8IDApIHtcbiAgICB4ID0gLXg7XG4gICAgaXNuZWcgPSB0cnVlO1xuICB9XG5cbiAgdCA9IDIgLyAoMiArIHgpO1xuICB0eSA9IDQgKiB0IC0gMjtcblxuICBmb3IgKDsgaiA+IDA7IGotLSkge1xuICAgIHRtcCA9IGQ7XG4gICAgZCA9IHR5ICogZCAtIGRkICsgY29mW2pdO1xuICAgIGRkID0gdG1wO1xuICB9XG5cbiAgcmVzID0gdCAqIE1hdGguZXhwKC14ICogeCArIDAuNSAqIChjb2ZbMF0gKyB0eSAqIGQpIC0gZGQpO1xuICByZXR1cm4gaXNuZWcgPyByZXMgLSAxIDogMSAtIHJlcztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjb21wbG1lbnRhcnkgZXJyb3IgZnVuY3Rpb24gZXJmYyh4KVxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IEFuIGFyZ3VtZW50LlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgcmVzdWx0LlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2pzdGF0L2pzdGF0L2Jsb2IvNjVjZTA5NmE5OWY3NTNkNmEyMjQ4MmU1ZTc0YWNjYmZjMWMzMzc2Ny9kaXN0L2pzdGF0LmpzI0wxNTk5XG4gKi9cbmZ1bmN0aW9uIGVyZmMoeDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIDEgLSBlcmYoeCk7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyBLZW5kYWxsJ3MgdGF1LCBhIGNvcnJlbGF0aW9uIG1lYXN1cmUgZm9yIG9yZGluYWwgZGF0YSwgYW5kIGFuIGFzc29jaWF0ZWQgcC12YWx1ZS5cbiAqIFJldHVybnM6IEtlbmRhbGwncyB0YXUsIHR3by10YWlsZWQgcC12YWx1ZS5cbiAqIERlcml2ZWQgZnJvbSBvbGRlciBTY2lQeTogaHR0cDovL3dlYi5taXQuZWR1LzYuODYzL3NwcmluZzIwMTEvcGFja2FnZXMvc2NpcHlfc3JjL3NjaXB5L3N0YXRzL3N0YXRzLnB5XG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJbXX0geCBUaGUgZmlyc3QgYXJyYXkuXG4gKiBAcGFyYW0ge251bWJlcltdfSB5IFRoZSBzZWNvbmQgYXJyYXkuXG4gKiBAcmV0dXJuIHtPcHRpb25zfSBUaGUgcmVzdWx0LlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3BkZmVybmhvdXQvbmFycmFmaXJtYS9ibG9iL1xuICogYzljMTIyZDU3N2E0Yjg4NjhjZTYwM2JhZGFiYmI3ZDEwZjQ1NzQwYy93ZWJhcHAvc291cmNlL3N0YXRpc3RpY3Mva2VuZGFsbHNUYXUudHMjTDhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGtlbmRhbGxzVGF1KHg6IG51bWJlcltdLCB5OiBudW1iZXJbXSk6IE9wdGlvbnMge1xuICBsZXQgbjEgPSAwO1xuICBsZXQgbjIgPSAwO1xuICBsZXQgaXNzID0gMDtcbiAgZm9yIChsZXQgaiA9IDA7IGogPCB4Lmxlbmd0aCAtIDE7IGorKykge1xuICAgIGZvciAobGV0IGsgPSBqICsgMTsgayA8IHkubGVuZ3RoOyBrKyspIHtcbiAgICAgIGNvbnN0IGExID0geFtqXSAtIHhba107XG4gICAgICBjb25zdCBhMiA9IHlbal0gLSB5W2tdO1xuICAgICAgY29uc3QgYWEgPSBhMSAqIGEyO1xuICAgICAgaWYgKGFhKSB7XG4gICAgICAgIC8vIG5laXRoZXIgYXJyYXkgaGFzIGEgdGllXG4gICAgICAgIG4xID0gbjEgKyAxO1xuICAgICAgICBuMiA9IG4yICsgMTtcbiAgICAgICAgaWYgKGFhID4gMCkge1xuICAgICAgICAgIGlzcyA9IGlzcyArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNzID0gaXNzIC0gMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGExKSB7XG4gICAgICAgICAgbjEgPSBuMSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEyKSB7XG4gICAgICAgICAgbjIgPSBuMiArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3QgdGF1ID0gaXNzIC8gTWF0aC5zcXJ0KG4xICogbjIpO1xuICBjb25zdCBzdmFyID0gKDQuMCAqIHgubGVuZ3RoICsgMTAuMCkgLyAoOS4wICogeC5sZW5ndGggKiAoeC5sZW5ndGggLSAxKSk7XG4gIGNvbnN0IHogPSB0YXUgLyBNYXRoLnNxcnQoc3Zhcik7XG4gIGNvbnN0IHByb2IgPSBlcmZjKE1hdGguYWJzKHopIC8gMS40MTQyMTM2KTtcbiAgcmV0dXJuIHt0ZXN0OiB0YXUsIHo6IHosIHByb2I6IHByb2J9O1xufVxuIl19
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { Property } from 'datagrok-api/src/entities';
|
|
2
|
+
export declare enum FitErrorModel {
|
|
3
|
+
Constant = 0,
|
|
4
|
+
Proportional = 1
|
|
5
|
+
}
|
|
6
|
+
export declare type FitParamBounds = {
|
|
7
|
+
minBound?: number;
|
|
8
|
+
maxBound?: number;
|
|
9
|
+
};
|
|
10
|
+
export interface IFitFunctionDescription {
|
|
11
|
+
name: string;
|
|
12
|
+
function: string;
|
|
13
|
+
getInitialParameters: string;
|
|
14
|
+
parameterNames: string[];
|
|
15
|
+
}
|
|
16
|
+
export declare type FitCurve = {
|
|
17
|
+
fittedCurve: (x: number) => number;
|
|
18
|
+
parameters: number[];
|
|
19
|
+
};
|
|
20
|
+
export declare type FitConfidenceIntervals = {
|
|
21
|
+
confidenceTop: (x: number) => number;
|
|
22
|
+
confidenceBottom: (x: number) => number;
|
|
23
|
+
};
|
|
24
|
+
export declare type FitStatistics = {
|
|
25
|
+
rSquared?: number;
|
|
26
|
+
auc?: number;
|
|
27
|
+
interceptX: number;
|
|
28
|
+
interceptY: number;
|
|
29
|
+
slope: number;
|
|
30
|
+
top: number;
|
|
31
|
+
bottom: number;
|
|
32
|
+
};
|
|
33
|
+
export declare type FitInvertedFunctions = {
|
|
34
|
+
inverted: (y: number) => number;
|
|
35
|
+
invertedTop: (y: number) => number;
|
|
36
|
+
invertedBottom: (y: number) => number;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Datagrok curve fitting
|
|
40
|
+
*
|
|
41
|
+
* - Fitting: computing parameters of the specified function to best fit the data
|
|
42
|
+
* - Uses BFGS optimization algorithm (multi-threading for performance).
|
|
43
|
+
* For dose-response curves, we are typically fitting the sigmoid function
|
|
44
|
+
* - Ability to dynamically register custom fitting functions
|
|
45
|
+
* - Automatic fit function determination
|
|
46
|
+
* - Caching of custom fitting functions
|
|
47
|
+
* - Ability to get fitting performance characteristics (r-squared, classification, etc)
|
|
48
|
+
* - Deep integration with the Datagrok grid
|
|
49
|
+
* - Either fitting on the fly, or using the supplied function + parameters
|
|
50
|
+
* - Multiple series in one cell
|
|
51
|
+
* - Confidence intervals drawing
|
|
52
|
+
* - Ability to define chart, marker, or fitting options (such as fit function or marker color)
|
|
53
|
+
* on the column level, with the ability to override it on a grid cell or point level
|
|
54
|
+
* - Clicking a point in a chart within a grid makes it an outlier -> curve is re-fitted on the fly
|
|
55
|
+
* - Ability to specify a chart as "reference" so that it is shown on every other chart for comparison
|
|
56
|
+
* - Ability to overlay curves from multiple grid cells (special viewer)
|
|
57
|
+
* - Work with series stored in multiple formats (binary for performance, json for flexibility, etc)
|
|
58
|
+
*/
|
|
59
|
+
export declare const FIT_SEM_TYPE = "fit";
|
|
60
|
+
export declare const FIT_CELL_TYPE = "fit";
|
|
61
|
+
export declare const TAG_FIT = ".fit";
|
|
62
|
+
export declare const CONFIDENCE_INTERVAL_STROKE_COLOR = "rgba(255,191,63,0.4)";
|
|
63
|
+
export declare const CONFIDENCE_INTERVAL_FILL_COLOR = "rgba(255,238,204,0.3)";
|
|
64
|
+
export declare const CURVE_CONFIDENCE_INTERVAL_BOUNDS: {
|
|
65
|
+
TOP: string;
|
|
66
|
+
BOTTOM: string;
|
|
67
|
+
};
|
|
68
|
+
export declare type FitMarkerType = 'asterisk' | 'circle' | 'cross border' | 'diamond' | 'square' | 'star' | 'triangle bottom' | 'triangle left' | 'triangle right' | 'triangle top';
|
|
69
|
+
/** A point in the fit series. Only x and y are required. Can override some fields defined in IFitSeriesOptions. */
|
|
70
|
+
export interface IFitPoint {
|
|
71
|
+
x: number;
|
|
72
|
+
y: number;
|
|
73
|
+
outlier?: boolean;
|
|
74
|
+
minY?: number;
|
|
75
|
+
maxY?: number;
|
|
76
|
+
marker?: FitMarkerType;
|
|
77
|
+
color?: string;
|
|
78
|
+
}
|
|
79
|
+
/** A series consists of points, has a name, and options.
|
|
80
|
+
* If defined, seriesOptions are merged with {@link IFitChartData.seriesOptions} */
|
|
81
|
+
export interface IFitSeries extends IFitSeriesOptions {
|
|
82
|
+
points: IFitPoint[];
|
|
83
|
+
}
|
|
84
|
+
export interface IFitChartLabelOptions {
|
|
85
|
+
visible: boolean;
|
|
86
|
+
color: string;
|
|
87
|
+
name: string;
|
|
88
|
+
}
|
|
89
|
+
/** Chart options. For fitted curves, this object is stored in the grid column tags and is used by the renderer. */
|
|
90
|
+
export interface IFitChartOptions {
|
|
91
|
+
minX?: number;
|
|
92
|
+
minY?: number;
|
|
93
|
+
maxX?: number;
|
|
94
|
+
maxY?: number;
|
|
95
|
+
xAxisName?: string;
|
|
96
|
+
yAxisName?: string;
|
|
97
|
+
logX?: boolean;
|
|
98
|
+
logY?: boolean;
|
|
99
|
+
showStatistics?: string[];
|
|
100
|
+
labelOptions?: IFitChartLabelOptions[];
|
|
101
|
+
}
|
|
102
|
+
/** Data for the fit chart. */
|
|
103
|
+
export interface IFitChartData {
|
|
104
|
+
chartOptions?: IFitChartOptions;
|
|
105
|
+
seriesOptions?: IFitSeriesOptions;
|
|
106
|
+
series?: IFitSeries[];
|
|
107
|
+
}
|
|
108
|
+
/** Class that implements {@link IFitChartData} interface */
|
|
109
|
+
export declare class FitChartData implements IFitChartData {
|
|
110
|
+
chartOptions: IFitChartOptions;
|
|
111
|
+
seriesOptions: IFitSeriesOptions;
|
|
112
|
+
series: IFitSeries[];
|
|
113
|
+
}
|
|
114
|
+
/** Series options can be either applied globally on a column level, or partially overridden in particular series */
|
|
115
|
+
export interface IFitSeriesOptions {
|
|
116
|
+
name?: string;
|
|
117
|
+
fitFunction?: string | IFitFunctionDescription;
|
|
118
|
+
parameters?: number[];
|
|
119
|
+
parameterBounds?: FitParamBounds[];
|
|
120
|
+
markerType?: FitMarkerType;
|
|
121
|
+
pointColor?: string;
|
|
122
|
+
fitLineColor?: string;
|
|
123
|
+
confidenceIntervalColor?: string;
|
|
124
|
+
showFitLine?: boolean;
|
|
125
|
+
showPoints?: string;
|
|
126
|
+
showCurveConfidenceInterval?: boolean;
|
|
127
|
+
showIntercept?: boolean;
|
|
128
|
+
showBoxPlot?: boolean;
|
|
129
|
+
showConfidenceForX?: number;
|
|
130
|
+
clickToToggle?: boolean;
|
|
131
|
+
labels?: {
|
|
132
|
+
[key: string]: string | number | boolean;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/** Properties that describe {@link FitStatistics}. Useful for editing, initialization, transformations, etc. */
|
|
136
|
+
export declare const statisticsProperties: Property[];
|
|
137
|
+
/** Properties that describe {@link IFitChartOptions}. Useful for editing, initialization, transformations, etc. */
|
|
138
|
+
export declare const fitChartDataProperties: Property[];
|
|
139
|
+
/** Properties that describe {@link IFitSeriesOptions}. Useful for editing, initialization, transformations, etc. */
|
|
140
|
+
export declare const fitSeriesProperties: Property[];
|
|
141
|
+
export declare const FIT_FUNCTION_SIGMOID = "sigmoid";
|
|
142
|
+
export declare const FIT_FUNCTION_LINEAR = "linear";
|
|
143
|
+
export declare const FIT_STATS_RSQUARED = "rSquared";
|
|
144
|
+
export declare const FIT_STATS_AUC = "auc";
|
|
145
|
+
export declare abstract class FitFunction {
|
|
146
|
+
abstract get name(): string;
|
|
147
|
+
abstract get parameterNames(): string[];
|
|
148
|
+
abstract y(params: number[], x: number): number;
|
|
149
|
+
abstract getInitialParameters(x: number[], y: number[]): number[];
|
|
150
|
+
}
|
|
151
|
+
export declare class LinearFunction extends FitFunction {
|
|
152
|
+
get name(): string;
|
|
153
|
+
get parameterNames(): string[];
|
|
154
|
+
y(params: number[], x: number): number;
|
|
155
|
+
getInitialParameters(x: number[], y: number[]): number[];
|
|
156
|
+
}
|
|
157
|
+
export declare class SigmoidFunction extends FitFunction {
|
|
158
|
+
get name(): string;
|
|
159
|
+
get parameterNames(): string[];
|
|
160
|
+
y(params: number[], x: number): number;
|
|
161
|
+
getInitialParameters(x: number[], y: number[]): number[];
|
|
162
|
+
}
|
|
163
|
+
export declare class JsFunction extends FitFunction {
|
|
164
|
+
private _name;
|
|
165
|
+
private _parameterNames;
|
|
166
|
+
constructor(name: string, yFunc: (params: number[], x: number) => number, getInitParamsFunc: (x: number[], y: number[]) => number[], parameterNames: string[]);
|
|
167
|
+
get name(): string;
|
|
168
|
+
get parameterNames(): string[];
|
|
169
|
+
y(params: number[], x: number): number;
|
|
170
|
+
getInitialParameters(x: number[], y: number[]): number[];
|
|
171
|
+
}
|
|
172
|
+
export declare const fitFunctions: {
|
|
173
|
+
[index: string]: FitFunction;
|
|
174
|
+
};
|
|
175
|
+
export interface IFitOptions {
|
|
176
|
+
errorModel: FitErrorModel;
|
|
177
|
+
confidenceLevel: number;
|
|
178
|
+
statistics: boolean;
|
|
179
|
+
}
|
|
180
|
+
export declare function getOrCreateFitFunction(seriesFitFunc: string | IFitFunctionDescription): FitFunction;
|
|
181
|
+
export declare function fitData(data: {
|
|
182
|
+
x: number[];
|
|
183
|
+
y: number[];
|
|
184
|
+
}, fitFunction: FitFunction, errorModel: FitErrorModel, parameterBounds?: FitParamBounds[]): FitCurve;
|
|
185
|
+
export declare function getFittedCurve(curveFunction: (params: number[], x: number) => number, paramValues: number[]): (x: number) => number;
|
|
186
|
+
export declare function getCurveConfidenceIntervals(data: {
|
|
187
|
+
x: number[];
|
|
188
|
+
y: number[];
|
|
189
|
+
}, paramValues: number[], curveFunction: (params: number[], x: number) => number, confidenceLevel: number | undefined, errorModel: FitErrorModel): FitConfidenceIntervals;
|
|
190
|
+
export declare function getStatistics(data: {
|
|
191
|
+
x: number[];
|
|
192
|
+
y: number[];
|
|
193
|
+
}, paramValues: number[], curveFunction: (params: number[], x: number) => number, statistics?: boolean): FitStatistics;
|
|
194
|
+
export declare function getInvertedFunctions(data: {
|
|
195
|
+
x: number[];
|
|
196
|
+
y: number[];
|
|
197
|
+
}, paramValues: number[], confidenceLevel?: number, statistics?: boolean): FitInvertedFunctions | null;
|
|
198
|
+
export declare function sigmoid(params: number[], x: number): number;
|
|
199
|
+
export declare function getAuc(fittedCurve: (x: number) => number, data: {
|
|
200
|
+
x: number[];
|
|
201
|
+
y: number[];
|
|
202
|
+
}): number;
|
|
203
|
+
export declare function getDetCoeff(fittedCurve: (x: number) => number, data: {
|
|
204
|
+
x: number[];
|
|
205
|
+
y: number[];
|
|
206
|
+
}): number;
|
|
207
|
+
//# sourceMappingURL=fit-curve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-curve.d.ts","sourceRoot":"","sources":["fit-curve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAsBnD,oBAAY,aAAa;IACvB,QAAQ,IAAA;IACR,YAAY,IAAA;CACb;AAED,oBAAY,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,oBAAY,QAAQ,GAAG;IACrB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,oBAAY,sBAAsB,GAAG;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;EAoBE;AAEF,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,OAAO,SAAS,CAAC;AAE9B,eAAO,MAAM,gCAAgC,yBAAyB,CAAC;AACvE,eAAO,MAAM,8BAA8B,0BAA0B,CAAC;AAEtE,eAAO,MAAM,gCAAgC;;;CAG5C,CAAC;AAEF,oBAAY,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,iBAAiB,GACpH,eAAe,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEtD,mHAAmH;AACnH,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;mFACmF;AACnF,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mHAAmH;AACnH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACxC;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,4DAA4D;AAC5D,qBAAa,YAAa,YAAW,aAAa;IAChD,YAAY,EAAE,gBAAgB,CAAM;IACpC,aAAa,EAAE,iBAAiB,CAAM;IACtC,MAAM,EAAE,UAAU,EAAE,CAAM;CAC3B;AAED,oHAAoH;AACpH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;CACrD;AAID,gHAAgH;AAChH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,EAQ1C,CAAC;AAEF,mHAAmH;AACnH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,EAc5C,CAAC;AAEF,oHAAoH;AACpH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,EAwBzC,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,aAAa,QAAQ,CAAC;AAInC,8BAAsB,WAAW;IAC/B,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAC5B,QAAQ,KAAK,cAAc,IAAI,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAC/C,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAClE;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC7C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,cAAc,IAAI,MAAM,EAAE,CAE7B;IAED,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAItC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAGzD;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,cAAc,IAAI,MAAM,EAAE,CAE7B;IAED,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAItC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAkBzD;AAED,qBAAa,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,eAAe,CAAW;gBAEtB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,EACtE,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;IAUrF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,cAAc,IAAI,MAAM,EAAE,CAE7B;IAED,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAItC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAGzD;AAED,eAAO,MAAM,YAAY,EAAE;IAAC,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAA;CAGvD,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAoCD,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,uBAAuB,GAAG,WAAW,CAkBnG;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE;IAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAC3G,eAAe,CAAC,EAAE,cAAc,EAAE,GAAG,QAAQ,CAuC9C;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAC3G,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAIrB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EACjG,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,eAAe,oBAAe,EAAE,UAAU,EAAE,aAAa,GACjH,sBAAsB,CA0BvB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EACnF,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,UAAU,GAAE,OAAc,GAAG,aAAa,CAYnG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAC1F,eAAe,GAAE,MAAa,EAAE,UAAU,GAAE,OAAc,GAAG,oBAAoB,GAAG,IAAI,CAuCzF;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE;IAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,GAAG,MAAM,CAWnG;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE;IAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,GAAG,MAAM,CAYxG"}
|