ts-gaussian 2.0.2 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index.d.ts → src/index.d.ts} +1 -1
- package/dist/{module → src}/index.js +18 -3
- package/package.json +23 -36
- package/dist/index.js +0 -129
- package/dist/index.js.map +0 -1
- package/dist/module/index.js.map +0 -1
@@ -14,7 +14,7 @@ export declare function ierfc(x: number): number;
|
|
14
14
|
export declare class Gaussian {
|
15
15
|
mean: number;
|
16
16
|
variance: number;
|
17
|
-
standardDeviation: number;
|
17
|
+
readonly standardDeviation: number;
|
18
18
|
constructor(mean: number, variance: number);
|
19
19
|
/**
|
20
20
|
* probability density function, which describes the probability
|
@@ -41,8 +41,24 @@ export function ierfc(x) {
|
|
41
41
|
*/
|
42
42
|
export class Gaussian {
|
43
43
|
constructor(mean, variance) {
|
44
|
-
this
|
45
|
-
|
44
|
+
Object.defineProperty(this, "mean", {
|
45
|
+
enumerable: true,
|
46
|
+
configurable: true,
|
47
|
+
writable: true,
|
48
|
+
value: mean
|
49
|
+
});
|
50
|
+
Object.defineProperty(this, "variance", {
|
51
|
+
enumerable: true,
|
52
|
+
configurable: true,
|
53
|
+
writable: true,
|
54
|
+
value: variance
|
55
|
+
});
|
56
|
+
Object.defineProperty(this, "standardDeviation", {
|
57
|
+
enumerable: true,
|
58
|
+
configurable: true,
|
59
|
+
writable: true,
|
60
|
+
value: void 0
|
61
|
+
});
|
46
62
|
if (variance <= 0) {
|
47
63
|
throw new Error(`Variance must be > 0 (but was ${variance})`);
|
48
64
|
}
|
@@ -120,4 +136,3 @@ export class Gaussian {
|
|
120
136
|
return new Gaussian(precisionmean / precision, 1 / precision);
|
121
137
|
}
|
122
138
|
}
|
123
|
-
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "ts-gaussian",
|
3
|
-
"version": "
|
3
|
+
"version": "3.0.2",
|
4
4
|
"description": "A TypeScript model of a Gaussian distribution",
|
5
5
|
"author": "Scott Cooper <scttcper@gmail.com>",
|
6
6
|
"license": "MIT",
|
@@ -12,51 +12,38 @@
|
|
12
12
|
"normal",
|
13
13
|
"distribution"
|
14
14
|
],
|
15
|
-
"
|
16
|
-
"
|
17
|
-
"
|
15
|
+
"type": "module",
|
16
|
+
"exports": "./dist/src/index.js",
|
17
|
+
"types": "./dist/src/index.d.ts",
|
18
18
|
"files": [
|
19
|
-
"dist"
|
19
|
+
"dist/src"
|
20
20
|
],
|
21
21
|
"sideEffects": false,
|
22
22
|
"scripts": {
|
23
|
-
"lint": "eslint --ext .ts
|
24
|
-
"lint:fix": "eslint --ext .ts
|
23
|
+
"lint": "eslint --ext .ts .",
|
24
|
+
"lint:fix": "eslint --ext .ts --fix .",
|
25
25
|
"prepare": "npm run build",
|
26
|
-
"build": "
|
27
|
-
"build:docs": "typedoc
|
28
|
-
"test": "
|
29
|
-
"test:watch": "
|
30
|
-
"test:ci": "
|
31
|
-
"semantic-release": "semantic-release"
|
26
|
+
"build": "tsc",
|
27
|
+
"build:docs": "typedoc",
|
28
|
+
"test": "vitest run",
|
29
|
+
"test:watch": "vitest",
|
30
|
+
"test:ci": "vitest run --coverage --reporter=default --reporter=junit --outputFile=./junit.xml"
|
32
31
|
},
|
33
|
-
"dependencies": {},
|
34
32
|
"devDependencies": {
|
35
|
-
"@
|
36
|
-
"@
|
37
|
-
"@
|
38
|
-
"
|
39
|
-
"
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"typedoc": "0.19.0",
|
43
|
-
"typescript": "4.0.2"
|
44
|
-
},
|
45
|
-
"jest": {
|
46
|
-
"testEnvironment": "node"
|
47
|
-
},
|
48
|
-
"babel": {
|
49
|
-
"presets": [
|
50
|
-
"@babel/preset-typescript"
|
51
|
-
],
|
52
|
-
"plugins": [
|
53
|
-
"@babel/plugin-transform-modules-commonjs"
|
54
|
-
]
|
33
|
+
"@ctrl/eslint-config": "3.4.5",
|
34
|
+
"@sindresorhus/tsconfig": "3.0.1",
|
35
|
+
"@types/node": "17.0.41",
|
36
|
+
"c8": "7.11.3",
|
37
|
+
"typedoc": "0.22.17",
|
38
|
+
"typescript": "4.7.3",
|
39
|
+
"vitest": "0.14.1"
|
55
40
|
},
|
56
41
|
"release": {
|
57
|
-
"
|
42
|
+
"branches": [
|
43
|
+
"master"
|
44
|
+
]
|
58
45
|
},
|
59
46
|
"engines": {
|
60
|
-
"node": ">=
|
47
|
+
"node": ">=14.16"
|
61
48
|
}
|
62
49
|
}
|
package/dist/index.js
DELETED
@@ -1,129 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
// forked from https://github.com/tomgp/gaussian
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
-
exports.Gaussian = exports.ierfc = exports.erfc = void 0;
|
5
|
-
/**
|
6
|
-
* Complementary error function
|
7
|
-
* From Numerical Recipes in C 2e p221
|
8
|
-
*/
|
9
|
-
function erfc(x) {
|
10
|
-
const z = Math.abs(x);
|
11
|
-
const t = 1 / (1 + z / 2);
|
12
|
-
// prettier-ignore
|
13
|
-
const r = t * Math.exp(-z * z - 1.26551223 + t * (1.00002368 +
|
14
|
-
t * (0.37409196 + t * (0.09678418 + t * (-0.18628806 +
|
15
|
-
t * (0.27886807 + t * (-1.13520398 + t * (1.48851587 +
|
16
|
-
t * (-0.82215223 + t * 0.17087277)))))))));
|
17
|
-
return x >= 0 ? r : 2 - r;
|
18
|
-
}
|
19
|
-
exports.erfc = erfc;
|
20
|
-
/**
|
21
|
-
* Inverse complementary error function
|
22
|
-
* From Numerical Recipes 3e p265
|
23
|
-
*/
|
24
|
-
function ierfc(x) {
|
25
|
-
if (x >= 2) {
|
26
|
-
return -100;
|
27
|
-
}
|
28
|
-
if (x <= 0) {
|
29
|
-
return 100;
|
30
|
-
}
|
31
|
-
const xx = x < 1 ? x : 2 - x;
|
32
|
-
const t = Math.sqrt(-2 * Math.log(xx / 2));
|
33
|
-
// prettier-ignore
|
34
|
-
let r = -0.70711 * ((2.30753 + t * 0.27061) /
|
35
|
-
(1 + t * (0.99229 + t * 0.04481)) - t);
|
36
|
-
for (let j = 0; j < 2; j++) {
|
37
|
-
const err = erfc(r) - xx;
|
38
|
-
// eslint-disable-next-line @typescript-eslint/no-loss-of-precision
|
39
|
-
r += err / (1.12837916709551257 * Math.exp(-(r * r)) - r * err);
|
40
|
-
}
|
41
|
-
return x < 1 ? r : -r;
|
42
|
-
}
|
43
|
-
exports.ierfc = ierfc;
|
44
|
-
/**
|
45
|
-
* Models the [Normal](http://en.wikipedia.org/wiki/Normal_distribution) (or Gaussian) distribution.
|
46
|
-
*/
|
47
|
-
class Gaussian {
|
48
|
-
constructor(mean, variance) {
|
49
|
-
this.mean = mean;
|
50
|
-
this.variance = variance;
|
51
|
-
if (variance <= 0) {
|
52
|
-
throw new Error(`Variance must be > 0 (but was ${variance})`);
|
53
|
-
}
|
54
|
-
this.standardDeviation = Math.sqrt(variance);
|
55
|
-
}
|
56
|
-
/**
|
57
|
-
* probability density function, which describes the probability
|
58
|
-
* of a random variable taking on the value _x_
|
59
|
-
*/
|
60
|
-
pdf(x) {
|
61
|
-
const m = this.standardDeviation * Math.sqrt(2 * Math.PI);
|
62
|
-
const e = Math.exp(-((x - this.mean) ** 2) / (2 * this.variance));
|
63
|
-
return e / m;
|
64
|
-
}
|
65
|
-
/**
|
66
|
-
* cumulative distribution function, which describes the probability of a
|
67
|
-
* random variable falling in the interval (−∞, _x_]
|
68
|
-
*/
|
69
|
-
cdf(x) {
|
70
|
-
return 0.5 * erfc(-(x - this.mean) / (this.standardDeviation * Math.sqrt(2)));
|
71
|
-
}
|
72
|
-
/**
|
73
|
-
* percent point function, the inverse of _cdf_
|
74
|
-
*/
|
75
|
-
ppf(x) {
|
76
|
-
return this.mean - this.standardDeviation * Math.sqrt(2) * ierfc(2 * x);
|
77
|
-
}
|
78
|
-
/**
|
79
|
-
* Product distribution of this and d (scale for constant)
|
80
|
-
* @returns the product distribution of this and the given distribution;
|
81
|
-
* equivalent to `scale(d)` when d is a constant
|
82
|
-
*/
|
83
|
-
mul(d) {
|
84
|
-
if (typeof d === 'number') {
|
85
|
-
return this.scale(d);
|
86
|
-
}
|
87
|
-
const precision = 1 / this.variance;
|
88
|
-
const dprecision = 1 / d.variance;
|
89
|
-
return this.fromPrecisionMean(precision + dprecision, precision * this.mean + dprecision * d.mean);
|
90
|
-
}
|
91
|
-
/**
|
92
|
-
* Quotient distribution of this and d (scale for constant)
|
93
|
-
* @returns the quotient distribution of this and the given distribution; equivalent to `scale(1/d)` when d is a constant
|
94
|
-
*/
|
95
|
-
div(d) {
|
96
|
-
if (typeof d === 'number') {
|
97
|
-
return this.scale(1 / d);
|
98
|
-
}
|
99
|
-
const precision = 1 / this.variance;
|
100
|
-
const dprecision = 1 / d.variance;
|
101
|
-
return this.fromPrecisionMean(precision - dprecision, precision * this.mean - dprecision * d.mean);
|
102
|
-
}
|
103
|
-
/**
|
104
|
-
* Addition of this and d
|
105
|
-
* @returns the result of adding this and the given distribution's means and variances
|
106
|
-
*/
|
107
|
-
add(d) {
|
108
|
-
return new Gaussian(this.mean + d.mean, this.variance + d.variance);
|
109
|
-
}
|
110
|
-
/**
|
111
|
-
* Subtraction of this and d
|
112
|
-
* @returns the result of subtracting this and the given distribution's means and variances
|
113
|
-
*/
|
114
|
-
sub(d) {
|
115
|
-
return new Gaussian(this.mean - d.mean, this.variance + d.variance);
|
116
|
-
}
|
117
|
-
/**
|
118
|
-
* Scale this by constant c
|
119
|
-
* @returns the result of scaling this distribution by the given constant
|
120
|
-
*/
|
121
|
-
scale(c) {
|
122
|
-
return new Gaussian(this.mean * c, this.variance * c * c);
|
123
|
-
}
|
124
|
-
fromPrecisionMean(precision, precisionmean) {
|
125
|
-
return new Gaussian(precisionmean / precision, 1 / precision);
|
126
|
-
}
|
127
|
-
}
|
128
|
-
exports.Gaussian = Gaussian;
|
129
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/module/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|