flow like the river
This commit is contained in:
commit
013fe673f3
42435 changed files with 5764238 additions and 0 deletions
24
VISUALIZACION/node_modules/d3-array/src/rank.js
generated
vendored
Executable file
24
VISUALIZACION/node_modules/d3-array/src/rank.js
generated
vendored
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
import ascending from "./ascending.js";
|
||||
import {ascendingDefined, compareDefined} from "./sort.js";
|
||||
|
||||
export default function rank(values, valueof = ascending) {
|
||||
if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
|
||||
let V = Array.from(values);
|
||||
const R = new Float64Array(V.length);
|
||||
if (valueof.length !== 2) V = V.map(valueof), valueof = ascending;
|
||||
const compareIndex = (i, j) => valueof(V[i], V[j]);
|
||||
let k, r;
|
||||
values = Uint32Array.from(V, (_, i) => i);
|
||||
// Risky chaining due to Safari 14 https://github.com/d3/d3-array/issues/123
|
||||
values.sort(valueof === ascending ? (i, j) => ascendingDefined(V[i], V[j]) : compareDefined(compareIndex));
|
||||
values.forEach((j, i) => {
|
||||
const c = compareIndex(j, k === undefined ? j : k);
|
||||
if (c >= 0) {
|
||||
if (k === undefined || c > 0) k = j, r = i;
|
||||
R[j] = r;
|
||||
} else {
|
||||
R[j] = NaN;
|
||||
}
|
||||
});
|
||||
return R;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue