MCPcopy
hub / github.com/microsoft/SandDance / quantize

Function quantize

docs/app/js/sanddance-app.js:129119–129173  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

129117var _linearJs = require("./linear.js");
129118var _initJs = require("./init.js");
129119function quantize() {
129120 var x0 = 0, x1 = 1, n = 1, domain = [
129121 0.5
129122 ], range = [
129123 0,
129124 1
129125 ], unknown;
129126 function scale(x) {
129127 return x != null && x <= x ? range[(0, _d3Array.bisect)(domain, x, 0, n)] : unknown;
129128 }
129129 function rescale() {
129130 var i = -1;
129131 domain = new Array(n);
129132 while(++i < n)domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
129133 return scale;
129134 }
129135 scale.domain = function(_) {
129136 return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [
129137 x0,
129138 x1
129139 ];
129140 };
129141 scale.range = function(_) {
129142 return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();
129143 };
129144 scale.invertExtent = function(y) {
129145 var i = range.indexOf(y);
129146 return i < 0 ? [
129147 NaN,
129148 NaN
129149 ] : i < 1 ? [
129150 x0,
129151 domain[0]
129152 ] : i >= n ? [
129153 domain[n - 1],
129154 x1
129155 ] : [
129156 domain[i - 1],
129157 domain[i]
129158 ];
129159 };
129160 scale.unknown = function(_) {
129161 return arguments.length ? (unknown = _, scale) : scale;
129162 };
129163 scale.thresholds = function() {
129164 return domain.slice();
129165 };
129166 scale.copy = function() {
129167 return quantize().domain([
129168 x0,
129169 x1
129170 ]).range(range).unknown(unknown);
129171 };
129172 return (0, _initJs.initRange).apply((0, _linearJs.linearish)(scale), arguments);
129173}
129174exports.default = quantize;
129175
129176},{"d3-array":"8JMcC","./linear.js":"2Mb1X","./init.js":"efWLG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bXV4m":[function(require,module,exports) {

Callers 2

levelsFunction · 0.70
transformFunction · 0.70

Calls 3

rescaleFunction · 0.70
fromMethod · 0.45
minMethod · 0.45

Tested by

no test coverage detected