nerdamer-ts
Version:
javascript light-weight symbolic math expression evaluator
26 lines • 906 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mod = void 0;
const Symbol_1 = require("../../../Types/Symbol");
const Utils_1 = require("../../../Core/Utils");
const index_1 = require("../index");
/**
* The mod function
* @param {Symbol} symbol1
* @param {Symbol} symbol2
* @returns {Symbol}
*/
function mod(symbol1, symbol2) {
if (symbol1.isConstant() && symbol2.isConstant()) {
var retval = new Symbol_1.Symbol(1);
retval.multiplier = retval.multiplier.multiply(symbol1.multiplier.mod(symbol2.multiplier));
return retval;
}
//try to see if division has remainder of zero
var r = (0, index_1.divide)(symbol1.clone(), symbol2.clone());
if ((0, Utils_1.isInt)(r))
return new Symbol_1.Symbol(0);
return (0, Symbol_1.symfunction)('mod', [symbol1, symbol2]);
}
exports.mod = mod;
//# sourceMappingURL=mod.js.map