bigfloat.js
Version:
A library for arbitrary precision floating point arithmetic.
38 lines (37 loc) • 1.41 kB
JavaScript
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;
;