qics
Version:
A Javascript Idealistic Quantum Computer Simulation Library
880 lines (878 loc) • 646 kB
JavaScript
"use strict";
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
/**
* math.js
* https://github.com/josdejong/mathjs
*
* Math.js is an extensive math library for JavaScript and Node.js,
* It features real and complex numbers, units, matrices, a large set of
* mathematical functions, and a flexible expression parser.
*
* @version 3.8.1
* @date 2017-01-22
*
* @license
* Copyright (C) 2013-2016 Jos de Jong <wjosdejong@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
!function (e, t) {
"object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && "object" == (typeof module === "undefined" ? "undefined" : _typeof(module)) ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) ? exports.math = t() : e.math = t();
}(undefined, function () {
return function (e) {
function t(n) {
if (r[n]) return r[n].exports;var i = r[n] = { exports: {}, id: n, loaded: !1 };return e[n].call(i.exports, i, i.exports, t), i.loaded = !0, i.exports;
}var r = {};return t.m = e, t.c = r, t.p = "", t(0);
}([function (e, t, r) {
function n(e) {
var t = i.create(e);return t.create = n, t["import"](r(13)), t;
}var i = r(1);e.exports = n();
}, function (e, t, r) {
e.exports = r(2);
}, function (e, t, r) {
var n = r(3).isFactory,
i = (r(3).deepExtend, r(4)),
a = r(8),
o = r(10),
s = r(12);t.create = function (e) {
function t(e) {
if (!n(e)) throw new Error("Factory object with properties `type`, `name`, and `factory` expected");var i,
a = r.indexOf(e);return -1 === a ? (i = e.math === !0 ? e.factory(c.type, f, t, c.typed, c) : e.factory(c.type, f, t, c.typed), r.push(e), u.push(i)) : i = u[a], i;
}if ("function" != typeof Object.create) throw new Error("ES5 not supported by this JavaScript engine. Please load the es5-shim and es5-sham library for compatibility.");var r = [],
u = [],
c = a.mixin({});c.type = {}, c.expression = { transform: Object.create(c) }, c.typed = i.create(c.type);var f = { epsilon: 1e-12, matrix: "Matrix", number: "number", precision: 64, predictable: !1 };return c["import"] = t(o), c.config = t(s), e && c.config(e), c;
};
}, function (e, t) {
"use strict";
t.clone = function r(e) {
var t = typeof e === "undefined" ? "undefined" : _typeof(e);if ("number" === t || "string" === t || "boolean" === t || null === e || void 0 === e) return e;if ("function" == typeof e.clone) return e.clone();if (Array.isArray(e)) return e.map(function (e) {
return r(e);
});if (e instanceof Number) return new Number(e.valueOf());if (e instanceof String) return new String(e.valueOf());if (e instanceof Boolean) return new Boolean(e.valueOf());if (e instanceof Date) return new Date(e.valueOf());if (e && e.isBigNumber === !0) return e;if (e instanceof RegExp) throw new TypeError("Cannot clone " + e);var n = {};for (var i in e) {
e.hasOwnProperty(i) && (n[i] = r(e[i]));
}return n;
}, t.extend = function (e, t) {
for (var r in t) {
t.hasOwnProperty(r) && (e[r] = t[r]);
}return e;
}, t.deepExtend = function n(e, t) {
if (Array.isArray(t)) throw new TypeError("Arrays are not supported by deepExtend");for (var r in t) {
if (t.hasOwnProperty(r)) if (t[r] && t[r].constructor === Object) void 0 === e[r] && (e[r] = {}), e[r].constructor === Object ? n(e[r], t[r]) : e[r] = t[r];else {
if (Array.isArray(t[r])) throw new TypeError("Arrays are not supported by deepExtend");e[r] = t[r];
}
}return e;
}, t.deepEqual = function (e, r) {
var n, i, a;if (Array.isArray(e)) {
if (!Array.isArray(r)) return !1;if (e.length != r.length) return !1;for (i = 0, a = e.length; a > i; i++) {
if (!t.deepEqual(e[i], r[i])) return !1;
}return !0;
}if (e instanceof Object) {
if (Array.isArray(r) || !(r instanceof Object)) return !1;for (n in e) {
if (!t.deepEqual(e[n], r[n])) return !1;
}for (n in r) {
if (!t.deepEqual(e[n], r[n])) return !1;
}return !0;
}return (typeof e === "undefined" ? "undefined" : _typeof(e)) == (typeof r === "undefined" ? "undefined" : _typeof(r)) && e == r;
}, t.canDefineProperty = function () {
try {
if (Object.defineProperty) return Object.defineProperty({}, "x", { get: function get() {} }), !0;
} catch (e) {}return !1;
}, t.lazy = function (e, r, n) {
if (t.canDefineProperty()) {
var i,
a = !0;Object.defineProperty(e, r, { get: function get() {
return a && (i = n(), a = !1), i;
}, set: function set(e) {
i = e, a = !1;
}, configurable: !0, enumerable: !0 });
} else e[r] = n();
}, t.traverse = function (e, t) {
var r = e;if (t) for (var n = t.split("."), i = 0; i < n.length; i++) {
var a = n[i];a in r || (r[a] = {}), r = r[a];
}return r;
}, t.isFactory = function (e) {
return e && "function" == typeof e.factory;
};
}, function (e, t, r) {
var n = r(5),
i = r(6).digits,
_a = function a() {
return _a = n.create, n;
};t.create = function (e) {
var t = _a();return t.types = [{ name: "number", test: function test(e) {
return "number" == typeof e;
} }, { name: "Complex", test: function test(e) {
return e && e.isComplex;
} }, { name: "BigNumber", test: function test(e) {
return e && e.isBigNumber;
} }, { name: "Fraction", test: function test(e) {
return e && e.isFraction;
} }, { name: "Unit", test: function test(e) {
return e && e.isUnit;
} }, { name: "string", test: function test(e) {
return "string" == typeof e;
} }, { name: "Array", test: Array.isArray }, { name: "Matrix", test: function test(e) {
return e && e.isMatrix;
} }, { name: "DenseMatrix", test: function test(e) {
return e && e.isDenseMatrix;
} }, { name: "SparseMatrix", test: function test(e) {
return e && e.isSparseMatrix;
} }, { name: "ImmutableDenseMatrix", test: function test(e) {
return e && e.isImmutableDenseMatrix;
} }, { name: "Range", test: function test(e) {
return e && e.isRange;
} }, { name: "Index", test: function test(e) {
return e && e.isIndex;
} }, { name: "boolean", test: function test(e) {
return "boolean" == typeof e;
} }, { name: "ResultSet", test: function test(e) {
return e && e.isResultSet;
} }, { name: "Help", test: function test(e) {
return e && e.isHelp;
} }, { name: "function", test: function test(e) {
return "function" == typeof e;
} }, { name: "Date", test: function test(e) {
return e instanceof Date;
} }, { name: "RegExp", test: function test(e) {
return e instanceof RegExp;
} }, { name: "Object", test: function test(e) {
return "object" == (typeof e === "undefined" ? "undefined" : _typeof(e));
} }, { name: "null", test: function test(e) {
return null === e;
} }, { name: "undefined", test: function test(e) {
return void 0 === e;
} }], t.conversions = [{ from: "number", to: "BigNumber", convert: function convert(t) {
if (i(t) > 15) throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: " + t + "). Use function bignumber(x) to convert to BigNumber.");return new e.BigNumber(t);
} }, { from: "number", to: "Complex", convert: function convert(t) {
return new e.Complex(t, 0);
} }, { from: "number", to: "string", convert: function convert(e) {
return e + "";
} }, { from: "BigNumber", to: "Complex", convert: function convert(t) {
return new e.Complex(t.toNumber(), 0);
} }, { from: "Fraction", to: "BigNumber", convert: function convert(e) {
throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.");
} }, { from: "Fraction", to: "Complex", convert: function convert(t) {
return new e.Complex(t.valueOf(), 0);
} }, { from: "number", to: "Fraction", convert: function convert(t) {
if (i(t) > 15) throw new TypeError("Cannot implicitly convert a number with >15 significant digits to Fraction (value: " + t + "). Use function fraction(x) to convert to Fraction.");return new e.Fraction(t);
} }, { from: "string", to: "number", convert: function convert(e) {
var t = Number(e);if (isNaN(t)) throw new Error('Cannot convert "' + e + '" to a number');return t;
} }, { from: "boolean", to: "number", convert: function convert(e) {
return +e;
} }, { from: "boolean", to: "BigNumber", convert: function convert(t) {
return new e.BigNumber(+t);
} }, { from: "boolean", to: "Fraction", convert: function convert(t) {
return new e.Fraction(+t);
} }, { from: "boolean", to: "string", convert: function convert(e) {
return +e;
} }, { from: "null", to: "number", convert: function convert() {
return 0;
} }, { from: "null", to: "string", convert: function convert() {
return "null";
} }, { from: "null", to: "BigNumber", convert: function convert() {
return new e.BigNumber(0);
} }, { from: "null", to: "Fraction", convert: function convert() {
return new e.Fraction(0);
} }, { from: "Array", to: "Matrix", convert: function convert(t) {
return new e.DenseMatrix(t);
} }, { from: "Matrix", to: "Array", convert: function convert(e) {
return e.valueOf();
} }], t;
};
}, function (e, t, r) {
var n, i, a;!function (r, o) {
i = [], n = o, a = "function" == typeof n ? n.apply(t, i) : n, !(void 0 !== a && (e.exports = a));
}(this, function () {
function e() {
function t(e) {
for (var t, r = 0; r < M.types.length; r++) {
var n = M.types[r];if (n.name === e) {
t = n.test;break;
}
}if (!t) {
var i;for (r = 0; r < M.types.length; r++) {
if (n = M.types[r], n.name.toLowerCase() == e.toLowerCase()) {
i = n.name;break;
}
}throw new Error('Unknown type "' + e + '"' + (i ? '. Did you mean "' + i + '"?' : ""));
}return t;
}function r(e) {
for (var t = "", r = 0; r < e.length; r++) {
var n = e[r];if (n.signatures && "" != n.name) if ("" == t) t = n.name;else if (t != n.name) {
var i = new Error("Function names do not match (expected: " + t + ", actual: " + n.name + ")");throw i.data = { actual: n.name, expected: t }, i;
}
}return t;
}function n(e, t, r, n, i) {
var a,
o = d(n),
s = i ? i.split(",") : null,
u = e || "unnamed",
c = s && g(s, "any"),
f = { fn: e, index: r, actual: n, expected: s };a = s ? t > r && !c ? "Unexpected type of argument in function " + u + " (expected: " + s.join(" or ") + ", actual: " + o + ", index: " + r + ")" : "Too few arguments in function " + u + " (expected: " + s.join(" or ") + ", index: " + r + ")" : "Too many arguments in function " + u + " (expected: " + r + ", actual: " + t + ")";var l = new TypeError(a);return l.data = f, l;
}function i(e) {
this.name = e || "refs", this.categories = {};
}function a(e, t) {
if ("string" == typeof e) {
var r = e.trim(),
n = "..." === r.substr(0, 3);if (n && (r = r.substr(3)), "" === r) this.types = ["any"];else {
this.types = r.split("|");for (var i = 0; i < this.types.length; i++) {
this.types[i] = this.types[i].trim();
}
}
} else {
if (!Array.isArray(e)) {
if (e instanceof a) return e.clone();throw new Error("String or Array expected");
}this.types = e;
}this.conversions = [], this.varArgs = n || t || !1, this.anyType = -1 !== this.types.indexOf("any");
}function o(e, t) {
var r;if ("string" == typeof e) r = "" !== e ? e.split(",") : [];else {
if (!Array.isArray(e)) throw new Error("string or Array expected");r = e;
}this.params = new Array(r.length), this.anyType = !1, this.varArgs = !1;for (var n = 0; n < r.length; n++) {
var i = new a(r[n]);if (this.params[n] = i, i.anyType && (this.anyType = !0), n === r.length - 1) this.varArgs = i.varArgs;else if (i.varArgs) throw new SyntaxError('Unexpected variable arguments operator "..."');
}this.fn = t;
}function s(e, t, r, n) {
this.path = e || [], this.param = e[e.length - 1] || null, this.signature = t || null, this.childs = r || [], this.fallThrough = n || !1;
}function u(e) {
var t,
r,
n = {},
i = [];for (var a in e) {
if (e.hasOwnProperty(a)) {
var s = e[a];if (t = new o(a, s), t.ignore()) continue;var u = t.expand();for (r = 0; r < u.length; r++) {
var c = u[r],
f = c.toString(),
l = n[f];if (l) {
var p = o.compare(c, l);if (0 > p) n[f] = c;else if (0 === p) throw new Error('Signature "' + f + '" is defined twice');
} else n[f] = c;
}
}
}for (f in n) {
n.hasOwnProperty(f) && i.push(n[f]);
}for (i.sort(function (e, t) {
return o.compare(e, t);
}), r = 0; r < i.length; r++) {
if (t = i[r], t.varArgs) for (var h = t.params.length - 1, m = t.params[h], d = 0; d < m.types.length;) {
if (m.conversions[d]) for (var v = m.types[d], y = 0; y < i.length; y++) {
var x = i[y],
b = x.params[h];if (x !== t && b && g(b.types, v) && !b.conversions[h]) {
m.types.splice(d, 1), m.conversions.splice(d, 1), d--;break;
}
}d++;
}
}return i;
}function c(e) {
for (var t = [], r = 0; r < e.length; r++) {
e[r].anyType && t.push(e[r]);
}return t;
}function f(e) {
for (var t = {}, r = 0; r < e.length; r++) {
var n = e[r];if (n.fn && !n.hasConversions()) {
var i = n.params.join(",");t[i] = n.fn;
}
}return t;
}function l(e, t, r) {
var n,
i,
o,
u = t.length,
c = [];for (n = 0; n < e.length; n++) {
i = e[n], i.params.length !== u || o || (o = i), void 0 != i.params[u] && c.push(i);
}c.sort(function (e, t) {
return a.compare(e.params[u], t.params[u]);
});var f = [];for (n = 0; n < c.length; n++) {
i = c[n];var p = i.params[u],
h = f.filter(function (e) {
return e.param.overlapping(p);
})[0];if (h) {
if (h.param.varArgs) throw new Error('Conflicting types "' + h.param + '" and "' + p + '"');h.signatures.push(i);
} else f.push({ param: p, signatures: [i] });
}var m = [];for (n = 0; n < r.length; n++) {
r[n].paramsStartWith(t) && m.push(r[n]);
}var d = !1;for (n = 0; n < m.length; n++) {
if (!g(e, m[n])) {
d = !0;break;
}
}var v = new Array(f.length);for (n = 0; n < f.length; n++) {
var y = f[n];v[n] = l(y.signatures, t.concat(y.param), m);
}return new s(t, o, v, d);
}function p(e) {
for (var t = [], r = 0; e > r; r++) {
t[r] = "arg" + r;
}return t;
}function h(e, t) {
var r = new i(),
a = u(t);if (0 == a.length) throw new Error("No signatures provided");var o = c(a),
s = l(a, [], o),
h = [],
d = e || "",
g = p(m(a));h.push("function " + d + "(" + g.join(", ") + ") {"), h.push(' "use strict";'), h.push(" var name = '" + d + "';"), h.push(s.toCode(r, " ", !1)), h.push("}");var v = [r.toCode(), "return " + h.join("\n")].join("\n"),
y = new Function(r.name, "createError", v),
x = y(r, n);return x.signatures = f(a), x;
}function m(e) {
for (var t = 0, r = 0; r < e.length; r++) {
var n = e[r].params.length;n > t && (t = n);
}return t;
}function d(e) {
for (var t, r = 0; r < M.types.length; r++) {
var n = M.types[r];if ("Object" === n.name) t = n;else if (n.test(e)) return n.name;
}return t && t.test(e) ? t.name : "unknown";
}function g(e, t) {
return -1 !== e.indexOf(t);
}function v(e) {
return e[e.length - 1];
}function y(e, t) {
if (!e.signatures) throw new TypeError("Function is no typed-function");var r;if ("string" == typeof t) {
r = t.split(",");for (var n = 0; n < r.length; n++) {
r[n] = r[n].trim();
}
} else {
if (!Array.isArray(t)) throw new TypeError("String array or a comma separated string expected");r = t;
}var i = r.join(","),
a = e.signatures[i];if (a) return a;throw new TypeError("Signature not found (signature: " + (e.name || "unnamed") + "(" + r.join(", ") + "))");
}function x(e, t) {
var r = d(e);if (t === r) return e;for (var n = 0; n < M.conversions.length; n++) {
var i = M.conversions[n];if (i.from === r && i.to === t) return i.convert(e);
}throw new Error("Cannot convert from " + r + " to " + t);
}i.prototype.add = function (e, t) {
var r = t || "fn";this.categories[r] || (this.categories[r] = []);var n = this.categories[r].indexOf(e);return -1 == n && (n = this.categories[r].length, this.categories[r].push(e)), r + n;
}, i.prototype.toCode = function () {
var e = [],
t = this.name + ".categories",
r = this.categories;for (var n in r) {
if (r.hasOwnProperty(n)) for (var i = r[n], a = 0; a < i.length; a++) {
e.push("var " + n + a + " = " + t + "['" + n + "'][" + a + "];");
}
}return e.join("\n");
}, a.compare = function (e, t) {
if (e.anyType) return 1;if (t.anyType) return -1;if (g(e.types, "Object")) return 1;if (g(t.types, "Object")) return -1;if (e.hasConversions()) {
if (t.hasConversions()) {
var r, n, i;for (r = 0; r < e.conversions.length; r++) {
if (void 0 !== e.conversions[r]) {
n = e.conversions[r];break;
}
}for (r = 0; r < t.conversions.length; r++) {
if (void 0 !== t.conversions[r]) {
i = t.conversions[r];break;
}
}return M.conversions.indexOf(n) - M.conversions.indexOf(i);
}return 1;
}if (t.hasConversions()) return -1;var a, o;for (r = 0; r < M.types.length; r++) {
if (M.types[r].name === e.types[0]) {
a = r;break;
}
}for (r = 0; r < M.types.length; r++) {
if (M.types[r].name === t.types[0]) {
o = r;break;
}
}return a - o;
}, a.prototype.overlapping = function (e) {
for (var t = 0; t < this.types.length; t++) {
if (g(e.types, this.types[t])) return !0;
}return !1;
}, a.prototype.matches = function (e) {
return this.anyType || e.anyType || this.overlapping(e);
}, a.prototype.clone = function () {
var e = new a(this.types.slice(), this.varArgs);return e.conversions = this.conversions.slice(), e;
}, a.prototype.hasConversions = function () {
return this.conversions.length > 0;
}, a.prototype.contains = function (e) {
for (var t = 0; t < this.types.length; t++) {
if (e[this.types[t]]) return !0;
}return !1;
}, a.prototype.toString = function (e) {
for (var t = [], r = {}, n = 0; n < this.types.length; n++) {
var i = this.conversions[n],
a = e && i ? i.to : this.types[n];a in r || (r[a] = !0, t.push(a));
}return (this.varArgs ? "..." : "") + t.join("|");
}, o.prototype.clone = function () {
return new o(this.params.slice(), this.fn);
}, o.prototype.expand = function () {
function e(r, n) {
if (n.length < r.params.length) {
var i,
s,
u,
c = r.params[n.length];if (c.varArgs) {
for (s = c.clone(), i = 0; i < M.conversions.length; i++) {
if (u = M.conversions[i], !g(c.types, u.from) && g(c.types, u.to)) {
var f = s.types.length;s.types[f] = u.from, s.conversions[f] = u;
}
}e(r, n.concat(s));
} else {
for (i = 0; i < c.types.length; i++) {
e(r, n.concat(new a(c.types[i])));
}for (i = 0; i < M.conversions.length; i++) {
u = M.conversions[i], !g(c.types, u.from) && g(c.types, u.to) && (s = new a(u.from), s.conversions[0] = u, e(r, n.concat(s)));
}
}
} else t.push(new o(n, r.fn));
}var t = [];return e(this, []), t;
}, o.compare = function (e, t) {
if (e.params.length > t.params.length) return 1;if (e.params.length < t.params.length) return -1;var r,
n = e.params.length,
i = 0,
o = 0;for (r = 0; n > r; r++) {
e.params[r].hasConversions() && i++, t.params[r].hasConversions() && o++;
}if (i > o) return 1;if (o > i) return -1;for (r = 0; r < e.params.length; r++) {
var s = a.compare(e.params[r], t.params[r]);if (0 !== s) return s;
}return 0;
}, o.prototype.hasConversions = function () {
for (var e = 0; e < this.params.length; e++) {
if (this.params[e].hasConversions()) return !0;
}return !1;
}, o.prototype.ignore = function () {
for (var e = {}, t = 0; t < M.ignore.length; t++) {
e[M.ignore[t]] = !0;
}for (t = 0; t < this.params.length; t++) {
if (this.params[t].contains(e)) return !0;
}return !1;
}, o.prototype.paramsStartWith = function (e) {
if (0 === e.length) return !0;for (var t = v(this.params), r = v(e), n = 0; n < e.length; n++) {
var i = this.params[n] || (t.varArgs ? t : null),
a = e[n] || (r.varArgs ? r : null);if (!i || !a || !i.matches(a)) return !1;
}return !0;
}, o.prototype.toCode = function (e, t) {
for (var r = [], n = new Array(this.params.length), i = 0; i < this.params.length; i++) {
var a = this.params[i],
o = a.conversions[0];a.varArgs ? n[i] = "varArgs" : o ? n[i] = e.add(o.convert, "convert") + "(arg" + i + ")" : n[i] = "arg" + i;
}var s = this.fn ? e.add(this.fn, "signature") : void 0;return s ? t + "return " + s + "(" + n.join(", ") + "); // signature: " + this.params.join(", ") : r.join("\n");
}, o.prototype.toString = function () {
return this.params.join(", ");
}, s.prototype.toCode = function (e, r) {
var n = [];if (this.param) {
var i = this.path.length - 1,
a = this.param.conversions[0],
o = "// type: " + (a ? a.from + " (convert to " + a.to + ")" : this.param);if (this.param.varArgs) {
if (this.param.anyType) n.push(r + "if (arguments.length > " + i + ") {"), n.push(r + " var varArgs = [];"), n.push(r + " for (var i = " + i + "; i < arguments.length; i++) {"), n.push(r + " varArgs.push(arguments[i]);"), n.push(r + " }"), n.push(this.signature.toCode(e, r + " ")), n.push(r + "}");else {
for (var s = function (r, n) {
for (var i = [], a = 0; a < r.length; a++) {
i[a] = e.add(t(r[a]), "test") + "(" + n + ")";
}return i.join(" || ");
}.bind(this), u = this.param.types, c = [], f = 0; f < u.length; f++) {
void 0 === this.param.conversions[f] && c.push(u[f]);
}n.push(r + "if (" + s(u, "arg" + i) + ") { " + o), n.push(r + " var varArgs = [arg" + i + "];"), n.push(r + " for (var i = " + (i + 1) + "; i < arguments.length; i++) {"), n.push(r + " if (" + s(c, "arguments[i]") + ") {"), n.push(r + " varArgs.push(arguments[i]);");for (var f = 0; f < u.length; f++) {
var l = this.param.conversions[f];if (l) {
var p = e.add(t(u[f]), "test"),
h = e.add(l.convert, "convert");n.push(r + " }"), n.push(r + " else if (" + p + "(arguments[i])) {"), n.push(r + " varArgs.push(" + h + "(arguments[i]));");
}
}n.push(r + " } else {"), n.push(r + " throw createError(name, arguments.length, i, arguments[i], '" + c.join(",") + "');"), n.push(r + " }"), n.push(r + " }"), n.push(this.signature.toCode(e, r + " ")), n.push(r + "}");
}
} else if (this.param.anyType) n.push(r + "// type: any"), n.push(this._innerCode(e, r));else {
var m = this.param.types[0],
p = "any" !== m ? e.add(t(m), "test") : null;n.push(r + "if (" + p + "(arg" + i + ")) { " + o), n.push(this._innerCode(e, r + " ")), n.push(r + "}");
}
} else n.push(this._innerCode(e, r));return n.join("\n");
}, s.prototype._innerCode = function (e, t) {
var r,
n = [];for (this.signature && (n.push(t + "if (arguments.length === " + this.path.length + ") {"), n.push(this.signature.toCode(e, t + " ")), n.push(t + "}")), r = 0; r < this.childs.length; r++) {
n.push(this.childs[r].toCode(e, t));
}if (!this.fallThrough || this.param && this.param.anyType) {
var i = this._exceptions(e, t);i && n.push(i);
}return n.join("\n");
}, s.prototype._exceptions = function (e, t) {
var r = this.path.length;if (0 === this.childs.length) return [t + "if (arguments.length > " + r + ") {", t + " throw createError(name, arguments.length, " + r + ", arguments[" + r + "]);", t + "}"].join("\n");for (var n = {}, i = [], a = 0; a < this.childs.length; a++) {
var o = this.childs[a];if (o.param) for (var s = 0; s < o.param.types.length; s++) {
var u = o.param.types[s];u in n || o.param.conversions[s] || (n[u] = !0, i.push(u));
}
}return t + "throw createError(name, arguments.length, " + r + ", arguments[" + r + "], '" + i.join(",") + "');";
};var b = [{ name: "number", test: function test(e) {
return "number" == typeof e;
} }, { name: "string", test: function test(e) {
return "string" == typeof e;
} }, { name: "boolean", test: function test(e) {
return "boolean" == typeof e;
} }, { name: "Function", test: function test(e) {
return "function" == typeof e;
} }, { name: "Array", test: Array.isArray }, { name: "Date", test: function test(e) {
return e instanceof Date;
} }, { name: "RegExp", test: function test(e) {
return e instanceof RegExp;
} }, { name: "Object", test: function test(e) {
return "object" == (typeof e === "undefined" ? "undefined" : _typeof(e));
} }, { name: "null", test: function test(e) {
return null === e;
} }, { name: "undefined", test: function test(e) {
return void 0 === e;
} }],
w = {},
N = [],
E = [],
M = { config: w, types: b, conversions: N, ignore: E };return M = h("typed", { Object: function Object(e) {
var t = [];for (var n in e) {
e.hasOwnProperty(n) && t.push(e[n]);
}var i = r(t);return h(i, e);
}, "string, Object": h, "...Function": function Function(e) {
for (var t, n = r(e), i = {}, a = 0; a < e.length; a++) {
var o = e[a];if ("object" != _typeof(o.signatures)) throw t = new TypeError("Function is no typed-function (index: " + a + ")"), t.data = { index: a }, t;for (var s in o.signatures) {
if (o.signatures.hasOwnProperty(s)) if (i.hasOwnProperty(s)) {
if (o.signatures[s] !== i[s]) throw t = new Error('Signature "' + s + '" is defined twice'), t.data = { signature: s }, t;
} else i[s] = o.signatures[s];
}
}return h(n, i);
} }), M.config = w, M.types = b, M.conversions = N, M.ignore = E, M.create = e, M.find = y, M.convert = x, M.addType = function (e) {
if (!e || "string" != typeof e.name || "function" != typeof e.test) throw new TypeError("Object with properties {name: string, test: function} expected");M.types.push(e);
}, M.addConversion = function (e) {
if (!e || "string" != typeof e.from || "string" != typeof e.to || "function" != typeof e.convert) throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");M.conversions.push(e);
}, M;
}return e();
});
}, function (e, t, r) {
"use strict";
var n = r(7);t.isNumber = function (e) {
return "number" == typeof e;
}, t.isInteger = function (e) {
return isFinite(e) ? e == Math.round(e) : !1;
}, t.sign = Math.sign || function (e) {
return e > 0 ? 1 : 0 > e ? -1 : 0;
}, t.format = function (e, r) {
if ("function" == typeof r) return r(e);if (e === 1 / 0) return "Infinity";if (e === -(1 / 0)) return "-Infinity";if (isNaN(e)) return "NaN";var n = "auto",
i = void 0;switch (r && (r.notation && (n = r.notation), t.isNumber(r) ? i = r : r.precision && (i = r.precision)), n) {case "fixed":
return t.toFixed(e, i);case "exponential":
return t.toExponential(e, i);case "engineering":
return t.toEngineering(e, i);case "auto":
return t.toPrecision(e, i, r && r.exponential).replace(/((\.\d*?)(0+))($|e)/, function () {
var e = arguments[2],
t = arguments[4];return "." !== e ? e + t : t;
});default:
throw new Error('Unknown notation "' + n + '". Choose "auto", "exponential", or "fixed".');}
}, t.toExponential = function (e, t) {
return new n(e).toExponential(t);
}, t.toEngineering = function (e, t) {
return new n(e).toEngineering(t);
}, t.toFixed = function (e, t) {
return new n(e).toFixed(t);
}, t.toPrecision = function (e, t, r) {
return new n(e).toPrecision(t, r);
}, t.digits = function (e) {
return e.toExponential().replace(/e.*$/, "").replace(/^0\.?0*|\./, "").length;
}, t.DBL_EPSILON = Number.EPSILON || 2.220446049250313e-16, t.nearlyEqual = function (e, r, n) {
if (null == n) return e == r;if (e == r) return !0;if (isNaN(e) || isNaN(r)) return !1;if (isFinite(e) && isFinite(r)) {
var i = Math.abs(e - r);return i < t.DBL_EPSILON ? !0 : i <= Math.max(Math.abs(e), Math.abs(r)) * n;
}return !1;
};
}, function (e, t) {
"use strict";
function r(e) {
var t = String(e).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if (!t) throw new SyntaxError("Invalid number");var r = t[1],
n = t[2],
i = parseFloat(t[4] || "0"),
a = n.indexOf(".");i += -1 !== a ? a - 1 : n.length - 1, this.sign = r, this.coefficients = n.replace(".", "").replace(/^0*/, function (e) {
return i -= e.length, "";
}).replace(/0*$/, "").split("").map(function (e) {
return parseInt(e);
}), 0 === this.coefficients.length && (this.coefficients.push(0), i++), this.exponent = i;
}function n(e) {
for (var t = [], r = 0; e > r; r++) {
t.push(0);
}return t;
}r.prototype.toEngineering = function (e) {
var t = this.roundDigits(e),
r = t.exponent,
i = t.coefficients,
a = r % 3 === 0 ? r : 0 > r ? r - 3 - r % 3 : r - r % 3,
o = r >= 0 ? r : Math.abs(a);i.length - 1 < o && (i = i.concat(n(o - (i.length - 1))));for (var s = Math.abs(r - a), u = 1, c = ""; --s >= 0;) {
u++;
}var f = i.slice(u).join(""),
l = f.match(/[1-9]/) ? "." + f : "";return c = i.slice(0, u).join("") + l, c += "e" + (r >= 0 ? "+" : "") + a.toString(), t.sign + c;
}, r.prototype.toFixed = function (e) {
var t = this.roundDigits(this.exponent + 1 + (e || 0)),
r = t.coefficients,
i = t.exponent + 1,
a = i + (e || 0);return r.length < a && (r = r.concat(n(a - r.length))), 0 > i && (r = n(-i + 1).concat(r), i = 1), e && r.splice(i, 0, 0 === i ? "0." : "."), this.sign + r.join("");
}, r.prototype.toExponential = function (e) {
var t = e ? this.roundDigits(e) : this.clone(),
r = t.coefficients,
i = t.exponent;r.length < e && (r = r.concat(n(e - r.length)));var a = r.shift();return this.sign + a + (r.length > 0 ? "." + r.join("") : "") + "e" + (i >= 0 ? "+" : "") + i;
}, r.prototype.toPrecision = function (e, t) {
var r = t && void 0 !== t.lower ? t.lower : .001,
i = t && void 0 !== t.upper ? t.upper : 1e5,
a = Math.abs(Math.pow(10, this.exponent));if (r > a || a >= i) return this.toExponential(e);var o = e ? this.roundDigits(e) : this.clone(),
s = o.coefficients,
u = o.exponent;s.length < e && (s = s.concat(n(e - s.length))), s = s.concat(n(u - s.length + 1 + (s.length < e ? e - s.length : 0))), s = n(-u).concat(s);var c = u > 0 ? u : 0;return c < s.length - 1 && s.splice(c + 1, 0, "."), this.sign + s.join("");
}, r.prototype.clone = function () {
var e = new r("0");return e.sign = this.sign, e.coefficients = this.coefficients.slice(0), e.exponent = this.exponent, e;
}, r.prototype.roundDigits = function (e) {
for (var t = this.clone(), r = t.coefficients; 0 >= e;) {
r.unshift(0), t.exponent++, e++;
}if (r.length > e) {
var n = r.splice(e, r.length - e);if (n[0] >= 5) {
var i = e - 1;for (r[i]++; 10 === r[i];) {
r.pop(), 0 === i && (r.unshift(0), t.exponent++, i++), i--, r[i]++;
}
}
}return t;
}, e.exports = r;
}, function (e, t, r) {
var n = r(9);t.mixin = function (e) {
var t = new n();return e.on = t.on.bind(t), e.off = t.off.bind(t), e.once = t.once.bind(t), e.emit = t.emit.bind(t), e;
};
}, function (e, t) {
function r() {}r.prototype = { on: function on(e, t, r) {
var n = this.e || (this.e = {});return (n[e] || (n[e] = [])).push({ fn: t, ctx: r }), this;
}, once: function once(e, t, r) {
function n() {
i.off(e, n), t.apply(r, arguments);
}var i = this;return n._ = t, this.on(e, n, r);
}, emit: function emit(e) {
var t = [].slice.call(arguments, 1),
r = ((this.e || (this.e = {}))[e] || []).slice(),
n = 0,
i = r.length;for (n; i > n; n++) {
r[n].fn.apply(r[n].ctx, t);
}return this;
}, off: function off(e, t) {
var r = this.e || (this.e = {}),
n = r[e],
i = [];if (n && t) for (var a = 0, o = n.length; o > a; a++) {
n[a].fn !== t && n[a].fn._ !== t && i.push(n[a]);
}return i.length ? r[e] = i : delete r[e], this;
} }, e.exports = r;
}, function (e, t, r) {
"use strict";
function n(e, t, r, n, u) {
function c(e, t) {
var r = arguments.length;if (1 != r && 2 != r) throw new s("import", r, 1, 2);if (t || (t = {}), a(e)) h(e, t);else if (Array.isArray(e)) e.forEach(function (e) {
c(e, t);
});else if ("object" == (typeof e === "undefined" ? "undefined" : _typeof(e))) {
for (var n in e) {
if (e.hasOwnProperty(n)) {
var i = e[n];m(i) ? f(n, i, t) : a(e) ? h(e, t) : c(i, t);
}
}
} else if (!t.silent) throw new TypeError("Factory, Object, or Array expected");
}function f(e, t, r) {
if (r.wrap && "function" == typeof t && (t = p(t)), d(u[e]) && d(t)) return t = r.override ? n(e, t.signatures) : n(u[e], t), u[e] = t, l(e, t), void u.emit("import", e, function () {
return t;
});if (void 0 === u[e] || r.override) return u[e] = t, l(e, t), void u.emit("import", e, function () {
return t;
});if (!r.silent) throw new Error('Cannot import "' + e + '": already exists');
}function l(e, t) {
t && "function" == typeof t.transform && (u.expression.transform[e] = t.transform);
}function p(e) {
var t = function t() {
for (var t = [], r = 0, n = arguments.length; n > r; r++) {
var i = arguments[r];t[r] = i && i.valueOf();
}return e.apply(u, t);
};return e.transform && (t.transform = e.transform), t;
}function h(e, t) {
if ("string" == typeof e.name) {
var a = e.name,
s = e.path ? o(u, e.path) : u,
c = s.hasOwnProperty(a) ? s[a] : void 0,
f = function f() {
var i = r(e);if (d(c) && d(i)) return t.override || (i = n(c, i)), i;if (void 0 === c || t.override) return i;if (!t.silent) throw new Error('Cannot import "' + a + '": already exists');
};e.lazy !== !1 ? i(s, a, f) : s[a] = f(), u.emit("import", a, f, e.path);
} else r(e);
}function m(e) {
return "function" == typeof e || "number" == typeof e || "string" == typeof e || "boolean" == typeof e || null === e || e && e.isUnit === !0 || e && e.isComplex === !0 || e && e.isBigNumber === !0 || e && e.isFraction === !0 || e && e.isMatrix === !0 || e && Array.isArray(e) === !0;
}function d(e) {
return "function" == typeof e && "object" == _typeof(e.signatures);
}return c;
}var i = r(3).lazy,
a = r(3).isFactory,
o = r(3).traverse,
s = (r(3).extend, r(11));t.math = !0, t.name = "import", t.factory = n, t.lazy = !0;
}, function (e, t) {
"use strict";
function r(e, t, n, i) {
if (!(this instanceof r)) throw new SyntaxError("Constructor must be called with the new operator");this.fn = e, this.count = t, this.min = n, this.max = i, this.message = "Wrong number of arguments in function " + e + " (" + t + " provided, " + n + (void 0 != i ? "-" + i : "") + " expected)", this.stack = new Error().stack;
}r.prototype = new Error(), r.prototype.constructor = Error, r.prototype.name = "ArgumentsError", r.prototype.isArgumentsError = !0, e.exports = r;
}, function (e, t, r) {
"use strict";
function n(e, t, r, n, i) {
function a(e) {
if (e) {
var r = s.clone(t);o(e, "matrix", u), o(e, "number", c), s.deepExtend(t, e);var n = s.clone(t);return i.emit("config", n, r), n;
}return s.clone(t);
}var u = ["Matrix", "Array"],
c = ["number", "BigNumber", "Fraction"];return a.MATRIX = u, a.NUMBER = c, a;
}function i(e, t) {
return -1 !== e.indexOf(t);
}function a(e, t) {
return e.map(function (e) {
return e.toLowerCase();
}).indexOf(t.toLowerCase());
}function o(e, t, r) {
if (void 0 !== e[t] && !i(r, e[t])) {
var n = a(r, e[t]);-1 !== n ? (console.warn('Warning: Wrong casing for configuration option "' + t + '", should be "' + r[n] + '" instead of "' + e[t] + '".'), e[t] = r[n]) : console.warn('Warning: Unknown value "' + e[t] + '" for configuration option "' + t + '". Available options: ' + r.map(JSON.stringify).join(", ") + ".");
}
}var s = r(3);t.name = "config", t.math = !0, t.factory = n;
}, function (e, t, r) {
e.exports = [r(14), r(100), r(102), r(339), r(507), r(509)];
}, function (e, t, r) {
e.exports = [r(15), r(20), r(21), r(26), r(33), r(37), r(70), r(71), r(73), r(74)];
}, function (e, t, r) {
e.exports = [r(16), r(18)];
}, function (e, t, r) {
function n(e, t, r, n, a) {
var o = i.clone({ precision: t.precision });return o.prototype.type = "BigNumber", o.prototype.isBigNumber = !0, o.prototype.toJSON = function () {
return { mathjs: "BigNumber", value: this.toString() };
}, o.fromJSON = function (e) {
return new o(e.value);
}, a.on("config", function (e, t) {
e.precision !== t.precision && o.config({ precision: e.precision });
}), o;
}var i = r(17);t.name = "BigNumber", t.path = "type", t.factory = n, t.math = !0;
}, function (e, t, r) {
var n;!function (i) {
"use strict";
function a(e) {
var t,
r,
n,
i = e.length - 1,
a = "",
o = e[0];if (i > 0) {
for (a += o, t = 1; i > t; t++) {
n = e[t] + "", r = Re - n.length, r && (a += g(r)), a += n;
}o = e[t], n = o + "", r = Re - n.length, r && (a += g(r));
} else if (0 === o) return "0";for (; o % 10 === 0;) {
o /= 10;
}return a + o;
}function o(e, t, r) {
if (e !== ~~e || t > e || e > r) throw Error(Oe + e);
}function s(e, t, r, n) {
var i, a, o, s;for (a = e[0]; a >= 10; a /= 10) {
--t;
}return --t < 0 ? (t += Re, i = 0) : (i = Math.ceil((t + 1) / Re), t %= Re), a = Ce(10, Re - t), s = e[i] % a | 0, null == n ? 3 > t ? (0 == t ? s = s / 100 | 0 : 1 == t && (s = s / 10 | 0), o = 4 > r && 99999 == s || r > 3 && 49999 == s || 5e4 == s || 0 == s) : o = (4 > r && s + 1 == a || r > 3 && s + 1 == a / 2) && (e[i + 1] / a / 100 | 0) == Ce(10, t - 2) - 1 || (s == a / 2 || 0 == s) && 0 == (e[i + 1] / a / 100 | 0) : 4 > t ? (0 == t ? s = s / 1e3 | 0 : 1 == t ? s = s / 100 | 0 : 2 == t && (s = s / 10 | 0), o = (n || 4 > r) && 9999 == s || !n && r > 3 && 4999 == s) : o = ((n || 4 > r) && s + 1 == a || !n && r > 3 && s + 1 == a / 2) && (e[i + 1] / a / 1e3 | 0) == Ce(10, t - 3) - 1, o;
}function u(e, t, r) {
for (var n, i, a = [0], o = 0, s = e.length; s > o;) {
for (i = a.length; i--;) {
a[i] *= t;
}for (a[0] += xe.indexOf(e.charAt(o++)), n = 0; n < a.length; n++) {
a[n] > r - 1 && (void 0 === a[n + 1] && (a[n + 1] = 0), a[n + 1] += a[n] / r | 0, a[n] %= r);
}
}return a.reverse();
}function c(e, t) {
var r,
n,
i = t.d.length;32 > i ? (r = Math.ceil(i / 3), n = Math.pow(4, -r).toString()) : (r = 16, n = "2.3283064365386962890625e-10"), e.precision += r, t = O(e, 1, t.times(n), new e(1));for (var a = r; a--;) {
var o = t.times(t);t = o.times(o).minus(o).times(8).plus(1);
}return e.precision -= r, t;
}function f(e, t, r, n) {
var i,
a,
o,
s,
u,
c,
f,
l,
p,
h = e.constructor;e: if (null != t) {
if (l = e.d, !l) return e;for (i = 1, s = l[0]; s >= 10; s /= 10) {
i++;
}if (a = t - i, 0 > a) a += Re, o = t, f = l[p = 0], u = f / Ce(10, i - o - 1) % 10 | 0;else if (p = Math.ceil((a + 1) / Re), s = l.length, p >= s) {
if (!n) break e;for (; s++ <= p;) {
l.push(0);
}f = u = 0, i = 1, a %= Re, o = a - Re + 1;
} else {
for (f = s = l[p], i = 1; s >= 10; s /= 10) {
i++;
}a %= Re, o = a - Re + i, u = 0 > o ? 0 : f / Ce(10, i - o - 1) % 10 | 0;
}if (n = n || 0 > t || void 0 !== l[p + 1] || (0 > o ? f : f % Ce(10, i - o - 1)), c = 4 > r ? (u || n) && (0 == r || r == (e.s < 0 ? 3 : 2)) : u > 5 || 5 == u && (4 == r || n || 6 == r && (a > 0 ? o > 0 ? f / Ce(10, i - o) : 0 : l[p - 1]) % 10 & 1 || r == (e.s < 0 ? 8 : 7)), 1 > t || !l[0]) return l.length = 0, c ? (t -= e.e + 1, l[0] = Ce(10, (Re - t % Re) % Re), e.e = -t || 0) : l[0] = e.e = 0, e;if (0 == a ? (l.length = p, s = 1, p--) : (l.length = p + 1, s = Ce(10, Re - a), l[p] = o > 0 ? (f / Ce(10, i - o) % Ce(10, o) | 0) * s : 0), c) for (;;) {
if (0 == p) {
for (a = 1, o = l[0]; o >= 10; o /= 10) {
a++;
}for (o = l[0] += s, s = 1; o >= 10; o /= 10) {
s++;
}a != s && (e.e++, l[0] == Ie && (l[0] = 1));break;
}if (l[p] += s, l[p] != Ie) break;l[p--] = 0, s = 1;
}for (a = l.length; 0 === l[--a];) {
l.pop();
}
}return Me && (e.e > h.maxE ? (e.d = null, e.e = NaN) : e.e < h.minE && (e.e = 0, e.d = [0])), e;
}function l(e, t, r) {
if (!e.isFinite()) return N(e);var n,
i = e.e,
o = a(e.d),
s = o.length;return t ? (r && (n = r - s) > 0 ? o = o.charAt(0) + "." + o.slice(1) + g(n) : s > 1 && (o = o.charAt(0) + "." + o.slice(1)), o = o + (e.e < 0 ? "e" : "e+") + e.e) : 0 > i ? (o = "0." + g(-i - 1) + o, r && (n = r - s) > 0 && (o += g(n))) : i >= s ? (o += g(i + 1 - s), r && (n = r - i - 1) > 0 && (o = o + "." + g(n))) : ((n = i + 1) < s && (o = o.slice(0, n) + "." + o.slice(n)), r && (n = r - s) > 0 && (i + 1 === s && (o += "."), o += g(n))), o;
}function p(e, t) {
for (var r = 1, n = e[0]; n >= 10; n /= 10) {
r++;
}return r + t * Re - 1;
}function h(e, t, r) {
if (t > Ue) throw Me = !0, r && (e.precision = r), Error(_e);return f(new e(be), t, 1, !0);
}function m(e, t, r) {
if (t > qe) throw Error(_e);return f(new e(we), t, r, !0);
}function d(e) {
var t = e.length - 1,
r = t * Re + 1;if (t = e[t]) {
for (; t % 10 == 0; t /= 10) {
r--;
}for (t = e[0]; t >= 10; t /= 10) {
r++;
}
}return r;
}function g(e) {
for (var t = ""; e--;) {
t += "0";
}return t;
}function v(e, t, r, n) {
var i,
a = new e(1),
o = Math.ceil(n / Re + 4);for (Me = !1;;) {
if (r % 2 && (a = a.times(t), C(a.d, o) && (i = !0)), r = Te(r / 2), 0 === r) {
r = a.d.length - 1, i && 0 === a.d[r] && ++a.d[r];break;
}t = t.times(t), C(t.d, o);
}return Me = !0, a;
}function y(e) {
return 1 & e.d[e.d.length - 1];
}function x(e, t, r) {
for (var n, i = new e(t[0]), a = 0; ++a < t.length;) {
if (n = new e(t[a]), !n.s) {
i = n;break;
}i[r](n) && (i = n);
}return i;
}function b(e, t) {
var r,
n,
i,
o,
u,
c,
l,
p = 0,
h = 0,
m = 0,
d = e.constructor,
g = d.rounding,
v = d.precision;if (!e.d || !e.d[0] || e.e > 17) return new d(e.d ? e.d[0] ? e.s < 0 ? 0 : 1 / 0 : 1 : e.s ? e.s < 0 ? 0 : e : NaN);for (null == t ? (Me = !1, l = v) : l = t, c = new d(.03125); e.e > -2;) {
e = e.times(c), m += 5;
}for (n = Math.log(Ce(2, m)) / Math.LN10 * 2 + 5 | 0, l += n, r = o = u = new d(1), d.precision = l;;) {
if (o = f(o.times(e), l, 1), r = r.times(++h), c = u.plus(je(o, r, l, 1)), a(c.d).slice(0, l) === a(u.d).slice(0, l)) {
for (i = m; i--;) {
u = f(u.times(u), l, 1);
}if (null != t) return d.precision = v, u;if (!(3 > p && s(u.d, l - n, g, p))) return f(u, d.precision = v, g, Me = !0);d.precision = l += 10, r = o = c = new d(1), h = 0, p++;
}u = c;
}
}function w(e, t) {
var r,
n,
i,
o,
u,
c,
l,
p,
m,
d,
g,
v = 1,
y = 10,
x = e,
b = x.d,
N = x.constructor,
E = N.rounding,
M = N.precision;if (x.s < 0 || !b || !b[0] || !x.e && 1 == b[0] && 1 == b.length) return new N(b && !b[0] ? -1 / 0 : 1 != x.s ? NaN : b ? 0 : x);if (null == t ? (Me = !1, m = M) : m = t, N.precision = m += y, r = a(b), n = r.charAt(0), !(Math.abs(o = x.e) < 15e14)) return p = h(N, m + 2, M).times(o + ""), x = w(new N(n + "." + r.slice(1)), m - y).plus(p), N.precision = M, null == t ? f(x, M, E, Me = !0) : x;for (; 7 > n && 1 != n || 1 == n && r.charAt(1) > 3;) {
x = x.times(e), r = a(x.d), n = r.charAt(0), v++;
}for (o = x.e, n > 1 ? (x = new N("0." + r), o++) : x = new N(n + "." + r.slice(1)), d = x, l = u =