UNPKG

bigfloat.js

Version:

A library for arbitrary precision floating point arithmetic.

38 lines (37 loc) 1.41 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; exports.__esModule = true; exports.is_integer = exports.is_zero = exports.is_positive = exports.is_negative = exports.is_number = exports.is_big_float = void 0; var jsbi_1 = __importDefault(require("jsbi")); var constants_js_1 = require("./constants.js"); var constructors_js_1 = require("./constructors.js"); var relational_js_1 = require("./relational.js"); function is_big_float(big) { return (typeof big === "object" && !(big instanceof jsbi_1["default"]) && big.coefficient instanceof jsbi_1["default"] && Number.isSafeInteger(big.exponent)); } exports.is_big_float = is_big_float; function is_number(token) { return !Number.isNaN(Number(token)); } exports.is_number = is_number; function is_negative(big) { return jsbi_1["default"].LT(big.coefficient, constants_js_1.BIGINT_ZERO); } exports.is_negative = is_negative; function is_positive(big) { return jsbi_1["default"].GE(big.coefficient, constants_js_1.BIGINT_ZERO); } exports.is_positive = is_positive; function is_zero(big) { return jsbi_1["default"].EQ(big.coefficient, constants_js_1.BIGINT_ZERO); } exports.is_zero = is_zero; function is_integer(a) { return relational_js_1.eq(a, constructors_js_1.integer(a)); } exports.is_integer = is_integer;