dsp-collection 0.2.5 → 0.2.7

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.
Files changed (86) hide show
  1. package/README.md +6 -2
  2. package/filter/FirFilterWin.d.ts +8 -0
  3. package/filter/FirFilterWin.d.ts.map +1 -0
  4. package/filter/FirFilterWin.js +55 -0
  5. package/filter/FirFilterWin.js.map +1 -0
  6. package/filter/SpecFilt.d.ts +11 -10
  7. package/filter/SpecFilt.d.ts.map +1 -0
  8. package/filter/SpecFilt.js +98 -98
  9. package/filter/SpecFilt.js.map +1 -1
  10. package/math/Complex.d.ts +43 -42
  11. package/math/Complex.d.ts.map +1 -0
  12. package/math/Complex.js +130 -129
  13. package/math/Complex.js.map +1 -1
  14. package/math/ComplexArray.d.ts +37 -36
  15. package/math/ComplexArray.d.ts.map +1 -0
  16. package/math/ComplexArray.js +170 -170
  17. package/math/ComplexArray.js.map +1 -1
  18. package/math/MathUtils.d.ts +10 -7
  19. package/math/MathUtils.d.ts.map +1 -0
  20. package/math/MathUtils.js +116 -81
  21. package/math/MathUtils.js.map +1 -1
  22. package/math/MutableComplex.d.ts +24 -22
  23. package/math/MutableComplex.d.ts.map +1 -0
  24. package/math/MutableComplex.js +68 -64
  25. package/math/MutableComplex.js.map +1 -1
  26. package/math/NumApprox.d.ts +4 -3
  27. package/math/NumApprox.d.ts.map +1 -0
  28. package/math/NumApprox.js +67 -67
  29. package/math/NumApprox.js.map +1 -1
  30. package/math/PolyReal.d.ts +14 -13
  31. package/math/PolyReal.d.ts.map +1 -0
  32. package/math/PolyReal.js +226 -226
  33. package/math/PolyReal.js.map +1 -1
  34. package/package.json +11 -3
  35. package/signal/AdaptiveStft.d.ts +13 -12
  36. package/signal/AdaptiveStft.d.ts.map +1 -0
  37. package/signal/AdaptiveStft.js +57 -57
  38. package/signal/AdaptiveStft.js.map +1 -1
  39. package/signal/Autocorrelation.d.ts +6 -5
  40. package/signal/Autocorrelation.d.ts.map +1 -0
  41. package/signal/Autocorrelation.js +53 -53
  42. package/signal/Autocorrelation.js.map +1 -1
  43. package/signal/Dft.d.ts +10 -9
  44. package/signal/Dft.d.ts.map +1 -0
  45. package/signal/Dft.js +87 -87
  46. package/signal/Dft.js.map +1 -1
  47. package/signal/EnvelopeDetection.d.ts +2 -1
  48. package/signal/EnvelopeDetection.d.ts.map +1 -0
  49. package/signal/EnvelopeDetection.js +9 -9
  50. package/signal/EnvelopeDetection.js.map +1 -1
  51. package/signal/Fft.d.ts +10 -9
  52. package/signal/Fft.d.ts.map +1 -0
  53. package/signal/Fft.js +275 -275
  54. package/signal/Fft.js.map +1 -1
  55. package/signal/Goertzel.d.ts +6 -5
  56. package/signal/Goertzel.d.ts.map +1 -0
  57. package/signal/Goertzel.js +48 -48
  58. package/signal/Goertzel.js.map +1 -1
  59. package/signal/InstFreq.d.ts +9 -8
  60. package/signal/InstFreq.d.ts.map +1 -0
  61. package/signal/InstFreq.js +26 -26
  62. package/signal/InstFreq.js.map +1 -1
  63. package/signal/PitchDetectionHarm.d.ts +27 -26
  64. package/signal/PitchDetectionHarm.d.ts.map +1 -0
  65. package/signal/PitchDetectionHarm.js +72 -68
  66. package/signal/PitchDetectionHarm.js.map +1 -1
  67. package/signal/Resampling.d.ts +8 -7
  68. package/signal/Resampling.d.ts.map +1 -0
  69. package/signal/Resampling.js +218 -218
  70. package/signal/Resampling.js.map +1 -1
  71. package/signal/WindowFunctions.d.ts +42 -40
  72. package/signal/WindowFunctions.d.ts.map +1 -0
  73. package/signal/WindowFunctions.js +194 -194
  74. package/signal/WindowFunctions.js.map +1 -1
  75. package/utils/ArrayUtils.d.ts +10 -9
  76. package/utils/ArrayUtils.d.ts.map +1 -0
  77. package/utils/ArrayUtils.js +68 -68
  78. package/utils/ArrayUtils.js.map +1 -1
  79. package/utils/DspUtils.d.ts +5 -2
  80. package/utils/DspUtils.d.ts.map +1 -0
  81. package/utils/DspUtils.js +12 -6
  82. package/utils/DspUtils.js.map +1 -1
  83. package/utils/MiscUtils.d.ts +7 -6
  84. package/utils/MiscUtils.d.ts.map +1 -0
  85. package/utils/MiscUtils.js +20 -20
  86. package/utils/MiscUtils.js.map +1 -1
