1/* 2 * The MIT License (MIT) 3 * 4 * Copyright (c) Ankit 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a copy 7 * of this software and associated documentation files (the "Software"), to deal 8 * in the Software without restriction, including without limitation the rights 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 * copies of the Software, and to permit persons to whom the Software is 11 * furnished to do so, subject to the following conditions:</p> 12 * 13 * The above copyright notice and this permission notice shall be included in 14 * all copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 * THE SOFTWARE. 23 */ 24/** math-expression-evaluator version 1.2.21 25 Dated:2020-02-28 */ 26!function (a) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = a(); else if ("function" == typeof define && define.amd) define([], a); else { var b; b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, b.mexp = a() } }(function () { return function a(b, c, d) { function e(g, h) { if (!c[g]) { if (!b[g]) { var i = "function" == typeof require && require; if (!h && i) return i(g, !0); if (f) return f(g, !0); var j = new Error("Cannot find module '" + g + "'"); throw j.code = "MODULE_NOT_FOUND", j } var k = c[g] = { exports: {} }; b[g][0].call(k.exports, function (a) { var c = b[g][1][a]; return e(c || a) }, k, k.exports, a, b, c, d) } return c[g].exports } for (var f = "function" == typeof require && require, g = 0; g < d.length; g++)e(d[g]); return e }({ 1: [function (a, b, c) { var d = a("./postfix_evaluator.js"); d.prototype.formulaEval = function () { "use strict"; for (var a, b, c, d = [], e = this.value, f = 0; f < e.length; f++)1 === e[f].type || 3 === e[f].type ? d.push({ value: 3 === e[f].type ? e[f].show : e[f].value, type: 1 }) : 13 === e[f].type ? d.push({ value: e[f].show, type: 1 }) : 0 === e[f].type ? d[d.length - 1] = { value: e[f].show + ("-" != e[f].show ? "(" : "") + d[d.length - 1].value + ("-" != e[f].show ? ")" : ""), type: 0 } : 7 === e[f].type ? d[d.length - 1] = { value: (1 != d[d.length - 1].type ? "(" : "") + d[d.length - 1].value + (1 != d[d.length - 1].type ? ")" : "") + e[f].show, type: 7 } : 10 === e[f].type ? (a = d.pop(), b = d.pop(), "P" === e[f].show || "C" === e[f].show ? d.push({ value: "<sup>" + b.value + "</sup>" + e[f].show + "<sub>" + a.value + "</sub>", type: 10 }) : d.push({ value: (1 != b.type ? "(" : "") + b.value + (1 != b.type ? ")" : "") + "<sup>" + a.value + "</sup>", type: 1 })) : 2 === e[f].type || 9 === e[f].type ? (a = d.pop(), b = d.pop(), d.push({ value: (1 != b.type ? "(" : "") + b.value + (1 != b.type ? ")" : "") + e[f].show + (1 != a.type ? "(" : "") + a.value + (1 != a.type ? ")" : ""), type: e[f].type })) : 12 === e[f].type && (a = d.pop(), b = d.pop(), c = d.pop(), d.push({ value: e[f].show + "(" + c.value + "," + b.value + "," + a.value + ")", type: 12 })); return d[0].value }, b.exports = d }, { "./postfix_evaluator.js": 5 }], 2: [function (a, b, c) { function d(a, b) { for (var c = 0; c < a.length; c++)a[c] += b; return a } function e(a, b, c, d) { for (var e = 0; e < d; e++)if (a[c + e] !== b[e]) return !1; return !0 } var f = a("./math_function.js"), g = ["sin", "cos", "tan", "pi", "(", ")", "P", "C", "asin", "acos", "atan", "7", "8", "9", "int", "cosh", "acosh", "ln", "^", "root", "4", "5", "6", "/", "!", "tanh", "atanh", "Mod", "1", "2", "3", "*", "sinh", "asinh", "e", "log", "0", ".", "+", "-", ",", "Sigma", "n", "Pi", "pow"], h = ["sin", "cos", "tan", "π", "(", ")", "P", "C", "asin", "acos", "atan", "7", "8", "9", "Int", "cosh", "acosh", " ln", "^", "root", "4", "5", "6", "÷", "!", "tanh", "atanh", " Mod ", "1", "2", "3", "×", "sinh", "asinh", "e", " log", "0", ".", "+", "-", ",", "Σ", "n", "Π", "pow"], i = [f.math.sin, f.math.cos, f.math.tan, "PI", "(", ")", f.math.P, f.math.C, f.math.asin, f.math.acos, f.math.atan, "7", "8", "9", Math.floor, f.math.cosh, f.math.acosh, Math.log, Math.pow, Math.sqrt, "4", "5", "6", f.math.div, f.math.fact, f.math.tanh, f.math.atanh, f.math.mod, "1", "2", "3", f.math.mul, f.math.sinh, f.math.asinh, "E", f.math.log, "0", ".", f.math.add, f.math.sub, ",", f.math.sigma, "n", f.math.Pi, Math.pow], j = { 0: 11, 1: 0, 2: 3, 3: 0, 4: 0, 5: 0, 6: 0, 7: 11, 8: 11, 9: 1, 10: 10, 11: 0, 12: 11, 13: 0 }, k = [0, 0, 0, 3, 4, 5, 10, 10, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 10, 0, 1, 1, 1, 2, 7, 0, 0, 2, 1, 1, 1, 2, 0, 0, 3, 0, 1, 6, 9, 9, 11, 12, 13, 12, 8], l = { 0: !0, 1: !0, 3: !0, 4: !0, 6: !0, 8: !0, 9: !0, 12: !0, 13: !0 }, m = { 0: !0, 1: !0, 2: !0, 3: !0, 4: !0, 5: !0, 6: !0, 7: !0, 8: !0, 9: !0, 10: !0, 11: !0, 12: !0, 13: !0 }, n = { 0: !0, 3: !0, 4: !0, 8: !0, 12: !0, 13: !0 }, o = {}, p = { 0: !0, 1: !0, 3: !0, 4: !0, 6: !0, 8: !0, 12: !0, 13: !0 }, q = { 1: !0 }, r = [[], ["1", "2", "3", "7", "8", "9", "4", "5", "6", "+", "-", "*", "/", "(", ")", "^", "!", "P", "C", "e", "0", ".", ",", "n"], ["pi", "ln", "Pi"], ["sin", "cos", "tan", "Del", "int", "Mod", "log", "pow"], ["asin", "acos", "atan", "cosh", "root", "tanh", "sinh"], ["acosh", "atanh", "asinh", "Sigma"]]; f.addToken = function (a) { for (var b = 0; b < a.length; b++) { var c = a[b].token.length, d = -1; if (c < r.length) for (var e = 0; e < r[c].length; e++)if (a[b].token === r[c][e]) { d = g.indexOf(r[c][e]); break }
26 -1 === d ? (g.push(a[b].token), k.push(a[b].type), r.length <= a[b].token.length && (r[a[b].token.length] = []), r[a[b].token.length].push(a[b].token), i.push(a[b].value), h.push(a[b].show)) : (g[d] = a[b].token, k[d] = a[b].type, i[d] = a[b].value, h[d] = a[b].show) } }, f.lex = function (a, b) { "use strict"; var c, s, t, u, v = { value: f.math.changeSign, type: 0, pre: 21, show: "-" }, w = { value: ")", show: ")", type: 5, pre: 0 }, x = { value: "(", type: 4, pre: 0, show: "(" }, y = [x], z = [], A = a, B = l, C = 0, D = o, E = ""; void 0 !== b && f.addToken(b); var F = {}; for (s = 0; s < A.length; s++)if (" " !== A[s]) { for (c = "", t = A.length - s > r.length - 2 ? r.length - 1 : A.length - s; t > 0; t--)if (void 0 !== r[t]) for (u = 0; u < r[t].length; u++)e(A, r[t][u], s, t) && (c = r[t][u], u = r[t].length, t = 0); if (s += c.length - 1, "" === c) throw new f.Exception("Can't understand after " + A.slice(s)); var G, H = g.indexOf(c), I = c, J = k[H], K = i[H], L = j[J], M = h[H], N = y[y.length - 1]; for (G = z.length; G-- && 0 === z[G];)if (-1 !== [0, 2, 3, 4, 5, 9, 11, 12, 13].indexOf(J)) { if (!0 !== B[J]) throw new f.Exception(c + " is not allowed after " + E); y.push(w), B = m, D = p, d(z, -1).pop() } if (!0 !== B[J]) throw new f.Exception(c + " is not allowed after " + E); if (!0 === D[J] && (J = 2, K = f.math.mul, M = "×", L = 3, s -= c.length), F = { value: K, type: J, pre: L, show: M }, 0 === J) B = l, D = o, d(z, 2).push(2), y.push(F), y.push(x); else if (1 === J) 1 === N.type ? (N.value += K, d(z, 1)) : y.push(F), B = m, D = n; else if (2 === J) B = l, D = o, d(z, 2), y.push(F); else if (3 === J) y.push(F), B = m, D = p; else if (4 === J) d(z, 1), C++, B = l, D = o, y.push(F); else if (5 === J) { if (!C) throw new f.Exception("Closing parenthesis are more than opening one, wait What!!!"); C--, B = m, D = p, y.push(F) } else if (6 === J) { if (N.hasDec) throw new f.Exception("Two decimals are not allowed in one number"); 1 !== N.type && (N = { value: 0, type: 1, pre: 0 }, y.push(N), d(z, -1)), B = q, d(z, 1), D = o, N.value += K, N.hasDec = !0 } else 7 === J && (B = m, D = p, d(z, 1), y.push(F)); 8 === J ? (B = l, D = o, d(z, 4).push(4), y.push(F), y.push(x)) : 9 === J ? (9 === N.type ? N.value === f.math.add ? (N.value = K, N.show = M, d(z, 1)) : N.value === f.math.sub && "-" === M && (N.value = f.math.add, N.show = "+", d(z, 1)) : 5 !== N.type && 7 !== N.type && 1 !== N.type && 3 !== N.type && 13 !== N.type ? "-" === I && (B = l, D = o, d(z, 2).push(2), y.push(v), y.push(x)) : (y.push(F), d(z, 2)), B = l, D = o) : 10 === J ? (B = l, D = o, d(z, 2), y.push(F)) : 11 === J ? (B = l, D = o, y.push(F)) : 12 === J ? (B = l, D = o, d(z, 6).push(6), y.push(F), y.push(x)) : 13 === J && (B = m, D = p, y.push(F)), d(z, -1), E = c } for (G = z.length; G-- && 0 === z[G];)y.push(w), d(z, -1).pop(); if (!0 !== B[5]) throw new f.Exception("complete the expression"); for (; C--;)y.push(w); return y.push(w), new f(y) }, b.exports = f }, { "./math_function.js": 3 }], 3: [function (a, b, c) { var d = function (a) { this.value = a }; d.math = { isDegree: !0, acos: function (a) { return d.math.isDegree ? 180 / Math.PI * Math.acos(a) : Math.acos(a) }, add: function (a, b) { return a + b }, asin: function (a) { return d.math.isDegree ? 180 / Math.PI * Math.asin(a) : Math.asin(a) }, atan: function (a) { return d.math.isDegree ? 180 / Math.PI * Math.atan(a) : Math.atan(a) }, acosh: function (a) { return Math.log(a + Math.sqrt(a * a - 1)) }, asinh: function (a) { return Math.log(a + Math.sqrt(a * a + 1)) }, atanh: function (a) { return Math.log((1 + a) / (1 - a)) }, C: function (a, b) { var c = 1, e = a - b, f = b; f < e && (f = e, e = b); for (var g = f + 1; g <= a; g++)c *= g; return c / d.math.fact(e) }, changeSign: function (a) { return -a }, cos: function (a) { return d.math.isDegree && (a = d.math.toRadian(a)), Math.cos(a) }, cosh: function (a) { return (Math.pow(Math.E, a) + Math.pow(Math.E, -1 * a)) / 2 }, div: function (a, b) { return a / b }, fact: function (a) { if (a % 1 != 0) return "NaN"; for (var b = 1, c = 2; c <= a; c++)b *= c; return b }, inverse: function (a) { return 1 / a }, log: function (a) { return Math.log(a) / Math.log(10) }, mod: function (a, b) { return a % b }, mul: function (a, b) { return a * b }, P: function (a, b) { for (var c = 1, d = Math.floor(a) - Math.floor(b) + 1; d <= Math.floor(a); d++)c *= d; return c }, Pi: function (a, b, c) { for (var d = 1, e = a; e <= b; e++)d *= Number(c.postfixEval({ n: e })); return d }, pow10x: function (a) { for (var b = 1; a--;)b *= 10; return b }, sigma: function (a, b, c) { for (var d = 0, e = a; e <= b; e++)d += Number(c.postfixEval({ n: e })); return d }, sin: function (a) { return d.math.isDegree && (a = d.math.toRadian(a)), Math.sin(a) }, sinh: function (a) { return (Math.pow(Math.E, a) - Math.pow(Math.E, -1 * a)) / 2 }, sub: function (a, b) { return a - b }, tan: function (a) { return d.math.isDegree && (a = d.math.toRadian(a)), Math.tan(a) }, tanh: function (a) { return d.sinha(a) / d.cosha(a) }, toRadian: function (a) { return a * Math.PI / 180 } }, d.Exception = function (a) { this.message = a }, b.exports = d }, {}], 4: [function (a, b, c) { var d = a("./lexer.js"); d.prototype.toPostfix = function () { "use strict"; for (var a, b, c, e, f, g = [], h = [{ value: "(", type: 4, pre: 0 }], i = this.value, j = 1; j < i.length; j++)if (1 === i[j].type || 3 === i[j].type || 13 === i[j].type) 1 === i[j].type && (i[j].value = Number(i[j].value)), g.push(i[j]); else if (4 === i[j].type) h.push(i[j]); else if (5 === i[j].type) for (; 4 !== (b = h.pop()).type;)g.push(b); else if (11 === i[j].type) { for (; 4 !== (b = h.pop()).type;)g.push(b); h.push(b) } else { a = i[j], e = a.pre, f = h[h.length - 1], c = f.pre; var k = "Math.pow" == f.value && "Math.pow" == a.value; if (e > c) h.push(a); else { for (; c >= e && !k || k && e < c;)b = h.pop(), f = h[h.length - 1], g.push(b), c = f.pre, k = "Math.pow" == a.value && "Math.pow" == f.value; h.push(a) } } return new d(g) }, b.exports = d }, { "./lexer.js": 2 }], 5: [function (a, b, c) { var d = a("./postfix.js"); d.prototype.postfixEval = function (a) { "use strict"; a = a || {}, a.PI = Math.PI, a.E = Math.E; for (var b, c, e, f = [], g = this.value, h = void 0 !== a.n, i = 0; i < g.length; i++)1 === g[i].type ? f.push({ value: g[i].value, type: 1 }) : 3 === g[i].type ? f.push({ value: a[g[i].value], type: 1 }) : 0 === g[i].type ? void 0 === f[f.length - 1].type ? f[f.length - 1].value.push(g[i]) : f[f.length - 1].value = g[i].value(f[f.length - 1].value) : 7 === g[i].type ? void 0 === f[f.length - 1].type ? f[f.length - 1].value.push(g[i]) : f[f.length - 1].value = g[i].value(f[f.length - 1].value) : 8 === g[i].type ? (b = f.pop(), c = f.pop(), f.push({ type: 1, value: g[i].value(c.value, b.value) })) : 10 === g[i].type ? (b = f.pop(), c = f.pop(), void 0 === c.type ? (c.value = c.concat(b), c.value.push(g[i]), f.push(c)) : void 0 === b.type ? (b.unshift(c), b.push(g[i]), f.push(b)) : f.push({ type: 1, value: g[i].value(c.value, b.value) })) : 2 === g[i].type || 9 === g[i].type ? (b = f.pop(), c = f.pop(), void 0 === c.type ? (console.log(c), c = c.concat(b), c.push(g[i]), f.push(c)) : void 0 === b.type ? (b.unshift(c), b.push(g[i]), f.push(b)) : f.push({ type: 1, value: g[i].value(c.value, b.value) })) : 12 === g[i].type ? (b = f.pop(), void 0 !== b.type && (b = [b]), c = f.pop(), e = f.pop(), f.push({ type: 1, value: g[i].value(e.value, c.value, new d(b)) }
26)) : 13 === g[i].type && (h ? f.push({ value: a[g[i].value], type: 3 }) : f.push([g[i]])); if (f.length > 1) throw new d.exception("Uncaught Syntax error"); return f[0].value > 1e15 ? "Infinity" : parseFloat(f[0].value.toFixed(15)) }, d.eval = function (a, b, c) { return void 0 === b ? this.lex(a).toPostfix().postfixEval() : void 0 === c ? void 0 !== b.length ? this.lex(a, b).toPostfix().postfixEval() : this.lex(a).toPostfix().postfixEval(b) : this.lex(a, b).toPostfix().postfixEval(c) }, b.exports = d }, { "./postfix.js": 4 }] }, {}, [1])(1) });
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.