Skip to content

Commit a4edb29

Browse files
committed
don't flatten linear ranging until < 1e-24 (follow-up to b2433b4)
1 parent 91de800 commit a4edb29

File tree

5 files changed

+21
-21
lines changed

5 files changed

+21
-21
lines changed

dist/uPlot.cjs.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -393,15 +393,15 @@ function _rangeNum(_min, _max, cfg) {
393393
// if (delta > 0 && delta < abs(_max) / 1e3)
394394
// delta = 0;
395395

396-
// treat data as flat if delta is less than 1 billionth
396+
// treat data as flat if delta is less than 1e-24
397397
// or range is 11+ orders of magnitude below raw values, e.g. 99999999.99999996 - 100000000.00000004
398-
if (delta < 1e-9 || scalarMagDelta > 10) {
398+
if (delta < 1e-24 || scalarMagDelta > 10) {
399399
delta = 0;
400400

401401
// if soft mode is 2 and all vals are flat at 0, avoid the 0.1 * 1e3 fallback
402402
// this prevents 0,0,0 from ranging to -100,100 when softMin/softMax are -1,1
403403
if (_min == 0 || _max == 0) {
404-
delta = 1e-9;
404+
delta = 1e-24;
405405

406406
if (softMinMode == 2 && softMin != inf)
407407
padMin = 0;
@@ -416,12 +416,12 @@ function _rangeNum(_min, _max, cfg) {
416416
let base = pow(10, floor(mag));
417417

418418
let _padMin = nonZeroDelta * (delta == 0 ? (_min == 0 ? .1 : 1) : padMin);
419-
let _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 9);
419+
let _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 24);
420420
let _softMin = _min >= softMin && (softMinMode == 1 || softMinMode == 3 && _newMin <= softMin || softMinMode == 2 && _newMin >= softMin) ? softMin : inf;
421421
let minLim = max(hardMin, _newMin < _softMin && _min >= _softMin ? _softMin : min(_softMin, _newMin));
422422

423423
let _padMax = nonZeroDelta * (delta == 0 ? (_max == 0 ? .1 : 1) : padMax);
424-
let _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 9);
424+
let _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 24);
425425
let _softMax = _max <= softMax && (softMaxMode == 1 || softMaxMode == 3 && _newMax >= softMax || softMaxMode == 2 && _newMax <= softMax) ? softMax : -inf;
426426
let maxLim = min(hardMax, _newMax > _softMax && _max <= _softMax ? _softMax : max(_softMax, _newMax));
427427

dist/uPlot.esm.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -391,15 +391,15 @@ function _rangeNum(_min, _max, cfg) {
391391
// if (delta > 0 && delta < abs(_max) / 1e3)
392392
// delta = 0;
393393

394-
// treat data as flat if delta is less than 1 billionth
394+
// treat data as flat if delta is less than 1e-24
395395
// or range is 11+ orders of magnitude below raw values, e.g. 99999999.99999996 - 100000000.00000004
396-
if (delta < 1e-9 || scalarMagDelta > 10) {
396+
if (delta < 1e-24 || scalarMagDelta > 10) {
397397
delta = 0;
398398

399399
// if soft mode is 2 and all vals are flat at 0, avoid the 0.1 * 1e3 fallback
400400
// this prevents 0,0,0 from ranging to -100,100 when softMin/softMax are -1,1
401401
if (_min == 0 || _max == 0) {
402-
delta = 1e-9;
402+
delta = 1e-24;
403403

404404
if (softMinMode == 2 && softMin != inf)
405405
padMin = 0;
@@ -414,12 +414,12 @@ function _rangeNum(_min, _max, cfg) {
414414
let base = pow(10, floor(mag));
415415

416416
let _padMin = nonZeroDelta * (delta == 0 ? (_min == 0 ? .1 : 1) : padMin);
417-
let _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 9);
417+
let _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 24);
418418
let _softMin = _min >= softMin && (softMinMode == 1 || softMinMode == 3 && _newMin <= softMin || softMinMode == 2 && _newMin >= softMin) ? softMin : inf;
419419
let minLim = max(hardMin, _newMin < _softMin && _min >= _softMin ? _softMin : min(_softMin, _newMin));
420420

421421
let _padMax = nonZeroDelta * (delta == 0 ? (_max == 0 ? .1 : 1) : padMax);
422-
let _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 9);
422+
let _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 24);
423423
let _softMax = _max <= softMax && (softMaxMode == 1 || softMaxMode == 3 && _newMax >= softMax || softMaxMode == 2 && _newMax <= softMax) ? softMax : -inf;
424424
let maxLim = min(hardMax, _newMax > _softMax && _max <= _softMax ? _softMax : max(_softMax, _newMax));
425425

dist/uPlot.iife.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -394,15 +394,15 @@ var uPlot = (function () {
394394
// if (delta > 0 && delta < abs(_max) / 1e3)
395395
// delta = 0;
396396

397-
// treat data as flat if delta is less than 1 billionth
397+
// treat data as flat if delta is less than 1e-24
398398
// or range is 11+ orders of magnitude below raw values, e.g. 99999999.99999996 - 100000000.00000004
399-
if (delta < 1e-9 || scalarMagDelta > 10) {
399+
if (delta < 1e-24 || scalarMagDelta > 10) {
400400
delta = 0;
401401

402402
// if soft mode is 2 and all vals are flat at 0, avoid the 0.1 * 1e3 fallback
403403
// this prevents 0,0,0 from ranging to -100,100 when softMin/softMax are -1,1
404404
if (_min == 0 || _max == 0) {
405-
delta = 1e-9;
405+
delta = 1e-24;
406406

407407
if (softMinMode == 2 && softMin != inf)
408408
padMin = 0;
@@ -417,12 +417,12 @@ var uPlot = (function () {
417417
let base = pow(10, floor(mag));
418418

419419
let _padMin = nonZeroDelta * (delta == 0 ? (_min == 0 ? .1 : 1) : padMin);
420-
let _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 9);
420+
let _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 24);
421421
let _softMin = _min >= softMin && (softMinMode == 1 || softMinMode == 3 && _newMin <= softMin || softMinMode == 2 && _newMin >= softMin) ? softMin : inf;
422422
let minLim = max(hardMin, _newMin < _softMin && _min >= _softMin ? _softMin : min(_softMin, _newMin));
423423

424424
let _padMax = nonZeroDelta * (delta == 0 ? (_max == 0 ? .1 : 1) : padMax);
425-
let _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 9);
425+
let _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 24);
426426
let _softMax = _max <= softMax && (softMaxMode == 1 || softMaxMode == 3 && _newMax >= softMax || softMaxMode == 2 && _newMax <= softMax) ? softMax : -inf;
427427
let maxLim = min(hardMax, _newMax > _softMax && _max <= _softMax ? _softMax : max(_softMax, _newMax));
428428

dist/uPlot.iife.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/utils.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -219,15 +219,15 @@ function _rangeNum(_min, _max, cfg) {
219219
// if (delta > 0 && delta < abs(_max) / 1e3)
220220
// delta = 0;
221221

222-
// treat data as flat if delta is less than 1 billionth
222+
// treat data as flat if delta is less than 1e-24
223223
// or range is 11+ orders of magnitude below raw values, e.g. 99999999.99999996 - 100000000.00000004
224-
if (delta < 1e-9 || scalarMagDelta > 10) {
224+
if (delta < 1e-24 || scalarMagDelta > 10) {
225225
delta = 0;
226226

227227
// if soft mode is 2 and all vals are flat at 0, avoid the 0.1 * 1e3 fallback
228228
// this prevents 0,0,0 from ranging to -100,100 when softMin/softMax are -1,1
229229
if (_min == 0 || _max == 0) {
230-
delta = 1e-9;
230+
delta = 1e-24;
231231

232232
if (softMinMode == 2 && softMin != inf)
233233
padMin = 0;
@@ -242,12 +242,12 @@ function _rangeNum(_min, _max, cfg) {
242242
let base = pow(10, floor(mag));
243243

244244
let _padMin = nonZeroDelta * (delta == 0 ? (_min == 0 ? .1 : 1) : padMin);
245-
let _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 9);
245+
let _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 24);
246246
let _softMin = _min >= softMin && (softMinMode == 1 || softMinMode == 3 && _newMin <= softMin || softMinMode == 2 && _newMin >= softMin) ? softMin : inf;
247247
let minLim = max(hardMin, _newMin < _softMin && _min >= _softMin ? _softMin : min(_softMin, _newMin));
248248

249249
let _padMax = nonZeroDelta * (delta == 0 ? (_max == 0 ? .1 : 1) : padMax);
250-
let _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 9);
250+
let _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 24);
251251
let _softMax = _max <= softMax && (softMaxMode == 1 || softMaxMode == 3 && _newMax >= softMax || softMaxMode == 2 && _newMax <= softMax) ? softMax : -inf;
252252
let maxLim = min(hardMax, _newMax > _softMax && _max <= _softMax ? _softMax : max(_softMax, _newMax));
253253

0 commit comments

Comments
 (0)