StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
676 B
42 lines
676 B
4 years ago
|
"use strict"
|
||
|
|
||
|
var doubleBits = require("double-bits")
|
||
|
|
||
|
var SMALLEST_DENORM = Math.pow(2, -1074)
|
||
|
var UINT_MAX = (-1)>>>0
|
||
|
|
||
|
module.exports = nextafter
|
||
|
|
||
|
function nextafter(x, y) {
|
||
|
if(isNaN(x) || isNaN(y)) {
|
||
|
return NaN
|
||
|
}
|
||
|
if(x === y) {
|
||
|
return x
|
||
|
}
|
||
|
if(x === 0) {
|
||
|
if(y < 0) {
|
||
|
return -SMALLEST_DENORM
|
||
|
} else {
|
||
|
return SMALLEST_DENORM
|
||
|
}
|
||
|
}
|
||
|
var hi = doubleBits.hi(x)
|
||
|
var lo = doubleBits.lo(x)
|
||
|
if((y > x) === (x > 0)) {
|
||
|
if(lo === UINT_MAX) {
|
||
|
hi += 1
|
||
|
lo = 0
|
||
|
} else {
|
||
|
lo += 1
|
||
|
}
|
||
|
} else {
|
||
|
if(lo === 0) {
|
||
|
lo = UINT_MAX
|
||
|
hi -= 1
|
||
|
} else {
|
||
|
lo -= 1
|
||
|
}
|
||
|
}
|
||
|
return doubleBits.pack(lo, hi)
|
||
|
}
|