@@ -1,171 +1,171 @@
1
- import Complex from "./Complex.js";
2
- import MutableComplex from "./MutableComplex.js";
3
- import { assert } from "../utils/MiscUtils.js";
4
- const emptyFloat64Array = new Float64Array(0);
5
- export default class ComplexArray {
6
- constructor(x = 0) {
7
- if (typeof x == "number") {
8
- this.constructByLength(x);
9
- }
10
- else if (Array.isArray(x) && x[0] instanceof Complex) {
11
- this.constructByArrayOfComplex(x);
12
- }
13
- else if (x instanceof Object && x.length !== undefined) {
14
- this.constructByArrayOfNumber(x);
15
- }
16
- else {
17
- throw new Error("Invalid constructor argument.");
18
- }
19
- }
20
- constructByLength(length) {
21
- this.length = length;
22
- if (length) {
23
- this.re = new Float64Array(length);
24
- this.im = new Float64Array(length);
25
- }
26
- else {
27
- this.re = emptyFloat64Array;
28
- this.im = emptyFloat64Array;
29
- }
30
- }
31
- constructByArrayOfComplex(a) {
32
- this.length = a.length;
33
- this.re = new Float64Array(a.length);
34
- this.im = new Float64Array(a.length);
35
- for (let i = 0; i < a.length; i++) {
36
- this.re[i] = a[i].re;
37
- this.im[i] = a[i].im;
38
- }
39
- }
40
- constructByArrayOfNumber(a) {
41
- this.length = a.length;
42
- this.re = new Float64Array(a);
43
- this.im = new Float64Array(a.length);
44
- }
45
- static fromPolar(absArray, argArray) {
46
- const n = absArray.length;
47
- assert(n == argArray.length);
48
- const a = new ComplexArray(n);
49
- for (let i = 0; i < n; i++) {
50
- a.setPolar(i, absArray[i], argArray[i]);
51
- }
52
- return a;
53
- }
54
- slice(begin, end) {
55
- const a2 = new ComplexArray();
56
- a2.re = this.re.slice(begin, end);
57
- a2.im = this.im.slice(begin, end);
58
- a2.length = a2.re.length;
59
- return a2;
60
- }
61
- subarray(begin, end) {
62
- const a2 = new ComplexArray();
63
- a2.re = this.re.subarray(begin, end);
64
- a2.im = this.im.subarray(begin, end);
65
- a2.length = end - begin;
66
- return a2;
67
- }
68
- set(i, c) {
69
- this.re[i] = c.re;
70
- this.im[i] = c.im;
71
- }
72
- setReIm(i, re, im) {
73
- this.re[i] = re;
74
- this.im[i] = im;
75
- }
76
- setPolar(i, abs, arg) {
77
- this.re[i] = abs * Math.cos(arg);
78
- this.im[i] = abs * Math.sin(arg);
79
- }
80
- static copy1(a1, i1, a2, i2) {
81
- a2.re[i2] = a1.re[i1];
82
- a2.im[i2] = a1.im[i1];
83
- }
84
- get(i) {
85
- return new MutableComplex(this.re[i], this.im[i]);
86
- }
87
- getAbs(i) {
88
- return Math.hypot(this.re[i], this.im[i]);
89
- }
90
- getArg(i) {
91
- return Math.atan2(this.im[i], this.re[i]);
92
- }
93
- toString() {
94
- let s = "[";
95
- for (let i = 0; i < this.length; i++) {
96
- if (i > 0) {
97
- s += ", ";
98
- }
99
- s += "(" + this.re[i] + ", " + this.im[i] + ")";
100
- }
101
- s += "]";
102
- return s;
103
- }
104
- getAbsArray() {
105
- const n = this.length;
106
- const a = new Float64Array(n);
107
- for (let i = 0; i < n; i++) {
108
- a[i] = this.getAbs(i);
109
- }
110
- return a;
111
- }
112
- getArgArray() {
113
- const n = this.length;
114
- const a = new Float64Array(n);
115
- for (let i = 0; i < n; i++) {
116
- a[i] = this.getArg(i);
117
- }
118
- return a;
119
- }
120
- addRealTo(i, x) {
121
- this.re[i] += x;
122
- }
123
- addTo(i, x) {
124
- this.re[i] += x.re;
125
- this.im[i] += x.im;
126
- }
127
- subRealFrom(i, x) {
128
- this.re[i] -= x;
129
- }
130
- subFrom(i, x) {
131
- this.re[i] -= x.re;
132
- this.im[i] -= x.im;
133
- }
134
- mulByReal(i, x) {
135
- this.re[i] *= x;
136
- this.im[i] *= x;
137
- }
138
- mulBy(i, x) {
139
- this.setMul(i, this.re[i], this.im[i], x.re, x.im);
140
- }
141
- divByReal(i, x) {
142
- this.re[i] /= x;
143
- this.im[i] /= x;
144
- }
145
- divBy(i, x) {
146
- this.setDiv(i, this.re[i], this.im[i], x.re, x.im);
147
- }
148
- mulByArray(a2) {
149
- const n = this.length;
150
- assert(a2.length == n);
151
- for (let i = 0; i < n; i++) {
152
- this.setMul(i, this.re[i], this.im[i], a2.re[i], a2.im[i]);
153
- }
154
- }
155
- mulAllByReal(x) {
156
- const n = this.length;
157
- for (let i = 0; i < n; i++) {
158
- this.mulByReal(i, x);
159
- }
160
- }
161
- setMul(i, re1, im1, re2, im2) {
162
- this.re[i] = re1 * re2 - im1 * im2;
163
- this.im[i] = re1 * im2 + im1 * re2;
164
- }
165
- setDiv(i, re1, im1, re2, im2) {
166
- const m = re1 * re1 + im1 * im1;
167
- this.re[i] = (re1 * re2 + im1 * im2) / m;
168
- this.im[i] = (im1 * re2 - re1 * im2) / m;
169
- }
170
- }
1
+ import Complex from "./Complex.js";
2
+ import MutableComplex from "./MutableComplex.js";
3
+ import { assert } from "../utils/MiscUtils.js";
4
+ const emptyFloat64Array = new Float64Array(0);
5
+ export default class ComplexArray {
6
+ constructor(x = 0) {
7
+ if (typeof x == "number") {
8
+ this.constructByLength(x);
9
+ }
10
+ else if (Array.isArray(x) && x[0] instanceof Complex) {
11
+ this.constructByArrayOfComplex(x);
12
+ }
13
+ else if (x instanceof Object && x.length !== undefined) {
14
+ this.constructByArrayOfNumber(x);
15
+ }
16
+ else {
17
+ throw new Error("Invalid constructor argument.");
18
+ }
19
+ }
20
+ constructByLength(length) {
21
+ this.length = length;
22
+ if (length) {
23
+ this.re = new Float64Array(length);
24
+ this.im = new Float64Array(length);
25
+ }
26
+ else {
27
+ this.re = emptyFloat64Array;
28
+ this.im = emptyFloat64Array;
29
+ }
30
+ }
31
+ constructByArrayOfComplex(a) {
32
+ this.length = a.length;
33
+ this.re = new Float64Array(a.length);
34
+ this.im = new Float64Array(a.length);
35
+ for (let i = 0; i < a.length; i++) {
36
+ this.re[i] = a[i].re;
37
+ this.im[i] = a[i].im;
38
+ }
39
+ }
40
+ constructByArrayOfNumber(a) {
41
+ this.length = a.length;
42
+ this.re = new Float64Array(a);
43
+ this.im = new Float64Array(a.length);
44
+ }
45
+ static fromPolar(absArray, argArray) {
46
+ const n = absArray.length;
47
+ assert(n == argArray.length);
48
+ const a = new ComplexArray(n);
49
+ for (let i = 0; i < n; i++) {
50
+ a.setPolar(i, absArray[i], argArray[i]);
51
+ }
52
+ return a;
53
+ }
54
+ slice(begin, end) {
55
+ const a2 = new ComplexArray();
56
+ a2.re = this.re.slice(begin, end);
57
+ a2.im = this.im.slice(begin, end);
58
+ a2.length = a2.re.length;
59
+ return a2;
60
+ }
61
+ subarray(begin, end) {
62
+ const a2 = new ComplexArray();
63
+ a2.re = this.re.subarray(begin, end);
64
+ a2.im = this.im.subarray(begin, end);
65
+ a2.length = end - begin;
66
+ return a2;
67
+ }
68
+ set(i, c) {
69
+ this.re[i] = c.re;
70
+ this.im[i] = c.im;
71
+ }
72
+ setReIm(i, re, im) {
73
+ this.re[i] = re;
74
+ this.im[i] = im;
75
+ }
76
+ setPolar(i, abs, arg) {
77
+ this.re[i] = abs * Math.cos(arg);
78
+ this.im[i] = abs * Math.sin(arg);
79
+ }
80
+ static copy1(a1, i1, a2, i2) {
81
+ a2.re[i2] = a1.re[i1];
82
+ a2.im[i2] = a1.im[i1];
83
+ }
84
+ get(i) {
85
+ return new MutableComplex(this.re[i], this.im[i]);
86
+ }
87
+ getAbs(i) {
88
+ return Math.hypot(this.re[i], this.im[i]);
89
+ }
90
+ getArg(i) {
91
+ return Math.atan2(this.im[i], this.re[i]);
92
+ }
93
+ toString() {
94
+ let s = "[";
95
+ for (let i = 0; i < this.length; i++) {
96
+ if (i > 0) {
97
+ s += ", ";
98
+ }
99
+ s += "(" + this.re[i] + ", " + this.im[i] + ")";
100
+ }
101
+ s += "]";
102
+ return s;
103
+ }
104
+ getAbsArray() {
105
+ const n = this.length;
106
+ const a = new Float64Array(n);
107
+ for (let i = 0; i < n; i++) {
108
+ a[i] = this.getAbs(i);
109
+ }
110
+ return a;
111
+ }
112
+ getArgArray() {
113
+ const n = this.length;
114
+ const a = new Float64Array(n);
115
+ for (let i = 0; i < n; i++) {
116
+ a[i] = this.getArg(i);
117
+ }
118
+ return a;
119
+ }
120
+ addRealTo(i, x) {
121
+ this.re[i] += x;
122
+ }
123
+ addTo(i, x) {
124
+ this.re[i] += x.re;
125
+ this.im[i] += x.im;
126
+ }
127
+ subRealFrom(i, x) {
128
+ this.re[i] -= x;
129
+ }
130
+ subFrom(i, x) {
131
+ this.re[i] -= x.re;
132
+ this.im[i] -= x.im;
133
+ }
134
+ mulByReal(i, x) {
135
+ this.re[i] *= x;
136
+ this.im[i] *= x;
137
+ }
138
+ mulBy(i, x) {
139
+ this.setMul(i, this.re[i], this.im[i], x.re, x.im);
140
+ }
141
+ divByReal(i, x) {
142
+ this.re[i] /= x;
143
+ this.im[i] /= x;
144
+ }
145
+ divBy(i, x) {
146
+ this.setDiv(i, this.re[i], this.im[i], x.re, x.im);
147
+ }
148
+ mulByArray(a2) {
149
+ const n = this.length;
150
+ assert(a2.length == n);
151
+ for (let i = 0; i < n; i++) {
152
+ this.setMul(i, this.re[i], this.im[i], a2.re[i], a2.im[i]);
153
+ }
154
+ }
155
+ mulAllByReal(x) {
156
+ const n = this.length;
157
+ for (let i = 0; i < n; i++) {
158
+ this.mulByReal(i, x);
159
+ }
160
+ }
161
+ setMul(i, re1, im1, re2, im2) {
162
+ this.re[i] = re1 * re2 - im1 * im2;
163
+ this.im[i] = re1 * im2 + im1 * re2;
164
+ }
165
+ setDiv(i, re1, im1, re2, im2) {
166
+ const m = re1 * re1 + im1 * im1;
167
+ this.re[i] = (re1 * re2 + im1 * im2) / m;
168
+ this.im[i] = (im1 * re2 - re1 * im2) / m;
169
+ }
170
+ }
171
171
  //# sourceMappingURL=ComplexArray.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComplexArray.js","sourceRoot":"","sources":["../../src/math/ComplexArray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComplexArray.js","sourceRoot":"","sources":["../../src/math/ComplexArray.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
