qntjs-lib 2.0.3 → 2.0.4
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/bundle/index.js +535 -496
- package/package.json +1 -1
package/dist/bundle/index.js
CHANGED
|
@@ -215,7 +215,7 @@ function sn(n, t) {
|
|
|
215
215
|
}
|
|
216
216
|
return e;
|
|
217
217
|
}
|
|
218
|
-
function
|
|
218
|
+
function S() {
|
|
219
219
|
return typeof process == "undefined" || typeof process.env == "undefined" ? !1 : process.env.SKIP_DENSE_OPTIMIZATION === "true";
|
|
220
220
|
}
|
|
221
221
|
function dt(n, t, r, e = !0) {
|
|
@@ -229,33 +229,33 @@ function dt(n, t, r, e = !0) {
|
|
|
229
229
|
if (!e) {
|
|
230
230
|
a = 0, s = 0;
|
|
231
231
|
const N = Math.min(o, t);
|
|
232
|
-
for (let
|
|
233
|
-
const
|
|
232
|
+
for (let m = 1; m < N; m++) {
|
|
233
|
+
const h = m - 1, w = n[h];
|
|
234
234
|
if (f)
|
|
235
235
|
for (; s > a && n[i[s - 1]] <= w; )
|
|
236
236
|
s--;
|
|
237
237
|
else
|
|
238
238
|
for (; s > a && n[i[s - 1]] >= w; )
|
|
239
239
|
s--;
|
|
240
|
-
i[s++] =
|
|
241
|
-
const v =
|
|
240
|
+
i[s++] = h;
|
|
241
|
+
const v = m - t;
|
|
242
242
|
for (; s > a && i[a] < v; )
|
|
243
243
|
a++;
|
|
244
244
|
}
|
|
245
|
-
for (let
|
|
246
|
-
const
|
|
245
|
+
for (let m = Math.max(t, 1); m < o; m++) {
|
|
246
|
+
const h = m - 1, w = n[h];
|
|
247
247
|
if (f)
|
|
248
248
|
for (; s > a && n[i[s - 1]] <= w; )
|
|
249
249
|
s--;
|
|
250
250
|
else
|
|
251
251
|
for (; s > a && n[i[s - 1]] >= w; )
|
|
252
252
|
s--;
|
|
253
|
-
i[s++] =
|
|
254
|
-
const v =
|
|
253
|
+
i[s++] = h;
|
|
254
|
+
const v = m - t;
|
|
255
255
|
for (; s > a && i[a] < v; )
|
|
256
256
|
a++;
|
|
257
257
|
const d = s > a ? i[a] : -1;
|
|
258
|
-
d >= 0 ? l[
|
|
258
|
+
d >= 0 ? l[m] = f ? n[m] > n[d] ? 1 : 0 : n[m] < n[d] ? 1 : 0 : l[m] = 0;
|
|
259
259
|
}
|
|
260
260
|
return l;
|
|
261
261
|
}
|
|
@@ -267,21 +267,21 @@ function dt(n, t, r, e = !0) {
|
|
|
267
267
|
N !== N ? (l[0] = 0, u = -1) : (u = 0, l[0] = 0);
|
|
268
268
|
}
|
|
269
269
|
for (let N = 1; N < c; N++) {
|
|
270
|
-
const
|
|
271
|
-
if (
|
|
270
|
+
const m = n[N];
|
|
271
|
+
if (m !== m) {
|
|
272
272
|
l[N] = l[N - 1];
|
|
273
273
|
continue;
|
|
274
274
|
}
|
|
275
|
-
const
|
|
276
|
-
if (
|
|
277
|
-
const v = n[
|
|
275
|
+
const h = u;
|
|
276
|
+
if (h >= 0) {
|
|
277
|
+
const v = n[h];
|
|
278
278
|
if (f)
|
|
279
279
|
for (; s > a && n[i[s - 1]] <= v; )
|
|
280
280
|
s--;
|
|
281
281
|
else
|
|
282
282
|
for (; s > a && n[i[s - 1]] >= v; )
|
|
283
283
|
s--;
|
|
284
|
-
i[s++] =
|
|
284
|
+
i[s++] = h;
|
|
285
285
|
}
|
|
286
286
|
u = N;
|
|
287
287
|
const w = N - t;
|
|
@@ -289,21 +289,21 @@ function dt(n, t, r, e = !0) {
|
|
|
289
289
|
a++;
|
|
290
290
|
}
|
|
291
291
|
for (let N = Math.max(t, 1); N < o; N++) {
|
|
292
|
-
const
|
|
293
|
-
if (
|
|
292
|
+
const m = n[N];
|
|
293
|
+
if (m !== m) {
|
|
294
294
|
l[N] = l[N - 1];
|
|
295
295
|
continue;
|
|
296
296
|
}
|
|
297
|
-
const
|
|
298
|
-
if (
|
|
299
|
-
const d = n[
|
|
297
|
+
const h = u;
|
|
298
|
+
if (h >= 0) {
|
|
299
|
+
const d = n[h];
|
|
300
300
|
if (f)
|
|
301
301
|
for (; s > a && n[i[s - 1]] <= d; )
|
|
302
302
|
s--;
|
|
303
303
|
else
|
|
304
304
|
for (; s > a && n[i[s - 1]] >= d; )
|
|
305
305
|
s--;
|
|
306
|
-
i[s++] =
|
|
306
|
+
i[s++] = h;
|
|
307
307
|
}
|
|
308
308
|
u = N;
|
|
309
309
|
const w = N - t;
|
|
@@ -402,7 +402,7 @@ function At(n) {
|
|
|
402
402
|
}
|
|
403
403
|
return r;
|
|
404
404
|
}
|
|
405
|
-
function
|
|
405
|
+
function P(n) {
|
|
406
406
|
const t = At(n), r = t.length;
|
|
407
407
|
for (let e = 0; e < r; e++)
|
|
408
408
|
t[e] = t[e] ? 0 : 1;
|
|
@@ -492,12 +492,12 @@ const Do = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
492
492
|
havena: k,
|
|
493
493
|
isna: At,
|
|
494
494
|
lag: yt,
|
|
495
|
-
notna:
|
|
495
|
+
notna: P,
|
|
496
496
|
replace: bn
|
|
497
497
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
498
498
|
function it(n, t = !0) {
|
|
499
499
|
let r = 0, e = 0;
|
|
500
|
-
if (!
|
|
500
|
+
if (!S() && t && (k(n) || (t = !1)), t)
|
|
501
501
|
for (let o = 0; o < n.length; o++) {
|
|
502
502
|
const l = n[o];
|
|
503
503
|
l === l && (r += l, e++);
|
|
@@ -509,7 +509,7 @@ function it(n, t = !0) {
|
|
|
509
509
|
}
|
|
510
510
|
return e === 0 ? NaN : r;
|
|
511
511
|
}
|
|
512
|
-
function
|
|
512
|
+
function Fn(n) {
|
|
513
513
|
const t = n.length, r = new Float64Array(t);
|
|
514
514
|
let e = 0;
|
|
515
515
|
for (let o = 0; o < t; o++) {
|
|
@@ -524,7 +524,7 @@ function nt(n, t, r = !0) {
|
|
|
524
524
|
throw new Error("period must be positive");
|
|
525
525
|
if (e < t)
|
|
526
526
|
return o.fill(NaN);
|
|
527
|
-
if (
|
|
527
|
+
if (S() || r && !k(n) && (r = !1), !r) {
|
|
528
528
|
let i = 0;
|
|
529
529
|
for (let a = 0; a < t; a++)
|
|
530
530
|
i += n[a];
|
|
@@ -574,7 +574,7 @@ function bt(n, t, r) {
|
|
|
574
574
|
}
|
|
575
575
|
return o;
|
|
576
576
|
}
|
|
577
|
-
function
|
|
577
|
+
function Mn(n, t) {
|
|
578
578
|
return bt(n, t, !1);
|
|
579
579
|
}
|
|
580
580
|
function xn(n, t) {
|
|
@@ -591,27 +591,27 @@ function Nt(n, t, r, e) {
|
|
|
591
591
|
return { min: l, max: f };
|
|
592
592
|
const i = new Int32Array(o), a = new Int32Array(o);
|
|
593
593
|
let s = 0, u = 0, c = 0, N = 0;
|
|
594
|
-
for (let
|
|
595
|
-
const
|
|
596
|
-
for (; u > s && n[i[u - 1]]
|
|
594
|
+
for (let m = 0; m < r - 1; m++) {
|
|
595
|
+
const h = n[m], w = t[m];
|
|
596
|
+
for (; u > s && n[i[u - 1]] >= h; )
|
|
597
597
|
u--;
|
|
598
|
-
for (; N > c && t[a[N - 1]]
|
|
598
|
+
for (; N > c && t[a[N - 1]] <= w; )
|
|
599
599
|
N--;
|
|
600
|
-
|
|
600
|
+
h === h && (i[u++] = m), w === w && (a[N++] = m);
|
|
601
601
|
}
|
|
602
|
-
for (let
|
|
603
|
-
const
|
|
604
|
-
for (; u > s && i[s] <=
|
|
602
|
+
for (let m = r - 1; m < o; m++) {
|
|
603
|
+
const h = n[m], w = t[m];
|
|
604
|
+
for (; u > s && i[s] <= m - r; )
|
|
605
605
|
s++;
|
|
606
|
-
for (; u > s && n[i[u - 1]] >
|
|
606
|
+
for (; u > s && n[i[u - 1]] > h; )
|
|
607
607
|
u--;
|
|
608
|
-
for (; N > c && a[c] <=
|
|
608
|
+
for (; N > c && a[c] <= m - r; )
|
|
609
609
|
c++;
|
|
610
610
|
for (; N > c && t[a[N - 1]] < w; )
|
|
611
611
|
N--;
|
|
612
|
-
|
|
612
|
+
h === h && (i[u++] = m), w === w && (a[N++] = m);
|
|
613
613
|
const v = u > s ? n[i[s]] : NaN, d = N > c ? t[a[c]] : NaN;
|
|
614
|
-
l[
|
|
614
|
+
l[m] = v, f[m] = d, e && e(v, d, m);
|
|
615
615
|
}
|
|
616
616
|
return { min: l, max: f };
|
|
617
617
|
}
|
|
@@ -647,7 +647,7 @@ function _n(n) {
|
|
|
647
647
|
}
|
|
648
648
|
return t;
|
|
649
649
|
}
|
|
650
|
-
function
|
|
650
|
+
function Sn(n) {
|
|
651
651
|
const t = n.length, r = new Float64Array(t);
|
|
652
652
|
let e = -1 / 0;
|
|
653
653
|
for (let o = 0; o < t; o++) {
|
|
@@ -656,7 +656,7 @@ function Vn(n) {
|
|
|
656
656
|
}
|
|
657
657
|
return r;
|
|
658
658
|
}
|
|
659
|
-
function
|
|
659
|
+
function Vn(n) {
|
|
660
660
|
const t = n.length, r = new Float64Array(t);
|
|
661
661
|
let e = 1 / 0;
|
|
662
662
|
for (let o = 0; o < t; o++) {
|
|
@@ -665,7 +665,7 @@ function Sn(n) {
|
|
|
665
665
|
}
|
|
666
666
|
return r;
|
|
667
667
|
}
|
|
668
|
-
function
|
|
668
|
+
function Ft(n, t) {
|
|
669
669
|
const r = n.length, e = new Float64Array(r);
|
|
670
670
|
if (t <= 0)
|
|
671
671
|
throw new Error("period must be positive");
|
|
@@ -676,10 +676,10 @@ function Mt(n, t) {
|
|
|
676
676
|
let l = 0, f = 0;
|
|
677
677
|
for (let i = 0; i < r; i++) {
|
|
678
678
|
const a = n[i];
|
|
679
|
-
for (; f > l && o[l]
|
|
679
|
+
for (; f > l && o[l] < i - t; )
|
|
680
680
|
l++;
|
|
681
681
|
if (a === a) {
|
|
682
|
-
for (; f > l && n[o[f - 1]]
|
|
682
|
+
for (; f > l && n[o[f - 1]] >= a; )
|
|
683
683
|
f--;
|
|
684
684
|
o[f++] = i;
|
|
685
685
|
}
|
|
@@ -687,7 +687,7 @@ function Mt(n, t) {
|
|
|
687
687
|
}
|
|
688
688
|
return e;
|
|
689
689
|
}
|
|
690
|
-
function
|
|
690
|
+
function Mt(n, t) {
|
|
691
691
|
const r = n.length, e = new Float64Array(r);
|
|
692
692
|
if (t <= 0)
|
|
693
693
|
throw new Error("period must be positive");
|
|
@@ -698,10 +698,10 @@ function Ft(n, t) {
|
|
|
698
698
|
let l = 0, f = 0;
|
|
699
699
|
for (let i = 0; i < r; i++) {
|
|
700
700
|
const a = n[i];
|
|
701
|
-
for (; f > l && o[l]
|
|
701
|
+
for (; f > l && o[l] < i - t; )
|
|
702
702
|
l++;
|
|
703
703
|
if (a === a) {
|
|
704
|
-
for (; f > l && n[o[f - 1]]
|
|
704
|
+
for (; f > l && n[o[f - 1]] <= a; )
|
|
705
705
|
f--;
|
|
706
706
|
o[f++] = i;
|
|
707
707
|
}
|
|
@@ -781,8 +781,8 @@ function On(n, t) {
|
|
|
781
781
|
const r = Math.min(n.length, t.length);
|
|
782
782
|
let e = 0, o = 0, l = 0, f = 0, i = 0;
|
|
783
783
|
for (let c = 0; c < r; c++) {
|
|
784
|
-
const N = n[c],
|
|
785
|
-
N === N &&
|
|
784
|
+
const N = n[c], m = t[c];
|
|
785
|
+
N === N && m === m && (e += N, o += m, l += N * N, f += N * m, i++);
|
|
786
786
|
}
|
|
787
787
|
if (i === 0)
|
|
788
788
|
return { intercept: NaN, slope: NaN };
|
|
@@ -815,8 +815,8 @@ function Cn(n) {
|
|
|
815
815
|
for (let c = 0; c < t; c++)
|
|
816
816
|
if (c !== o) {
|
|
817
817
|
const N = r[c][o];
|
|
818
|
-
for (let
|
|
819
|
-
r[c][
|
|
818
|
+
for (let m = 0; m < t; m++)
|
|
819
|
+
r[c][m] -= N * r[o][m], e[c][m] -= N * e[o][m];
|
|
820
820
|
}
|
|
821
821
|
}
|
|
822
822
|
return e;
|
|
@@ -830,13 +830,13 @@ function Tn(n, t) {
|
|
|
830
830
|
}), f = new Array(o).fill(0);
|
|
831
831
|
for (let s = 0; s < r; s++) {
|
|
832
832
|
const u = n[s], c = t[s], N = [1];
|
|
833
|
-
for (let
|
|
834
|
-
N.push(u[
|
|
835
|
-
for (let
|
|
836
|
-
for (let
|
|
837
|
-
l[
|
|
838
|
-
for (let
|
|
839
|
-
f[
|
|
833
|
+
for (let m = 0; m < e; m++)
|
|
834
|
+
N.push(u[m]);
|
|
835
|
+
for (let m = 0; m < o; m++)
|
|
836
|
+
for (let h = 0; h < o; h++)
|
|
837
|
+
l[m][h] += N[m] * N[h];
|
|
838
|
+
for (let m = 0; m < o; m++)
|
|
839
|
+
f[m] += N[m] * c;
|
|
840
840
|
}
|
|
841
841
|
const i = Cn(l);
|
|
842
842
|
if (!i)
|
|
@@ -857,10 +857,10 @@ const Oo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
857
857
|
avg: gt,
|
|
858
858
|
ceil: Gt,
|
|
859
859
|
clamp: zt,
|
|
860
|
-
cummax:
|
|
861
|
-
cummin:
|
|
860
|
+
cummax: Sn,
|
|
861
|
+
cummin: Vn,
|
|
862
862
|
cumprod: an,
|
|
863
|
-
cumsum:
|
|
863
|
+
cumsum: Fn,
|
|
864
864
|
diff: $t,
|
|
865
865
|
div: Xt,
|
|
866
866
|
dot: Pn,
|
|
@@ -882,10 +882,10 @@ const Oo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
882
882
|
prod: fn,
|
|
883
883
|
randnormal: jn,
|
|
884
884
|
randuniform: Ln,
|
|
885
|
-
rollargmax:
|
|
886
|
-
rollargmin:
|
|
885
|
+
rollargmax: Mt,
|
|
886
|
+
rollargmin: Ft,
|
|
887
887
|
rollmax: xn,
|
|
888
|
-
rollmin:
|
|
888
|
+
rollmin: Mn,
|
|
889
889
|
rollminmax: Nt,
|
|
890
890
|
rollprod: sn,
|
|
891
891
|
rollsum: nt,
|
|
@@ -917,11 +917,11 @@ function qn(n, t, r, e) {
|
|
|
917
917
|
}
|
|
918
918
|
return e;
|
|
919
919
|
}
|
|
920
|
-
function
|
|
920
|
+
function O(n, t, r = !0) {
|
|
921
921
|
if (t <= 0)
|
|
922
922
|
throw new Error("Period must be positive");
|
|
923
923
|
const e = n.length, o = new Float64Array(e);
|
|
924
|
-
return e < t ? o.fill(NaN) : (r && !
|
|
924
|
+
return e < t ? o.fill(NaN) : (r && !S() && !k(n) && (r = !1), r ? qn(n, t, e, o) : Un(n, t, e, o));
|
|
925
925
|
}
|
|
926
926
|
function xt(n, t) {
|
|
927
927
|
if (t <= 0)
|
|
@@ -963,7 +963,7 @@ function p(n, t, r = !0) {
|
|
|
963
963
|
if (t <= 0)
|
|
964
964
|
throw new Error("Period must be positive");
|
|
965
965
|
const e = n.length, o = new Float64Array(e);
|
|
966
|
-
return e < t ? o.fill(NaN) : (r && !
|
|
966
|
+
return e < t ? o.fill(NaN) : (r && !S() && !k(n) && (r = !1), r ? Xn(n, t, o) : Bn(n, t, o));
|
|
967
967
|
}
|
|
968
968
|
function Bn(n, t, r) {
|
|
969
969
|
const e = n.length, o = t * (t + 1) / 2;
|
|
@@ -986,18 +986,18 @@ function Xn(n, t, r) {
|
|
|
986
986
|
let f = 0, i = 0, a = 0, s = 0;
|
|
987
987
|
const u = Math.min(e, o);
|
|
988
988
|
for (let N = 0; N < u; N++) {
|
|
989
|
-
const
|
|
990
|
-
if (l[N] =
|
|
991
|
-
const
|
|
992
|
-
f +=
|
|
989
|
+
const m = n[N];
|
|
990
|
+
if (l[N] = m, m === m) {
|
|
991
|
+
const h = N + 1;
|
|
992
|
+
f += m, i += m * h, a += h, s++;
|
|
993
993
|
}
|
|
994
994
|
r[N] = NaN;
|
|
995
995
|
}
|
|
996
996
|
s > 0 ? r[o - 1] = i / a : r[o - 1] = NaN;
|
|
997
997
|
let c = 0;
|
|
998
998
|
for (let N = o; N < e; N++) {
|
|
999
|
-
const
|
|
1000
|
-
w && (f -=
|
|
999
|
+
const m = n[N], h = l[c], w = h === h, v = m === m, d = f;
|
|
1000
|
+
w && (f -= h), v && (f += m), i = i - d + (v ? m * o : 0), a = a - s + (v ? o : 0), w && s--, v && s++, l[c] = m, c = (c + 1) % o, a > 0 ? r[N] = i / a : r[N] = NaN;
|
|
1001
1001
|
}
|
|
1002
1002
|
return r;
|
|
1003
1003
|
}
|
|
@@ -1012,7 +1012,7 @@ function Rn(n, t, r, e = !0) {
|
|
|
1012
1012
|
return l.fill(NaN);
|
|
1013
1013
|
for (let f = 0; f < r; f++)
|
|
1014
1014
|
l[f] = NaN;
|
|
1015
|
-
return e && !
|
|
1015
|
+
return e && !S() && !k(n, t) && (e = !1), e ? zn(n, t, r, l) : Kn(n, t, r, l);
|
|
1016
1016
|
}
|
|
1017
1017
|
function zn(n, t, r, e) {
|
|
1018
1018
|
const o = n.length, l = r;
|
|
@@ -1023,20 +1023,20 @@ function zn(n, t, r, e) {
|
|
|
1023
1023
|
f[c] = NaN, i[c] = NaN;
|
|
1024
1024
|
let a = 0, s = 0;
|
|
1025
1025
|
for (let c = 0; c < l; c++) {
|
|
1026
|
-
const N = n[c],
|
|
1027
|
-
if (N === N &&
|
|
1028
|
-
const
|
|
1029
|
-
f[c] =
|
|
1026
|
+
const N = n[c], m = t[c];
|
|
1027
|
+
if (N === N && m === m) {
|
|
1028
|
+
const h = N * m;
|
|
1029
|
+
f[c] = h, i[c] = m, a += h, s += m;
|
|
1030
1030
|
} else
|
|
1031
1031
|
f[c] = NaN, i[c] = NaN;
|
|
1032
1032
|
}
|
|
1033
1033
|
e[l - 1] = s !== 0 ? a / s : NaN;
|
|
1034
1034
|
let u = 0;
|
|
1035
1035
|
for (let c = l; c < o; c++) {
|
|
1036
|
-
const N = n[c],
|
|
1037
|
-
if (w === w && (a -=
|
|
1038
|
-
const v = N *
|
|
1039
|
-
f[u] = v, i[u] =
|
|
1036
|
+
const N = n[c], m = t[c], h = f[u], w = i[u];
|
|
1037
|
+
if (w === w && (a -= h, s -= w), N === N && m === m) {
|
|
1038
|
+
const v = N * m;
|
|
1039
|
+
f[u] = v, i[u] = m, a += v, s += m;
|
|
1040
1040
|
} else
|
|
1041
1041
|
f[u] = NaN, i[u] = NaN;
|
|
1042
1042
|
u++, u === l && (u = 0), e[c] = s !== 0 ? a / s : NaN;
|
|
@@ -1101,8 +1101,31 @@ function Hn(n, t) {
|
|
|
1101
1101
|
const r = n.length;
|
|
1102
1102
|
if (r < t)
|
|
1103
1103
|
return new Float64Array(r).fill(NaN);
|
|
1104
|
-
const e =
|
|
1105
|
-
|
|
1104
|
+
const e = new Float64Array(r);
|
|
1105
|
+
e.fill(NaN);
|
|
1106
|
+
const o = Math.floor((t + 1) / 2), l = new Float64Array(t);
|
|
1107
|
+
for (let s = 0; s < t; s++)
|
|
1108
|
+
l[s] = s < o ? s + 1 : t - s;
|
|
1109
|
+
let f = 0;
|
|
1110
|
+
for (let s = 0; s < t; s++)
|
|
1111
|
+
f += l[s];
|
|
1112
|
+
let i = 0, a = 0;
|
|
1113
|
+
for (let s = 0; s < t; s++) {
|
|
1114
|
+
const u = n[s];
|
|
1115
|
+
Number.isFinite(u) && (i += l[s] * u, a += l[s]), e[s] = NaN;
|
|
1116
|
+
}
|
|
1117
|
+
e[t - 1] = a > 0 ? i / a : NaN;
|
|
1118
|
+
for (let s = t; s < r; s++) {
|
|
1119
|
+
const u = s - t, c = n[u];
|
|
1120
|
+
Number.isFinite(c) && (i -= l[0] * c, a -= l[0]), i = 0, a = 0;
|
|
1121
|
+
const N = s - t + 1;
|
|
1122
|
+
for (let m = 0; m < t; m++) {
|
|
1123
|
+
const h = n[N + m];
|
|
1124
|
+
Number.isFinite(h) && (i += l[m] * h, a += l[m]);
|
|
1125
|
+
}
|
|
1126
|
+
e[s] = a > 0 ? i / a : NaN;
|
|
1127
|
+
}
|
|
1128
|
+
return e;
|
|
1106
1129
|
}
|
|
1107
1130
|
function Wn(n, t) {
|
|
1108
1131
|
if (t <= 0)
|
|
@@ -1118,34 +1141,34 @@ function Wn(n, t) {
|
|
|
1118
1141
|
return e.fill(NaN);
|
|
1119
1142
|
let f = n[l], i = 1;
|
|
1120
1143
|
for (l++; l < r && i < t; ) {
|
|
1121
|
-
const
|
|
1122
|
-
l++,
|
|
1144
|
+
const m = n[l];
|
|
1145
|
+
l++, m === m && (f = f + o * (m - f), i++);
|
|
1123
1146
|
}
|
|
1124
1147
|
if (i < t)
|
|
1125
1148
|
return e.fill(NaN);
|
|
1126
1149
|
let a = f, s = 1;
|
|
1127
1150
|
for (; l < r && s < t; ) {
|
|
1128
|
-
const
|
|
1129
|
-
l++,
|
|
1151
|
+
const m = n[l];
|
|
1152
|
+
l++, m === m && (f = f + o * (m - f), i++, a = a + o * (f - a), s++);
|
|
1130
1153
|
}
|
|
1131
1154
|
if (s < t)
|
|
1132
1155
|
return e.fill(NaN);
|
|
1133
1156
|
let u = a, c = 1;
|
|
1134
1157
|
for (; l < r && c < t; ) {
|
|
1135
|
-
const
|
|
1136
|
-
l++,
|
|
1158
|
+
const m = n[l];
|
|
1159
|
+
l++, m === m && (f = f + o * (m - f), a = a + o * (f - a), u = u + o * (a - u), c++);
|
|
1137
1160
|
}
|
|
1138
1161
|
if (c < t)
|
|
1139
1162
|
return e.fill(NaN);
|
|
1140
1163
|
const N = l - 1;
|
|
1141
1164
|
e[N] = 3 * f - 3 * a + u, N > 0 && e.fill(NaN, 0, N);
|
|
1142
|
-
for (let
|
|
1143
|
-
const
|
|
1144
|
-
if (
|
|
1145
|
-
e[
|
|
1165
|
+
for (let m = l; m < r; m++) {
|
|
1166
|
+
const h = n[m];
|
|
1167
|
+
if (h !== h) {
|
|
1168
|
+
e[m] = NaN;
|
|
1146
1169
|
continue;
|
|
1147
1170
|
}
|
|
1148
|
-
f = f + o * (
|
|
1171
|
+
f = f + o * (h - f), a = a + o * (f - a), u = u + o * (a - u), e[m] = 3 * f - 3 * a + u;
|
|
1149
1172
|
}
|
|
1150
1173
|
return e;
|
|
1151
1174
|
}
|
|
@@ -1154,18 +1177,30 @@ function Gn(n, t) {
|
|
|
1154
1177
|
if (r < t)
|
|
1155
1178
|
return e.fill(NaN);
|
|
1156
1179
|
const o = Math.floor(t / 2), l = Math.floor(Math.sqrt(t)), f = new Float64Array(r);
|
|
1157
|
-
for (let
|
|
1158
|
-
f[
|
|
1159
|
-
const i = p(n, o),
|
|
1160
|
-
for (let
|
|
1161
|
-
f[
|
|
1162
|
-
|
|
1180
|
+
for (let h = 0; h < t - 1; h++)
|
|
1181
|
+
f[h] = NaN;
|
|
1182
|
+
const i = k(n), a = p(n, o, i), s = p(n, t, i);
|
|
1183
|
+
for (let h = t - 1; h < r; h++)
|
|
1184
|
+
f[h] = 2 * a[h] - s[h];
|
|
1185
|
+
let u = -1;
|
|
1186
|
+
for (let h = 0; h < r; h++)
|
|
1187
|
+
if (Number.isFinite(f[h])) {
|
|
1188
|
+
u = h;
|
|
1189
|
+
break;
|
|
1190
|
+
}
|
|
1191
|
+
if (u === -1)
|
|
1192
|
+
return f;
|
|
1193
|
+
const c = f.slice(u), N = p(c, l, i), m = new Float64Array(r);
|
|
1194
|
+
m.fill(NaN);
|
|
1195
|
+
for (let h = 0; h < N.length; h++)
|
|
1196
|
+
m[u + h] = N[h];
|
|
1197
|
+
return m;
|
|
1163
1198
|
}
|
|
1164
1199
|
function $n(n, t, r = 2, e = 30, o = !0) {
|
|
1165
1200
|
if (t <= 0)
|
|
1166
1201
|
throw new Error("Period must be positive");
|
|
1167
1202
|
const l = n.length, f = new Float64Array(l);
|
|
1168
|
-
return l < t ? (f.fill(NaN), f) : (o && !
|
|
1203
|
+
return l < t ? (f.fill(NaN), f) : (o && !S() && !k(n) && (o = !1), o ? Jn(n, t, r, e) : ft(n, t, r, e));
|
|
1169
1204
|
}
|
|
1170
1205
|
function ft(n, t, r, e) {
|
|
1171
1206
|
const o = n.length, l = new Float64Array(o);
|
|
@@ -1178,7 +1213,7 @@ function ft(n, t, r, e) {
|
|
|
1178
1213
|
let u = n[t - 1];
|
|
1179
1214
|
l[t - 1] = u;
|
|
1180
1215
|
for (let c = t; c < o; c++) {
|
|
1181
|
-
const N = a(n[c] - n[c - t]),
|
|
1216
|
+
const N = a(n[c] - n[c - t]), h = (s !== 0 ? N / s : 0) * (f - i) + i, w = h * h;
|
|
1182
1217
|
if (u = u + w * (n[c] - u), l[c] = u, c + 1 < o) {
|
|
1183
1218
|
const v = a(n[c + 1] - n[c]), d = a(n[c - t + 1] - n[c - t]);
|
|
1184
1219
|
s += v - d;
|
|
@@ -1249,7 +1284,7 @@ function at(n, t, r = !0) {
|
|
|
1249
1284
|
if (t <= 0)
|
|
1250
1285
|
throw new Error("Period must be positive");
|
|
1251
1286
|
const e = n.length, o = new Float64Array(e);
|
|
1252
|
-
return e < t ? (o.fill(NaN), o) : (r && !
|
|
1287
|
+
return e < t ? (o.fill(NaN), o) : (r && !S() && !k(n) && (r = !1), r ? Zn(n, t, e, o) : Qn(n, t, e, o));
|
|
1253
1288
|
}
|
|
1254
1289
|
function pn(n, t, r) {
|
|
1255
1290
|
if (t <= 0)
|
|
@@ -1282,36 +1317,36 @@ function pn(n, t, r) {
|
|
|
1282
1317
|
}
|
|
1283
1318
|
if (u < t)
|
|
1284
1319
|
return o;
|
|
1285
|
-
let
|
|
1286
|
-
for (s =
|
|
1320
|
+
let m = s / t;
|
|
1321
|
+
for (s = m, u = 1; a < e && u < t; ) {
|
|
1287
1322
|
const y = n[a++];
|
|
1288
|
-
y === y && (c = f * y + i * c, N = f * c + i * N,
|
|
1323
|
+
y === y && (c = f * y + i * c, N = f * c + i * N, m = f * N + i * m, s += m, u++);
|
|
1289
1324
|
}
|
|
1290
1325
|
if (u < t)
|
|
1291
1326
|
return o;
|
|
1292
|
-
let
|
|
1293
|
-
for (s =
|
|
1327
|
+
let h = s / t;
|
|
1328
|
+
for (s = h, u = 1; a < e && u < t; ) {
|
|
1294
1329
|
const y = n[a++];
|
|
1295
|
-
y === y && (c = f * y + i * c, N = f * c + i * N,
|
|
1330
|
+
y === y && (c = f * y + i * c, N = f * c + i * N, m = f * N + i * m, h = f * m + i * h, s += h, u++);
|
|
1296
1331
|
}
|
|
1297
1332
|
if (u < t)
|
|
1298
1333
|
return o;
|
|
1299
1334
|
let w = s / t;
|
|
1300
1335
|
for (s = w, u = 1; a < e && u < t; ) {
|
|
1301
1336
|
const y = n[a++];
|
|
1302
|
-
y === y && (c = f * y + i * c, N = f * c + i * N,
|
|
1337
|
+
y === y && (c = f * y + i * c, N = f * c + i * N, m = f * N + i * m, h = f * m + i * h, w = f * h + i * w, s += w, u++);
|
|
1303
1338
|
}
|
|
1304
1339
|
if (u < t)
|
|
1305
1340
|
return o;
|
|
1306
1341
|
let v = s / t;
|
|
1307
1342
|
const d = l;
|
|
1308
1343
|
a = d + 1;
|
|
1309
|
-
const A = r * r, b = -(A * r), g = 3 * (A - b),
|
|
1344
|
+
const A = r * r, b = -(A * r), g = 3 * (A - b), M = -6 * A - 3 * (r - b), x = 1 + 3 * r - b + 3 * A;
|
|
1310
1345
|
let I = d;
|
|
1311
|
-
o[I++] = b * v + g * w +
|
|
1346
|
+
o[I++] = b * v + g * w + M * h + x * m;
|
|
1312
1347
|
for (let y = a; y < e; y++) {
|
|
1313
|
-
const
|
|
1314
|
-
c = f *
|
|
1348
|
+
const F = n[y];
|
|
1349
|
+
c = f * F + i * c, N = f * c + i * N, m = f * N + i * m, h = f * m + i * h, w = f * h + i * w, v = f * w + i * v, o[I++] = b * v + g * w + M * h + x * m;
|
|
1315
1350
|
}
|
|
1316
1351
|
return o;
|
|
1317
1352
|
}
|
|
@@ -1322,16 +1357,16 @@ function Et(n, t = { ddof: 1, skipna: !0 }) {
|
|
|
1322
1357
|
const f = n.length;
|
|
1323
1358
|
let i = 0, a = 0, s = 0;
|
|
1324
1359
|
if (l) {
|
|
1325
|
-
!
|
|
1360
|
+
!S() && l && !k(n) && (l = !1);
|
|
1326
1361
|
for (let N = 0; N < f; N++) {
|
|
1327
|
-
const
|
|
1328
|
-
|
|
1362
|
+
const m = n[N];
|
|
1363
|
+
m === m && (i += m, a += m * m, s++);
|
|
1329
1364
|
}
|
|
1330
1365
|
} else {
|
|
1331
1366
|
s = f;
|
|
1332
1367
|
for (let N = 0; N < f; N++) {
|
|
1333
|
-
const
|
|
1334
|
-
i +=
|
|
1368
|
+
const m = n[N];
|
|
1369
|
+
i += m, a += m * m;
|
|
1335
1370
|
}
|
|
1336
1371
|
}
|
|
1337
1372
|
if (s === 0)
|
|
@@ -1352,9 +1387,9 @@ function te(n, t, r = { ddof: 1 }) {
|
|
|
1352
1387
|
throw new Error("x and y must have same length");
|
|
1353
1388
|
const o = n.length, l = (e = r == null ? void 0 : r.ddof) !== null && e !== void 0 ? e : 1;
|
|
1354
1389
|
let f = 0, i = 0, a = 0, s = 0;
|
|
1355
|
-
for (let
|
|
1356
|
-
const
|
|
1357
|
-
|
|
1390
|
+
for (let m = 0; m < o; m++) {
|
|
1391
|
+
const h = n[m], w = t[m];
|
|
1392
|
+
h === h && w === w && (f += h, i += w, a += h * w, s++);
|
|
1358
1393
|
}
|
|
1359
1394
|
if (s === 0)
|
|
1360
1395
|
return NaN;
|
|
@@ -1398,7 +1433,7 @@ function wt(n, t, r) {
|
|
|
1398
1433
|
function It(n, t, r = { skipna: !0, ddof: 1 }) {
|
|
1399
1434
|
var e, o;
|
|
1400
1435
|
let l = (e = r.skipna) !== null && e !== void 0 ? e : !0, f = (o = r.ddof) !== null && o !== void 0 ? o : 1;
|
|
1401
|
-
return l ? !
|
|
1436
|
+
return l ? !S() && !k(n) ? wt(n, t, f) : ne(n, t, f) : wt(n, t, f);
|
|
1402
1437
|
}
|
|
1403
1438
|
function ne(n, t, r) {
|
|
1404
1439
|
const e = n.length, o = new Float64Array(e);
|
|
@@ -1430,25 +1465,25 @@ function kt(n, t, r, e = { ddof: 1 }) {
|
|
|
1430
1465
|
throw new Error("x and y must have same length");
|
|
1431
1466
|
const f = n.length, i = new Float64Array(f);
|
|
1432
1467
|
let a = 0, s = 0, u = 0, c = 0;
|
|
1433
|
-
for (let
|
|
1434
|
-
const
|
|
1435
|
-
|
|
1468
|
+
for (let m = 0; m < r; m++) {
|
|
1469
|
+
const h = n[m], w = t[m];
|
|
1470
|
+
h === h && w === w && (a += h, s += w, u += h * w, c++);
|
|
1436
1471
|
}
|
|
1437
1472
|
const N = l + 1;
|
|
1438
1473
|
if (c >= N) {
|
|
1439
|
-
const
|
|
1440
|
-
i[r - 1] = v > 0 ? (u - c *
|
|
1474
|
+
const m = 1 / c, h = a * m, w = s * m, v = c - l;
|
|
1475
|
+
i[r - 1] = v > 0 ? (u - c * h * w) / v : NaN;
|
|
1441
1476
|
} else
|
|
1442
1477
|
i[r - 1] = NaN;
|
|
1443
|
-
for (let
|
|
1444
|
-
const
|
|
1445
|
-
|
|
1478
|
+
for (let m = r; m < f; m++) {
|
|
1479
|
+
const h = n[m], w = t[m], v = n[m - r], d = t[m - r];
|
|
1480
|
+
h === h && w === w && (a += h, s += w, u += h * w, c++), v === v && d === d && (a -= v, s -= d, u -= v * d, c--);
|
|
1446
1481
|
const A = l + 1;
|
|
1447
1482
|
if (c >= A) {
|
|
1448
|
-
const b = 1 / c, g = a * b,
|
|
1449
|
-
i[
|
|
1483
|
+
const b = 1 / c, g = a * b, M = s * b, x = c - l;
|
|
1484
|
+
i[m] = x > 0 ? (u - c * g * M) / x : NaN;
|
|
1450
1485
|
} else
|
|
1451
|
-
i[
|
|
1486
|
+
i[m] = NaN;
|
|
1452
1487
|
}
|
|
1453
1488
|
return i;
|
|
1454
1489
|
}
|
|
@@ -1464,7 +1499,7 @@ function T(n, t = { skipna: !0 }) {
|
|
|
1464
1499
|
let o = (r = t == null ? void 0 : t.skipna) !== null && r !== void 0 ? r : !0;
|
|
1465
1500
|
if (e && e.length !== n.length)
|
|
1466
1501
|
throw new Error("source and weights must have same length");
|
|
1467
|
-
if (!
|
|
1502
|
+
if (!S() && o && (e ? k(n, e) || (o = !1) : k(n) || (o = !1)), !e) {
|
|
1468
1503
|
if (!o) {
|
|
1469
1504
|
const s = it(n, !1);
|
|
1470
1505
|
return s !== s ? NaN : s / n.length;
|
|
@@ -1498,7 +1533,7 @@ function ht(n, t, r = !0) {
|
|
|
1498
1533
|
throw new Error("period must be positive");
|
|
1499
1534
|
if (e < t)
|
|
1500
1535
|
return o;
|
|
1501
|
-
if (!
|
|
1536
|
+
if (!S() && r && !k(n)) {
|
|
1502
1537
|
let i = 0;
|
|
1503
1538
|
for (let a = 0; a < t; a++)
|
|
1504
1539
|
i += n[a];
|
|
@@ -1525,7 +1560,7 @@ function ee(n, t = { skipna: !0 }) {
|
|
|
1525
1560
|
let o = (r = t == null ? void 0 : t.skipna) !== null && r !== void 0 ? r : !0;
|
|
1526
1561
|
if (e && e.length !== n.length)
|
|
1527
1562
|
throw new Error("source and weights must have same length");
|
|
1528
|
-
if (!
|
|
1563
|
+
if (!S() && o && (e ? k(n, e) || (o = !1) : k(n) || (o = !1)), !e) {
|
|
1529
1564
|
if (!o) {
|
|
1530
1565
|
let s = 0;
|
|
1531
1566
|
for (let u = 0; u < n.length; u++) {
|
|
@@ -1574,7 +1609,7 @@ function oe(n, t = { skipna: !0 }) {
|
|
|
1574
1609
|
let o = (r = t == null ? void 0 : t.skipna) !== null && r !== void 0 ? r : !0;
|
|
1575
1610
|
if (e && e.length !== n.length)
|
|
1576
1611
|
throw new Error("source and weights must have same length");
|
|
1577
|
-
if (!
|
|
1612
|
+
if (!S() && o && (e ? k(n, e) || (o = !1) : k(n) || (o = !1)), !e) {
|
|
1578
1613
|
if (!o) {
|
|
1579
1614
|
let s = 0;
|
|
1580
1615
|
for (let u = 0; u < n.length; u++) {
|
|
@@ -1623,7 +1658,7 @@ function le(n, t = !0) {
|
|
|
1623
1658
|
const r = T(n, { skipna: t });
|
|
1624
1659
|
if (r !== r)
|
|
1625
1660
|
return NaN;
|
|
1626
|
-
if (!
|
|
1661
|
+
if (!S() && t && !k(n)) {
|
|
1627
1662
|
let l = 0;
|
|
1628
1663
|
for (let f = 0; f < n.length; f++)
|
|
1629
1664
|
l += Math.abs(n[f] - r);
|
|
@@ -1733,44 +1768,44 @@ function _t(n, t, r) {
|
|
|
1733
1768
|
if (r < 0 || r > 1)
|
|
1734
1769
|
throw new Error("q must be in [0,1]");
|
|
1735
1770
|
const f = new Int32Array(t), i = new Int32Array(t), a = new Uint8Array(e), s = new Uint8Array(e);
|
|
1736
|
-
let u = 0, c = 0, N = 0,
|
|
1737
|
-
const
|
|
1771
|
+
let u = 0, c = 0, N = 0, m = 0;
|
|
1772
|
+
const h = n;
|
|
1738
1773
|
for (let w = 0; w < e; w++) {
|
|
1739
|
-
const v = w, d =
|
|
1774
|
+
const v = w, d = h[v];
|
|
1740
1775
|
if (d === d) {
|
|
1741
1776
|
const b = u === 0 ? void 0 : f[0];
|
|
1742
|
-
b === void 0 || d <=
|
|
1777
|
+
b === void 0 || d <= h[b] ? (f[u] = v, Q(f, u, !1, h), u++, N++, s[v] = 1) : (i[c] = v, Q(i, c, !0, h), c++, m++, s[v] = 2);
|
|
1743
1778
|
}
|
|
1744
1779
|
if (w >= t) {
|
|
1745
1780
|
const b = w - t;
|
|
1746
|
-
s[b] === 1 ? (N--, a[b] = 1, s[b] = 0) : s[b] === 2 && (
|
|
1781
|
+
s[b] === 1 ? (N--, a[b] = 1, s[b] = 0) : s[b] === 2 && (m--, a[b] = 1, s[b] = 0);
|
|
1747
1782
|
}
|
|
1748
|
-
const A = N +
|
|
1783
|
+
const A = N + m;
|
|
1749
1784
|
if (A !== 0) {
|
|
1750
1785
|
const g = Math.floor((A - 1) * r) + 1;
|
|
1751
|
-
for (u = q(f, u, !1, a, s,
|
|
1752
|
-
u = q(f, u, !1, a, s,
|
|
1753
|
-
const
|
|
1754
|
-
u =
|
|
1786
|
+
for (u = q(f, u, !1, a, s, h), c = q(i, c, !0, a, s, h); N > g; ) {
|
|
1787
|
+
u = q(f, u, !1, a, s, h);
|
|
1788
|
+
const M = ct(f, u, !1, h, s), x = M.top;
|
|
1789
|
+
u = M.len, N--, i[c] = x, Q(i, c, !0, h), c++, m++;
|
|
1755
1790
|
}
|
|
1756
1791
|
for (; N < g; ) {
|
|
1757
|
-
c = q(i, c, !0, a, s,
|
|
1758
|
-
const
|
|
1759
|
-
c =
|
|
1792
|
+
c = q(i, c, !0, a, s, h);
|
|
1793
|
+
const M = ct(i, c, !0, h, s), x = M.top;
|
|
1794
|
+
c = M.len, m--, f[u] = x, Q(f, u, !1, h), u++, N++;
|
|
1760
1795
|
}
|
|
1761
|
-
u = q(f, u, !1, a, s,
|
|
1796
|
+
u = q(f, u, !1, a, s, h), c = q(i, c, !0, a, s, h);
|
|
1762
1797
|
}
|
|
1763
1798
|
if (w >= t - 1) {
|
|
1764
|
-
u = q(f, u, !1, a, s,
|
|
1765
|
-
const b = N +
|
|
1799
|
+
u = q(f, u, !1, a, s, h), c = q(i, c, !0, a, s, h);
|
|
1800
|
+
const b = N + m;
|
|
1766
1801
|
if (b === 0)
|
|
1767
1802
|
o[w] = NaN;
|
|
1768
1803
|
else if ((b & 1) === 1) {
|
|
1769
1804
|
const g = f[0];
|
|
1770
|
-
o[w] =
|
|
1805
|
+
o[w] = h[g];
|
|
1771
1806
|
} else {
|
|
1772
|
-
const g = f[0],
|
|
1773
|
-
o[w] = (
|
|
1807
|
+
const g = f[0], M = i[0];
|
|
1808
|
+
o[w] = (h[g] + h[M]) / 2;
|
|
1774
1809
|
}
|
|
1775
1810
|
}
|
|
1776
1811
|
}
|
|
@@ -1779,7 +1814,7 @@ function _t(n, t, r) {
|
|
|
1779
1814
|
function ae(n, t) {
|
|
1780
1815
|
return n.length, _t(n, t, 0.5);
|
|
1781
1816
|
}
|
|
1782
|
-
function
|
|
1817
|
+
function St(n, t, r) {
|
|
1783
1818
|
const e = (t - 1) * r, o = Math.floor(e), l = Math.ceil(e);
|
|
1784
1819
|
if (o === l)
|
|
1785
1820
|
return st(n, o, 0, t - 1);
|
|
@@ -1804,7 +1839,7 @@ function C(n, t) {
|
|
|
1804
1839
|
const f = n[l];
|
|
1805
1840
|
f === f && (e[o++] = f);
|
|
1806
1841
|
}
|
|
1807
|
-
return o === 0 ? NaN :
|
|
1842
|
+
return o === 0 ? NaN : St(e, o, t);
|
|
1808
1843
|
}
|
|
1809
1844
|
function se(n, t) {
|
|
1810
1845
|
if (t.length === 0)
|
|
@@ -1827,7 +1862,7 @@ function se(n, t) {
|
|
|
1827
1862
|
l[a] = NaN;
|
|
1828
1863
|
continue;
|
|
1829
1864
|
}
|
|
1830
|
-
l[a] =
|
|
1865
|
+
l[a] = St(e, o, s);
|
|
1831
1866
|
}
|
|
1832
1867
|
return l;
|
|
1833
1868
|
}
|
|
@@ -1844,8 +1879,8 @@ function se(n, t) {
|
|
|
1844
1879
|
if (c === N)
|
|
1845
1880
|
l[a] = f[c];
|
|
1846
1881
|
else {
|
|
1847
|
-
const
|
|
1848
|
-
l[a] = f[c] * (1 -
|
|
1882
|
+
const m = u - c;
|
|
1883
|
+
l[a] = f[c] * (1 - m) + f[N] * m;
|
|
1849
1884
|
}
|
|
1850
1885
|
}
|
|
1851
1886
|
return l;
|
|
@@ -1857,7 +1892,7 @@ function ue(n, t = !0) {
|
|
|
1857
1892
|
const r = n.length, e = new Float64Array(r);
|
|
1858
1893
|
if (r === 0)
|
|
1859
1894
|
return e;
|
|
1860
|
-
!
|
|
1895
|
+
!S() && t && (k(n) || (t = !1));
|
|
1861
1896
|
const o = T(n, { skipna: t }), l = W(n, { ddof: 1, skipna: t });
|
|
1862
1897
|
if (l === 0 || l !== l)
|
|
1863
1898
|
return e.fill(NaN), e;
|
|
@@ -1903,7 +1938,7 @@ function he(n, t, r = !0) {
|
|
|
1903
1938
|
const e = n.length;
|
|
1904
1939
|
if (e === 0)
|
|
1905
1940
|
return NaN;
|
|
1906
|
-
if (!
|
|
1941
|
+
if (!S() && r && (k(n, t) || (r = !1)), r) {
|
|
1907
1942
|
let o = 0, l = 0, f = 0, i = 0, a = 0, s = 0;
|
|
1908
1943
|
for (let d = 0; d < e; d++) {
|
|
1909
1944
|
const A = n[d], b = t[d];
|
|
@@ -1917,8 +1952,8 @@ function he(n, t, r = !0) {
|
|
|
1917
1952
|
const c = s - u;
|
|
1918
1953
|
if (c <= 0)
|
|
1919
1954
|
return NaN;
|
|
1920
|
-
const N = o / s,
|
|
1921
|
-
return w === 0 || v === 0 ? NaN :
|
|
1955
|
+
const N = o / s, m = l / s, h = (f - s * N * m) / c, w = (i - s * N * N) / c, v = (a - s * m * m) / c;
|
|
1956
|
+
return w === 0 || v === 0 ? NaN : h / Math.sqrt(w * v);
|
|
1922
1957
|
} else {
|
|
1923
1958
|
let o = 0, l = 0;
|
|
1924
1959
|
for (let c = 0; c < e; c++)
|
|
@@ -1926,8 +1961,8 @@ function he(n, t, r = !0) {
|
|
|
1926
1961
|
const f = o / e, i = l / e;
|
|
1927
1962
|
let a = 0, s = 0, u = 0;
|
|
1928
1963
|
for (let c = 0; c < e; c++) {
|
|
1929
|
-
const N = n[c] - f,
|
|
1930
|
-
a += N *
|
|
1964
|
+
const N = n[c] - f, m = t[c] - i;
|
|
1965
|
+
a += N * m, s += N * N, u += m * m;
|
|
1931
1966
|
}
|
|
1932
1967
|
return s === 0 || u === 0 ? NaN : a / Math.sqrt(s * u);
|
|
1933
1968
|
}
|
|
@@ -1943,12 +1978,12 @@ function me(n, t, r, e) {
|
|
|
1943
1978
|
for (let w = 0; w < i; w++)
|
|
1944
1979
|
s[w] = w < n.length ? n[w] : NaN, u[w] = w < t.length ? t[w] : NaN;
|
|
1945
1980
|
}
|
|
1946
|
-
const c = kt(s, u, r), N = X(s, r, { skipna: a }),
|
|
1981
|
+
const c = kt(s, u, r), N = X(s, r, { skipna: a }), m = X(u, r, { skipna: a }), h = new Float64Array(i);
|
|
1947
1982
|
for (let w = 0; w < i; w++) {
|
|
1948
|
-
const v = N[w] *
|
|
1949
|
-
v > 1e-12 ?
|
|
1983
|
+
const v = N[w] * m[w];
|
|
1984
|
+
v > 1e-12 ? h[w] = c[w] / v : h[w] = NaN;
|
|
1950
1985
|
}
|
|
1951
|
-
return
|
|
1986
|
+
return h;
|
|
1952
1987
|
}
|
|
1953
1988
|
function we(n, t) {
|
|
1954
1989
|
var r, e, o;
|
|
@@ -1958,19 +1993,19 @@ function we(n, t) {
|
|
|
1958
1993
|
return s;
|
|
1959
1994
|
if (l < 0 || f < 0 || l > 1 || f > 1 || l > f)
|
|
1960
1995
|
throw new Error("invalid quantile bounds");
|
|
1961
|
-
!
|
|
1996
|
+
!S() && i && (k(n) || (i = !1));
|
|
1962
1997
|
const u = C(n, l), c = C(n, f);
|
|
1963
1998
|
if (u !== u || c !== c)
|
|
1964
1999
|
return s.fill(NaN), s;
|
|
1965
2000
|
if (i)
|
|
1966
2001
|
for (let N = 0; N < a; N++) {
|
|
1967
|
-
const
|
|
1968
|
-
|
|
2002
|
+
const m = n[N];
|
|
2003
|
+
m !== m ? s[N] = NaN : m < u ? s[N] = u : m > c ? s[N] = c : s[N] = m;
|
|
1969
2004
|
}
|
|
1970
2005
|
else
|
|
1971
2006
|
for (let N = 0; N < a; N++) {
|
|
1972
|
-
const
|
|
1973
|
-
|
|
2007
|
+
const m = n[N];
|
|
2008
|
+
m < u ? s[N] = u : m > c ? s[N] = c : s[N] = m;
|
|
1974
2009
|
}
|
|
1975
2010
|
return s;
|
|
1976
2011
|
}
|
|
@@ -2032,8 +2067,8 @@ function de(n, t) {
|
|
|
2032
2067
|
if (u === u && (i++, o += u, l += u * u, f += u * u * u), i >= 3) {
|
|
2033
2068
|
const c = o / i, N = l / i - c * c;
|
|
2034
2069
|
if (N > 1e-12) {
|
|
2035
|
-
const
|
|
2036
|
-
e[a] = (f / i - 3 * c * N - c * c * c) / (
|
|
2070
|
+
const m = Math.sqrt(N);
|
|
2071
|
+
e[a] = (f / i - 3 * c * N - c * c * c) / (m * m * m);
|
|
2037
2072
|
} else
|
|
2038
2073
|
e[a] = 0;
|
|
2039
2074
|
}
|
|
@@ -2056,8 +2091,8 @@ function Ae(n, t) {
|
|
|
2056
2091
|
if (a >= 4) {
|
|
2057
2092
|
const s = o / a, u = l / a - s * s;
|
|
2058
2093
|
if (u > 1e-12) {
|
|
2059
|
-
const c = l / a, N = f / a,
|
|
2060
|
-
e[t - 1] = (
|
|
2094
|
+
const c = l / a, N = f / a, m = i / a;
|
|
2095
|
+
e[t - 1] = (m - 4 * s * N + 6 * s * s * c - 3 * s * s * s * s) / (u * u) - 3;
|
|
2061
2096
|
} else
|
|
2062
2097
|
e[t - 1] = 0;
|
|
2063
2098
|
}
|
|
@@ -2075,10 +2110,10 @@ function Ae(n, t) {
|
|
|
2075
2110
|
l += N, f += N * c, i += N * N;
|
|
2076
2111
|
}
|
|
2077
2112
|
if (a >= 4) {
|
|
2078
|
-
const N = o / a,
|
|
2079
|
-
if (
|
|
2080
|
-
const
|
|
2081
|
-
e[s] = (v - 4 * N * w + 6 * N * N *
|
|
2113
|
+
const N = o / a, m = l / a - N * N;
|
|
2114
|
+
if (m > 1e-12) {
|
|
2115
|
+
const h = l / a, w = f / a, v = i / a;
|
|
2116
|
+
e[s] = (v - 4 * N * w + 6 * N * N * h - 3 * N * N * N * N) / (m * m) - 3;
|
|
2082
2117
|
} else
|
|
2083
2118
|
e[s] = 0;
|
|
2084
2119
|
}
|
|
@@ -2105,7 +2140,7 @@ function be(n, t) {
|
|
|
2105
2140
|
}
|
|
2106
2141
|
return e;
|
|
2107
2142
|
}
|
|
2108
|
-
function
|
|
2143
|
+
function Fe(n, t) {
|
|
2109
2144
|
const r = [];
|
|
2110
2145
|
for (let e = 0; e < t; e++) {
|
|
2111
2146
|
const o = Math.floor(Math.random() * n.length);
|
|
@@ -2115,7 +2150,7 @@ function Me(n, t) {
|
|
|
2115
2150
|
}
|
|
2116
2151
|
const Co = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2117
2152
|
__proto__: null,
|
|
2118
|
-
bootstrap:
|
|
2153
|
+
bootstrap: Fe,
|
|
2119
2154
|
corr: he,
|
|
2120
2155
|
covar: te,
|
|
2121
2156
|
gmean: oe,
|
|
@@ -2144,7 +2179,7 @@ const Co = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
2144
2179
|
winsorize: we,
|
|
2145
2180
|
zscore: ue
|
|
2146
2181
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
2147
|
-
function
|
|
2182
|
+
function Me(n) {
|
|
2148
2183
|
const t = n.length;
|
|
2149
2184
|
if (t === 0)
|
|
2150
2185
|
return new Float32Array(0);
|
|
@@ -2196,22 +2231,22 @@ function ke(n, t, r = 0) {
|
|
|
2196
2231
|
if (e === 0)
|
|
2197
2232
|
return { days: [], dailyReturns: new Float32Array(0) };
|
|
2198
2233
|
const o = 1440 * 60 * 1e3, l = r * 60 * 1e3, f = /* @__PURE__ */ new Map();
|
|
2199
|
-
for (let
|
|
2200
|
-
const
|
|
2201
|
-
if (!Number.isFinite(
|
|
2234
|
+
for (let m = 0; m < e; m++) {
|
|
2235
|
+
const h = Number(n[m]), w = Number(t[m]);
|
|
2236
|
+
if (!Number.isFinite(h) || w !== w)
|
|
2202
2237
|
continue;
|
|
2203
|
-
const v = Math.floor((
|
|
2238
|
+
const v = Math.floor((h + l) / o), d = f.get(v);
|
|
2204
2239
|
d ? (d.prod *= 1 + w, d.count += 1) : f.set(v, { prod: 1 + w, count: 1 });
|
|
2205
2240
|
}
|
|
2206
|
-
const i = Array.from(f.keys()).sort((
|
|
2241
|
+
const i = Array.from(f.keys()).sort((m, h) => m - h);
|
|
2207
2242
|
if (i.length === 0)
|
|
2208
2243
|
return { days: [], dailyReturns: new Float32Array(0) };
|
|
2209
2244
|
const a = i[0], u = i[i.length - 1] - a + 1, c = new Array(u), N = new Float32Array(u);
|
|
2210
|
-
for (let
|
|
2211
|
-
const
|
|
2212
|
-
c[
|
|
2213
|
-
const w = f.get(
|
|
2214
|
-
w ? N[
|
|
2245
|
+
for (let m = 0; m < u; m++) {
|
|
2246
|
+
const h = a + m;
|
|
2247
|
+
c[m] = h * o - l;
|
|
2248
|
+
const w = f.get(h);
|
|
2249
|
+
w ? N[m] = w.prod - 1 : N[m] = 0;
|
|
2215
2250
|
}
|
|
2216
2251
|
return { days: c, dailyReturns: N };
|
|
2217
2252
|
}
|
|
@@ -2219,7 +2254,7 @@ function _e(n) {
|
|
|
2219
2254
|
const t = n.length, r = new Float64Array(t);
|
|
2220
2255
|
if (t === 0)
|
|
2221
2256
|
return r;
|
|
2222
|
-
const e =
|
|
2257
|
+
const e = P(n);
|
|
2223
2258
|
let o = -1;
|
|
2224
2259
|
for (let f = 0; f < t; f++)
|
|
2225
2260
|
if (e[f] === 1) {
|
|
@@ -2246,7 +2281,7 @@ function mt(n) {
|
|
|
2246
2281
|
const t = n.length;
|
|
2247
2282
|
if (t === 0)
|
|
2248
2283
|
return NaN;
|
|
2249
|
-
const r =
|
|
2284
|
+
const r = P(n);
|
|
2250
2285
|
let e = -1;
|
|
2251
2286
|
for (let i = 0; i < t; i++)
|
|
2252
2287
|
if (r[i] === 1) {
|
|
@@ -2269,53 +2304,53 @@ function mt(n) {
|
|
|
2269
2304
|
}
|
|
2270
2305
|
return f ? -l : 0;
|
|
2271
2306
|
}
|
|
2272
|
-
function
|
|
2307
|
+
function Se(n) {
|
|
2273
2308
|
const t = n.length;
|
|
2274
2309
|
if (t === 0)
|
|
2275
2310
|
return { maxDrawdown: NaN, peakIndex: -1, troughIndex: -1, startIndex: -1, endIndex: -1 };
|
|
2276
|
-
const r =
|
|
2311
|
+
const r = P(n);
|
|
2277
2312
|
let e = -1;
|
|
2278
|
-
for (let
|
|
2279
|
-
if (r[
|
|
2280
|
-
e =
|
|
2313
|
+
for (let h = 0; h < t; h++)
|
|
2314
|
+
if (r[h] === 1) {
|
|
2315
|
+
e = h;
|
|
2281
2316
|
break;
|
|
2282
2317
|
}
|
|
2283
2318
|
if (e === -1)
|
|
2284
2319
|
return { maxDrawdown: NaN, peakIndex: -1, troughIndex: -1, startIndex: -1, endIndex: -1 };
|
|
2285
2320
|
let o = n[e], l = e, f = 0, i = e;
|
|
2286
|
-
for (let
|
|
2287
|
-
if (r[
|
|
2321
|
+
for (let h = e + 1; h < t; h++) {
|
|
2322
|
+
if (r[h] !== 1)
|
|
2288
2323
|
continue;
|
|
2289
|
-
const w = n[
|
|
2324
|
+
const w = n[h];
|
|
2290
2325
|
if (w > o)
|
|
2291
|
-
o = w, l =
|
|
2326
|
+
o = w, l = h;
|
|
2292
2327
|
else {
|
|
2293
2328
|
const v = w / o - 1;
|
|
2294
|
-
v < f && (f = v, i =
|
|
2329
|
+
v < f && (f = v, i = h);
|
|
2295
2330
|
}
|
|
2296
2331
|
}
|
|
2297
2332
|
if (f === 0)
|
|
2298
2333
|
return { maxDrawdown: 0, peakIndex: l, troughIndex: l, startIndex: l, endIndex: l };
|
|
2299
2334
|
const a = -f;
|
|
2300
2335
|
let s = n[e], u = e;
|
|
2301
|
-
for (let
|
|
2302
|
-
if (r[
|
|
2336
|
+
for (let h = e + 1; h <= i; h++) {
|
|
2337
|
+
if (r[h] !== 1)
|
|
2303
2338
|
continue;
|
|
2304
|
-
const w = n[
|
|
2305
|
-
w > s && (s = w, u =
|
|
2339
|
+
const w = n[h];
|
|
2340
|
+
w > s && (s = w, u = h);
|
|
2306
2341
|
}
|
|
2307
2342
|
const c = u;
|
|
2308
2343
|
let N = -1;
|
|
2309
|
-
const
|
|
2310
|
-
for (let
|
|
2311
|
-
if (r[
|
|
2312
|
-
N =
|
|
2344
|
+
const m = n[c];
|
|
2345
|
+
for (let h = i + 1; h < t; h++)
|
|
2346
|
+
if (r[h] === 1 && n[h] > m) {
|
|
2347
|
+
N = h;
|
|
2313
2348
|
break;
|
|
2314
2349
|
}
|
|
2315
2350
|
if (N === -1) {
|
|
2316
|
-
for (let
|
|
2317
|
-
if (r[
|
|
2318
|
-
N =
|
|
2351
|
+
for (let h = t - 1; h >= 0; h--)
|
|
2352
|
+
if (r[h] === 1) {
|
|
2353
|
+
N = h;
|
|
2319
2354
|
break;
|
|
2320
2355
|
}
|
|
2321
2356
|
}
|
|
@@ -2327,13 +2362,13 @@ function Ve(n) {
|
|
|
2327
2362
|
endIndex: N
|
|
2328
2363
|
};
|
|
2329
2364
|
}
|
|
2330
|
-
function
|
|
2365
|
+
function Ve(n, t) {
|
|
2331
2366
|
if (t <= 0)
|
|
2332
2367
|
throw new Error("window must be positive");
|
|
2333
2368
|
const r = n.length, e = new Float64Array(r);
|
|
2334
2369
|
if (r === 0)
|
|
2335
2370
|
return e;
|
|
2336
|
-
const o =
|
|
2371
|
+
const o = P(n);
|
|
2337
2372
|
for (let l = 0; l < r; l++) {
|
|
2338
2373
|
const f = Math.max(0, l - t + 1);
|
|
2339
2374
|
let i = -1;
|
|
@@ -2354,8 +2389,8 @@ function Se(n, t) {
|
|
|
2354
2389
|
if (N > a)
|
|
2355
2390
|
a = N;
|
|
2356
2391
|
else {
|
|
2357
|
-
const
|
|
2358
|
-
(!u ||
|
|
2392
|
+
const m = N / a - 1;
|
|
2393
|
+
(!u || m < s) && (s = m), u = !0;
|
|
2359
2394
|
}
|
|
2360
2395
|
}
|
|
2361
2396
|
e[l] = u ? -s : 0;
|
|
@@ -2363,7 +2398,7 @@ function Se(n, t) {
|
|
|
2363
2398
|
return e;
|
|
2364
2399
|
}
|
|
2365
2400
|
function Le(n) {
|
|
2366
|
-
const t = n.length, r = new Int32Array(t), e =
|
|
2401
|
+
const t = n.length, r = new Int32Array(t), e = P(n);
|
|
2367
2402
|
let o = -1;
|
|
2368
2403
|
for (let a = 0; a < t; a++)
|
|
2369
2404
|
if (e[a] === 1) {
|
|
@@ -2394,7 +2429,7 @@ function je(n, t = 252) {
|
|
|
2394
2429
|
const r = n.length;
|
|
2395
2430
|
if (r === 0)
|
|
2396
2431
|
return NaN;
|
|
2397
|
-
const e =
|
|
2432
|
+
const e = P(n);
|
|
2398
2433
|
let o = -1, l = -1;
|
|
2399
2434
|
for (let N = 0; N < r; N++)
|
|
2400
2435
|
if (e[N] === 1) {
|
|
@@ -2421,7 +2456,7 @@ function Pe(n, t = 3, r = 252) {
|
|
|
2421
2456
|
const e = n.length;
|
|
2422
2457
|
if (e === 0)
|
|
2423
2458
|
return NaN;
|
|
2424
|
-
const o =
|
|
2459
|
+
const o = P(n);
|
|
2425
2460
|
let l = -1, f = -1;
|
|
2426
2461
|
for (let v = 0; v < e; v++)
|
|
2427
2462
|
if (o[v] === 1) {
|
|
@@ -2454,18 +2489,18 @@ function Pe(n, t = 3, r = 252) {
|
|
|
2454
2489
|
const c = (f - i) / r;
|
|
2455
2490
|
if (c <= 0)
|
|
2456
2491
|
return NaN;
|
|
2457
|
-
const N = Math.pow(s / a, 1 / c) - 1,
|
|
2458
|
-
let
|
|
2492
|
+
const N = Math.pow(s / a, 1 / c) - 1, m = new Float64Array(f - i + 1);
|
|
2493
|
+
let h = 0;
|
|
2459
2494
|
for (let v = i; v <= f; v++)
|
|
2460
|
-
h
|
|
2461
|
-
const w = mt(
|
|
2495
|
+
m[h++] = n[v];
|
|
2496
|
+
const w = mt(m);
|
|
2462
2497
|
return w !== w || w === 0 ? NaN : N / w;
|
|
2463
2498
|
}
|
|
2464
2499
|
function De(n) {
|
|
2465
2500
|
const t = n.length;
|
|
2466
2501
|
if (t === 0)
|
|
2467
2502
|
return NaN;
|
|
2468
|
-
const r =
|
|
2503
|
+
const r = P(n);
|
|
2469
2504
|
let e = -1;
|
|
2470
2505
|
for (let i = 0; i < t; i++)
|
|
2471
2506
|
if (r[i] === 1) {
|
|
@@ -2491,7 +2526,7 @@ function Oe(n, t, r = 1) {
|
|
|
2491
2526
|
const e = n.length, o = new Float64Array(e);
|
|
2492
2527
|
if (e === 0)
|
|
2493
2528
|
return o;
|
|
2494
|
-
const l =
|
|
2529
|
+
const l = P(n);
|
|
2495
2530
|
for (let f = 0; f < e; f++) {
|
|
2496
2531
|
const i = Math.max(0, f - t + 1);
|
|
2497
2532
|
let a = -1;
|
|
@@ -2508,10 +2543,10 @@ function Oe(n, t, r = 1) {
|
|
|
2508
2543
|
for (let N = a; N <= f; N++) {
|
|
2509
2544
|
if (l[N] !== 1)
|
|
2510
2545
|
continue;
|
|
2511
|
-
const
|
|
2512
|
-
|
|
2513
|
-
const
|
|
2514
|
-
u +=
|
|
2546
|
+
const m = n[N];
|
|
2547
|
+
m > s && (s = m);
|
|
2548
|
+
const h = (s - m) / s;
|
|
2549
|
+
u += h * h, c++;
|
|
2515
2550
|
}
|
|
2516
2551
|
if (c < r || c === 0) {
|
|
2517
2552
|
o[f] = NaN;
|
|
@@ -2551,23 +2586,23 @@ function Ue(n, t, r = 0, e = 252, o = 1) {
|
|
|
2551
2586
|
const l = n.length, f = new Float64Array(l);
|
|
2552
2587
|
if (l === 0)
|
|
2553
2588
|
return f;
|
|
2554
|
-
const i = r / e, a = H(n, i), s =
|
|
2555
|
-
for (let
|
|
2556
|
-
const
|
|
2557
|
-
if (
|
|
2558
|
-
f[
|
|
2589
|
+
const i = r / e, a = H(n, i), s = P(a), u = ht(a, t), c = X(a, t, { skipna: !0, ddof: 0 }), N = nt(s, t);
|
|
2590
|
+
for (let m = 0; m < l; m++) {
|
|
2591
|
+
const h = N[m];
|
|
2592
|
+
if (h !== h || h < o) {
|
|
2593
|
+
f[m] = NaN;
|
|
2559
2594
|
continue;
|
|
2560
2595
|
}
|
|
2561
|
-
if (
|
|
2562
|
-
f[
|
|
2596
|
+
if (h <= 1) {
|
|
2597
|
+
f[m] = NaN;
|
|
2563
2598
|
continue;
|
|
2564
2599
|
}
|
|
2565
|
-
const w = c[
|
|
2600
|
+
const w = c[m] * Math.sqrt(h / (h - 1)), v = u[m];
|
|
2566
2601
|
if (w !== w || w === 0 || v !== v) {
|
|
2567
|
-
f[
|
|
2602
|
+
f[m] = NaN;
|
|
2568
2603
|
continue;
|
|
2569
2604
|
}
|
|
2570
|
-
f[
|
|
2605
|
+
f[m] = v * Math.sqrt(e) / w;
|
|
2571
2606
|
}
|
|
2572
2607
|
return f;
|
|
2573
2608
|
}
|
|
@@ -2576,23 +2611,23 @@ function qe(n, t, r = 0, e = 252, o = 1) {
|
|
|
2576
2611
|
if (l === 0)
|
|
2577
2612
|
return f;
|
|
2578
2613
|
const i = r / e, a = H(n, i), s = new Float64Array(l);
|
|
2579
|
-
for (let
|
|
2580
|
-
const w = a[
|
|
2581
|
-
s[
|
|
2614
|
+
for (let h = 0; h < l; h++) {
|
|
2615
|
+
const w = a[h];
|
|
2616
|
+
s[h] = w === w && w < 0 ? w : NaN;
|
|
2582
2617
|
}
|
|
2583
|
-
const u =
|
|
2584
|
-
for (let
|
|
2585
|
-
const w = h
|
|
2618
|
+
const u = P(s), c = ht(a, t), N = X(s, t, { skipna: !0, ddof: 0 }), m = nt(u, t);
|
|
2619
|
+
for (let h = 0; h < l; h++) {
|
|
2620
|
+
const w = m[h], v = c[h];
|
|
2586
2621
|
if (w !== w || v !== v || w < 2) {
|
|
2587
|
-
f[
|
|
2622
|
+
f[h] = NaN;
|
|
2588
2623
|
continue;
|
|
2589
2624
|
}
|
|
2590
|
-
const d = N[
|
|
2625
|
+
const d = N[h] * Math.sqrt(w / (w - 1));
|
|
2591
2626
|
if (d !== d || d === 0) {
|
|
2592
|
-
f[
|
|
2627
|
+
f[h] = NaN;
|
|
2593
2628
|
continue;
|
|
2594
2629
|
}
|
|
2595
|
-
f[
|
|
2630
|
+
f[h] = v * Math.sqrt(e) / d;
|
|
2596
2631
|
}
|
|
2597
2632
|
return f;
|
|
2598
2633
|
}
|
|
@@ -2606,7 +2641,7 @@ function Xe(n, t, r = 252, e = 1) {
|
|
|
2606
2641
|
const o = n.length, l = new Float64Array(o);
|
|
2607
2642
|
if (o === 0)
|
|
2608
2643
|
return l;
|
|
2609
|
-
const f = X(n, t, { skipna: !0, ddof: 0 }), i = nt(
|
|
2644
|
+
const f = X(n, t, { skipna: !0, ddof: 0 }), i = nt(P(n), t);
|
|
2610
2645
|
for (let a = 0; a < o; a++) {
|
|
2611
2646
|
const s = i[a];
|
|
2612
2647
|
if (s !== s || s < e) {
|
|
@@ -2626,10 +2661,10 @@ function Xe(n, t, r = 252, e = 1) {
|
|
|
2626
2661
|
}
|
|
2627
2662
|
return l;
|
|
2628
2663
|
}
|
|
2629
|
-
function
|
|
2630
|
-
const t = -39.69683028665376, r = 220.9460984245205, e = -275.9285104469687, o = 138.357751867269, l = -30.66479806614716, f = 2.506628277459239, i = -54.47609879822406, a = 161.5858368580409, s = -155.6989798598866, u = 66.80131188771972, c = -13.28068155288572, N = -0.007784894002430293,
|
|
2631
|
-
let y,
|
|
2632
|
-
return n < x ? (y = Math.sqrt(-2 * Math.log(n)), E = (((((N * y +
|
|
2664
|
+
function Vt(n) {
|
|
2665
|
+
const t = -39.69683028665376, r = 220.9460984245205, e = -275.9285104469687, o = 138.357751867269, l = -30.66479806614716, f = 2.506628277459239, i = -54.47609879822406, a = 161.5858368580409, s = -155.6989798598866, u = 66.80131188771972, c = -13.28068155288572, N = -0.007784894002430293, m = -0.3223964580411365, h = -2.400758277161838, w = -2.549732539343734, v = 4.374664141464968, d = 2.938163982698783, A = 0.007784695709041462, b = 0.3224671290700398, g = 2.445134137142996, M = 3.754408661907416, x = 0.02425, I = 1 - x;
|
|
2666
|
+
let y, F, E;
|
|
2667
|
+
return n < x ? (y = Math.sqrt(-2 * Math.log(n)), E = (((((N * y + m) * y + h) * y + w) * y + v) * y + d) / ((((A * y + b) * y + g) * y + M) * y + 1), -E) : n <= I ? (y = n - 0.5, F = y * y, E = (((((t * F + r) * F + e) * F + o) * F + l) * F + f) * y / (((((i * F + a) * F + s) * F + u) * F + c) * F + 1), E) : (y = Math.sqrt(-2 * Math.log(1 - n)), E = (((((N * y + m) * y + h) * y + w) * y + v) * y + d) / ((((A * y + b) * y + g) * y + M) * y + 1), E);
|
|
2633
2668
|
}
|
|
2634
2669
|
function Re(n) {
|
|
2635
2670
|
return Math.exp(-0.5 * n * n) / Math.sqrt(2 * Math.PI);
|
|
@@ -2646,7 +2681,7 @@ function ze(n, t = 0.05, r = "historical") {
|
|
|
2646
2681
|
const o = T(n), l = W(n);
|
|
2647
2682
|
if (o !== o || l !== l || l === 0)
|
|
2648
2683
|
return NaN;
|
|
2649
|
-
const f =
|
|
2684
|
+
const f = Vt(t);
|
|
2650
2685
|
return o + l * f;
|
|
2651
2686
|
}
|
|
2652
2687
|
function Ke(n, t = 0.05, r = "historical") {
|
|
@@ -2661,15 +2696,15 @@ function Ke(n, t = 0.05, r = "historical") {
|
|
|
2661
2696
|
const s = C(a, t);
|
|
2662
2697
|
let u = 0, c = 0;
|
|
2663
2698
|
for (let N = 0; N < a.length; N++) {
|
|
2664
|
-
const
|
|
2665
|
-
|
|
2699
|
+
const m = a[N];
|
|
2700
|
+
m <= s && (u += m, c++);
|
|
2666
2701
|
}
|
|
2667
2702
|
return u / c;
|
|
2668
2703
|
}
|
|
2669
2704
|
const o = T(n), l = W(n);
|
|
2670
2705
|
if (o !== o || l !== l || l === 0)
|
|
2671
2706
|
return NaN;
|
|
2672
|
-
const f =
|
|
2707
|
+
const f = Vt(t);
|
|
2673
2708
|
return o - l * (Re(f) / t);
|
|
2674
2709
|
}
|
|
2675
2710
|
function Ye(n, t = 0.05) {
|
|
@@ -2683,8 +2718,8 @@ function Ye(n, t = 0.05) {
|
|
|
2683
2718
|
const o = C(e, t), l = C(e, 1 - t);
|
|
2684
2719
|
let f = 0, i = 0, a = 0, s = 0;
|
|
2685
2720
|
for (let N = 0; N < e.length; N++) {
|
|
2686
|
-
const
|
|
2687
|
-
|
|
2721
|
+
const m = e[N];
|
|
2722
|
+
m <= o && (f += m, i++), m >= l && (a += m, s++);
|
|
2688
2723
|
}
|
|
2689
2724
|
const u = f / i, c = a / s;
|
|
2690
2725
|
return u === 0 ? NaN : c / Math.abs(u);
|
|
@@ -2713,11 +2748,11 @@ const To = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
2713
2748
|
expshortfall: Ke,
|
|
2714
2749
|
logreturns: xe,
|
|
2715
2750
|
maxdd: mt,
|
|
2716
|
-
maxddDetails:
|
|
2751
|
+
maxddDetails: Se,
|
|
2717
2752
|
omega: He,
|
|
2718
2753
|
recoveryfactor: je,
|
|
2719
|
-
returns:
|
|
2720
|
-
rollmaxdd:
|
|
2754
|
+
returns: Me,
|
|
2755
|
+
rollmaxdd: Ve,
|
|
2721
2756
|
rollsharpe: Ue,
|
|
2722
2757
|
rollsortino: qe,
|
|
2723
2758
|
rollulcer: Oe,
|
|
@@ -2741,20 +2776,20 @@ function We(n, t, r = 5, e = 34, o = !0) {
|
|
|
2741
2776
|
if (l < e)
|
|
2742
2777
|
return f.fill(NaN);
|
|
2743
2778
|
let i = o;
|
|
2744
|
-
if (i && !
|
|
2779
|
+
if (i && !S() && (k(n, t) || (i = !0)), !i) {
|
|
2745
2780
|
const c = new Float64Array(e), N = new Float64Array(r);
|
|
2746
|
-
let
|
|
2781
|
+
let m = 0, h = 0, w = 0, v = 0;
|
|
2747
2782
|
for (let d = 0; d < l; d++) {
|
|
2748
2783
|
const A = (n[d] + t[d]) / 2;
|
|
2749
|
-
|
|
2784
|
+
m += A, h += A;
|
|
2750
2785
|
const b = c[w];
|
|
2751
|
-
|
|
2786
|
+
m -= b, c[w] = A, w++, w === e && (w = 0);
|
|
2752
2787
|
const g = N[v];
|
|
2753
|
-
|
|
2788
|
+
h -= g, N[v] = A, v++, v === r && (v = 0), d >= e - 1 && (d >= r - 1 ? f[d] = h / r - m / e : f[d] = NaN);
|
|
2754
2789
|
}
|
|
2755
2790
|
return f;
|
|
2756
2791
|
}
|
|
2757
|
-
const a = gt(n, t), s =
|
|
2792
|
+
const a = gt(n, t), s = O(a, r), u = O(a, e);
|
|
2758
2793
|
return H(s, u);
|
|
2759
2794
|
}
|
|
2760
2795
|
function Ge(n, t, r) {
|
|
@@ -2797,8 +2832,8 @@ function $e(n, t) {
|
|
|
2797
2832
|
const i = o + l;
|
|
2798
2833
|
e[t] = f === 0 ? NaN : i !== 0 ? 100 * (o - l) / i : 0;
|
|
2799
2834
|
for (let a = t + 1; a < r; a++) {
|
|
2800
|
-
const s = n[a - 1], c = n[a] - s, N = n[a - t - 1],
|
|
2801
|
-
if (w && (
|
|
2835
|
+
const s = n[a - 1], c = n[a] - s, N = n[a - t - 1], h = n[a - t] - N, w = h === h, v = c === c;
|
|
2836
|
+
if (w && (h > 0 ? o -= h : h < 0 && (l -= -h), f--), v && (c > 0 ? o += c : c < 0 && (l += -c), f++), f === 0) {
|
|
2802
2837
|
e[a] = NaN;
|
|
2803
2838
|
continue;
|
|
2804
2839
|
}
|
|
@@ -2816,16 +2851,16 @@ function Je(n, t, r, e) {
|
|
|
2816
2851
|
if (o < a)
|
|
2817
2852
|
return [l, f, i];
|
|
2818
2853
|
const s = 2 / (t + 1), u = 2 / (r + 1), c = 2 / (e + 1);
|
|
2819
|
-
let N = !1,
|
|
2854
|
+
let N = !1, m = NaN, h = NaN, w = NaN, v = 0, d = 0;
|
|
2820
2855
|
for (let A = 0; A < o; A++) {
|
|
2821
2856
|
const b = n[A];
|
|
2822
2857
|
if (b === b) {
|
|
2823
2858
|
if (v === 0) {
|
|
2824
|
-
|
|
2859
|
+
m = b, h = b, v = 1, d = 1;
|
|
2825
2860
|
continue;
|
|
2826
2861
|
}
|
|
2827
|
-
if (
|
|
2828
|
-
const g =
|
|
2862
|
+
if (m = m + s * (b - m), h = h + u * (b - h), v++, d++, d >= r && v >= t) {
|
|
2863
|
+
const g = m - h;
|
|
2829
2864
|
l[A] = g, N ? (w = w + c * (g - w), f[A] = w, i[A] = g - w) : (w = g, N = !0, f[A] = w, i[A] = 0);
|
|
2830
2865
|
}
|
|
2831
2866
|
}
|
|
@@ -2915,8 +2950,8 @@ function no(n, t) {
|
|
|
2915
2950
|
s = c;
|
|
2916
2951
|
continue;
|
|
2917
2952
|
}
|
|
2918
|
-
const N = c - s,
|
|
2919
|
-
f < t ? (o +=
|
|
2953
|
+
const N = c - s, m = Math.max(N, 0), h = Math.max(-N, 0);
|
|
2954
|
+
f < t ? (o += m, l += h, f++, f === t ? (i = o / t, a = l / t, e[u] = a === 0 ? 100 : 100 - 100 / (1 + i / a)) : e[u] = NaN) : (i = (i * (t - 1) + m) / t, a = (a * (t - 1) + h) / t, e[u] = a === 0 ? 100 : 100 - 100 / (1 + i / a)), s = c;
|
|
2920
2955
|
}
|
|
2921
2956
|
return e;
|
|
2922
2957
|
}
|
|
@@ -2924,7 +2959,7 @@ function jt(n, t, r = !0) {
|
|
|
2924
2959
|
if (t <= 0)
|
|
2925
2960
|
throw new Error("Period must be positive");
|
|
2926
2961
|
const e = n.length;
|
|
2927
|
-
if (r && !
|
|
2962
|
+
if (r && !S()) {
|
|
2928
2963
|
let o = !1;
|
|
2929
2964
|
for (let l = 0; l < e; l++)
|
|
2930
2965
|
if (n[l] !== n[l]) {
|
|
@@ -2944,16 +2979,20 @@ function eo(n, t, r, e, o, l) {
|
|
|
2944
2979
|
const i = new Float64Array(f), a = new Float64Array(f);
|
|
2945
2980
|
if (f === 0)
|
|
2946
2981
|
return [i, a];
|
|
2947
|
-
const s = e + o + l -
|
|
2948
|
-
if (f
|
|
2982
|
+
const s = e + o + l - 3;
|
|
2983
|
+
if (f <= s)
|
|
2949
2984
|
return [i.fill(NaN), a.fill(NaN)];
|
|
2950
2985
|
const u = new Float64Array(f).fill(NaN);
|
|
2951
|
-
Nt(t, n, e, (
|
|
2952
|
-
const d = r[v], A = w -
|
|
2953
|
-
u[v] = A === 0 ? 0 : (d -
|
|
2986
|
+
Nt(t, n, e, (h, w, v) => {
|
|
2987
|
+
const d = r[v], A = w - h;
|
|
2988
|
+
u[v] = A === 0 ? 0 : (d - h) / A * 100;
|
|
2954
2989
|
});
|
|
2955
|
-
const N =
|
|
2956
|
-
|
|
2990
|
+
const N = O(u, o, !0), m = O(N, l, !0);
|
|
2991
|
+
for (let h = 0; h < s; h++)
|
|
2992
|
+
i[h] = NaN, a[h] = NaN;
|
|
2993
|
+
for (let h = s; h < f; h++)
|
|
2994
|
+
i[h] = N[h], a[h] = m[h];
|
|
2995
|
+
return [i, a];
|
|
2957
2996
|
}
|
|
2958
2997
|
function oo(n, t) {
|
|
2959
2998
|
if (t <= 0)
|
|
@@ -2964,30 +3003,30 @@ function oo(n, t) {
|
|
|
2964
3003
|
if (r === 0)
|
|
2965
3004
|
return e;
|
|
2966
3005
|
const l = new Int32Array(r), f = new Int32Array(r), i = new Int32Array(r), a = new Int32Array(r);
|
|
2967
|
-
let s = 0, u = 0, c = 0, N = 0,
|
|
2968
|
-
for (let
|
|
2969
|
-
const w = o[
|
|
3006
|
+
let s = 0, u = 0, c = 0, N = 0, m = -1;
|
|
3007
|
+
for (let h = 0; h < r; h++) {
|
|
3008
|
+
const w = o[h];
|
|
2970
3009
|
if (w !== w) {
|
|
2971
|
-
e[
|
|
3010
|
+
e[h] = NaN;
|
|
2972
3011
|
continue;
|
|
2973
3012
|
}
|
|
2974
|
-
for (
|
|
3013
|
+
for (m++; u > s && o[l[u - 1]] >= w; )
|
|
2975
3014
|
u--;
|
|
2976
|
-
l[u] =
|
|
2977
|
-
const v =
|
|
3015
|
+
l[u] = h, i[u] = m, u++;
|
|
3016
|
+
const v = m - t;
|
|
2978
3017
|
for (; u > s && i[s] <= v; )
|
|
2979
3018
|
s++;
|
|
2980
3019
|
for (; N > c && o[f[N - 1]] <= w; )
|
|
2981
3020
|
N--;
|
|
2982
|
-
f[N] =
|
|
2983
|
-
const d =
|
|
3021
|
+
f[N] = h, a[N] = m, N++;
|
|
3022
|
+
const d = m - t;
|
|
2984
3023
|
for (; N > c && a[c] <= d; )
|
|
2985
3024
|
c++;
|
|
2986
|
-
if (
|
|
3025
|
+
if (m >= t - 1) {
|
|
2987
3026
|
const A = o[l[s]], g = o[f[c]] - A;
|
|
2988
|
-
e[
|
|
3027
|
+
e[h] = g === 0 ? 0 : (w - A) / g;
|
|
2989
3028
|
} else
|
|
2990
|
-
e[
|
|
3029
|
+
e[h] = NaN;
|
|
2991
3030
|
}
|
|
2992
3031
|
return e;
|
|
2993
3032
|
}
|
|
@@ -3005,22 +3044,22 @@ function lo(n, t, r, e) {
|
|
|
3005
3044
|
c[g] = NaN;
|
|
3006
3045
|
if (u === 0)
|
|
3007
3046
|
return c;
|
|
3008
|
-
const N = new Float64Array(u + 1),
|
|
3047
|
+
const N = new Float64Array(u + 1), m = new Float64Array(u + 1);
|
|
3009
3048
|
{
|
|
3010
|
-
const g = n[0],
|
|
3011
|
-
N[1] = I,
|
|
3049
|
+
const g = n[0], M = t[0], I = r[0] - M, y = g - M;
|
|
3050
|
+
N[1] = I, m[1] = y;
|
|
3012
3051
|
}
|
|
3013
3052
|
for (let g = 1; g < u; g++) {
|
|
3014
|
-
const
|
|
3015
|
-
N[g + 1] = N[g] + _,
|
|
3053
|
+
const M = n[g], x = t[g], I = r[g], y = r[g - 1], F = Math.min(x, y), E = Math.max(M, y), _ = I - F, V = E - F;
|
|
3054
|
+
N[g + 1] = N[g] + _, m[g + 1] = m[g] + V;
|
|
3016
3055
|
}
|
|
3017
|
-
const
|
|
3056
|
+
const h = 4, w = 2, v = 1, d = h + w + v, A = Math.max(i, a, s);
|
|
3018
3057
|
if (u < A)
|
|
3019
3058
|
return c;
|
|
3020
3059
|
const b = A;
|
|
3021
3060
|
for (let g = b; g < u; g++) {
|
|
3022
|
-
const
|
|
3023
|
-
c[g] = 100 * ((
|
|
3061
|
+
const M = g - i + 1, x = g - a + 1, I = g - s + 1, y = N[g + 1] - N[M], F = m[g + 1] - m[M], E = F === 0 ? 0 : y / F, _ = N[g + 1] - N[x], V = m[g + 1] - m[x], L = V === 0 ? 0 : _ / V, j = N[g + 1] - N[I], U = m[g + 1] - m[I], R = U === 0 ? 0 : j / U;
|
|
3062
|
+
c[g] = 100 * ((h * E + w * L + v * R) / d);
|
|
3024
3063
|
}
|
|
3025
3064
|
return c;
|
|
3026
3065
|
}
|
|
@@ -3045,10 +3084,10 @@ function io(n, t, r, e = !0) {
|
|
|
3045
3084
|
const l = new Float64Array(o), f = new Float64Array(o);
|
|
3046
3085
|
if (l.fill(NaN), f.fill(NaN), o < r)
|
|
3047
3086
|
return [l, f];
|
|
3048
|
-
if (k(n, t))
|
|
3087
|
+
if (e && k(n, t))
|
|
3049
3088
|
return [l, f];
|
|
3050
3089
|
let i = e;
|
|
3051
|
-
if (i && !
|
|
3090
|
+
if (i && !S()) {
|
|
3052
3091
|
let u = !1;
|
|
3053
3092
|
for (let c = 0; c < o; c++)
|
|
3054
3093
|
if (n[c] !== n[c] || t[c] !== t[c]) {
|
|
@@ -3058,36 +3097,36 @@ function io(n, t, r, e = !0) {
|
|
|
3058
3097
|
u || (i = !0);
|
|
3059
3098
|
}
|
|
3060
3099
|
if (!i) {
|
|
3061
|
-
let u = -1, c = NaN, N = -1,
|
|
3062
|
-
for (let
|
|
3063
|
-
const w =
|
|
3100
|
+
let u = -1, c = NaN, N = -1, m = NaN;
|
|
3101
|
+
for (let h = r; h < o; h++) {
|
|
3102
|
+
const w = h - r;
|
|
3064
3103
|
if (u < w) {
|
|
3065
3104
|
u = -1, c = NaN;
|
|
3066
|
-
for (let A = w; A <=
|
|
3105
|
+
for (let A = w; A <= h; A++) {
|
|
3067
3106
|
const b = n[A];
|
|
3068
|
-
b === b && (u === -1 || b
|
|
3107
|
+
b === b && (u === -1 || b >= c) && (u = A, c = b);
|
|
3069
3108
|
}
|
|
3070
3109
|
} else {
|
|
3071
|
-
const A = n[
|
|
3072
|
-
A === A && (u === -1 || A
|
|
3110
|
+
const A = n[h];
|
|
3111
|
+
A === A && (u === -1 || A >= c) && (u = h, c = A);
|
|
3073
3112
|
}
|
|
3074
|
-
const v = u === -1 ? NaN :
|
|
3075
|
-
if (l[
|
|
3076
|
-
N = -1,
|
|
3077
|
-
for (let A = w; A <=
|
|
3113
|
+
const v = u === -1 ? NaN : h - u;
|
|
3114
|
+
if (l[h - 1] = v === v ? (r - v) / r * 100 : NaN, N < w) {
|
|
3115
|
+
N = -1, m = NaN;
|
|
3116
|
+
for (let A = w; A <= h; A++) {
|
|
3078
3117
|
const b = t[A];
|
|
3079
|
-
b === b && (N === -1 || b
|
|
3118
|
+
b === b && (N === -1 || b <= m) && (N = A, m = b);
|
|
3080
3119
|
}
|
|
3081
3120
|
} else {
|
|
3082
|
-
const A = t[
|
|
3083
|
-
A === A && (N === -1 || A
|
|
3121
|
+
const A = t[h];
|
|
3122
|
+
A === A && (N === -1 || A <= m) && (N = h, m = A);
|
|
3084
3123
|
}
|
|
3085
|
-
const d = N === -1 ? NaN :
|
|
3086
|
-
f[
|
|
3124
|
+
const d = N === -1 ? NaN : h - N;
|
|
3125
|
+
f[h - 1] = d === d ? (r - d) / r * 100 : NaN;
|
|
3087
3126
|
}
|
|
3088
3127
|
return [l, f];
|
|
3089
3128
|
}
|
|
3090
|
-
const a =
|
|
3129
|
+
const a = Mt(n, r), s = Ft(t, r);
|
|
3091
3130
|
for (let u = r; u < o; u++) {
|
|
3092
3131
|
const c = a[u];
|
|
3093
3132
|
l[u - 1] = c !== c ? NaN : (r - (u - c)) / r * 100;
|
|
@@ -3096,7 +3135,7 @@ function io(n, t, r, e = !0) {
|
|
|
3096
3135
|
}
|
|
3097
3136
|
return [l, f];
|
|
3098
3137
|
}
|
|
3099
|
-
const
|
|
3138
|
+
const D = {
|
|
3100
3139
|
r1: 10,
|
|
3101
3140
|
r2: 15,
|
|
3102
3141
|
r3: 20,
|
|
@@ -3111,15 +3150,15 @@ const O = {
|
|
|
3111
3150
|
w4: 4
|
|
3112
3151
|
};
|
|
3113
3152
|
function fo(n, t) {
|
|
3114
|
-
var r, e, o, l, f, i, a, s, u, c, N,
|
|
3115
|
-
let
|
|
3116
|
-
const E = [
|
|
3153
|
+
var r, e, o, l, f, i, a, s, u, c, N, m;
|
|
3154
|
+
let h = (r = t == null ? void 0 : t.r1) !== null && r !== void 0 ? r : D.r1, w = (e = t == null ? void 0 : t.r2) !== null && e !== void 0 ? e : D.r2, v = (o = t == null ? void 0 : t.r3) !== null && o !== void 0 ? o : D.r3, d = (l = t == null ? void 0 : t.r4) !== null && l !== void 0 ? l : D.r4, A = (f = t == null ? void 0 : t.n1) !== null && f !== void 0 ? f : D.n1, b = (i = t == null ? void 0 : t.n2) !== null && i !== void 0 ? i : D.n2, g = (a = t == null ? void 0 : t.n3) !== null && a !== void 0 ? a : D.n3, M = (s = t == null ? void 0 : t.n4) !== null && s !== void 0 ? s : D.n4, x = (u = t == null ? void 0 : t.w1) !== null && u !== void 0 ? u : D.w1, I = (c = t == null ? void 0 : t.w2) !== null && c !== void 0 ? c : D.w2, y = (N = t == null ? void 0 : t.w3) !== null && N !== void 0 ? N : D.w3, F = (m = t == null ? void 0 : t.w4) !== null && m !== void 0 ? m : D.w4;
|
|
3155
|
+
const E = [h, w, v, d], _ = [A, b, g, M];
|
|
3117
3156
|
for (const Bt of E.concat(_))
|
|
3118
3157
|
if (Bt <= 0)
|
|
3119
3158
|
throw new Error("Periods must be positive");
|
|
3120
3159
|
if (n.length === 0)
|
|
3121
3160
|
return new Float64Array(0);
|
|
3122
|
-
const L = $(n,
|
|
3161
|
+
const L = $(n, h), j = $(n, w), U = $(n, v), R = $(n, d), z = O(L, A), K = O(j, b), Y = O(U, g), Ot = O(R, M), Ct = G(z, x), Tt = G(K, I), Ut = G(Y, y), qt = G(Ot, F);
|
|
3123
3162
|
return Z(Z(Ct, Tt), Z(Ut, qt));
|
|
3124
3163
|
}
|
|
3125
3164
|
function ao(n, t, r, e) {
|
|
@@ -3132,30 +3171,30 @@ function ao(n, t, r, e) {
|
|
|
3132
3171
|
if (o < e)
|
|
3133
3172
|
return l;
|
|
3134
3173
|
const f = new Float64Array(o);
|
|
3135
|
-
for (let
|
|
3136
|
-
f[
|
|
3174
|
+
for (let h = 0; h < o; h++)
|
|
3175
|
+
f[h] = (n[h] + t[h] + r[h]) / 3;
|
|
3137
3176
|
let i = 0, a = 0;
|
|
3138
3177
|
const s = e;
|
|
3139
|
-
for (let
|
|
3140
|
-
const w = f[
|
|
3178
|
+
for (let h = 0; h < s && h < o; h++) {
|
|
3179
|
+
const w = f[h];
|
|
3141
3180
|
w === w && (i += w, a++);
|
|
3142
3181
|
}
|
|
3143
|
-
const u = Math.abs, c = 1 / s, N = 0.015,
|
|
3144
|
-
for (let
|
|
3145
|
-
if (a === s &&
|
|
3182
|
+
const u = Math.abs, c = 1 / s, N = 0.015, m = 2 * s - 2;
|
|
3183
|
+
for (let h = s - 1; h < o; h++) {
|
|
3184
|
+
if (a === s && h >= m) {
|
|
3146
3185
|
const w = i * c;
|
|
3147
3186
|
let v = 0;
|
|
3148
|
-
const d =
|
|
3149
|
-
for (let g = d; g <=
|
|
3187
|
+
const d = h - s + 1;
|
|
3188
|
+
for (let g = d; g <= h; g++)
|
|
3150
3189
|
v += u(f[g] - w);
|
|
3151
3190
|
v = v * c;
|
|
3152
|
-
const A = N * v, b = f[
|
|
3153
|
-
l[
|
|
3191
|
+
const A = N * v, b = f[h];
|
|
3192
|
+
l[h] = A === 0 ? 0 : (b - w) / A;
|
|
3154
3193
|
}
|
|
3155
|
-
if (
|
|
3156
|
-
const w =
|
|
3194
|
+
if (h + 1 < o) {
|
|
3195
|
+
const w = h - s + 1, v = f[w];
|
|
3157
3196
|
v === v && (i -= v, a--);
|
|
3158
|
-
const d = f[
|
|
3197
|
+
const d = f[h + 1];
|
|
3159
3198
|
d === d && (i += d, a++);
|
|
3160
3199
|
}
|
|
3161
3200
|
}
|
|
@@ -3171,38 +3210,38 @@ function et(n, t, r, e) {
|
|
|
3171
3210
|
if (o < e)
|
|
3172
3211
|
return l.fill(NaN), f.fill(NaN), i.fill(NaN), a.fill(NaN), s.fill(NaN), { diplus: l, diminus: f, dx: i, adx: a, adxr: s };
|
|
3173
3212
|
let u = 0, c = 0, N = 0;
|
|
3174
|
-
function
|
|
3175
|
-
const
|
|
3176
|
-
return { tr: Math.max(
|
|
3213
|
+
function m(g) {
|
|
3214
|
+
const M = n[g] - n[g - 1], x = t[g - 1] - t[g], I = M > x && M > 0 ? M : 0, y = x > M && x > 0 ? x : 0, F = n[g] - t[g], E = Math.abs(n[g] - r[g - 1]), _ = Math.abs(t[g] - r[g - 1]);
|
|
3215
|
+
return { tr: Math.max(F, Math.max(E, _)), p: I, m: y };
|
|
3177
3216
|
}
|
|
3178
3217
|
n[0] - t[0], u += 0;
|
|
3179
3218
|
for (let g = 1; g < e; g++) {
|
|
3180
|
-
const
|
|
3181
|
-
u +=
|
|
3219
|
+
const M = m(g);
|
|
3220
|
+
u += M.tr, c += M.p, N += M.m;
|
|
3182
3221
|
}
|
|
3183
3222
|
for (let g = 0; g < e - 1 && g < o; g++)
|
|
3184
3223
|
l[g] = NaN, f[g] = NaN, i[g] = NaN, s[g] = NaN;
|
|
3185
|
-
const
|
|
3186
|
-
l[e - 1] =
|
|
3224
|
+
const h = u !== 0 ? 100 * (c / u) : NaN, w = u !== 0 ? 100 * (N / u) : NaN;
|
|
3225
|
+
l[e - 1] = h, f[e - 1] = w, i[e - 1] = 100 * Math.abs(h - w) / (h + w);
|
|
3187
3226
|
const v = 2 * e - 2;
|
|
3188
3227
|
v > 0 && (a.fill(NaN, 0, Math.min(o, v + 1)), s.fill(NaN, 0, Math.min(o, v + 1)));
|
|
3189
3228
|
let d = 0, A = 0;
|
|
3190
3229
|
const b = i[e - 1];
|
|
3191
3230
|
b === b && (d += b, A++);
|
|
3192
3231
|
for (let g = e; g <= v && g < o; g++) {
|
|
3193
|
-
const { tr:
|
|
3194
|
-
u = u - u / e +
|
|
3195
|
-
const y = u !== 0 ? 100 * (c / u) : NaN,
|
|
3196
|
-
l[g] = y, f[g] =
|
|
3197
|
-
const E = 100 * Math.abs(y -
|
|
3232
|
+
const { tr: M, p: x, m: I } = m(g);
|
|
3233
|
+
u = u - u / e + M, c = c - c / e + x, N = N - N / e + I;
|
|
3234
|
+
const y = u !== 0 ? 100 * (c / u) : NaN, F = u !== 0 ? 100 * (N / u) : NaN;
|
|
3235
|
+
l[g] = y, f[g] = F;
|
|
3236
|
+
const E = 100 * Math.abs(y - F) / (y + F);
|
|
3198
3237
|
i[g] = E, E === E && (d += E, A++), g === v && (a[v] = A === e ? d / A : NaN);
|
|
3199
3238
|
}
|
|
3200
3239
|
for (let g = Math.max(e, v + 1); g < o; g++) {
|
|
3201
|
-
const { tr:
|
|
3202
|
-
u = u - u / e +
|
|
3203
|
-
const y = u !== 0 ? 100 * (c / u) : NaN,
|
|
3204
|
-
l[g] = y, f[g] =
|
|
3205
|
-
const E = 100 * Math.abs(y -
|
|
3240
|
+
const { tr: M, p: x, m: I } = m(g);
|
|
3241
|
+
u = u - u / e + M, c = c - c / e + x, N = N - N / e + I;
|
|
3242
|
+
const y = u !== 0 ? 100 * (c / u) : NaN, F = u !== 0 ? 100 * (N / u) : NaN;
|
|
3243
|
+
l[g] = y, f[g] = F;
|
|
3244
|
+
const E = 100 * Math.abs(y - F) / (y + F);
|
|
3206
3245
|
i[g] = E, a[g] = (a[g - 1] * (e - 1) + E) / e;
|
|
3207
3246
|
const _ = a[g - e + 1];
|
|
3208
3247
|
s[g] = (a[g] + _) / 2;
|
|
@@ -3228,7 +3267,7 @@ function ho(n, t) {
|
|
|
3228
3267
|
const r = n.length, e = new Float64Array(r);
|
|
3229
3268
|
if (r < t)
|
|
3230
3269
|
return e.fill(NaN);
|
|
3231
|
-
const o =
|
|
3270
|
+
const o = O(n, t, !0), l = Math.floor(t / 2) + 1;
|
|
3232
3271
|
for (let f = 0; f < l && f < r; f++)
|
|
3233
3272
|
e[f] = NaN;
|
|
3234
3273
|
for (let f = l; f < r; f++)
|
|
@@ -3246,60 +3285,60 @@ function mo(n, t, r, e, o = !0) {
|
|
|
3246
3285
|
const f = new Float64Array(l);
|
|
3247
3286
|
if (l === 0)
|
|
3248
3287
|
return f;
|
|
3249
|
-
function i(u, c, N,
|
|
3250
|
-
let g = u + c * (N - u),
|
|
3251
|
-
return
|
|
3288
|
+
function i(u, c, N, m, h, w, v, d, A, b) {
|
|
3289
|
+
let g = u + c * (N - u), M, x = c, I = u, y = m, F = N;
|
|
3290
|
+
return m ? (g > b && (g = b), g > A && (g = A), h > F && (F = h, x += r, x >= e && (x = e)), I = g, w < g && (x = r, I = F, y = !1, F = w), M = I) : (g < d && (g = d), g < v && (g = v), w < F && (F = w, x += r, x >= e && (x = e)), I = g, h > g && (x = r, I = F, y = !0, F = h), M = I), { sar: I, accel: x, lng: y, extreme: F, outVal: M };
|
|
3252
3291
|
}
|
|
3253
3292
|
function a(u, c) {
|
|
3254
|
-
const N = u.length,
|
|
3255
|
-
if (
|
|
3256
|
-
return
|
|
3257
|
-
let
|
|
3258
|
-
|
|
3293
|
+
const N = u.length, m = new Float64Array(N);
|
|
3294
|
+
if (m.fill(NaN), N < 2)
|
|
3295
|
+
return m;
|
|
3296
|
+
let h = u[0] + c[0] <= u[1] + c[1], w, v;
|
|
3297
|
+
h ? (v = u[0], w = c[0]) : (v = c[0], w = u[0]);
|
|
3259
3298
|
let d = r;
|
|
3260
3299
|
{
|
|
3261
|
-
const b = u[0], g = c[0],
|
|
3262
|
-
w =
|
|
3300
|
+
const b = u[0], g = c[0], M = i(w, d, v, h, u[1], c[1], b, b, g, g);
|
|
3301
|
+
w = M.sar, d = M.accel, h = M.lng, v = M.extreme, m[1] = M.outVal;
|
|
3263
3302
|
}
|
|
3264
3303
|
for (let A = 2; A < N; A++) {
|
|
3265
|
-
const b = u[A], g = c[A],
|
|
3266
|
-
w =
|
|
3304
|
+
const b = u[A], g = c[A], M = u[A - 1], x = u[A - 2], I = c[A - 1], y = c[A - 2], F = i(w, d, v, h, b, g, M, x, I, y);
|
|
3305
|
+
w = F.sar, d = F.accel, h = F.lng, v = F.extreme, m[A] = F.outVal;
|
|
3267
3306
|
}
|
|
3268
|
-
return
|
|
3307
|
+
return m;
|
|
3269
3308
|
}
|
|
3270
3309
|
function s(u, c) {
|
|
3271
3310
|
const N = new Float64Array(l).fill(NaN);
|
|
3272
3311
|
if (l < 2)
|
|
3273
3312
|
return N;
|
|
3274
|
-
const
|
|
3275
|
-
const
|
|
3276
|
-
return
|
|
3277
|
-
},
|
|
3278
|
-
let
|
|
3279
|
-
for (;
|
|
3280
|
-
|
|
3281
|
-
return
|
|
3282
|
-
}, w =
|
|
3313
|
+
const m = (y) => {
|
|
3314
|
+
const F = u[y], E = c[y];
|
|
3315
|
+
return F === F && E === E;
|
|
3316
|
+
}, h = (y) => {
|
|
3317
|
+
let F = y;
|
|
3318
|
+
for (; F < l && !m(F); )
|
|
3319
|
+
F++;
|
|
3320
|
+
return F;
|
|
3321
|
+
}, w = h(0);
|
|
3283
3322
|
if (w >= l)
|
|
3284
3323
|
return N;
|
|
3285
|
-
const v =
|
|
3324
|
+
const v = h(w + 1);
|
|
3286
3325
|
if (v >= l)
|
|
3287
3326
|
return N;
|
|
3288
3327
|
let d = u[w] + c[w] <= u[v] + c[v], A, b;
|
|
3289
3328
|
d ? (b = u[w], A = c[w]) : (b = c[w], A = u[w]);
|
|
3290
3329
|
let g = r;
|
|
3291
3330
|
{
|
|
3292
|
-
const y = v,
|
|
3331
|
+
const y = v, F = u[w], E = c[w], _ = i(A, g, b, d, u[y], c[y], F, F, E, E);
|
|
3293
3332
|
A = _.sar, g = _.accel, d = _.lng, b = _.extreme, N[y] = _.outVal;
|
|
3294
3333
|
}
|
|
3295
|
-
let
|
|
3334
|
+
let M = w, x = v, I = h(x + 1);
|
|
3296
3335
|
for (; I < l; ) {
|
|
3297
|
-
const y = u[I],
|
|
3298
|
-
A = j.sar, g = j.accel, d = j.lng, b = j.extreme, N[I] = j.outVal,
|
|
3336
|
+
const y = u[I], F = c[I], E = u[x], _ = u[M], V = c[x], L = c[M], j = i(A, g, b, d, y, F, E, _, V, L);
|
|
3337
|
+
A = j.sar, g = j.accel, d = j.lng, b = j.extreme, N[I] = j.outVal, M = x, x = I, I = h(x + 1);
|
|
3299
3338
|
}
|
|
3300
3339
|
return N;
|
|
3301
3340
|
}
|
|
3302
|
-
return o && !
|
|
3341
|
+
return o && !S() && (k(n, t) || (o = !1)), o ? s(n, t) : a(n, t);
|
|
3303
3342
|
}
|
|
3304
3343
|
function Pt(n, t, r) {
|
|
3305
3344
|
const e = n.length;
|
|
@@ -3322,7 +3361,7 @@ function ot(n, t, r, e) {
|
|
|
3322
3361
|
if (o < e)
|
|
3323
3362
|
return new Float64Array(o).fill(NaN);
|
|
3324
3363
|
const l = Pt(n, t, r);
|
|
3325
|
-
return !
|
|
3364
|
+
return !S() && !k(n, t, r) ? at(l, e, !1) : at(l, e, !0);
|
|
3326
3365
|
}
|
|
3327
3366
|
function wo(n, t, r, e) {
|
|
3328
3367
|
const o = ot(n, t, r, e);
|
|
@@ -3338,25 +3377,25 @@ function vo(n, t, r, e, o) {
|
|
|
3338
3377
|
if (l === 0)
|
|
3339
3378
|
return [f, i, a, s];
|
|
3340
3379
|
const u = ot(n, t, r, e);
|
|
3341
|
-
for (let
|
|
3342
|
-
f[
|
|
3343
|
-
let c = NaN, N = NaN,
|
|
3344
|
-
for (let
|
|
3345
|
-
const w = u[
|
|
3380
|
+
for (let h = 0; h < l; h++)
|
|
3381
|
+
f[h] = i[h] = a[h] = NaN;
|
|
3382
|
+
let c = NaN, N = NaN, m = 1;
|
|
3383
|
+
for (let h = 0; h < l; h++) {
|
|
3384
|
+
const w = u[h], v = n[h], d = t[h], A = r[h];
|
|
3346
3385
|
if (w !== w || v !== v || d !== d || A !== A)
|
|
3347
3386
|
continue;
|
|
3348
|
-
const b = (v + d) / 2, g = b + o * w,
|
|
3349
|
-
let x = g, I =
|
|
3350
|
-
if (
|
|
3351
|
-
const
|
|
3352
|
-
g < c ||
|
|
3387
|
+
const b = (v + d) / 2, g = b + o * w, M = b - o * w;
|
|
3388
|
+
let x = g, I = M;
|
|
3389
|
+
if (h > 0 && c === c) {
|
|
3390
|
+
const F = r[h - 1];
|
|
3391
|
+
g < c || F === F && F > c || (x = c);
|
|
3353
3392
|
}
|
|
3354
|
-
if (
|
|
3355
|
-
const
|
|
3356
|
-
|
|
3393
|
+
if (h > 0 && N === N) {
|
|
3394
|
+
const F = r[h - 1];
|
|
3395
|
+
M > N || F === F && F < N || (I = N);
|
|
3357
3396
|
}
|
|
3358
|
-
let y =
|
|
3359
|
-
A > x ? y = 1 : A < I && (y = 0), f[
|
|
3397
|
+
let y = m;
|
|
3398
|
+
A > x ? y = 1 : A < I && (y = 0), f[h] = y ? I : x, i[h] = x, a[h] = I, s[h] = y ? 1 : 0, c = x, N = I, m = y;
|
|
3360
3399
|
}
|
|
3361
3400
|
return [f, i, a, s];
|
|
3362
3401
|
}
|
|
@@ -3369,14 +3408,14 @@ function bo(n, t, r, e) {
|
|
|
3369
3408
|
const c = n.length;
|
|
3370
3409
|
if (t.length !== c || r.length !== c)
|
|
3371
3410
|
throw new Error("high/low/close must have the same length");
|
|
3372
|
-
const N = new Float64Array(c),
|
|
3373
|
-
N.fill(NaN),
|
|
3374
|
-
function v(y,
|
|
3411
|
+
const N = new Float64Array(c), m = new Float64Array(c), h = new Float64Array(c), w = new Float64Array(c);
|
|
3412
|
+
N.fill(NaN), m.fill(NaN), h.fill(NaN), w.fill(NaN);
|
|
3413
|
+
function v(y, F, E, _, V) {
|
|
3375
3414
|
if (!(c < E))
|
|
3376
3415
|
for (let L = E - 1; L < c; L++) {
|
|
3377
3416
|
let j = -1 / 0, U = 1 / 0, R = !1;
|
|
3378
3417
|
for (let z = L - E + 1; z <= L; z++) {
|
|
3379
|
-
const K = y[z], Y =
|
|
3418
|
+
const K = y[z], Y = F[z];
|
|
3380
3419
|
if (K !== K || Y !== Y) {
|
|
3381
3420
|
R = !0;
|
|
3382
3421
|
break;
|
|
@@ -3384,50 +3423,50 @@ function bo(n, t, r, e) {
|
|
|
3384
3423
|
K > j && (j = K), Y < U && (U = Y);
|
|
3385
3424
|
}
|
|
3386
3425
|
if (R) {
|
|
3387
|
-
_[L] =
|
|
3426
|
+
_[L] = V[L] = NaN;
|
|
3388
3427
|
continue;
|
|
3389
3428
|
}
|
|
3390
|
-
_[L] = j,
|
|
3429
|
+
_[L] = j, V[L] = U;
|
|
3391
3430
|
}
|
|
3392
3431
|
}
|
|
3393
3432
|
const d = new Float64Array(c), A = new Float64Array(c);
|
|
3394
3433
|
d.fill(NaN), A.fill(NaN), v(n, t, i, d, A);
|
|
3395
3434
|
for (let y = 0; y < c; y++) {
|
|
3396
|
-
const
|
|
3397
|
-
|
|
3435
|
+
const F = d[y], E = A[y];
|
|
3436
|
+
F !== F || E !== E ? N[y] = NaN : N[y] = (F + E) / 2;
|
|
3398
3437
|
}
|
|
3399
3438
|
const b = new Float64Array(c), g = new Float64Array(c);
|
|
3400
3439
|
b.fill(NaN), g.fill(NaN), v(n, t, a, b, g);
|
|
3401
3440
|
for (let y = 0; y < c; y++) {
|
|
3402
|
-
const
|
|
3403
|
-
|
|
3441
|
+
const F = b[y], E = g[y];
|
|
3442
|
+
F !== F || E !== E ? m[y] = NaN : m[y] = (F + E) / 2;
|
|
3404
3443
|
}
|
|
3405
3444
|
for (let y = 0; y < c; y++) {
|
|
3406
|
-
const
|
|
3407
|
-
if (
|
|
3445
|
+
const F = N[y], E = m[y];
|
|
3446
|
+
if (F !== F || E !== E)
|
|
3408
3447
|
continue;
|
|
3409
|
-
const _ = (
|
|
3410
|
-
|
|
3448
|
+
const _ = (F + E) / 2, V = y + u;
|
|
3449
|
+
V < c && (h[V] = _);
|
|
3411
3450
|
}
|
|
3412
|
-
const
|
|
3413
|
-
|
|
3451
|
+
const M = new Float64Array(c), x = new Float64Array(c);
|
|
3452
|
+
M.fill(NaN), x.fill(NaN), v(n, t, s, M, x);
|
|
3414
3453
|
for (let y = 0; y < c; y++) {
|
|
3415
|
-
const
|
|
3416
|
-
if (
|
|
3454
|
+
const F = M[y], E = x[y];
|
|
3455
|
+
if (F !== F || E !== E)
|
|
3417
3456
|
continue;
|
|
3418
|
-
const _ = (
|
|
3419
|
-
|
|
3457
|
+
const _ = (F + E) / 2, V = y + u;
|
|
3458
|
+
V < c && (w[V] = _);
|
|
3420
3459
|
}
|
|
3421
3460
|
const I = yt(r, -u);
|
|
3422
|
-
return [N,
|
|
3461
|
+
return [N, m, h, w, I];
|
|
3423
3462
|
}
|
|
3424
3463
|
function Dt(n, t, r) {
|
|
3425
3464
|
if (t <= 0)
|
|
3426
3465
|
throw new Error("Period must be positive");
|
|
3427
|
-
const e = n.length, o =
|
|
3466
|
+
const e = n.length, o = O(n, t, !0), l = new Float64Array(e), f = new Float64Array(e);
|
|
3428
3467
|
if (f.fill(NaN, 0, Math.min(e, t)), l.fill(NaN, 0, Math.min(e, t)), e < t)
|
|
3429
3468
|
return [o.fill(NaN), l.fill(NaN), f.fill(NaN)];
|
|
3430
|
-
const i = !(
|
|
3469
|
+
const i = !(S() === !1 && !k(n)), a = X(n, t, { skipna: i, ddof: 0 });
|
|
3431
3470
|
for (let s = t - 1; s < e; s++) {
|
|
3432
3471
|
const u = o[s], c = a[s];
|
|
3433
3472
|
if (u !== u || c !== c) {
|
|
@@ -3438,7 +3477,7 @@ function Dt(n, t, r) {
|
|
|
3438
3477
|
}
|
|
3439
3478
|
return [o, l, f];
|
|
3440
3479
|
}
|
|
3441
|
-
function
|
|
3480
|
+
function Fo(n, t, r) {
|
|
3442
3481
|
if (t <= 0)
|
|
3443
3482
|
throw new Error("Period must be positive");
|
|
3444
3483
|
const e = n.length, o = new Float64Array(e);
|
|
@@ -3451,7 +3490,7 @@ function Mo(n, t, r) {
|
|
|
3451
3490
|
}
|
|
3452
3491
|
return o;
|
|
3453
3492
|
}
|
|
3454
|
-
function
|
|
3493
|
+
function Mo(n, t, r) {
|
|
3455
3494
|
if (r <= 0)
|
|
3456
3495
|
throw new Error("Period must be positive");
|
|
3457
3496
|
const e = n.length;
|
|
@@ -3460,17 +3499,17 @@ function Fo(n, t, r) {
|
|
|
3460
3499
|
const o = new Float64Array(e), l = new Float64Array(e), f = new Float64Array(e);
|
|
3461
3500
|
if (o.fill(NaN, 0, Math.min(e, r - 1)), l.fill(NaN, 0, Math.min(e, r - 1)), f.fill(NaN, 0, Math.min(e, r - 1)), e < r)
|
|
3462
3501
|
return [o, l, f];
|
|
3463
|
-
const i = !
|
|
3502
|
+
const i = !S() && !k(n, t);
|
|
3464
3503
|
for (let a = r - 1; a < e; a++) {
|
|
3465
3504
|
let s = -1 / 0, u = 1 / 0, c = !1;
|
|
3466
3505
|
for (let N = a - r + 1; N <= a; N++) {
|
|
3467
|
-
const
|
|
3468
|
-
if (
|
|
3506
|
+
const m = n[N], h = t[N];
|
|
3507
|
+
if (m !== m || h !== h) {
|
|
3469
3508
|
if (c = !0, i)
|
|
3470
3509
|
break;
|
|
3471
3510
|
break;
|
|
3472
3511
|
}
|
|
3473
|
-
|
|
3512
|
+
m > s && (s = m), h < u && (u = h);
|
|
3474
3513
|
}
|
|
3475
3514
|
if (c) {
|
|
3476
3515
|
o[a] = l[a] = f[a] = NaN;
|
|
@@ -3490,17 +3529,17 @@ function xo(n, t, r, e, o) {
|
|
|
3490
3529
|
return [new Float64Array(0), new Float64Array(0), new Float64Array(0)];
|
|
3491
3530
|
const f = new Float64Array(l);
|
|
3492
3531
|
for (let c = 0; c < l; c++) {
|
|
3493
|
-
const N = n[c],
|
|
3494
|
-
N !== N ||
|
|
3532
|
+
const N = n[c], m = t[c], h = r[c];
|
|
3533
|
+
N !== N || m !== m || h !== h ? f[c] = NaN : f[c] = (N + m + h) / 3;
|
|
3495
3534
|
}
|
|
3496
3535
|
const i = xt(f, e), a = ot(n, t, r, e), s = new Float64Array(l), u = new Float64Array(l);
|
|
3497
3536
|
for (let c = 0; c < l; c++) {
|
|
3498
|
-
const N = i[c],
|
|
3499
|
-
if (N !== N ||
|
|
3537
|
+
const N = i[c], m = a[c];
|
|
3538
|
+
if (N !== N || m !== m) {
|
|
3500
3539
|
s[c] = u[c] = NaN;
|
|
3501
3540
|
continue;
|
|
3502
3541
|
}
|
|
3503
|
-
s[c] = N + o *
|
|
3542
|
+
s[c] = N + o * m, u[c] = N - o * m;
|
|
3504
3543
|
}
|
|
3505
3544
|
return [i, s, u];
|
|
3506
3545
|
}
|
|
@@ -3511,35 +3550,35 @@ function Eo(n, t, r, e) {
|
|
|
3511
3550
|
const l = new Float64Array(o);
|
|
3512
3551
|
let f = 0;
|
|
3513
3552
|
for (let i = 0; i < o; i++) {
|
|
3514
|
-
const a = n[i], s = t[i], u = r[i], c = e[i], N = a - s,
|
|
3515
|
-
|
|
3553
|
+
const a = n[i], s = t[i], u = r[i], c = e[i], N = a - s, m = N === 0 ? 0 : (u - s - (a - u)) / N, h = f + m * c;
|
|
3554
|
+
h === h && (f = h), l[i] = h;
|
|
3516
3555
|
}
|
|
3517
3556
|
return l;
|
|
3518
3557
|
}
|
|
3519
3558
|
function Io(n, t, r, e, o, l, f, i) {
|
|
3520
3559
|
if (o < f)
|
|
3521
3560
|
return i.fill(NaN);
|
|
3522
|
-
const a = 2 / (l + 1), s = 2 / (f + 1), u = n[0], c = t[0], N = r[0],
|
|
3523
|
-
let
|
|
3561
|
+
const a = 2 / (l + 1), s = 2 / (f + 1), u = n[0], c = t[0], N = r[0], m = e[0];
|
|
3562
|
+
let h = 0;
|
|
3524
3563
|
const w = u - c;
|
|
3525
|
-
w !== 0 && (
|
|
3526
|
-
let d =
|
|
3564
|
+
w !== 0 && (h = (N - c - (u - N)) / w);
|
|
3565
|
+
let d = h * m, A = d, b = d;
|
|
3527
3566
|
i[0] = NaN;
|
|
3528
3567
|
for (let g = 1; g < f; g++) {
|
|
3529
|
-
const
|
|
3530
|
-
let
|
|
3531
|
-
const E =
|
|
3532
|
-
E !== 0 && (
|
|
3533
|
-
const _ =
|
|
3568
|
+
const M = n[g], x = t[g], I = r[g], y = e[g];
|
|
3569
|
+
let F = 0;
|
|
3570
|
+
const E = M - x;
|
|
3571
|
+
E !== 0 && (F = (I - x - (M - I)) / E);
|
|
3572
|
+
const _ = F * y;
|
|
3534
3573
|
d += _, A = A + a * (d - A), b = b + s * (d - b), i[g] = NaN;
|
|
3535
3574
|
}
|
|
3536
3575
|
i[f - 1] = A - b;
|
|
3537
3576
|
for (let g = f; g < o; g++) {
|
|
3538
|
-
const
|
|
3539
|
-
let
|
|
3540
|
-
const E =
|
|
3541
|
-
E !== 0 && (
|
|
3542
|
-
const _ =
|
|
3577
|
+
const M = n[g], x = t[g], I = r[g], y = e[g];
|
|
3578
|
+
let F = 0;
|
|
3579
|
+
const E = M - x;
|
|
3580
|
+
E !== 0 && (F = (I - x - (M - I)) / E);
|
|
3581
|
+
const _ = F * y;
|
|
3543
3582
|
d += _, A = A + a * (d - A), b = b + s * (d - b), i[g] = A - b;
|
|
3544
3583
|
}
|
|
3545
3584
|
return i;
|
|
@@ -3547,16 +3586,16 @@ function Io(n, t, r, e, o, l, f, i) {
|
|
|
3547
3586
|
function ko(n, t, r, e, o, l, f, i) {
|
|
3548
3587
|
i.fill(NaN);
|
|
3549
3588
|
const a = 2 / (l + 1), s = 2 / (f + 1);
|
|
3550
|
-
let u = 0, c = NaN, N = NaN,
|
|
3551
|
-
for (let
|
|
3552
|
-
const w = n[
|
|
3589
|
+
let u = 0, c = NaN, N = NaN, m = 0;
|
|
3590
|
+
for (let h = 0; h < o; h++) {
|
|
3591
|
+
const w = n[h], v = t[h], d = r[h], A = e[h];
|
|
3553
3592
|
if (!(w === w && v === v && d === d && A === A))
|
|
3554
3593
|
continue;
|
|
3555
3594
|
const b = w - v;
|
|
3556
3595
|
let g = 0;
|
|
3557
3596
|
b !== 0 && (g = (d - v - (w - d)) / b);
|
|
3558
|
-
const
|
|
3559
|
-
u +=
|
|
3597
|
+
const M = g * A;
|
|
3598
|
+
u += M, m === 0 ? (c = u, N = u) : (c = c + a * (u - c), N = N + s * (u - N)), m++, m >= f && (i[h] = c - N);
|
|
3560
3599
|
}
|
|
3561
3600
|
return i;
|
|
3562
3601
|
}
|
|
@@ -3568,11 +3607,11 @@ function _o(n, t, r, e, o, l, f = !0) {
|
|
|
3568
3607
|
const i = r.length;
|
|
3569
3608
|
if (n.length !== i || t.length !== i || e.length !== i)
|
|
3570
3609
|
throw new Error("high, low, close and volume must have equal length");
|
|
3571
|
-
f && !
|
|
3610
|
+
f && !S() && !k(n, t, r, e) && (f = !1);
|
|
3572
3611
|
const a = new Float64Array(i);
|
|
3573
3612
|
return i === 0 ? a : f ? ko(n, t, r, e, i, o, l, a) : Io(n, t, r, e, i, o, l, a);
|
|
3574
3613
|
}
|
|
3575
|
-
function
|
|
3614
|
+
function So(n, t, r, e, o) {
|
|
3576
3615
|
if (o <= 0)
|
|
3577
3616
|
throw new Error("Period must be positive");
|
|
3578
3617
|
const l = r.length;
|
|
@@ -3582,16 +3621,16 @@ function Vo(n, t, r, e, o) {
|
|
|
3582
3621
|
if (f.fill(NaN), l <= o)
|
|
3583
3622
|
return f;
|
|
3584
3623
|
const i = new Float64Array(o), a = new Float64Array(o), s = new Uint8Array(o);
|
|
3585
|
-
let u = 0, c = 0, N = 0,
|
|
3624
|
+
let u = 0, c = 0, N = 0, h = (n[0] + t[0] + r[0]) / 3;
|
|
3586
3625
|
for (let v = 1; v < o; v++) {
|
|
3587
3626
|
const d = (n[v] + t[v] + r[v]) / 3, A = d * e[v], b = Number.isFinite(A);
|
|
3588
|
-
let g = 0,
|
|
3589
|
-
b ? d >
|
|
3627
|
+
let g = 0, M = 0;
|
|
3628
|
+
b ? d > h ? g = A : d < h && (M = A) : (s[v] = 1, N++), i[v] = g, a[v] = M, u += g, c += M, h = d;
|
|
3590
3629
|
}
|
|
3591
3630
|
{
|
|
3592
3631
|
const v = o, d = (n[v] + t[v] + r[v]) / 3, A = d * e[v], b = Number.isFinite(A);
|
|
3593
|
-
let g = 0,
|
|
3594
|
-
if (b ? d >
|
|
3632
|
+
let g = 0, M = 0;
|
|
3633
|
+
if (b ? d > h ? g = A : d < h && (M = A) : (s[0] = 1, N++), i[0] = g, a[0] = M, u += g, c += M, Number.isFinite(d) && N === 0)
|
|
3595
3634
|
if (u + c === 0)
|
|
3596
3635
|
f[v] = 50;
|
|
3597
3636
|
else if (c === 0)
|
|
@@ -3600,13 +3639,13 @@ function Vo(n, t, r, e, o) {
|
|
|
3600
3639
|
const I = u / c;
|
|
3601
3640
|
f[v] = 100 - 100 / (1 + I);
|
|
3602
3641
|
}
|
|
3603
|
-
|
|
3642
|
+
h = d;
|
|
3604
3643
|
}
|
|
3605
3644
|
let w = 1;
|
|
3606
3645
|
for (let v = o + 1; v < l; v++) {
|
|
3607
3646
|
const d = (n[v] + t[v] + r[v]) / 3, A = d * e[v], b = Number.isFinite(A);
|
|
3608
|
-
let g = 0,
|
|
3609
|
-
if (b ? d >
|
|
3647
|
+
let g = 0, M = 0, x = 0;
|
|
3648
|
+
if (b ? d > h ? g = A : d < h && (M = A) : x = 1, u += g - i[w], c += M - a[w], N += x - s[w], i[w] = g, a[w] = M, s[w] = x, w++, w === o && (w = 0), Number.isFinite(d) && N === 0)
|
|
3610
3649
|
if (u + c === 0)
|
|
3611
3650
|
f[v] = 50;
|
|
3612
3651
|
else if (c === 0)
|
|
@@ -3615,11 +3654,11 @@ function Vo(n, t, r, e, o) {
|
|
|
3615
3654
|
const y = u / c;
|
|
3616
3655
|
f[v] = 100 - 100 / (1 + y);
|
|
3617
3656
|
}
|
|
3618
|
-
|
|
3657
|
+
h = d;
|
|
3619
3658
|
}
|
|
3620
3659
|
return f;
|
|
3621
3660
|
}
|
|
3622
|
-
function
|
|
3661
|
+
function Vo(n, t) {
|
|
3623
3662
|
const r = n.length;
|
|
3624
3663
|
if (t.length !== r)
|
|
3625
3664
|
throw new Error("price and volume must have same length");
|
|
@@ -3648,8 +3687,8 @@ function Lo(n, t, r = 1e3) {
|
|
|
3648
3687
|
o.fill(NaN), l.fill(NaN);
|
|
3649
3688
|
let f = -1;
|
|
3650
3689
|
for (let c = 0; c < e; c++) {
|
|
3651
|
-
const N = n[c],
|
|
3652
|
-
if (N === N &&
|
|
3690
|
+
const N = n[c], m = t[c];
|
|
3691
|
+
if (N === N && m === m && N !== 0) {
|
|
3653
3692
|
f = c;
|
|
3654
3693
|
break;
|
|
3655
3694
|
}
|
|
@@ -3660,11 +3699,11 @@ function Lo(n, t, r = 1e3) {
|
|
|
3660
3699
|
o[f] = i, l[f] = a;
|
|
3661
3700
|
let s = n[f], u = t[f];
|
|
3662
3701
|
for (let c = f + 1; c < e; c++) {
|
|
3663
|
-
const N = n[c],
|
|
3664
|
-
if (!(N === N &&
|
|
3702
|
+
const N = n[c], m = t[c];
|
|
3703
|
+
if (!(N === N && m === m && N !== 0))
|
|
3665
3704
|
continue;
|
|
3666
|
-
const
|
|
3667
|
-
|
|
3705
|
+
const h = (N - s) / s;
|
|
3706
|
+
m > u && (i = i + h * i), m < u && (a = a + h * a), o[c] = i, l[c] = a, s = N, u = m;
|
|
3668
3707
|
}
|
|
3669
3708
|
return [o, l];
|
|
3670
3709
|
}
|
|
@@ -3703,7 +3742,7 @@ function Po(n, t, r, e = !0) {
|
|
|
3703
3742
|
if (n.length !== o || t.length !== o)
|
|
3704
3743
|
throw new Error("high, low and close must have equal length");
|
|
3705
3744
|
const l = new Float64Array(o);
|
|
3706
|
-
return o === 0 ? l : e && !
|
|
3745
|
+
return o === 0 ? l : e && !S() && !k(n, t, r) || !e ? vt(n, t, r, o, l) : (l.fill(NaN), jo(n, t, r, o, l));
|
|
3707
3746
|
}
|
|
3708
3747
|
const Uo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3709
3748
|
__proto__: null,
|
|
@@ -3716,7 +3755,7 @@ const Uo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
3716
3755
|
aroon: io,
|
|
3717
3756
|
atr: ot,
|
|
3718
3757
|
bb: Dt,
|
|
3719
|
-
bbw:
|
|
3758
|
+
bbw: Fo,
|
|
3720
3759
|
cci: ao,
|
|
3721
3760
|
change: pe,
|
|
3722
3761
|
cmo: $e,
|
|
@@ -3725,7 +3764,7 @@ const Uo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
3725
3764
|
crossunder: hn,
|
|
3726
3765
|
dema: Yn,
|
|
3727
3766
|
di: so,
|
|
3728
|
-
donchian:
|
|
3767
|
+
donchian: Mo,
|
|
3729
3768
|
dpo: ho,
|
|
3730
3769
|
dx: co,
|
|
3731
3770
|
ema: xt,
|
|
@@ -3736,10 +3775,10 @@ const Uo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
3736
3775
|
keltner: xo,
|
|
3737
3776
|
kst: fo,
|
|
3738
3777
|
macd: Je,
|
|
3739
|
-
mfi:
|
|
3778
|
+
mfi: So,
|
|
3740
3779
|
mom: Qe,
|
|
3741
3780
|
natr: wo,
|
|
3742
|
-
obv:
|
|
3781
|
+
obv: Vo,
|
|
3743
3782
|
pnvi: Lo,
|
|
3744
3783
|
ppo: Ze,
|
|
3745
3784
|
psar: mo,
|
|
@@ -3747,7 +3786,7 @@ const Uo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
3747
3786
|
rma: at,
|
|
3748
3787
|
roc: $,
|
|
3749
3788
|
rsi: jt,
|
|
3750
|
-
sma:
|
|
3789
|
+
sma: O,
|
|
3751
3790
|
stoch: eo,
|
|
3752
3791
|
stochrsi: oo,
|
|
3753
3792
|
supertrend: vo,
|