UNPKG

@rickosborne/rebound

Version:

Rick Osborne's utilities for working with bounded numbers

54 lines (53 loc) 2.33 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var real_range_exports = {}; __export(real_range_exports, { RealRange: () => RealRange }); module.exports = __toCommonJS(real_range_exports); var import_number_range = require("./number-range.cjs"); const _RealRange = class _RealRange extends import_number_range.NumberRange { discreteIntegers = void 0; step = Number.MIN_VALUE; constructor(isLowerInc, lower, upper, isUpperInc) { super(isLowerInc, lower, false, upper, isUpperInc); } scaleValueFrom(value, other) { if (this.isSingleton) { return this.isLowerInc ? this.lower : this.upper; } super.assertCanScaleFrom(other); if (other.discreteIntegers != null) { const units = other.discreteIntegers + (this.isLowerInc && this.isUpperInc ? -1 : 0); const divisor = (this.upper - this.lower) / units; const inset = this.isLowerInc ? 0 : this.isUpperInc ? divisor : divisor / 2; const percent = (value - other.lower) / units; return this.lower + inset + percent * (this.upper - this.lower); } if (this.isLowerInc !== other.isLowerInc || this.isUpperInc !== other.isUpperInc) { throw new RangeError(`Incompatible bounds for scaling: ${this.label} vs ${other.label}`); } const factor = (this.upper - this.lower) / (other.upper - other.lower); return (value - other.lower) * factor + this.lower; } }; __name(_RealRange, "RealRange"); let RealRange = _RealRange; //# sourceMappingURL=real-range.cjs.map