UNPKG

mathjs

Version:

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser and offers an integrated solution to work with numbers, big numbers, complex numbers, units, and matrices.

22 lines (18 loc) 478 B
/** * 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; };