nerdamer-ts
Version:
javascript light-weight symbolic math expression evaluator
33 lines • 1.1 kB
JavaScript
;
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