1 // `Math.scale` method implementation
2 // https://rwaldron.github.io/proposal-math-extensions/
3 module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
8 var nOutHigh = +outHigh;
9 // eslint-disable-next-line no-self-compare -- NaN check
10 if (nx != nx || nInLow != nInLow || nInHigh != nInHigh || nOutLow != nOutLow || nOutHigh != nOutHigh) return NaN;
11 if (nx === Infinity || nx === -Infinity) return nx;
12 return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;