UNPKG

nerdamer-ts

Version:

javascript light-weight symbolic math expression evaluator

33 lines 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rationalize = void 0; const Symbol_1 = require("../../../Types/Symbol"); const expand_1 = require("./expand"); const add_1 = require("../operations/add"); const index_1 = require("../index"); /** * Rationalizes a symbol * @param {Symbol} symbol * @returns {Symbol} */ function rationalize(symbol) { if (symbol.isComposite()) { var retval = new Symbol_1.Symbol(0); var num, den, retnum, retden, a, b, n, d; symbol.each(function (x) { num = x.getNum(); den = x.getDenom(); retnum = retval.getNum(); retden = retval.getDenom(); a = (0, index_1.multiply)(den, retnum); b = (0, index_1.multiply)(num, retden); n = (0, expand_1.expand)((0, add_1.add)(a, b)); d = (0, index_1.multiply)(retden, den); retval = (0, index_1.divide)(n, d); }, true); return retval; } return symbol; } exports.rationalize = rationalize; //# sourceMappingURL=rationalize.js.map