Skip to content

Commit f0bb1bf

Browse files
committed
Improve readability.
1 parent 7231ef4 commit f0bb1bf

File tree

10 files changed

+181
-102
lines changed

10 files changed

+181
-102
lines changed

src/cross.js

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,21 @@
11
import {pair} from "./pairs";
22

3-
export default function(a, b, f) {
4-
var na = a.length, nb = b.length, c = new Array(na * nb), ia, ib, ic, va;
5-
if (f == null) f = pair;
6-
for (ia = ic = 0; ia < na; ++ia) for (va = a[ia], ib = 0; ib < nb; ++ib, ++ic) c[ic] = f(va, b[ib]);
7-
return c;
3+
export default function(values0, values1, reduce) {
4+
var n0 = values0.length,
5+
n1 = values1.length,
6+
values = new Array(n0 * n1),
7+
i0,
8+
i1,
9+
i,
10+
value0;
11+
12+
if (reduce == null) reduce = pair;
13+
14+
for (i0 = i = 0; i0 < n0; ++i0) {
15+
for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
16+
values[i] = reduce(value0, values1[i1]);
17+
}
18+
}
19+
20+
return values;
821
}

src/extent.js

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,37 @@
1-
export default function(array, f) {
2-
var i = -1,
3-
n = array.length,
4-
a,
5-
b,
6-
c;
1+
export default function(values, valueof) {
2+
var n = values.length,
3+
i = -1,
4+
value,
5+
min,
6+
max;
77

8-
if (f == null) {
9-
while (++i < n) if ((b = array[i]) != null && b >= b) { a = c = b; break; }
10-
while (++i < n) if ((b = array[i]) != null) {
11-
if (a > b) a = b;
12-
if (c < b) c = b;
8+
if (valueof == null) {
9+
while (++i < n) { // Find the first comparable value.
10+
if ((value = values[i]) != null && value >= value) {
11+
min = max = value;
12+
while (++i < n) { // Compare the remaining values.
13+
if ((value = values[i]) != null) {
14+
if (min > value) min = value;
15+
if (max < value) max = value;
16+
}
17+
}
18+
}
1319
}
1420
}
1521

1622
else {
17-
while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = c = b; break; }
18-
while (++i < n) if ((b = f(array[i], i, array)) != null) {
19-
if (a > b) a = b;
20-
if (c < b) c = b;
23+
while (++i < n) { // Find the first comparable value.
24+
if ((value = valueof(values[i], i, values)) != null && value >= value) {
25+
min = max = value;
26+
while (++i < n) { // Compare the remaining values.
27+
if ((value = valueof(values[i], i, values)) != null) {
28+
if (min > value) min = value;
29+
if (max < value) max = value;
30+
}
31+
}
32+
}
2133
}
2234
}
2335

24-
return [a, c];
36+
return [min, max];
2537
}

src/max.js

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,34 @@
1-
export default function(array, f) {
2-
var i = -1,
3-
n = array.length,
4-
a,
5-
b;
1+
export default function(values, valueof) {
2+
var n = values.length,
3+
i = -1,
4+
value,
5+
max;
66

7-
if (f == null) {
8-
while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }
9-
while (++i < n) if ((b = array[i]) != null && b > a) a = b;
7+
if (valueof == null) {
8+
while (++i < n) { // Find the first comparable value.
9+
if ((value = values[i]) != null && value >= value) {
10+
max = value;
11+
while (++i < n) { // Compare the remaining values.
12+
if ((value = values[i]) != null && value > max) {
13+
max = value;
14+
}
15+
}
16+
}
17+
}
1018
}
1119

1220
else {
13-
while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }
14-
while (++i < n) if ((b = f(array[i], i, array)) != null && b > a) a = b;
21+
while (++i < n) { // Find the first comparable value.
22+
if ((value = valueof(values[i], i, values)) != null && value >= value) {
23+
max = value;
24+
while (++i < n) { // Compare the remaining values.
25+
if ((value = valueof(values[i], i, values)) != null && value > max) {
26+
max = value;
27+
}
28+
}
29+
}
30+
}
1531
}
1632

17-
return a;
33+
return max;
1834
}

src/mean.js

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
import number from "./number";
22

3-
export default function(array, f) {
4-
var s = 0,
5-
n = array.length,
6-
a,
3+
export default function(values, valueof) {
4+
var n = values.length,
5+
m = n,
76
i = -1,
8-
j = n;
7+
value,
8+
sum = 0;
99

10-
if (f == null) {
11-
while (++i < n) if (!isNaN(a = number(array[i]))) s += a; else --j;
10+
if (valueof == null) {
11+
while (++i < n) {
12+
if (!isNaN(value = number(values[i]))) sum += value;
13+
else --m;
14+
}
1215
}
1316

1417
else {
15-
while (++i < n) if (!isNaN(a = number(f(array[i], i, array)))) s += a; else --j;
18+
while (++i < n) {
19+
if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;
20+
else --m;
21+
}
1622
}
1723

18-
if (j) return s / j;
24+
if (m) return sum / m;
1925
}

src/median.js

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,26 @@ import ascending from "./ascending";
22
import number from "./number";
33
import quantile from "./quantile";
44

5-
export default function(array, f) {
6-
var numbers = [],
7-
n = array.length,
8-
a,
9-
i = -1;
5+
export default function(values, valueof) {
6+
var n = values.length,
7+
i = -1,
8+
value,
9+
numbers = [];
1010

11-
if (f == null) {
12-
while (++i < n) if (!isNaN(a = number(array[i]))) numbers.push(a);
11+
if (valueof == null) {
12+
while (++i < n) {
13+
if (!isNaN(value = number(values[i]))) {
14+
numbers.push(value);
15+
}
16+
}
1317
}
1418

1519
else {
16-
while (++i < n) if (!isNaN(a = number(f(array[i], i, array)))) numbers.push(a);
20+
while (++i < n) {
21+
if (!isNaN(value = number(valueof(values[i], i, values)))) {
22+
numbers.push(value);
23+
}
24+
}
1725
}
1826

1927
return quantile(numbers.sort(ascending), 0.5);

src/min.js

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,34 @@
1-
export default function(array, f) {
2-
var i = -1,
3-
n = array.length,
4-
a,
5-
b;
1+
export default function(values, valueof) {
2+
var n = values.length,
3+
i = -1,
4+
value,
5+
min;
66

7-
if (f == null) {
8-
while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }
9-
while (++i < n) if ((b = array[i]) != null && a > b) a = b;
7+
if (valueof == null) {
8+
while (++i < n) { // Find the first comparable value.
9+
if ((value = values[i]) != null && value >= value) {
10+
min = value;
11+
while (++i < n) { // Compare the remaining values.
12+
if ((value = values[i]) != null && min > value) {
13+
min = value;
14+
}
15+
}
16+
}
17+
}
1018
}
1119

1220
else {
13-
while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }
14-
while (++i < n) if ((b = f(array[i], i, array)) != null && a > b) a = b;
21+
while (++i < n) { // Find the first comparable value.
22+
if ((value = valueof(values[i], i, values)) != null && value >= value) {
23+
min = value;
24+
while (++i < n) { // Compare the remaining values.
25+
if ((value = valueof(values[i], i, values)) != null && min > value) {
26+
min = value;
27+
}
28+
}
29+
}
30+
}
1531
}
1632

17-
return a;
33+
return min;
1834
}

src/quantile.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import number from "./number";
22

3-
export default function(array, p, f) {
4-
if (f == null) f = number;
5-
if (!(n = array.length)) return;
6-
if ((p = +p) <= 0 || n < 2) return +f(array[0], 0, array);
7-
if (p >= 1) return +f(array[n - 1], n - 1, array);
3+
export default function(values, p, valueof) {
4+
if (valueof == null) valueof = number;
5+
if (!(n = values.length)) return;
6+
if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
7+
if (p >= 1) return +valueof(values[n - 1], n - 1, values);
88
var n,
9-
h = (n - 1) * p,
10-
i = Math.floor(h),
11-
a = +f(array[i], i, array),
12-
b = +f(array[i + 1], i + 1, array);
13-
return a + (b - a) * (h - i);
9+
i = (n - 1) * p,
10+
i0 = Math.floor(i),
11+
value0 = +valueof(values[i0], i0, values),
12+
value1 = +valueof(values[i0 + 1], i0 + 1, values);
13+
return value0 + (value1 - value0) * (i - i0);
1414
}

src/scan.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
import ascending from "./ascending";
22

3-
export default function(array, compare) {
4-
if (!(n = array.length)) return;
5-
var i = 0,
6-
n,
3+
export default function(values, compare) {
4+
if (!(n = values.length)) return;
5+
var n,
6+
i = 0,
77
j = 0,
88
xi,
9-
xj = array[j];
9+
xj = values[j];
1010

11-
if (!compare) compare = ascending;
11+
if (compare == null) compare = ascending;
1212

13-
while (++i < n) if (compare(xi = array[i], xj) < 0 || compare(xj, xj) !== 0) xj = xi, j = i;
13+
while (++i < n) {
14+
if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
15+
xj = xi, j = i;
16+
}
17+
}
1418

1519
if (compare(xj, xj) === 0) return j;
1620
}

src/sum.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
export default function(array, f) {
2-
var s = 0,
3-
n = array.length,
4-
a,
5-
i = -1;
1+
export default function(values, valueof) {
2+
var n = values.length,
3+
i = -1,
4+
value,
5+
sum = 0;
66

7-
if (f == null) {
8-
while (++i < n) if (a = +array[i]) s += a; // Note: zero and null are equivalent.
7+
if (valueof == null) {
8+
while (++i < n) {
9+
if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
10+
}
911
}
1012

1113
else {
12-
while (++i < n) if (a = +f(array[i], i, array)) s += a;
14+
while (++i < n) {
15+
if (value = +valueof(values[i], i, values)) sum += value;
16+
}
1317
}
1418

15-
return s;
19+
return sum;
1620
}

src/variance.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
import number from "./number";
22

3-
export default function(array, f) {
4-
var n = array.length,
3+
export default function(values, valueof) {
4+
var n = values.length,
55
m = 0,
6-
a,
7-
d,
8-
s = 0,
96
i = -1,
10-
j = 0;
7+
mean = 0,
8+
value,
9+
delta,
10+
sum = 0;
1111

12-
if (f == null) {
12+
if (valueof == null) {
1313
while (++i < n) {
14-
if (!isNaN(a = number(array[i]))) {
15-
d = a - m;
16-
m += d / ++j;
17-
s += d * (a - m);
14+
if (!isNaN(value = number(values[i]))) {
15+
delta = value - mean;
16+
mean += delta / ++m;
17+
sum += delta * (value - mean);
1818
}
1919
}
2020
}
2121

2222
else {
2323
while (++i < n) {
24-
if (!isNaN(a = number(f(array[i], i, array)))) {
25-
d = a - m;
26-
m += d / ++j;
27-
s += d * (a - m);
24+
if (!isNaN(value = number(valueof(values[i], i, values)))) {
25+
delta = value - mean;
26+
mean += delta / ++m;
27+
sum += delta * (value - mean);
2828
}
2929
}
3030
}
3131

32-
if (j > 1) return s / (j - 1);
32+
if (m > 1) return sum / (m - 1);
3333
}

0 commit comments

Comments
 (0)