- export declare function fuzzyEquals(a: number, b: number, eps: number): boolean;
2
- export declare function isFuzzyInteger(i: number, eps: number): boolean;
3
- export declare function isPowerOf2(i: number): boolean;
4
- export declare function getNextPowerOf2(x: number): number;
5
- export declare function floorLog2(x: number): number;
6
- export declare function hyperbolicDecline(t: number, a: number, b: number): number;
7
- export declare function movingAverage(a: ArrayLike<number>, windowWidth: number): Float64Array;
1
+ export declare function fuzzyEquals(a: number, b: number, eps: number): boolean;
2
+ export declare function isFuzzyInteger(i: number, eps: number): boolean;
3
+ export declare function isPowerOf2(i: number): boolean;
4
+ export declare function getNextPowerOf2(x: number): number;
5
+ export declare function floorLog2(x: number): number;
6
+ export declare function hyperbolicDecline(t: number, a: number, b: number): number;
7
+ export declare function simpleMovingAverage(a: ArrayLike<number>, windowWidth: number, shift?: boolean): Float64Array;
8
+ export declare function triangularMovingAverage(a: ArrayLike<number>, windowWidth: number): Float64Array;
9
+ export declare function triangularMovingAverageRef(a: ArrayLike<number>, windowWidth: number): Float64Array;
10
+ //# sourceMappingURL=MathUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathUtils.d.ts","sourceRoot":"","sources":["../../src/math/MathUtils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAI,OAAO,CAS3C;AAE9B,wBAAgB,cAAc,CAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAI,OAAO,CAClB;AAK/C,wBAAgB,UAAU,CAAE,CAAC,EAAE,MAAM,GAAI,OAAO,CAGjB;AAK/B,wBAAgB,eAAe,CAAE,CAAC,EAAE,MAAM,GAAI,MAAM,CAMtC;AAMd,wBAAgB,SAAS,CAAE,CAAC,EAAE,MAAM,GAAI,MAAM,CAGf;AAqB/B,wBAAgB,iBAAiB,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAI,MAAM,CASzB;AASnD,wBAAgB,mBAAmB,CAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAI,YAAY,CAoB9F;AAUf,wBAAgB,uBAAuB,CAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,GAAI,YAAY,CAQnF;AAQf,wBAAgB,0BAA0B,CAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,GAAI,YAAY,CAOtF"}
package/math/MathUtils.js CHANGED
@@ -1,82 +1,117 @@
1
- export function fuzzyEquals(a, b, eps) {
2
- if (!isFinite(a) || !isFinite(b)) {
3
- return false;
4
- }
5
- if (a == b) {
6
- return true;
7
- }
8
- const diff = Math.abs(a - b);
9
- if (diff <= eps) {
10
- return true;
11
- }
12
- const mag = Math.max(Math.abs(a), Math.abs(b));
13
- return diff <= mag * eps;
14
- }
15
- export function isFuzzyInteger(i, eps) {
16
- return Math.abs(i - Math.round(i)) <= eps;
17
- }
18
- export function isPowerOf2(i) {
19
- if (!Number.isSafeInteger(i) || i < 1 || i > 0x40000000) {
20
- return false;
21
- }
22
- return (i & (i - 1)) == 0;
23
- }
24
- export function getNextPowerOf2(x) {
25
- if (!isFinite(x)) {
26
- return NaN;
27
- }
28
- let n = 1;
29
- while (n <= x) {
30
- n *= 2;
31
- }
32
- return n;
33
- }
34
- export function floorLog2(x) {
35
- if (x > 0x7FFFFFFF || x < 1) {
36
- throw new Error("Argument is not a valid integer.");
37
- }
38
- return 31 - Math.clz32(x);
39
- }
40
- export function hyperbolicDecline(t, a, b) {
41
- switch (b) {
42
- case 1: {
43
- return 1 / (1 + a * t);
44
- }
45
- case 0: {
46
- return Math.exp(-a * t);
47
- }
48
- case -1: {
49
- return Math.max(0, 1 - a * t);
50
- }
51
- default: {
52
- return 1 / (1 + b * a * t) ** (1 / b);
53
- }
54
- }
55
- }
56
- export function movingAverage(a, windowWidth) {
57
- if (windowWidth < 2 || !Number.isSafeInteger(windowWidth)) {
58
- throw new Error("Specified window width is not a valid integer value.");
59
- }
60
- const len = a.length;
61
- const a2 = new Float64Array(len);
62
- const halfWindowWidth = Math.floor(windowWidth / 2);
63
- const extendedLen = len + halfWindowWidth;
64
- let movingSum = 0;
65
- let n = 0;
66
- for (let p = 0; p < extendedLen; p++) {
67
- if (p >= windowWidth) {
68
- movingSum -= a[p - windowWidth];
69
- n--;
70
- }
71
- if (p < len) {
72
- movingSum += a[p];
73
- n++;
74
- }
75
- const p2 = p - halfWindowWidth;
76
- if (p2 >= 0) {
77
- a2[p2] = movingSum / n;
78
- }
79
- }
80
- return a2;
81
- }
1
+ export function fuzzyEquals(a, b, eps) {
2
+ if (!isFinite(a) || !isFinite(b)) {
3
+ return false;
4
+ }
5
+ if (a == b) {
6
+ return true;
7
+ }
8
+ const diff = Math.abs(a - b);
9
+ if (diff <= eps) {
10
+ return true;
11
+ }
12
+ const mag = Math.max(Math.abs(a), Math.abs(b));
13
+ return diff <= mag * eps;
14
+ }
15
+ export function isFuzzyInteger(i, eps) {
16
+ return Math.abs(i - Math.round(i)) <= eps;
17
+ }
18
+ export function isPowerOf2(i) {
19
+ if (!Number.isSafeInteger(i) || i < 1 || i > 0x40000000) {
20
+ return false;
21
+ }
22
+ return (i & (i - 1)) == 0;
23
+ }
24
+ export function getNextPowerOf2(x) {
25
+ if (!isFinite(x)) {
26
+ return NaN;
27
+ }
28
+ let n = 1;
29
+ while (n <= x) {
30
+ n *= 2;
31
+ }
32
+ return n;
33
+ }
34
+ export function floorLog2(x) {
35
+ if (x > 0x7FFFFFFF || x < 1) {
36
+ throw new Error("Argument is not a valid integer.");
37
+ }
38
+ return 31 - Math.clz32(x);
39
+ }
40
+ export function hyperbolicDecline(t, a, b) {
41
+ switch (b) {
42
+ case 1: {
43
+ return 1 / (1 + a * t);
44
+ }
45
+ case 0: {
46
+ return Math.exp(-a * t);
47
+ }
48
+ case -1: {
49
+ return Math.max(0, 1 - a * t);
50
+ }
51
+ default: {
52
+ return 1 / (1 + b * a * t) ** (1 / b);
53
+ }
54
+ }
55
+ }
56
+ export function simpleMovingAverage(a, windowWidth, shift = false) {
57
+ if (windowWidth < 2 || !Number.isSafeInteger(windowWidth)) {
58
+ throw new Error("Specified window width is not valid for SMA.");
59
+ }
60
+ const len = a.length;
61
+ const a2 = new Float64Array(len);
62
+ const halfWindowWidth = Math.floor(windowWidth / 2);
63
+ const posShift = (shift && windowWidth % 2 == 0) ? 1 : 0;
64
+ const extendedLen = len + halfWindowWidth;
65
+ let movingSum = 0;
66
+ let n = 0;
67
+ for (let p = 0; p < extendedLen; p++) {
68
+ if (p >= windowWidth) {
69
+ movingSum -= a[p - windowWidth];
70
+ n--;
71
+ }
72
+ if (p < len) {
73
+ movingSum += a[p];
74
+ n++;
75
+ }
76
+ const p2 = p - halfWindowWidth + posShift;
77
+ if (p2 >= 0 && p2 < len) {
78
+ a2[p2] = movingSum / n;
79
+ }
80
+ }
81
+ return a2;
82
+ }
83
+ export function triangularMovingAverage(a, windowWidth) {
84
+ if (windowWidth < 4 || !Number.isSafeInteger(windowWidth)) {
85
+ throw new Error("Specified window width is not valid for TMA.");
86
+ }
87
+ const w1 = Math.floor(windowWidth / 2);
88
+ const w2 = windowWidth - w1;
89
+ const a1 = simpleMovingAverage(a, w1);
90
+ const a2 = simpleMovingAverage(a1, w2, true);
91
+ return a2;
92
+ }
93
+ export function triangularMovingAverageRef(a, windowWidth) {
94
+ if (windowWidth < 4 || !Number.isSafeInteger(windowWidth)) {
95
+ throw new Error("Specified window width is not valid for TMA.");
96
+ }
97
+ const len = a.length;
98
+ const a2 = new Float64Array(len);
99
+ for (let p = 0; p < len; p++) {
100
+ a2[p] = computeTriangularAverageAt(a, p, windowWidth);
101
+ }
102
+ return a2;
103
+ }
104
+ function computeTriangularAverageAt(a, p, windowWidth) {
105
+ const len = a.length;
106
+ const p1 = Math.max(0, Math.ceil(p - windowWidth / 2 + 0.1));
107
+ const p2 = Math.min(len - 1, Math.floor(p + windowWidth / 2 - 0.1));
108
+ let sum = 0;
109
+ let weightSum = 0;
110
+ for (let i = p1; i <= p2; i++) {
111
+ const weight = 1 - Math.abs(i - p) / (windowWidth / 2);
112
+ sum += a[i] * weight;
113
+ weightSum += weight;
114
+ }
115
+ return sum / weightSum;
116
+ }
82
117
  //# sourceMappingURL=MathUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MathUtils.js","sourceRoot":"","sources":["../../src/math/MathUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MathUtils.js","sourceRoot":"","sources":["../../src/math/MathUtils.ts"],"names":[],"mappings":"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"}