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.
26 lines
512 B
26 lines
512 B
'use strict'
|
|
|
|
var num2bn = require('./num-to-bn')
|
|
var sign = require('./bn-sign')
|
|
|
|
module.exports = rationalize
|
|
|
|
function rationalize(numer, denom) {
|
|
var snumer = sign(numer)
|
|
var sdenom = sign(denom)
|
|
if(snumer === 0) {
|
|
return [num2bn(0), num2bn(1)]
|
|
}
|
|
if(sdenom === 0) {
|
|
return [num2bn(0), num2bn(0)]
|
|
}
|
|
if(sdenom < 0) {
|
|
numer = numer.neg()
|
|
denom = denom.neg()
|
|
}
|
|
var d = numer.gcd(denom)
|
|
if(d.cmpn(1)) {
|
|
return [ numer.div(d), denom.div(d) ]
|
|
}
|
|
return [ numer, denom ]
|
|
}
|
|
|