Skip to content

Commit cf59fff

Browse files
committed
Add d3.linspace.
1 parent a286cfa commit cf59fff

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

src/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export {default as permute} from "./permute.js";
2424
export {default as quantile, quantileSorted} from "./quantile.js";
2525
export {default as quickselect} from "./quickselect.js";
2626
export {default as range} from "./range.js";
27+
export {default as linspace} from "./linspace.js";
2728
export {default as least} from "./least.js";
2829
export {default as leastIndex} from "./leastIndex.js";
2930
export {default as greatest} from "./greatest.js";

src/linspace.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export default function(start, stop, n = 50, endpoint = true) {
2+
n = Math.floor(n), start = +start, stop = (stop - start) / (endpoint ? n - 1 : n);
3+
4+
var i = -1,
5+
range = new Array(n);
6+
7+
while (++i < n) {
8+
range[i] = start + i * stop;
9+
}
10+
11+
return range;
12+
}

test/linspace-test.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var tape = require("tape"),
2+
arrays = require("../");
3+
4+
tape.only("linspace(start, stop)", function(test) {
5+
test.deepEqual(arrays.linspace(0, 49), [
6+
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
7+
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
8+
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
9+
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
10+
40, 41, 42, 43, 44, 45, 46, 47, 48, 49
11+
]);
12+
test.end();
13+
});
14+
15+
tape("linspace(start, stop, n)", function(test) {
16+
test.deepEqual(arrays.linspace(2, 3, 5), [2, 2.25, 2.5, 2.75, 3]);
17+
test.end();
18+
});
19+
20+
tape("linspace(start, stop, n, false)", function(test) {
21+
test.deepEqual(arrays.linspace(2, 3, 5, false), [2, 2.2, 2.4, 2.6, 2.8]);
22+
test.end();
23+
});

0 commit comments

Comments
 (0)