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
52 lines • 1.45 kB
JavaScript
import { isInteger } from '../../utils/number.js';
var n1 = 'number';
var n2 = 'number, number';
export function bitAndNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function bitAnd');
}
return x & y;
}
bitAndNumber.signature = n2;
export function bitNotNumber(x) {
if (!isInteger(x)) {
throw new Error('Integer expected in function bitNot');
}
return ~x;
}
bitNotNumber.signature = n1;
export function bitOrNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function bitOr');
}
return x | y;
}
bitOrNumber.signature = n2;
export function bitXorNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function bitXor');
}
return x ^ y;
}
bitXorNumber.signature = n2;
export function leftShiftNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function leftShift');
}
return x << y;
}
leftShiftNumber.signature = n2;
export function rightArithShiftNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function rightArithShift');
}
return x >> y;
}
rightArithShiftNumber.signature = n2;
export function rightLogShiftNumber(x, y) {
if (!isInteger(x) || !isInteger(y)) {
throw new Error('Integers expected in function rightLogShift');
}
return x >>> y;
}
rightLogShiftNumber.signature = n2;