MCPcopy Index your code
hub / github.com/microsoft/SandDance / polymap

Function polymap

docs/app/js/sanddance-app.js:127493–127508  ·  view source on GitHub ↗
(domain, range, interpolate)

Source from the content-addressed store, hash-verified

127491 };
127492}
127493function polymap(domain, range, interpolate) {
127494 var j = Math.min(domain.length, range.length) - 1, d = new Array(j), r = new Array(j), i1 = -1;
127495 // Reverse descending domains.
127496 if (domain[j] < domain[0]) {
127497 domain = domain.slice().reverse();
127498 range = range.slice().reverse();
127499 }
127500 while(++i1 < j){
127501 d[i1] = normalize(domain[i1], domain[i1 + 1]);
127502 r[i1] = interpolate(range[i1], range[i1 + 1]);
127503 }
127504 return function(x) {
127505 var i = (0, _d3Array.bisect)(domain, x, 1, j) - 1;
127506 return r[i](d[i](x));
127507 };
127508}
127509function copy(source, target) {
127510 return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
127511}

Callers

nothing calls this directly

Calls 3

normalizeFunction · 0.70
interpolateFunction · 0.70
minMethod · 0.45

Tested by

no test coverage detected