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.
@@ -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.mean = mean;
45
- this.variance = variance;
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": "2.0.2",
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
- "main": "dist/index.js",
16
- "typings": "dist/index.d.ts",
17
- "module": "dist/module/index.js",
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,.js .",
24
- "lint:fix": "eslint --ext .ts,.js --fix .",
23
+ "lint": "eslint --ext .ts .",
24
+ "lint:fix": "eslint --ext .ts --fix .",
25
25
  "prepare": "npm run build",
26
- "build": "del-cli dist && tsc -p tsconfig.build.json && tsc -p tsconfig.module.json",
27
- "build:docs": "typedoc --out docs --hideGenerator --target ES6 --mode file src && touch docs/.nojekyll",
28
- "test": "jest",
29
- "test:watch": "jest --watch",
30
- "test:ci": "npm run test -- --coverage --no-cache",
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
- "@babel/plugin-transform-modules-commonjs": "7.10.4",
36
- "@babel/preset-typescript": "7.10.4",
37
- "@ctrl/eslint-config": "1.1.0",
38
- "@jest/globals": "26.4.2",
39
- "@types/node": "14.6.2",
40
- "del-cli": "3.0.1",
41
- "jest": "26.4.2",
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
- "branch": "master"
42
+ "branches": [
43
+ "master"
44
+ ]
58
45
  },
59
46
  "engines": {
60
- "node": ">=10.0.0"
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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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}