mathjs
Version:
Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with dif
22 lines (18 loc) • 478 B
JavaScript
/**
* Bitwise not
* @param {BigNumber} value
* @return {BigNumber} Result of ~`x`, fully precise
*
*/
module.exports = function bitNot (x) {
if (x.isFinite() && !x.isInteger()) {
throw new Error('Integer expected in function bitNot');
}
var BigNumber = x.constructor;
var prevPrec = BigNumber.precision;
BigNumber.config({precision: 1E9});
var x = x.plus(new BigNumber(1));
x.s = -x.s || null;
BigNumber.config({precision: prevPrec});
return x;
};