ktongue's picture
download
raw
1.18 kB
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);
}

Xet Storage Details

Size:
1.18 kB
·
Xet hash:
dceda0827f16d9ed341c297e8f8f8e3cfc70ec7ca7aabd84eaca1181b51691b3

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.