first commit
This commit is contained in:
50
node_modules/d3-scale/src/pow.js
generated
vendored
Normal file
50
node_modules/d3-scale/src/pow.js
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
import {linearish} from "./linear.js";
|
||||
import {copy, identity, transformer} from "./continuous.js";
|
||||
import {initRange} from "./init.js";
|
||||
|
||||
function transformPow(exponent) {
|
||||
return function(x) {
|
||||
return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
|
||||
};
|
||||
}
|
||||
|
||||
function transformSqrt(x) {
|
||||
return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);
|
||||
}
|
||||
|
||||
function transformSquare(x) {
|
||||
return x < 0 ? -x * x : x * x;
|
||||
}
|
||||
|
||||
export function powish(transform) {
|
||||
var scale = transform(identity, identity),
|
||||
exponent = 1;
|
||||
|
||||
function rescale() {
|
||||
return exponent === 1 ? transform(identity, identity)
|
||||
: exponent === 0.5 ? transform(transformSqrt, transformSquare)
|
||||
: transform(transformPow(exponent), transformPow(1 / exponent));
|
||||
}
|
||||
|
||||
scale.exponent = function(_) {
|
||||
return arguments.length ? (exponent = +_, rescale()) : exponent;
|
||||
};
|
||||
|
||||
return linearish(scale);
|
||||
}
|
||||
|
||||
export default function pow() {
|
||||
var scale = powish(transformer());
|
||||
|
||||
scale.copy = function() {
|
||||
return copy(scale, pow()).exponent(scale.exponent());
|
||||
};
|
||||
|
||||
initRange.apply(scale, arguments);
|
||||
|
||||
return scale;
|
||||
}
|
||||
|
||||
export function sqrt() {
|
||||
return pow.apply(null, arguments).exponent(0.5);
|
||||
}
|
||||
Reference in New Issue
Block a user