double-bits

WebJar for double-bits

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

double-bits
Last Version

Last Version

1.1.1
Release Date

Release Date

Type

Type

jar
Description

Description

double-bits
WebJar for double-bits
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/mikolalysenko/double-bits

Download double-bits

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/double-bits/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>double-bits</artifactId>
    <version>1.1.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/double-bits/
implementation 'org.webjars.npm:double-bits:1.1.1'
// https://jarcasting.com/artifacts/org.webjars.npm/double-bits/
implementation ("org.webjars.npm:double-bits:1.1.1")
'org.webjars.npm:double-bits:jar:1.1.1'
<dependency org="org.webjars.npm" name="double-bits" rev="1.1.1">
  <artifact name="double-bits" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='double-bits', version='1.1.1')
)
libraryDependencies += "org.webjars.npm" % "double-bits" % "1.1.1"
[org.webjars.npm/double-bits "1.1.1"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

double-bits

Routines for manipulating binary representations of a IEEE 754 double precision numbers.

testling badge

build status

Example

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

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.

  • n is a number

Returns true if n is denormal, false otherwise

Credits

(c) 2014 Mikola Lysenko. BSD License

Versions

Version
1.1.1