@hpcc-js/dataflow 9.6.9 → 9.6.11

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.
@@ -1,44 +1,44 @@
1
- import { median } from "./median.ts";
2
- import { AccessorT, Observer, Accessor, scalar } from "./observer.ts";
3
-
4
- export type QuartileAccessor<T> = AccessorT<T, number>;
5
-
6
- export type QuartileT = [number, number, number, number, number] | undefined;
7
-
8
- function _quartile(): Observer<number, QuartileT> {
9
- let values: number[];
10
-
11
- return {
12
- observe: (value: number, idx: number) => {
13
- if (idx === 0) {
14
- values = [];
15
- }
16
- values.push(value);
17
- },
18
- peek: () => {
19
- const sorted = values.sort((l, r) => l - r);
20
- const mid = sorted.length / 2;
21
- let medianVal: number;
22
- let lower: number[];
23
- let upper: number[];
24
- if (sorted.length < 2) {
25
- return undefined;
26
- } else if (sorted.length % 2 === 0) {
27
- medianVal = (sorted[mid - 1] + sorted[mid]) / 2;
28
- lower = sorted.slice(0, mid);
29
- upper = sorted.slice(mid);
30
- } else {
31
- medianVal = sorted[Math.floor(mid)];
32
- lower = sorted.slice(0, Math.floor(mid));
33
- upper = sorted.slice(Math.ceil(mid));
34
- }
35
- return [sorted[0], scalar(median())(lower)!, medianVal, scalar(median())(upper)!, sorted[sorted.length - 1]];
36
- }
37
- };
38
- }
39
-
40
- export function quartile(): Observer<number, QuartileT>;
41
- export function quartile<T = any>(callbackFn: QuartileAccessor<T>): Observer<T, QuartileT>;
42
- export function quartile<T = any>(callbackFn?: QuartileAccessor<T>): Observer<number, QuartileT> | Observer<T, QuartileT> {
43
- return callbackFn ? Accessor(_quartile, callbackFn) : _quartile();
1
+ import { median } from "./median.ts";
2
+ import { AccessorT, Observer, Accessor, scalar } from "./observer.ts";
3
+
4
+ export type QuartileAccessor<T> = AccessorT<T, number>;
5
+
6
+ export type QuartileT = [number, number, number, number, number] | undefined;
7
+
8
+ function _quartile(): Observer<number, QuartileT> {
9
+ let values: number[];
10
+
11
+ return {
12
+ observe: (value: number, idx: number) => {
13
+ if (idx === 0) {
14
+ values = [];
15
+ }
16
+ values.push(value);
17
+ },
18
+ peek: () => {
19
+ const sorted = values.sort((l, r) => l - r);
20
+ const mid = sorted.length / 2;
21
+ let medianVal: number;
22
+ let lower: number[];
23
+ let upper: number[];
24
+ if (sorted.length < 2) {
25
+ return undefined;
26
+ } else if (sorted.length % 2 === 0) {
27
+ medianVal = (sorted[mid - 1] + sorted[mid]) / 2;
28
+ lower = sorted.slice(0, mid);
29
+ upper = sorted.slice(mid);
30
+ } else {
31
+ medianVal = sorted[Math.floor(mid)];
32
+ lower = sorted.slice(0, Math.floor(mid));
33
+ upper = sorted.slice(Math.ceil(mid));
34
+ }
35
+ return [sorted[0], scalar(median())(lower)!, medianVal, scalar(median())(upper)!, sorted[sorted.length - 1]];
36
+ }
37
+ };
38
+ }
39
+
40
+ export function quartile(): Observer<number, QuartileT>;
41
+ export function quartile<T = any>(callbackFn: QuartileAccessor<T>): Observer<T, QuartileT>;
42
+ export function quartile<T = any>(callbackFn?: QuartileAccessor<T>): Observer<number, QuartileT> | Observer<T, QuartileT> {
43
+ return callbackFn ? Accessor(_quartile, callbackFn) : _quartile();
44
44
  }
@@ -1,22 +1,22 @@
1
- import { Observer } from "./observer.ts";
2
-
3
- export type ReduceCallback<T, U> = (previousValue: U, currentValue: T, currentIndex: number) => U;
4
-
5
- function _reduce<T, U>(callback: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {
6
- let reduced: U;
7
-
8
- return {
9
- observe: (value: T, idx: number) => {
10
- if (idx === 0) {
11
- reduced = initialValue === undefined ? (value as unknown as U) : callback(initialValue, value, idx);
12
- } else {
13
- reduced = callback(reduced, value, idx);
14
- }
15
- },
16
- peek: () => reduced
17
- };
18
- }
19
-
20
- export function reduce<T = any, U = any>(callbackFn: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {
21
- return _reduce(callbackFn, initialValue);
22
- }
1
+ import { Observer } from "./observer.ts";
2
+
3
+ export type ReduceCallback<T, U> = (previousValue: U, currentValue: T, currentIndex: number) => U;
4
+
5
+ function _reduce<T, U>(callback: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {
6
+ let reduced: U;
7
+
8
+ return {
9
+ observe: (value: T, idx: number) => {
10
+ if (idx === 0) {
11
+ reduced = initialValue === undefined ? (value as unknown as U) : callback(initialValue, value, idx);
12
+ } else {
13
+ reduced = callback(reduced, value, idx);
14
+ }
15
+ },
16
+ peek: () => reduced
17
+ };
18
+ }
19
+
20
+ export function reduce<T = any, U = any>(callbackFn: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {
21
+ return _reduce(callbackFn, initialValue);
22
+ }
@@ -1,29 +1,29 @@
1
- import { AccessorT, Observer, Accessor } from "./observer.ts";
2
-
3
- function _variance(): Observer<number, number | undefined> {
4
- let count: number;
5
- let mean: number;
6
- let sum: number;
7
-
8
- return {
9
- observe: (value: number, idx: number) => {
10
- if (idx === 0) {
11
- count = 0;
12
- mean = 0;
13
- sum = 0;
14
- }
15
- const delta = value - mean;
16
- mean += delta / ++count;
17
- sum += delta * (value - mean);
18
- },
19
- peek: () => count > 1 ? sum / (count - 1) : undefined
20
- };
21
- }
22
-
23
- export type VarianceAccessor<T> = AccessorT<T, number>;
24
-
25
- export function variance(): Observer<number, number | undefined>;
26
- export function variance<T = any>(callbackFn: VarianceAccessor<T>): Observer<T, number | undefined>;
27
- export function variance<T = any>(callbackFn?: VarianceAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {
28
- return callbackFn ? Accessor(_variance, callbackFn) : _variance();
29
- }
1
+ import { AccessorT, Observer, Accessor } from "./observer.ts";
2
+
3
+ function _variance(): Observer<number, number | undefined> {
4
+ let count: number;
5
+ let mean: number;
6
+ let sum: number;
7
+
8
+ return {
9
+ observe: (value: number, idx: number) => {
10
+ if (idx === 0) {
11
+ count = 0;
12
+ mean = 0;
13
+ sum = 0;
14
+ }
15
+ const delta = value - mean;
16
+ mean += delta / ++count;
17
+ sum += delta * (value - mean);
18
+ },
19
+ peek: () => count > 1 ? sum / (count - 1) : undefined
20
+ };
21
+ }
22
+
23
+ export type VarianceAccessor<T> = AccessorT<T, number>;
24
+
25
+ export function variance(): Observer<number, number | undefined>;
26
+ export function variance<T = any>(callbackFn: VarianceAccessor<T>): Observer<T, number | undefined>;
27
+ export function variance<T = any>(callbackFn?: VarianceAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {
28
+ return callbackFn ? Accessor(_variance, callbackFn) : _variance();
29
+ }
@@ -1,6 +1,6 @@
1
- export function* generate<U>(generatorFn: () => U, maxLen?: number): IterableIterator<U> {
2
- let i = -1;
3
- while (maxLen === undefined || ++i < maxLen) {
4
- yield generatorFn();
5
- }
6
- }
1
+ export function* generate<U>(generatorFn: () => U, maxLen?: number): IterableIterator<U> {
2
+ let i = -1;
3
+ while (maxLen === undefined || ++i < maxLen) {
4
+ yield generatorFn();
5
+ }
6
+ }