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.
StackGenVis/frontend/node_modules/double-bits/README.md

109 lines
2.6 KiB

4 years ago
double-bits
===========
Routines for manipulating binary representations of a IEEE 754 double precision numbers.
[![testling badge](https://ci.testling.com/mikolalysenko/double-bits.png)](https://ci.testling.com/mikolalysenko/double-bits)
[![build status](https://secure.travis-ci.org/mikolalysenko/double-bits.png)](http://travis-ci.org/mikolalysenko/double-bits)
## Example
```javascript
var db = require("double-bits")
//Get higher order word
console.log(db.hi(1.0).toString(16)) //Prints out: 3ff00000
//Get lower order word
console.log(db.lo(1.0).toString(16)) //Prints out: 0
//Combine two words into a double
console.log(db.pack(0, 0x3ff00000)) //Prints out: 1.0
//More sophisticated example: Print out base 2 representation
var pad = require("pad")
function base2Str(n) {
var f = db.fraction(n)
return (db.sign(n) ? "-" : "") +
"2^" + (db.exponent(n)+1) +
" * 0." + pad(f[1].toString(2), 20, "0") +
pad(f[0].toString(2), 32, "0")
}
console.log(base2Str(1.0))
//Prints out:
//
// 2^1 * 0.10000000000000000000000000000000000000000000000000000
//
```
## Install
```
npm install double-bits
```
## API
```javascript
var db = require("double-bits")
```
### `db(n)`
Returns a pair of 32-bit unsigned ints encoding the lower/higher order words respectively representing `n`
* `n` is an IEEE754 double number
**Returns** An array, `[lo,hi]` encoding `n`
### `db.lo(n)`
Returns the lower order word of `n`
* `n` is an IEEE754 number
**Returns** The lower order word of `n`
### `db.hi(n)`
Returns the higher order word of `n`
* `n` is an IEEE754 number
**Returns** The higher order word of `n`
### `db.pack(lo, hi)`
Given a pair of lower/higher order words, concatenate them into a 64 bit double precision number
* `lo` is the lower order word
* `hi` is the higher order word
**Returns** An IEEE754 double precision number formed by concatenating the bits of `lo` and `hi`
### `db.sign(n)`
Returns the state of the sign bit of `n`
* `n` is an IEEE754 double precision number
**Returns** The sign bit of `n`
### `db.exponent(n)`
Returns the exponent of `n`
* `n` is an IEEE754 double precision number
**Returns** The exponent of `n`
### `db.fraction(n)`
Returns the fractional part of `n`
* `n` is an IEEE754 double precision number
**Returns** The fractional part of `n` encoded as a pair of numbers, `[lo,hi]` where `lo` is a 32 bit integer and `hi` is a 21 bit integer.
### `db.denormalized(n)`
Test if a double is [denormalized](http://en.wikipedia.org/wiki/Denormal_number).
* `n` is a number
**Returns** `true` if `n` is denormal, `false` otherwise
## Credits
(c) 2014 Mikola Lysenko. BSD License