@aibee/crc-bmap 0.2.17 → 0.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bmap.cjs.min.js +1 -1
- package/lib/bmap.cjs.min.js.map +2 -2
- package/lib/bmap.esm.js +0 -3
- package/lib/bmap.esm.js.map +2 -2
- package/lib/bmap.esm.min.js +1 -1
- package/lib/bmap.esm.min.js.map +2 -2
- package/lib/bmap.min.js +1 -1
- package/lib/bmap.min.js.map +2 -2
- package/package.json +1 -1
package/lib/bmap.cjs.min.js
CHANGED
|
@@ -7513,7 +7513,7 @@ Example:
|
|
|
7513
7513
|
mathjs.config({ number: 'BigNumber' });
|
|
7514
7514
|
`);return Object.freeze(Co)};Wn(Ae,Co,{MATRIX_OPTIONS:tl,NUMBER_OPTIONS:el});var Fo=On(Ro(),1);function N(r,e,t,n){function i(o){var a=Qu(o,e.map(bp));return xp(r,e,o),t(a)}return i.isFactory=!0,i.fn=r,i.dependencies=e.slice().sort(),n&&(i.meta=n),i}function xp(r,e,t){var n=e.filter(o=>!Ep(o)).every(o=>t[o]!==void 0);if(!n){var i=e.filter(o=>t[o]===void 0);throw new Error('Cannot create function "'.concat(r,'", ')+"some dependencies are missing: ".concat(i.map(o=>'"'.concat(o,'"')).join(", "),"."))}}function Ep(r){return r&&r[0]==="?"}function bp(r){return r&&r[0]==="?"?r.slice(1):r}function rt(r){return typeof r=="boolean"?!0:isFinite(r)?r===Math.round(r):!1}var il=Math.sign||function(r){return r>0?1:r<0?-1:0},ol=Math.log2||function(e){return Math.log(e)/Math.LN2},sl=Math.log10||function(e){return Math.log(e)/Math.LN10},al=Math.log1p||function(r){return Math.log(r+1)},ul=Math.cbrt||function(e){if(e===0)return e;var t=e<0,n;return t&&(e=-e),isFinite(e)?(n=Math.exp(Math.log(e)/3),n=(e/(n*n)+2*n)/3):n=e,t?-n:n},ll=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function No(r,e,t){var n={2:"0b",8:"0o",16:"0x"},i=n[e],o="";if(t){if(t<1)throw new Error("size must be in greater than 0");if(!rt(t))throw new Error("size must be an integer");if(r>2**(t-1)-1||r<-(2**(t-1)))throw new Error("Value must be in range [-2^".concat(t-1,", 2^").concat(t-1,"-1]"));if(!rt(r))throw new Error("Value must be an integer");r<0&&(r=r+2**t),o="i".concat(t)}var a="";return r<0&&(r=-r,a="-"),"".concat(a).concat(i).concat(r.toString(e)).concat(o)}function Lr(r,e){if(typeof e=="function")return e(r);if(r===1/0)return"Infinity";if(r===-1/0)return"-Infinity";if(isNaN(r))return"NaN";var{notation:t,precision:n,wordSize:i}=Lo(e);switch(t){case"fixed":return Oo(r,n);case"exponential":return cl(r,n);case"engineering":return Sp(r,n);case"bin":return No(r,2,i);case"oct":return No(r,8,i);case"hex":return No(r,16,i);case"auto":return Mp(r,n,e).replace(/((\.\d*?)(0+))($|e)/,function(){var o=arguments[2],a=arguments[4];return o!=="."?o+a:a});default:throw new Error('Unknown notation "'+t+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Lo(r){var e="auto",t,n;if(r!==void 0)if(it(r))t=r;else if(st(r))t=r.toNumber();else if(jn(r))r.precision!==void 0&&(t=nl(r.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),r.wordSize!==void 0&&(n=nl(r.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),r.notation&&(e=r.notation);else throw new Error("Unsupported type of options, number, BigNumber, or object expected");return{notation:e,precision:t,wordSize:n}}function $n(r){var e=String(r).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!e)throw new SyntaxError("Invalid number "+r);var t=e[1],n=e[2],i=parseFloat(e[4]||"0"),o=n.indexOf(".");i+=o!==-1?o-1:n.length-1;var a=n.replace(".","").replace(/^0*/,function(c){return i-=c.length,""}).replace(/0*$/,"").split("").map(function(c){return parseInt(c)});return a.length===0&&(a.push(0),i++),{sign:t,coefficients:a,exponent:i}}function Sp(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=$n(r),n=xi(t,e),i=n.exponent,o=n.coefficients,a=i%3===0?i:i<0?i-3-i%3:i-i%3;if(it(e))for(;e>o.length||i-a+1>o.length;)o.push(0);else for(var c=Math.abs(i-a)-(o.length-1),l=0;l<c;l++)o.push(0);for(var s=Math.abs(i-a),u=1;s>0;)u++,s--;var h=o.slice(u).join(""),f=it(e)&&h.length||h.match(/[1-9]/)?"."+h:"",d=o.slice(0,u).join("")+f+"e"+(i>=0?"+":"")+a.toString();return n.sign+d}function Oo(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=$n(r),n=typeof e=="number"?xi(t,t.exponent+1+e):t,i=n.coefficients,o=n.exponent+1,a=o+(e||0);return i.length<a&&(i=i.concat(Yn(a-i.length))),o<0&&(i=Yn(-o+1).concat(i),o=1),o<i.length&&i.splice(o,0,o===0?"0.":"."),n.sign+i.join("")}function cl(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=$n(r),n=e?xi(t,e):t,i=n.coefficients,o=n.exponent;i.length<e&&(i=i.concat(Yn(e-i.length)));var a=i.shift();return n.sign+a+(i.length>0?"."+i.join(""):"")+"e"+(o>=0?"+":"")+o}function Mp(r,e,t){if(isNaN(r)||!isFinite(r))return String(r);var n=rl(t?.lowerExp,-3),i=rl(t?.upperExp,5),o=$n(r),a=e?xi(o,e):o;if(a.exponent<n||a.exponent>=i)return cl(r,e);var c=a.coefficients,l=a.exponent;c.length<e&&(c=c.concat(Yn(e-c.length))),c=c.concat(Yn(l-c.length+1+(c.length<e?e-c.length:0))),c=Yn(-l).concat(c);var s=l>0?l:0;return s<c.length-1&&c.splice(s+1,0,"."),a.sign+c.join("")}function xi(r,e){for(var t={sign:r.sign,coefficients:r.coefficients,exponent:r.exponent},n=t.coefficients;e<=0;)n.unshift(0),t.exponent++,e++;if(n.length>e){var i=n.splice(e,n.length-e);if(i[0]>=5){var o=e-1;for(n[o]++;n[o]===10;)n.pop(),o===0&&(n.unshift(0),t.exponent++,o++),o--,n[o]++}}return t}function Yn(r){for(var e=[],t=0;t<r;t++)e.push(0);return e}function hl(r){return r.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length}var $1=Number.EPSILON||2220446049250313e-31;function Pe(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(t<=0)throw new Error("Relative tolerance must be greater than 0");if(n<0)throw new Error("Absolute tolerance must be at least 0");return isNaN(r)||isNaN(e)?!1:!isFinite(r)||!isFinite(e)?r===e:r===e?!0:Math.abs(r-e)<=Math.max(t*Math.max(Math.abs(r),Math.abs(e)),n)}function nl(r,e){if(it(r))return r;if(st(r))return r.toNumber();e()}function rl(r,e){return it(r)?r:st(r)?r.toNumber():e}var pl=function(){return pl=Fo.default.create,Fo.default},wp=["?BigNumber","?Complex","?DenseMatrix","?Fraction"],Uo=N("typed",wp,function(e){var{BigNumber:t,Complex:n,DenseMatrix:i,Fraction:o}=e,a=pl();return a.clear(),a.addTypes([{name:"number",test:it},{name:"Complex",test:Ao},{name:"BigNumber",test:st},{name:"bigint",test:Su},{name:"Fraction",test:Po},{name:"Unit",test:vi},{name:"identifier",test:c=>oe&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(c)},{name:"string",test:oe},{name:"Chain",test:Ju},{name:"Array",test:Et},{name:"Matrix",test:at},{name:"DenseMatrix",test:Mu},{name:"SparseMatrix",test:wu},{name:"Range",test:Tu},{name:"Index",test:Xn},{name:"boolean",test:Cu},{name:"ResultSet",test:Au},{name:"Help",test:Pu},{name:"function",test:Du},{name:"Date",test:Iu},{name:"RegExp",test:Ru},{name:"null",test:Lu},{name:"undefined",test:Ou},{name:"AccessorNode",test:Fu},{name:"ArrayNode",test:Uu},{name:"AssignmentNode",test:Bu},{name:"BlockNode",test:zu},{name:"ConditionalNode",test:Gu},{name:"ConstantNode",test:ku},{name:"FunctionNode",test:Hu},{name:"FunctionAssignmentNode",test:Vu},{name:"IndexNode",test:Wu},{name:"Node",test:qu},{name:"ObjectNode",test:Xu},{name:"OperatorNode",test:ju},{name:"ParenthesisNode",test:Yu},{name:"RangeNode",test:$u},{name:"RelationalNode",test:Zu},{name:"SymbolNode",test:Ku},{name:"Map",test:Nu},{name:"Object",test:jn}]),a.addConversions([{from:"number",to:"BigNumber",convert:function(l){if(t||Ei(l),hl(l)>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+l+"). Use function bignumber(x) to convert to BigNumber.");return new t(l)}},{from:"number",to:"Complex",convert:function(l){return n||bi(l),new n(l,0)}},{from:"BigNumber",to:"Complex",convert:function(l){return n||bi(l),new n(l.toNumber(),0)}},{from:"bigint",to:"number",convert:function(l){if(l>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+l+")");return Number(l)}},{from:"bigint",to:"BigNumber",convert:function(l){return t||Ei(l),new t(l.toString())}},{from:"bigint",to:"Fraction",convert:function(l){return o||Si(l),new o(l.toString())}},{from:"Fraction",to:"BigNumber",convert:function(l){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(l){return n||bi(l),new n(l.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(l){o||Si(l);var s=new o(l);if(s.valueOf()!==l)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+l+"). Use function fraction(x) to convert to Fraction.");return s}},{from:"string",to:"number",convert:function(l){var s=Number(l);if(isNaN(s))throw new Error('Cannot convert "'+l+'" to a number');return s}},{from:"string",to:"BigNumber",convert:function(l){t||Ei(l);try{return new t(l)}catch{throw new Error('Cannot convert "'+l+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(l){try{return BigInt(l)}catch{throw new Error('Cannot convert "'+l+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(l){o||Si(l);try{return new o(l)}catch{throw new Error('Cannot convert "'+l+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(l){n||bi(l);try{return new n(l)}catch{throw new Error('Cannot convert "'+l+'" to Complex')}}},{from:"boolean",to:"number",convert:function(l){return+l}},{from:"boolean",to:"BigNumber",convert:function(l){return t||Ei(l),new t(+l)}},{from:"boolean",to:"bigint",convert:function(l){return BigInt(+l)}},{from:"boolean",to:"Fraction",convert:function(l){return o||Si(l),new o(+l)}},{from:"boolean",to:"string",convert:function(l){return String(l)}},{from:"Array",to:"Matrix",convert:function(l){return i||Tp(),new i(l)}},{from:"Matrix",to:"Array",convert:function(l){return l.valueOf()}}]),a.onMismatch=(c,l,s)=>{var u=a.createError(c,l,s);if(["wrongType","mismatch"].includes(u.data.category)&&l.length===1&&Je(l[0])&&s.some(f=>!f.params.includes(","))){var h=new TypeError("Function '".concat(c,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(c,")'."));throw h.data=u.data,h}throw u},a.onMismatch=(c,l,s)=>{var u=a.createError(c,l,s);if(["wrongType","mismatch"].includes(u.data.category)&&l.length===1&&Je(l[0])&&s.some(f=>!f.params.includes(","))){var h=new TypeError("Function '".concat(c,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(c,")'."));throw h.data=u.data,h}throw u},a});function Ei(r){throw new Error("Cannot convert value ".concat(r," into a BigNumber: no class 'BigNumber' provided"))}function bi(r){throw new Error("Cannot convert value ".concat(r," into a Complex number: no class 'Complex' provided"))}function Tp(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}function Si(r){throw new Error("Cannot convert value ".concat(r," into a Fraction, no class 'Fraction' provided."))}var Zn=9e15,mn=1e9,Bo="0123456789abcdef",wi="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ti="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",zo={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Zn,maxE:Zn,crypto:!1},ml,Qe,J=!0,Ai="[DecimalError] ",gn=Ai+"Invalid argument: ",yl=Ai+"Precision limit exceeded",vl=Ai+"crypto unavailable",_l="[object Decimal]",te=Math.floor,Lt=Math.pow,Cp=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Ap=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Pp=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,xl=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ze=1e7,K=7,Dp=9007199254740991,Ip=wi.length-1,Go=Ti.length-1,F={toStringTag:_l};F.absoluteValue=F.abs=function(){var r=new this.constructor(this);return r.s<0&&(r.s=1),$(r)};F.ceil=function(){return $(new this.constructor(this),this.e+1,2)};F.clampedTo=F.clamp=function(r,e){var t,n=this,i=n.constructor;if(r=new i(r),e=new i(e),!r.s||!e.s)return new i(NaN);if(r.gt(e))throw Error(gn+e);return t=n.cmp(r),t<0?r:n.cmp(e)>0?e:new i(n)};F.comparedTo=F.cmp=function(r){var e,t,n,i,o=this,a=o.d,c=(r=new o.constructor(r)).d,l=o.s,s=r.s;if(!a||!c)return!l||!s?NaN:l!==s?l:a===c?0:!a^l<0?1:-1;if(!a[0]||!c[0])return a[0]?l:c[0]?-s:0;if(l!==s)return l;if(o.e!==r.e)return o.e>r.e^l<0?1:-1;for(n=a.length,i=c.length,e=0,t=n<i?n:i;e<t;++e)if(a[e]!==c[e])return a[e]>c[e]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};F.cosine=F.cos=function(){var r,e,t=this,n=t.constructor;return t.d?t.d[0]?(r=n.precision,e=n.rounding,n.precision=r+Math.max(t.e,t.sd())+K,n.rounding=1,t=Rp(n,wl(n,t)),n.precision=r,n.rounding=e,$(Qe==2||Qe==3?t.neg():t,r,e,!0)):new n(1):new n(NaN)};F.cubeRoot=F.cbrt=function(){var r,e,t,n,i,o,a,c,l,s,u=this,h=u.constructor;if(!u.isFinite()||u.isZero())return new h(u);for(J=!1,o=u.s*Lt(u.s*u,1/3),!o||Math.abs(o)==1/0?(t=Zt(u.d),r=u.e,(o=(r-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=Lt(t,1/3),r=te((r+1)/3)-(r%3==(r<0?-1:2)),o==1/0?t="5e"+r:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+r),n=new h(t),n.s=u.s):n=new h(o.toString()),a=(r=h.precision)+3;;)if(c=n,l=c.times(c).times(c),s=l.plus(u),n=yt(s.plus(u).times(c),s.plus(l),a+2,1),Zt(c.d).slice(0,a)===(t=Zt(n.d)).slice(0,a))if(t=t.slice(a-3,a+1),t=="9999"||!i&&t=="4999"){if(!i&&($(c,r+1,0),c.times(c).times(c).eq(u))){n=c;break}a+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&($(n,r+1,1),e=!n.times(n).times(n).eq(u));break}return J=!0,$(n,r,h.rounding,e)};F.decimalPlaces=F.dp=function(){var r,e=this.d,t=NaN;if(e){if(r=e.length-1,t=(r-te(this.e/K))*K,r=e[r],r)for(;r%10==0;r/=10)t--;t<0&&(t=0)}return t};F.dividedBy=F.div=function(r){return yt(this,new this.constructor(r))};F.dividedToIntegerBy=F.divToInt=function(r){var e=this,t=e.constructor;return $(yt(e,new t(r),0,1,1),t.precision,t.rounding)};F.equals=F.eq=function(r){return this.cmp(r)===0};F.floor=function(){return $(new this.constructor(this),this.e+1,3)};F.greaterThan=F.gt=function(r){return this.cmp(r)>0};F.greaterThanOrEqualTo=F.gte=function(r){var e=this.cmp(r);return e==1||e===0};F.hyperbolicCosine=F.cosh=function(){var r,e,t,n,i,o=this,a=o.constructor,c=new a(1);if(!o.isFinite())return new a(o.s?1/0:NaN);if(o.isZero())return c;t=a.precision,n=a.rounding,a.precision=t+Math.max(o.e,o.sd())+4,a.rounding=1,i=o.d.length,i<32?(r=Math.ceil(i/3),e=(1/Di(4,r)).toString()):(r=16,e="2.3283064365386962890625e-10"),o=Kn(a,1,o.times(e),new a(1),!0);for(var l,s=r,u=new a(8);s--;)l=o.times(o),o=c.minus(l.times(u.minus(l.times(u))));return $(o,a.precision=t,a.rounding=n,!0)};F.hyperbolicSine=F.sinh=function(){var r,e,t,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Kn(o,2,i,i,!0);else{r=1.4*Math.sqrt(n),r=r>16?16:r|0,i=i.times(1/Di(5,r)),i=Kn(o,2,i,i,!0);for(var a,c=new o(5),l=new o(16),s=new o(20);r--;)a=i.times(i),i=i.times(c.plus(a.times(l.times(a).plus(s))))}return o.precision=e,o.rounding=t,$(i,e,t,!0)};F.hyperbolicTangent=F.tanh=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+7,n.rounding=1,yt(t.sinh(),t.cosh(),n.precision=r,n.rounding=e)):new n(t.s)};F.inverseCosine=F.acos=function(){var r,e=this,t=e.constructor,n=e.abs().cmp(1),i=t.precision,o=t.rounding;return n!==-1?n===0?e.isNeg()?Be(t,i,o):new t(0):new t(NaN):e.isZero()?Be(t,i+4,o).times(.5):(t.precision=i+6,t.rounding=1,e=e.asin(),r=Be(t,i+4,o).times(.5),t.precision=i,t.rounding=o,r.minus(e))};F.inverseHyperbolicCosine=F.acosh=function(){var r,e,t=this,n=t.constructor;return t.lte(1)?new n(t.eq(1)?0:NaN):t.isFinite()?(r=n.precision,e=n.rounding,n.precision=r+Math.max(Math.abs(t.e),t.sd())+4,n.rounding=1,J=!1,t=t.times(t).minus(1).sqrt().plus(t),J=!0,n.precision=r,n.rounding=e,t.ln()):new n(t)};F.inverseHyperbolicSine=F.asinh=function(){var r,e,t=this,n=t.constructor;return!t.isFinite()||t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+2*Math.max(Math.abs(t.e),t.sd())+6,n.rounding=1,J=!1,t=t.times(t).plus(1).sqrt().plus(t),J=!0,n.precision=r,n.rounding=e,t.ln())};F.inverseHyperbolicTangent=F.atanh=function(){var r,e,t,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(r=o.precision,e=o.rounding,n=i.sd(),Math.max(n,r)<2*-i.e-1?$(new o(i),r,e,!0):(o.precision=t=n-i.e,i=yt(i.plus(1),new o(1).minus(i),t+r,1),o.precision=r+4,o.rounding=1,i=i.ln(),o.precision=r,o.rounding=e,i.times(.5))):new o(NaN)};F.inverseSine=F.asin=function(){var r,e,t,n,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),t=o.precision,n=o.rounding,e!==-1?e===0?(r=Be(o,t+4,n).times(.5),r.s=i.s,r):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=n,i.times(2)))};F.inverseTangent=F.atan=function(){var r,e,t,n,i,o,a,c,l,s=this,u=s.constructor,h=u.precision,f=u.rounding;if(s.isFinite()){if(s.isZero())return new u(s);if(s.abs().eq(1)&&h+4<=Go)return a=Be(u,h+4,f).times(.25),a.s=s.s,a}else{if(!s.s)return new u(NaN);if(h+4<=Go)return a=Be(u,h+4,f).times(.5),a.s=s.s,a}for(u.precision=c=h+10,u.rounding=1,t=Math.min(28,c/K+2|0),r=t;r;--r)s=s.div(s.times(s).plus(1).sqrt().plus(1));for(J=!1,e=Math.ceil(c/K),n=1,l=s.times(s),a=new u(s),i=s;r!==-1;)if(i=i.times(l),o=a.minus(i.div(n+=2)),i=i.times(l),a=o.plus(i.div(n+=2)),a.d[e]!==void 0)for(r=e;a.d[r]===o.d[r]&&r--;);return t&&(a=a.times(2<<t-1)),J=!0,$(a,u.precision=h,u.rounding=f,!0)};F.isFinite=function(){return!!this.d};F.isInteger=F.isInt=function(){return!!this.d&&te(this.e/K)>this.d.length-2};F.isNaN=function(){return!this.s};F.isNegative=F.isNeg=function(){return this.s<0};F.isPositive=F.isPos=function(){return this.s>0};F.isZero=function(){return!!this.d&&this.d[0]===0};F.lessThan=F.lt=function(r){return this.cmp(r)<0};F.lessThanOrEqualTo=F.lte=function(r){return this.cmp(r)<1};F.logarithm=F.log=function(r){var e,t,n,i,o,a,c,l,s=this,u=s.constructor,h=u.precision,f=u.rounding,d=5;if(r==null)r=new u(10),e=!0;else{if(r=new u(r),t=r.d,r.s<0||!t||!t[0]||r.eq(1))return new u(NaN);e=r.eq(10)}if(t=s.d,s.s<0||!t||!t[0]||s.eq(1))return new u(t&&!t[0]?-1/0:s.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(J=!1,c=h+d,a=dn(s,c),n=e?Ci(u,c+10):dn(r,c),l=yt(a,n,c,1),Or(l.d,i=h,f))do if(c+=10,a=dn(s,c),n=e?Ci(u,c+10):dn(r,c),l=yt(a,n,c,1),!o){+Zt(l.d).slice(i+1,i+15)+1==1e14&&(l=$(l,h+1,0));break}while(Or(l.d,i+=10,f));return J=!0,$(l,h,f)};F.minus=F.sub=function(r){var e,t,n,i,o,a,c,l,s,u,h,f,d=this,g=d.constructor;if(r=new g(r),!d.d||!r.d)return!d.s||!r.s?r=new g(NaN):d.d?r.s=-r.s:r=new g(r.d||d.s!==r.s?d:NaN),r;if(d.s!=r.s)return r.s=-r.s,d.plus(r);if(s=d.d,f=r.d,c=g.precision,l=g.rounding,!s[0]||!f[0]){if(f[0])r.s=-r.s;else if(s[0])r=new g(d);else return new g(l===3?-0:0);return J?$(r,c,l):r}if(t=te(r.e/K),u=te(d.e/K),s=s.slice(),o=u-t,o){for(h=o<0,h?(e=s,o=-o,a=f.length):(e=f,t=u,a=s.length),n=Math.max(Math.ceil(c/K),a)+2,o>n&&(o=n,e.length=1),e.reverse(),n=o;n--;)e.push(0);e.reverse()}else{for(n=s.length,a=f.length,h=n<a,h&&(a=n),n=0;n<a;n++)if(s[n]!=f[n]){h=s[n]<f[n];break}o=0}for(h&&(e=s,s=f,f=e,r.s=-r.s),a=s.length,n=f.length-a;n>0;--n)s[a++]=0;for(n=f.length;n>o;){if(s[--n]<f[n]){for(i=n;i&&s[--i]===0;)s[i]=ze-1;--s[i],s[n]+=ze}s[n]-=f[n]}for(;s[--a]===0;)s.pop();for(;s[0]===0;s.shift())--t;return s[0]?(r.d=s,r.e=Pi(s,t),J?$(r,c,l):r):new g(l===3?-0:0)};F.modulo=F.mod=function(r){var e,t=this,n=t.constructor;return r=new n(r),!t.d||!r.s||r.d&&!r.d[0]?new n(NaN):!r.d||t.d&&!t.d[0]?$(new n(t),n.precision,n.rounding):(J=!1,n.modulo==9?(e=yt(t,r.abs(),0,3,1),e.s*=r.s):e=yt(t,r,0,n.modulo,1),e=e.times(r),J=!0,t.minus(e))};F.naturalExponential=F.exp=function(){return ko(this)};F.naturalLogarithm=F.ln=function(){return dn(this)};F.negated=F.neg=function(){var r=new this.constructor(this);return r.s=-r.s,$(r)};F.plus=F.add=function(r){var e,t,n,i,o,a,c,l,s,u,h=this,f=h.constructor;if(r=new f(r),!h.d||!r.d)return!h.s||!r.s?r=new f(NaN):h.d||(r=new f(r.d||h.s===r.s?h:NaN)),r;if(h.s!=r.s)return r.s=-r.s,h.minus(r);if(s=h.d,u=r.d,c=f.precision,l=f.rounding,!s[0]||!u[0])return u[0]||(r=new f(h)),J?$(r,c,l):r;if(o=te(h.e/K),n=te(r.e/K),s=s.slice(),i=o-n,i){for(i<0?(t=s,i=-i,a=u.length):(t=u,n=o,a=s.length),o=Math.ceil(c/K),a=o>a?o+1:a+1,i>a&&(i=a,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(a=s.length,i=u.length,a-i<0&&(i=a,t=u,u=s,s=t),e=0;i;)e=(s[--i]=s[i]+u[i]+e)/ze|0,s[i]%=ze;for(e&&(s.unshift(e),++n),a=s.length;s[--a]==0;)s.pop();return r.d=s,r.e=Pi(s,n),J?$(r,c,l):r};F.precision=F.sd=function(r){var e,t=this;if(r!==void 0&&r!==!!r&&r!==1&&r!==0)throw Error(gn+r);return t.d?(e=El(t.d),r&&t.e+1>e&&(e=t.e+1)):e=NaN,e};F.round=function(){var r=this,e=r.constructor;return $(new e(r),r.e+1,e.rounding)};F.sine=F.sin=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+Math.max(t.e,t.sd())+K,n.rounding=1,t=Lp(n,wl(n,t)),n.precision=r,n.rounding=e,$(Qe>2?t.neg():t,r,e,!0)):new n(NaN)};F.squareRoot=F.sqrt=function(){var r,e,t,n,i,o,a=this,c=a.d,l=a.e,s=a.s,u=a.constructor;if(s!==1||!c||!c[0])return new u(!s||s<0&&(!c||c[0])?NaN:c?a:1/0);for(J=!1,s=Math.sqrt(+a),s==0||s==1/0?(e=Zt(c),(e.length+l)%2==0&&(e+="0"),s=Math.sqrt(e),l=te((l+1)/2)-(l<0||l%2),s==1/0?e="5e"+l:(e=s.toExponential(),e=e.slice(0,e.indexOf("e")+1)+l),n=new u(e)):n=new u(s.toString()),t=(l=u.precision)+3;;)if(o=n,n=o.plus(yt(a,o,t+2,1)).times(.5),Zt(o.d).slice(0,t)===(e=Zt(n.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!i&&e=="4999"){if(!i&&($(o,l+1,0),o.times(o).eq(a))){n=o;break}t+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&($(n,l+1,1),r=!n.times(n).eq(a));break}return J=!0,$(n,l,u.rounding,r)};F.tangent=F.tan=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+10,n.rounding=1,t=t.sin(),t.s=1,t=yt(t,new n(1).minus(t.times(t)).sqrt(),r+10,0),n.precision=r,n.rounding=e,$(Qe==2||Qe==4?t.neg():t,r,e,!0)):new n(NaN)};F.times=F.mul=function(r){var e,t,n,i,o,a,c,l,s,u=this,h=u.constructor,f=u.d,d=(r=new h(r)).d;if(r.s*=u.s,!f||!f[0]||!d||!d[0])return new h(!r.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:!f||!d?r.s/0:r.s*0);for(t=te(u.e/K)+te(r.e/K),l=f.length,s=d.length,l<s&&(o=f,f=d,d=o,a=l,l=s,s=a),o=[],a=l+s,n=a;n--;)o.push(0);for(n=s;--n>=0;){for(e=0,i=l+n;i>n;)c=o[i]+d[n]*f[i-n-1]+e,o[i--]=c%ze|0,e=c/ze|0;o[i]=(o[i]+e)%ze|0}for(;!o[--a];)o.pop();return e?++t:o.shift(),r.d=o,r.e=Pi(o,t),J?$(r,h.precision,h.rounding):r};F.toBinary=function(r,e){return Ho(this,2,r,e)};F.toDecimalPlaces=F.toDP=function(r,e){var t=this,n=t.constructor;return t=new n(t),r===void 0?t:(de(r,0,mn),e===void 0?e=n.rounding:de(e,0,8),$(t,r+t.e+1,e))};F.toExponential=function(r,e){var t,n=this,i=n.constructor;return r===void 0?t=Xe(n,!0):(de(r,0,mn),e===void 0?e=i.rounding:de(e,0,8),n=$(new i(n),r+1,e),t=Xe(n,!0,r+1)),n.isNeg()&&!n.isZero()?"-"+t:t};F.toFixed=function(r,e){var t,n,i=this,o=i.constructor;return r===void 0?t=Xe(i):(de(r,0,mn),e===void 0?e=o.rounding:de(e,0,8),n=$(new o(i),r+i.e+1,e),t=Xe(n,!1,r+n.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};F.toFraction=function(r){var e,t,n,i,o,a,c,l,s,u,h,f,d=this,g=d.d,p=d.constructor;if(!g)return new p(d);if(s=t=new p(1),n=l=new p(0),e=new p(n),o=e.e=El(g)-d.e-1,a=o%K,e.d[0]=Lt(10,a<0?K+a:a),r==null)r=o>0?e:s;else{if(c=new p(r),!c.isInt()||c.lt(s))throw Error(gn+c);r=c.gt(e)?o>0?e:s:c}for(J=!1,c=new p(Zt(g)),u=p.precision,p.precision=o=g.length*K*2;h=yt(c,e,0,1,1),i=t.plus(h.times(n)),i.cmp(r)!=1;)t=n,n=i,i=s,s=l.plus(h.times(i)),l=i,i=e,e=c.minus(h.times(i)),c=i;return i=yt(r.minus(t),n,0,1,1),l=l.plus(i.times(s)),t=t.plus(i.times(n)),l.s=s.s=d.s,f=yt(s,n,o,1).minus(d).abs().cmp(yt(l,t,o,1).minus(d).abs())<1?[s,n]:[l,t],p.precision=u,J=!0,f};F.toHexadecimal=F.toHex=function(r,e){return Ho(this,16,r,e)};F.toNearest=function(r,e){var t=this,n=t.constructor;if(t=new n(t),r==null){if(!t.d)return t;r=new n(1),e=n.rounding}else{if(r=new n(r),e===void 0?e=n.rounding:de(e,0,8),!t.d)return r.s?t:r;if(!r.d)return r.s&&(r.s=t.s),r}return r.d[0]?(J=!1,t=yt(t,r,0,e,1).times(r),J=!0,$(t)):(r.s=t.s,t=r),t};F.toNumber=function(){return+this};F.toOctal=function(r,e){return Ho(this,8,r,e)};F.toPower=F.pow=function(r){var e,t,n,i,o,a,c=this,l=c.constructor,s=+(r=new l(r));if(!c.d||!r.d||!c.d[0]||!r.d[0])return new l(Lt(+c,s));if(c=new l(c),c.eq(1))return c;if(n=l.precision,o=l.rounding,r.eq(1))return $(c,n,o);if(e=te(r.e/K),e>=r.d.length-1&&(t=s<0?-s:s)<=Dp)return i=bl(l,c,t,n),r.s<0?new l(1).div(i):$(i,n,o);if(a=c.s,a<0){if(e<r.d.length-1)return new l(NaN);if(r.d[e]&1||(a=1),c.e==0&&c.d[0]==1&&c.d.length==1)return c.s=a,c}return t=Lt(+c,s),e=t==0||!isFinite(t)?te(s*(Math.log("0."+Zt(c.d))/Math.LN10+c.e+1)):new l(t+"").e,e>l.maxE+1||e<l.minE-1?new l(e>0?a/0:0):(J=!1,l.rounding=c.s=1,t=Math.min(12,(e+"").length),i=ko(r.times(dn(c,n+t)),n),i.d&&(i=$(i,n+5,1),Or(i.d,n,o)&&(e=n+10,i=$(ko(r.times(dn(c,e+t)),e),e+5,1),+Zt(i.d).slice(n+1,n+15)+1==1e14&&(i=$(i,n+1,0)))),i.s=a,J=!0,l.rounding=o,$(i,n,o))};F.toPrecision=function(r,e){var t,n=this,i=n.constructor;return r===void 0?t=Xe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(de(r,1,mn),e===void 0?e=i.rounding:de(e,0,8),n=$(new i(n),r,e),t=Xe(n,r<=n.e||n.e<=i.toExpNeg,r)),n.isNeg()&&!n.isZero()?"-"+t:t};F.toSignificantDigits=F.toSD=function(r,e){var t=this,n=t.constructor;return r===void 0?(r=n.precision,e=n.rounding):(de(r,1,mn),e===void 0?e=n.rounding:de(e,0,8)),$(new n(t),r,e)};F.toString=function(){var r=this,e=r.constructor,t=Xe(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()&&!r.isZero()?"-"+t:t};F.truncated=F.trunc=function(){return $(new this.constructor(this),this.e+1,1)};F.valueOf=F.toJSON=function(){var r=this,e=r.constructor,t=Xe(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()?"-"+t:t};function Zt(r){var e,t,n,i=r.length-1,o="",a=r[0];if(i>0){for(o+=a,e=1;e<i;e++)n=r[e]+"",t=K-n.length,t&&(o+=fn(t)),o+=n;a=r[e],n=a+"",t=K-n.length,t&&(o+=fn(t))}else if(a===0)return"0";for(;a%10===0;)a/=10;return o+a}function de(r,e,t){if(r!==~~r||r<e||r>t)throw Error(gn+r)}function Or(r,e,t,n){var i,o,a,c;for(o=r[0];o>=10;o/=10)--e;return--e<0?(e+=K,i=0):(i=Math.ceil((e+1)/K),e%=K),o=Lt(10,K-e),c=r[i]%o|0,n==null?e<3?(e==0?c=c/100|0:e==1&&(c=c/10|0),a=t<4&&c==99999||t>3&&c==49999||c==5e4||c==0):a=(t<4&&c+1==o||t>3&&c+1==o/2)&&(r[i+1]/o/100|0)==Lt(10,e-2)-1||(c==o/2||c==0)&&(r[i+1]/o/100|0)==0:e<4?(e==0?c=c/1e3|0:e==1?c=c/100|0:e==2&&(c=c/10|0),a=(n||t<4)&&c==9999||!n&&t>3&&c==4999):a=((n||t<4)&&c+1==o||!n&&t>3&&c+1==o/2)&&(r[i+1]/o/1e3|0)==Lt(10,e-3)-1,a}function Mi(r,e,t){for(var n,i=[0],o,a=0,c=r.length;a<c;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=Bo.indexOf(r.charAt(a++)),n=0;n<i.length;n++)i[n]>t-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/t|0,i[n]%=t)}return i.reverse()}function Rp(r,e){var t,n,i;if(e.isZero())return e;n=e.d.length,n<32?(t=Math.ceil(n/3),i=(1/Di(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),r.precision+=t,e=Kn(r,1,e.times(i),new r(1));for(var o=t;o--;){var a=e.times(e);e=a.times(a).minus(a).times(8).plus(1)}return r.precision-=t,e}var yt=function(){function r(n,i,o){var a,c=0,l=n.length;for(n=n.slice();l--;)a=n[l]*i+c,n[l]=a%o|0,c=a/o|0;return c&&n.unshift(c),n}function e(n,i,o,a){var c,l;if(o!=a)l=o>a?1:-1;else for(c=l=0;c<o;c++)if(n[c]!=i[c]){l=n[c]>i[c]?1:-1;break}return l}function t(n,i,o,a){for(var c=0;o--;)n[o]-=c,c=n[o]<i[o]?1:0,n[o]=c*a+n[o]-i[o];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,o,a,c,l){var s,u,h,f,d,g,p,m,v,b,y,S,x,_,M,w,C,P,D,R,W=n.constructor,G=n.s==i.s?1:-1,k=n.d,L=i.d;if(!k||!k[0]||!L||!L[0])return new W(!n.s||!i.s||(k?L&&k[0]==L[0]:!L)?NaN:k&&k[0]==0||!L?G*0:G/0);for(l?(d=1,u=n.e-i.e):(l=ze,d=K,u=te(n.e/d)-te(i.e/d)),D=L.length,C=k.length,v=new W(G),b=v.d=[],h=0;L[h]==(k[h]||0);h++);if(L[h]>(k[h]||0)&&u--,o==null?(_=o=W.precision,a=W.rounding):c?_=o+(n.e-i.e)+1:_=o,_<0)b.push(1),g=!0;else{if(_=_/d+2|0,h=0,D==1){for(f=0,L=L[0],_++;(h<C||f)&&_--;h++)M=f*l+(k[h]||0),b[h]=M/L|0,f=M%L|0;g=f||h<C}else{for(f=l/(L[0]+1)|0,f>1&&(L=r(L,f,l),k=r(k,f,l),D=L.length,C=k.length),w=D,y=k.slice(0,D),S=y.length;S<D;)y[S++]=0;R=L.slice(),R.unshift(0),P=L[0],L[1]>=l/2&&++P;do f=0,s=e(L,y,D,S),s<0?(x=y[0],D!=S&&(x=x*l+(y[1]||0)),f=x/P|0,f>1?(f>=l&&(f=l-1),p=r(L,f,l),m=p.length,S=y.length,s=e(p,y,m,S),s==1&&(f--,t(p,D<m?R:L,m,l))):(f==0&&(s=f=1),p=L.slice()),m=p.length,m<S&&p.unshift(0),t(y,p,S,l),s==-1&&(S=y.length,s=e(L,y,D,S),s<1&&(f++,t(y,D<S?R:L,S,l))),S=y.length):s===0&&(f++,y=[0]),b[h++]=f,s&&y[0]?y[S++]=k[w]||0:(y=[k[w]],S=1);while((w++<C||y[0]!==void 0)&&_--);g=y[0]!==void 0}b[0]||b.shift()}if(d==1)v.e=u,ml=g;else{for(h=1,f=b[0];f>=10;f/=10)h++;v.e=h+u*d-1,$(v,c?o+v.e+1:o,a,g)}return v}}();function $(r,e,t,n){var i,o,a,c,l,s,u,h,f,d=r.constructor;t:if(e!=null){if(h=r.d,!h)return r;for(i=1,c=h[0];c>=10;c/=10)i++;if(o=e-i,o<0)o+=K,a=e,u=h[f=0],l=u/Lt(10,i-a-1)%10|0;else if(f=Math.ceil((o+1)/K),c=h.length,f>=c)if(n){for(;c++<=f;)h.push(0);u=l=0,i=1,o%=K,a=o-K+1}else break t;else{for(u=c=h[f],i=1;c>=10;c/=10)i++;o%=K,a=o-K+i,l=a<0?0:u/Lt(10,i-a-1)%10|0}if(n=n||e<0||h[f+1]!==void 0||(a<0?u:u%Lt(10,i-a-1)),s=t<4?(l||n)&&(t==0||t==(r.s<0?3:2)):l>5||l==5&&(t==4||n||t==6&&(o>0?a>0?u/Lt(10,i-a):0:h[f-1])%10&1||t==(r.s<0?8:7)),e<1||!h[0])return h.length=0,s?(e-=r.e+1,h[0]=Lt(10,(K-e%K)%K),r.e=-e||0):h[0]=r.e=0,r;if(o==0?(h.length=f,c=1,f--):(h.length=f+1,c=Lt(10,K-o),h[f]=a>0?(u/Lt(10,i-a)%Lt(10,a)|0)*c:0),s)for(;;)if(f==0){for(o=1,a=h[0];a>=10;a/=10)o++;for(a=h[0]+=c,c=1;a>=10;a/=10)c++;o!=c&&(r.e++,h[0]==ze&&(h[0]=1));break}else{if(h[f]+=c,h[f]!=ze)break;h[f--]=0,c=1}for(o=h.length;h[--o]===0;)h.pop()}return J&&(r.e>d.maxE?(r.d=null,r.e=NaN):r.e<d.minE&&(r.e=0,r.d=[0])),r}function Xe(r,e,t){if(!r.isFinite())return Ml(r);var n,i=r.e,o=Zt(r.d),a=o.length;return e?(t&&(n=t-a)>0?o=o.charAt(0)+"."+o.slice(1)+fn(n):a>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(r.e<0?"e":"e+")+r.e):i<0?(o="0."+fn(-i-1)+o,t&&(n=t-a)>0&&(o+=fn(n))):i>=a?(o+=fn(i+1-a),t&&(n=t-i-1)>0&&(o=o+"."+fn(n))):((n=i+1)<a&&(o=o.slice(0,n)+"."+o.slice(n)),t&&(n=t-a)>0&&(i+1===a&&(o+="."),o+=fn(n))),o}function Pi(r,e){var t=r[0];for(e*=K;t>=10;t/=10)e++;return e}function Ci(r,e,t){if(e>Ip)throw J=!0,t&&(r.precision=t),Error(yl);return $(new r(wi),e,1,!0)}function Be(r,e,t){if(e>Go)throw Error(yl);return $(new r(Ti),e,t,!0)}function El(r){var e=r.length-1,t=e*K+1;if(e=r[e],e){for(;e%10==0;e/=10)t--;for(e=r[0];e>=10;e/=10)t++}return t}function fn(r){for(var e="";r--;)e+="0";return e}function bl(r,e,t,n){var i,o=new r(1),a=Math.ceil(n/K+4);for(J=!1;;){if(t%2&&(o=o.times(e),dl(o.d,a)&&(i=!0)),t=te(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}e=e.times(e),dl(e.d,a)}return J=!0,o}function fl(r){return r.d[r.d.length-1]&1}function Sl(r,e,t){for(var n,i=new r(e[0]),o=0;++o<e.length;)if(n=new r(e[o]),n.s)i[t](n)&&(i=n);else{i=n;break}return i}function ko(r,e){var t,n,i,o,a,c,l,s=0,u=0,h=0,f=r.constructor,d=f.rounding,g=f.precision;if(!r.d||!r.d[0]||r.e>17)return new f(r.d?r.d[0]?r.s<0?0:1/0:1:r.s?r.s<0?0:r:NaN);for(e==null?(J=!1,l=g):l=e,c=new f(.03125);r.e>-2;)r=r.times(c),h+=5;for(n=Math.log(Lt(2,h))/Math.LN10*2+5|0,l+=n,t=o=a=new f(1),f.precision=l;;){if(o=$(o.times(r),l,1),t=t.times(++u),c=a.plus(yt(o,t,l,1)),Zt(c.d).slice(0,l)===Zt(a.d).slice(0,l)){for(i=h;i--;)a=$(a.times(a),l,1);if(e==null)if(s<3&&Or(a.d,l-n,d,s))f.precision=l+=10,t=o=c=new f(1),u=0,s++;else return $(a,f.precision=g,d,J=!0);else return f.precision=g,a}a=c}}function dn(r,e){var t,n,i,o,a,c,l,s,u,h,f,d=1,g=10,p=r,m=p.d,v=p.constructor,b=v.rounding,y=v.precision;if(p.s<0||!m||!m[0]||!p.e&&m[0]==1&&m.length==1)return new v(m&&!m[0]?-1/0:p.s!=1?NaN:m?0:p);if(e==null?(J=!1,u=y):u=e,v.precision=u+=g,t=Zt(m),n=t.charAt(0),Math.abs(o=p.e)<15e14){for(;n<7&&n!=1||n==1&&t.charAt(1)>3;)p=p.times(r),t=Zt(p.d),n=t.charAt(0),d++;o=p.e,n>1?(p=new v("0."+t),o++):p=new v(n+"."+t.slice(1))}else return s=Ci(v,u+2,y).times(o+""),p=dn(new v(n+"."+t.slice(1)),u-g).plus(s),v.precision=y,e==null?$(p,y,b,J=!0):p;for(h=p,l=a=p=yt(p.minus(1),p.plus(1),u,1),f=$(p.times(p),u,1),i=3;;){if(a=$(a.times(f),u,1),s=l.plus(yt(a,new v(i),u,1)),Zt(s.d).slice(0,u)===Zt(l.d).slice(0,u))if(l=l.times(2),o!==0&&(l=l.plus(Ci(v,u+2,y).times(o+""))),l=yt(l,new v(d),u,1),e==null)if(Or(l.d,u-g,b,c))v.precision=u+=g,s=a=p=yt(h.minus(1),h.plus(1),u,1),f=$(p.times(p),u,1),i=c=1;else return $(l,v.precision=y,b,J=!0);else return v.precision=y,l;l=s,i+=2}}function Ml(r){return String(r.s*r.s/0)}function Vo(r,e){var t,n,i;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(t<0&&(t=n),t+=+e.slice(n+1),e=e.substring(0,n)):t<0&&(t=e.length),n=0;e.charCodeAt(n)===48;n++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(n,i),e){if(i-=n,r.e=t=t-n-1,r.d=[],n=(t+1)%K,t<0&&(n+=K),n<i){for(n&&r.d.push(+e.slice(0,n)),i-=K;n<i;)r.d.push(+e.slice(n,n+=K));e=e.slice(n),n=K-e.length}else n-=i;for(;n--;)e+="0";r.d.push(+e),J&&(r.e>r.constructor.maxE?(r.d=null,r.e=NaN):r.e<r.constructor.minE&&(r.e=0,r.d=[0]))}else r.e=0,r.d=[0];return r}function Np(r,e){var t,n,i,o,a,c,l,s,u;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),xl.test(e))return Vo(r,e)}else if(e==="Infinity"||e==="NaN")return+e||(r.s=NaN),r.e=NaN,r.d=null,r;if(Ap.test(e))t=16,e=e.toLowerCase();else if(Cp.test(e))t=2;else if(Pp.test(e))t=8;else throw Error(gn+e);for(o=e.search(/p/i),o>0?(l=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),a=o>=0,n=r.constructor,a&&(e=e.replace(".",""),c=e.length,o=c-o,i=bl(n,new n(t),o,o*2)),s=Mi(e,t,ze),u=s.length-1,o=u;s[o]===0;--o)s.pop();return o<0?new n(r.s*0):(r.e=Pi(s,u),r.d=s,J=!1,a&&(r=yt(r,i,c*4)),l&&(r=r.times(Math.abs(l)<54?Lt(2,l):Fr.pow(2,l))),J=!0,r)}function Lp(r,e){var t,n=e.d.length;if(n<3)return e.isZero()?e:Kn(r,2,e,e);t=1.4*Math.sqrt(n),t=t>16?16:t|0,e=e.times(1/Di(5,t)),e=Kn(r,2,e,e);for(var i,o=new r(5),a=new r(16),c=new r(20);t--;)i=e.times(e),e=e.times(o.plus(i.times(a.times(i).minus(c))));return e}function Kn(r,e,t,n,i){var o,a,c,l,s=1,u=r.precision,h=Math.ceil(u/K);for(J=!1,l=t.times(t),c=new r(n);;){if(a=yt(c.times(l),new r(e++*e++),u,1),c=i?n.plus(a):n.minus(a),n=yt(a.times(l),new r(e++*e++),u,1),a=c.plus(n),a.d[h]!==void 0){for(o=h;a.d[o]===c.d[o]&&o--;);if(o==-1)break}o=c,c=n,n=a,a=o,s++}return J=!0,a.d.length=h+1,a}function Di(r,e){for(var t=r;--e;)t*=r;return t}function wl(r,e){var t,n=e.s<0,i=Be(r,r.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return Qe=n?4:1,e;if(t=e.divToInt(i),t.isZero())Qe=n?3:2;else{if(e=e.minus(t.times(i)),e.lte(o))return Qe=fl(t)?n?2:3:n?4:1,e;Qe=fl(t)?n?1:4:n?3:2}return e.minus(i).abs()}function Ho(r,e,t,n){var i,o,a,c,l,s,u,h,f,d=r.constructor,g=t!==void 0;if(g?(de(t,1,mn),n===void 0?n=d.rounding:de(n,0,8)):(t=d.precision,n=d.rounding),!r.isFinite())u=Ml(r);else{for(u=Xe(r),a=u.indexOf("."),g?(i=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):i=e,a>=0&&(u=u.replace(".",""),f=new d(1),f.e=u.length-a,f.d=Mi(Xe(f),10,i),f.e=f.d.length),h=Mi(u,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])u=g?"0p+0":"0";else{if(a<0?o--:(r=new d(r),r.d=h,r.e=o,r=yt(r,f,t,n,0,i),h=r.d,o=r.e,s=ml),a=h[t],c=i/2,s=s||h[t+1]!==void 0,s=n<4?(a!==void 0||s)&&(n===0||n===(r.s<0?3:2)):a>c||a===c&&(n===4||s||n===6&&h[t-1]&1||n===(r.s<0?8:7)),h.length=t,s)for(;++h[--t]>i-1;)h[t]=0,t||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(a=0,u="";a<l;a++)u+=Bo.charAt(h[a]);if(g){if(l>1)if(e==16||e==8){for(a=e==16?4:3,--l;l%a;l++)u+="0";for(h=Mi(u,i,e),l=h.length;!h[l-1];--l);for(a=1,u="1.";a<l;a++)u+=Bo.charAt(h[a])}else u=u.charAt(0)+"."+u.slice(1);u=u+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)u="0"+u;u="0."+u}else if(++o>l)for(o-=l;o--;)u+="0";else o<l&&(u=u.slice(0,o)+"."+u.slice(o))}u=(e==16?"0x":e==2?"0b":e==8?"0o":"")+u}return r.s<0?"-"+u:u}function dl(r,e){if(r.length>e)return r.length=e,!0}function Op(r){return new this(r).abs()}function Fp(r){return new this(r).acos()}function Up(r){return new this(r).acosh()}function Bp(r,e){return new this(r).plus(e)}function zp(r){return new this(r).asin()}function Gp(r){return new this(r).asinh()}function kp(r){return new this(r).atan()}function Vp(r){return new this(r).atanh()}function Hp(r,e){r=new this(r),e=new this(e);var t,n=this.precision,i=this.rounding,o=n+4;return!r.s||!e.s?t=new this(NaN):!r.d&&!e.d?(t=Be(this,o,1).times(e.s>0?.25:.75),t.s=r.s):!e.d||r.isZero()?(t=e.s<0?Be(this,n,i):new this(0),t.s=r.s):!r.d||e.isZero()?(t=Be(this,o,1).times(.5),t.s=r.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(yt(r,e,o,1)),e=Be(this,o,1),this.precision=n,this.rounding=i,t=r.s<0?t.minus(e):t.plus(e)):t=this.atan(yt(r,e,o,1)),t}function Wp(r){return new this(r).cbrt()}function qp(r){return $(r=new this(r),r.e+1,2)}function Xp(r,e,t){return new this(r).clamp(e,t)}function jp(r){if(!r||typeof r!="object")throw Error(Ai+"Object expected");var e,t,n,i=r.defaults===!0,o=["precision",1,mn,"rounding",0,8,"toExpNeg",-Zn,0,"toExpPos",0,Zn,"maxE",0,Zn,"minE",-Zn,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],i&&(this[t]=zo[t]),(n=r[t])!==void 0)if(te(n)===n&&n>=o[e+1]&&n<=o[e+2])this[t]=n;else throw Error(gn+t+": "+n);if(t="crypto",i&&(this[t]=zo[t]),(n=r[t])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(vl);else this[t]=!1;else throw Error(gn+t+": "+n);return this}function Yp(r){return new this(r).cos()}function $p(r){return new this(r).cosh()}function Tl(r){var e,t,n;function i(o){var a,c,l,s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,gl(o)){s.s=o.s,J?!o.d||o.e>i.maxE?(s.e=NaN,s.d=null):o.e<i.minE?(s.e=0,s.d=[0]):(s.e=o.e,s.d=o.d.slice()):(s.e=o.e,s.d=o.d?o.d.slice():o.d);return}if(l=typeof o,l==="number"){if(o===0){s.s=1/o<0?-1:1,s.e=0,s.d=[0];return}if(o<0?(o=-o,s.s=-1):s.s=1,o===~~o&&o<1e7){for(a=0,c=o;c>=10;c/=10)a++;J?a>i.maxE?(s.e=NaN,s.d=null):a<i.minE?(s.e=0,s.d=[0]):(s.e=a,s.d=[o]):(s.e=a,s.d=[o]);return}else if(o*0!==0){o||(s.s=NaN),s.e=NaN,s.d=null;return}return Vo(s,o.toString())}else if(l!=="string")throw Error(gn+o);return(c=o.charCodeAt(0))===45?(o=o.slice(1),s.s=-1):(c===43&&(o=o.slice(1)),s.s=1),xl.test(o)?Vo(s,o):Np(s,o)}if(i.prototype=F,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=jp,i.clone=Tl,i.isDecimal=gl,i.abs=Op,i.acos=Fp,i.acosh=Up,i.add=Bp,i.asin=zp,i.asinh=Gp,i.atan=kp,i.atanh=Vp,i.atan2=Hp,i.cbrt=Wp,i.ceil=qp,i.clamp=Xp,i.cos=Yp,i.cosh=$p,i.div=Zp,i.exp=Kp,i.floor=Jp,i.hypot=Qp,i.ln=tf,i.log=ef,i.log10=rf,i.log2=nf,i.max=of,i.min=sf,i.mod=af,i.mul=uf,i.pow=lf,i.random=cf,i.round=hf,i.sign=pf,i.sin=ff,i.sinh=df,i.sqrt=gf,i.sub=mf,i.sum=yf,i.tan=vf,i.tanh=_f,i.trunc=xf,r===void 0&&(r={}),r&&r.defaults!==!0)for(n=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<n.length;)r.hasOwnProperty(t=n[e++])||(r[t]=this[t]);return i.config(r),i}function Zp(r,e){return new this(r).div(e)}function Kp(r){return new this(r).exp()}function Jp(r){return $(r=new this(r),r.e+1,3)}function Qp(){var r,e,t=new this(0);for(J=!1,r=0;r<arguments.length;)if(e=new this(arguments[r++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return J=!0,new this(1/0);t=e}return J=!0,t.sqrt()}function gl(r){return r instanceof Fr||r&&r.toStringTag===_l||!1}function tf(r){return new this(r).ln()}function ef(r,e){return new this(r).log(e)}function nf(r){return new this(r).log(2)}function rf(r){return new this(r).log(10)}function of(){return Sl(this,arguments,"lt")}function sf(){return Sl(this,arguments,"gt")}function af(r,e){return new this(r).mod(e)}function uf(r,e){return new this(r).mul(e)}function lf(r,e){return new this(r).pow(e)}function cf(r){var e,t,n,i,o=0,a=new this(1),c=[];if(r===void 0?r=this.precision:de(r,1,mn),n=Math.ceil(r/K),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(n));o<n;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:c[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(n*=4);o<n;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(c.push(i%1e7),o+=4);o=n/4}else throw Error(vl);else for(;o<n;)c[o++]=Math.random()*1e7|0;for(n=c[--o],r%=K,n&&r&&(i=Lt(10,K-r),c[o]=(n/i|0)*i);c[o]===0;o--)c.pop();if(o<0)t=0,c=[0];else{for(t=-1;c[0]===0;t-=K)c.shift();for(n=1,i=c[0];i>=10;i/=10)n++;n<K&&(t-=K-n)}return a.e=t,a.d=c,a}function hf(r){return $(r=new this(r),r.e+1,this.rounding)}function pf(r){return r=new this(r),r.d?r.d[0]?r.s:0*r.s:r.s||NaN}function ff(r){return new this(r).sin()}function df(r){return new this(r).sinh()}function gf(r){return new this(r).sqrt()}function mf(r,e){return new this(r).sub(e)}function yf(){var r=0,e=arguments,t=new this(e[r]);for(J=!1;t.s&&++r<e.length;)t=t.plus(e[r]);return J=!0,$(t,this.precision,this.rounding)}function vf(r){return new this(r).tan()}function _f(r){return new this(r).tanh()}function xf(r){return $(r=new this(r),r.e+1,1)}F[Symbol.for("nodejs.util.inspect.custom")]=F.toString;F[Symbol.toStringTag]="Decimal";var Fr=F.constructor=Tl(zo);wi=new Fr(wi);Ti=new Fr(Ti);var Ur=Fr;var Ef="BigNumber",bf=["?on","config"],Wo=N(Ef,bf,r=>{var{on:e,config:t}=r,n=Ur.clone({precision:t.precision,modulo:Ur.EUCLID});return n.prototype=Object.create(n.prototype),n.prototype.type="BigNumber",n.prototype.isBigNumber=!0,n.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},n.fromJSON=function(i){return new n(i.value)},e&&e("config",function(i,o){i.precision!==o.precision&&n.config({precision:i.precision})}),n},{isClass:!0});var kt=On(Al(),1);var Sf="Complex",Mf=[],Xo=N(Sf,Mf,()=>(Object.defineProperty(kt.default,"name",{value:"Complex"}),kt.default.prototype.constructor=kt.default,kt.default.prototype.type="Complex",kt.default.prototype.isComplex=!0,kt.default.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},kt.default.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},kt.default.prototype.format=function(r){var e="",t=this.im,n=this.re,i=Lr(this.re,r),o=Lr(this.im,r),a=it(r)?r:r?r.precision:null;if(a!==null){var c=Math.pow(10,-a);Math.abs(n/t)<c&&(n=0),Math.abs(t/n)<c&&(t=0)}return t===0?e=i:n===0?t===1?e="i":t===-1?e="-i":e=o+"i":t<0?t===-1?e=i+" - i":e=i+" - "+o.substring(1)+"i":t===1?e=i+" + i":e=i+" + "+o+"i",e},kt.default.fromPolar=function(r){switch(arguments.length){case 1:{var e=arguments[0];if(typeof e=="object")return(0,kt.default)(e);throw new TypeError("Input has to be an object with r and phi keys.")}case 2:{var t=arguments[0],n=arguments[1];if(it(t)){if(vi(n)&&n.hasBase("ANGLE")&&(n=n.toNumber("rad")),it(n))return new kt.default({r:t,phi:n});throw new TypeError("Phi is not a number nor an angle unit.")}else throw new TypeError("Radius r is not a number.")}default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},kt.default.prototype.valueOf=kt.default.prototype.toString,kt.default.fromJSON=function(r){return new kt.default(r)},kt.default.compare=function(r,e){return r.re>e.re?1:r.re<e.re?-1:r.im>e.im?1:r.im<e.im?-1:0},kt.default),{isClass:!0});var wf=2e3,X={s:1,n:0,d:1};function tn(r,e){if(isNaN(r=parseInt(r,10)))throw Ii();return r*e}function Tt(r,e){if(e===0)throw jo();var t=Object.create(Vt.prototype);t.s=r<0?-1:1,r=r<0?-r:r;var n=Jn(r,e);return t.n=r/n,t.d=e/n,t}function Pl(r){for(var e={},t=r,n=2,i=4;i<=t;){for(;t%n===0;)t/=n,e[n]=(e[n]||0)+1;i+=1+2*n++}return t!==r?t>1&&(e[t]=(e[t]||0)+1):e[r]=(e[r]||0)+1,e}var xe=function(r,e){var t=0,n=1,i=1,o=0,a=0,c=0,l=1,s=1,u=0,h=1,f=1,d=1,g=1e7,p;if(r!=null)if(e!==void 0){if(t=r,n=e,i=t*n,t%1!==0||n%1!==0)throw Pf()}else switch(typeof r){case"object":{if("d"in r&&"n"in r)t=r.n,n=r.d,"s"in r&&(t*=r.s);else if(0 in r)t=r[0],1 in r&&(n=r[1]);else throw Ii();i=t*n;break}case"number":{if(r<0&&(i=r,r=-r),r%1===0)t=r;else if(r>0){for(r>=1&&(s=Math.pow(10,Math.floor(1+Math.log(r)/Math.LN10)),r/=s);h<=g&&d<=g;)if(p=(u+f)/(h+d),r===p){h+d<=g?(t=u+f,n=h+d):d>h?(t=f,n=d):(t=u,n=h);break}else r>p?(u+=f,h+=d):(f+=u,d+=h),h>g?(t=f,n=d):(t=u,n=h);t*=s}else(isNaN(r)||isNaN(e))&&(n=t=NaN);break}case"string":{if(h=r.match(/\d+|./g),h===null)throw Ii();if(h[u]==="-"?(i=-1,u++):h[u]==="+"&&u++,h.length===u+1?a=tn(h[u++],i):h[u+1]==="."||h[u]==="."?(h[u]!=="."&&(o=tn(h[u++],i)),u++,(u+1===h.length||h[u+1]==="("&&h[u+3]===")"||h[u+1]==="'"&&h[u+3]==="'")&&(a=tn(h[u],i),l=Math.pow(10,h[u].length),u++),(h[u]==="("&&h[u+2]===")"||h[u]==="'"&&h[u+2]==="'")&&(c=tn(h[u+1],i),s=Math.pow(10,h[u+1].length)-1,u+=3)):h[u+1]==="/"||h[u+1]===":"?(a=tn(h[u],i),l=tn(h[u+2],1),u+=3):h[u+3]==="/"&&h[u+1]===" "&&(o=tn(h[u],i),a=tn(h[u+2],i),l=tn(h[u+4],1),u+=5),h.length<=u){n=l*s,i=t=c+n*o+s*a;break}}default:throw Ii()}if(n===0)throw jo();X.s=i<0?-1:1,X.n=Math.abs(t),X.d=Math.abs(n)};function Tf(r,e,t){for(var n=1;e>0;r=r*r%t,e>>=1)e&1&&(n=n*r%t);return n}function Cf(r,e){for(;e%2===0;e/=2);for(;e%5===0;e/=5);if(e===1)return 0;for(var t=10%e,n=1;t!==1;n++)if(t=t*10%e,n>wf)return 0;return n}function Af(r,e,t){for(var n=1,i=Tf(10,t,e),o=0;o<300;o++){if(n===i)return o;n=n*10%e,i=i*10%e}return 0}function Jn(r,e){if(!r)return e;if(!e)return r;for(;;){if(r%=e,!r)return e;if(e%=r,!e)return r}}function Vt(r,e){if(xe(r,e),this instanceof Vt)r=Jn(X.d,X.n),this.s=X.s,this.n=X.n/r,this.d=X.d/r;else return Tt(X.s*X.n,X.d)}var jo=function(){return new Error("Division by Zero")},Ii=function(){return new Error("Invalid argument")},Pf=function(){return new Error("Parameters must be integer")};Vt.prototype={s:1,n:0,d:1,abs:function(){return Tt(this.n,this.d)},neg:function(){return Tt(-this.s*this.n,this.d)},add:function(r,e){return xe(r,e),Tt(this.s*this.n*X.d+X.s*this.d*X.n,this.d*X.d)},sub:function(r,e){return xe(r,e),Tt(this.s*this.n*X.d-X.s*this.d*X.n,this.d*X.d)},mul:function(r,e){return xe(r,e),Tt(this.s*X.s*this.n*X.n,this.d*X.d)},div:function(r,e){return xe(r,e),Tt(this.s*X.s*this.n*X.d,this.d*X.n)},clone:function(){return Tt(this.s*this.n,this.d)},mod:function(r,e){if(isNaN(this.n)||isNaN(this.d))return new Vt(NaN);if(r===void 0)return Tt(this.s*this.n%this.d,1);if(xe(r,e),X.n===0&&this.d===0)throw jo();return Tt(this.s*(X.d*this.n)%(X.n*this.d),X.d*this.d)},gcd:function(r,e){return xe(r,e),Tt(Jn(X.n,this.n)*Jn(X.d,this.d),X.d*this.d)},lcm:function(r,e){return xe(r,e),X.n===0&&this.n===0?Tt(0,1):Tt(X.n*this.n,Jn(X.n,this.n)*Jn(X.d,this.d))},ceil:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Vt(NaN):Tt(Math.ceil(r*this.s*this.n/this.d),r)},floor:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Vt(NaN):Tt(Math.floor(r*this.s*this.n/this.d),r)},round:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Vt(NaN):Tt(Math.round(r*this.s*this.n/this.d),r)},roundTo:function(r,e){return xe(r,e),Tt(this.s*Math.round(this.n*X.d/(this.d*X.n))*X.n,X.d)},inverse:function(){return Tt(this.s*this.d,this.n)},pow:function(r,e){if(xe(r,e),X.d===1)return X.s<0?Tt(Math.pow(this.s*this.d,X.n),Math.pow(this.n,X.n)):Tt(Math.pow(this.s*this.n,X.n),Math.pow(this.d,X.n));if(this.s<0)return null;var t=Pl(this.n),n=Pl(this.d),i=1,o=1;for(var a in t)if(a!=="1"){if(a==="0"){i=0;break}if(t[a]*=X.n,t[a]%X.d===0)t[a]/=X.d;else return null;i*=Math.pow(a,t[a])}for(var a in n)if(a!=="1"){if(n[a]*=X.n,n[a]%X.d===0)n[a]/=X.d;else return null;o*=Math.pow(a,n[a])}return X.s<0?Tt(o,i):Tt(i,o)},equals:function(r,e){return xe(r,e),this.s*this.n*X.d===X.s*X.n*this.d},compare:function(r,e){xe(r,e);var t=this.s*this.n*X.d-X.s*X.n*this.d;return(0<t)-(t<0)},simplify:function(r){if(isNaN(this.n)||isNaN(this.d))return this;r=r||.001;for(var e=this.abs(),t=e.toContinued(),n=1;n<t.length;n++){for(var i=Tt(t[n-1],1),o=n-2;o>=0;o--)i=i.inverse().add(t[o]);if(Math.abs(i.sub(e).valueOf())<r)return i.mul(this.s)}return this},divisible:function(r,e){return xe(r,e),!(!(X.n*this.d)||this.n*X.d%(X.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(r){var e,t="",n=this.n,i=this.d;return this.s<0&&(t+="-"),i===1?t+=n:(r&&(e=Math.floor(n/i))>0&&(t+=e,t+=" ",n%=i),t+=n,t+="/",t+=i),t},toLatex:function(r){var e,t="",n=this.n,i=this.d;return this.s<0&&(t+="-"),i===1?t+=n:(r&&(e=Math.floor(n/i))>0&&(t+=e,n%=i),t+="\\frac{",t+=n,t+="}{",t+=i,t+="}"),t},toContinued:function(){var r,e=this.n,t=this.d,n=[];if(isNaN(e)||isNaN(t))return n;do n.push(Math.floor(e/t)),r=e%t,e=t,t=r;while(e!==1);return n},toString:function(r){var e=this.n,t=this.d;if(isNaN(e)||isNaN(t))return"NaN";r=r||15;var n=Cf(e,t),i=Af(e,t,n),o=this.s<0?"-":"";if(o+=e/t|0,e%=t,e*=10,e&&(o+="."),n){for(var a=i;a--;)o+=e/t|0,e%=t,e*=10;o+="(";for(var a=n;a--;)o+=e/t|0,e%=t,e*=10;o+=")"}else for(var a=r;e&&a--;)o+=e/t|0,e%=t,e*=10;return o}};var Df="Fraction",If=[],Yo=N(Df,If,()=>(Object.defineProperty(Vt,"name",{value:"Fraction"}),Vt.prototype.constructor=Vt,Vt.prototype.type="Fraction",Vt.prototype.isFraction=!0,Vt.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},Vt.fromJSON=function(r){return new Vt(r)},Vt),{isClass:!0});var Rf="Matrix",Nf=[],$o=N(Rf,Nf,()=>{function r(){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator")}return r.prototype.type="Matrix",r.prototype.isMatrix=!0,r.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},r.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},r.prototype.create=function(e,t){throw new Error("Cannot invoke create on a Matrix interface")},r.prototype.subset=function(e,t,n){throw new Error("Cannot invoke subset on a Matrix interface")},r.prototype.get=function(e){throw new Error("Cannot invoke get on a Matrix interface")},r.prototype.set=function(e,t,n){throw new Error("Cannot invoke set on a Matrix interface")},r.prototype.resize=function(e,t){throw new Error("Cannot invoke resize on a Matrix interface")},r.prototype.reshape=function(e,t){throw new Error("Cannot invoke reshape on a Matrix interface")},r.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},r.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},r.prototype.map=function(e,t){throw new Error("Cannot invoke map on a Matrix interface")},r.prototype.forEach=function(e){throw new Error("Cannot invoke forEach on a Matrix interface")},r.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},r.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},r.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},r.prototype.format=function(e){throw new Error("Cannot invoke format on a Matrix interface")},r.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},r},{isClass:!0});function Zo(r,e,t){var n=r.constructor,i=new n(2),o="";if(t){if(t<1)throw new Error("size must be in greater than 0");if(!rt(t))throw new Error("size must be an integer");if(r.greaterThan(i.pow(t-1).sub(1))||r.lessThan(i.pow(t-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(t-1,", 2^").concat(t-1,"-1]"));if(!r.isInteger())throw new Error("Value must be an integer");r.lessThan(0)&&(r=r.add(i.pow(t))),o="i".concat(t)}switch(e){case 2:return"".concat(r.toBinary()).concat(o);case 8:return"".concat(r.toOctal()).concat(o);case 16:return"".concat(r.toHexadecimal()).concat(o);default:throw new Error("Base ".concat(e," not supported "))}}function Rl(r,e){if(typeof e=="function")return e(r);if(!r.isFinite())return r.isNaN()?"NaN":r.gt(0)?"Infinity":"-Infinity";var{notation:t,precision:n,wordSize:i}=Lo(e);switch(t){case"fixed":return Of(r,n);case"exponential":return Dl(r,n);case"engineering":return Lf(r,n);case"bin":return Zo(r,2,i);case"oct":return Zo(r,8,i);case"hex":return Zo(r,16,i);case"auto":{var o=Il(e?.lowerExp,-3),a=Il(e?.upperExp,5);if(r.isZero())return"0";var c,l=r.toSignificantDigits(n),s=l.e;return s>=o&&s<a?c=l.toFixed():c=Dl(r,n),c.replace(/((\.\d*?)(0+))($|e)/,function(){var u=arguments[2],h=arguments[4];return u!=="."?u+h:h})}default:throw new Error('Unknown notation "'+t+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Lf(r,e){var t=r.e,n=t%3===0?t:t<0?t-3-t%3:t-t%3,i=r.mul(Math.pow(10,-n)),o=i.toPrecision(e);if(o.includes("e")){var a=r.constructor;o=new a(o).toFixed()}return o+"e"+(t>=0?"+":"")+n.toString()}function Dl(r,e){return e!==void 0?r.toExponential(e-1):r.toExponential()}function Of(r,e){return r.toFixed(e)}function Il(r,e){return it(r)?r:st(r)?r.toNumber():e}function bt(r,e){var t=Ff(r,e);return e&&typeof e=="object"&&"truncate"in e&&t.length>e.truncate?t.substring(0,e.truncate-3)+"...":t}function Ff(r,e){if(typeof r=="number")return Lr(r,e);if(st(r))return Rl(r,e);if(Uf(r))return!e||e.fraction!=="decimal"?r.s*r.n+"/"+r.d:r.toString();if(Array.isArray(r))return Ol(r,e);if(oe(r))return Nl(r);if(typeof r=="function")return r.syntax?String(r.syntax):"function";if(r&&typeof r=="object"){if(typeof r.format=="function")return r.format(e);if(r&&r.toString(e)!=={}.toString())return r.toString(e);var t=Object.keys(r).map(n=>Nl(n)+": "+bt(r[n],e));return"{"+t.join(", ")+"}"}return String(r)}function Nl(r){for(var e=String(r),t="",n=0;n<e.length;){var i=e.charAt(n);t+=i in Ll?Ll[i]:i,n++}return'"'+t+'"'}var Ll={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function Ol(r,e){if(Array.isArray(r)){for(var t="[",n=r.length,i=0;i<n;i++)i!==0&&(t+=", "),t+=Ol(r[i],e);return t+="]",t}else return bt(r,e)}function Uf(r){return r&&typeof r=="object"&&typeof r.s=="number"&&typeof r.n=="number"&&typeof r.d=="number"||!1}function tt(r,e,t){if(!(this instanceof tt))throw new SyntaxError("Constructor must be called with the new operator");this.actual=r,this.expected=e,this.relation=t,this.message="Dimension mismatch ("+(Array.isArray(r)?"["+r.join(", ")+"]":r)+" "+(this.relation||"!=")+" "+(Array.isArray(e)?"["+e.join(", ")+"]":e)+")",this.stack=new Error().stack}tt.prototype=new RangeError;tt.prototype.constructor=RangeError;tt.prototype.name="DimensionError";tt.prototype.isDimensionError=!0;function Ge(r,e,t){if(!(this instanceof Ge))throw new SyntaxError("Constructor must be called with the new operator");this.index=r,arguments.length<3?(this.min=0,this.max=e):(this.min=e,this.max=t),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}Ge.prototype=new RangeError;Ge.prototype.constructor=RangeError;Ge.prototype.name="IndexError";Ge.prototype.isIndexError=!0;function ut(r){for(var e=[];Array.isArray(r);)e.push(r.length),r=r[0];return e}function Fl(r,e,t){var n,i=r.length;if(i!==e[t])throw new tt(i,e[t]);if(t<e.length-1){var o=t+1;for(n=0;n<i;n++){var a=r[n];if(!Array.isArray(a))throw new tt(e.length-1,e.length,"<");Fl(r[n],e,o)}}else for(n=0;n<i;n++)if(Array.isArray(r[n]))throw new tt(e.length+1,e.length,">")}function Jo(r,e){var t=e.length===0;if(t){if(Array.isArray(r))throw new tt(r.length,0)}else Fl(r,e,0)}function wt(r,e){if(r!==void 0){if(!it(r)||!rt(r))throw new TypeError("Index must be an integer (value: "+r+")");if(r<0||typeof e=="number"&&r>=e)throw new Ge(r,e)}}function In(r,e,t){if(!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Error("Resizing to scalar is not supported");e.forEach(function(i){if(!it(i)||!rt(i)||i<0)throw new TypeError("Invalid size, must contain positive integers (size: "+bt(e)+")")}),(it(r)||st(r))&&(r=[r]);var n=t!==void 0?t:0;return Ko(r,e,0,n),r}function Ko(r,e,t,n){var i,o,a=r.length,c=e[t],l=Math.min(a,c);if(r.length=c,t<e.length-1){var s=t+1;for(i=0;i<l;i++)o=r[i],Array.isArray(o)||(o=[o],r[i]=o),Ko(o,e,s,n);for(i=l;i<c;i++)o=[],r[i]=o,Ko(o,e,s,n)}else{for(i=0;i<l;i++)for(;Array.isArray(r[i]);)r[i]=r[i][0];for(i=l;i<c;i++)r[i]=n}}function Br(r,e){var t=zf(r),n=t.length;if(!Array.isArray(r)||!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new tt(0,n,"!=");e=zr(e,n);var i=Ul(e);if(n!==i)throw new tt(i,n,"!=");try{return Bf(t,e)}catch(o){throw o instanceof tt?new tt(i,n,"!="):o}}function zr(r,e){var t=Ul(r),n=r.slice(),i=-1,o=r.indexOf(i),a=r.indexOf(i,o+1)>=0;if(a)throw new Error("More than one wildcard in sizes");var c=o>=0,l=e%t===0;if(c)if(l)n[o]=-e/t;else throw new Error("Could not replace wildcard, since "+e+" is no multiple of "+-t);return n}function Ul(r){return r.reduce((e,t)=>e*t,1)}function Bf(r,e){for(var t=r,n,i=e.length-1;i>0;i--){var o=e[i];n=[];for(var a=t.length/o,c=0;c<a;c++)n.push(t.slice(c*o,(c+1)*o));t=n}return t}function Ri(r,e,t,n){var i=n||ut(r);if(t)for(var o=0;o<t;o++)r=[r],i.unshift(1);for(r=Bl(r,e,0);i.length<e;)i.push(1);return r}function Bl(r,e,t){var n,i;if(Array.isArray(r)){var o=t+1;for(n=0,i=r.length;n<i;n++)r[n]=Bl(r[n],e,o)}else for(var a=t;a<e;a++)r=[r];return r}function zf(r){if(!Array.isArray(r))return r;var e=[];return r.forEach(function t(n){Array.isArray(n)?n.forEach(t):e.push(n)}),e}function Qn(r,e){for(var t,n=0,i=0;i<r.length;i++){var o=r[i],a=Array.isArray(o);if(i===0&&a&&(n=o.length),a&&o.length!==n)return;var c=a?Qn(o,e):e(o);if(t===void 0)t=c;else if(t!==c)return"mixed"}return t}function zl(r,e,t,n){if(n<t){if(r.length!==e.length)throw new tt(r.length,e.length);for(var i=[],o=0;o<r.length;o++)i[o]=zl(r[o],e[o],t,n+1);return i}else return r.concat(e)}function Qo(){var r=Array.prototype.slice.call(arguments,0,-1),e=Array.prototype.slice.call(arguments,-1);if(r.length===1)return r[0];if(r.length>1)return r.slice(1).reduce(function(t,n){return zl(t,n,e,0)},r[0]);throw new Error("Wrong number of arguments in function concat")}function ts(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var n=e.map(f=>f.length),i=Math.max(...n),o=new Array(i).fill(null),a=0;a<e.length;a++)for(var c=e[a],l=n[a],s=0;s<l;s++){var u=i-l+s;c[s]>o[u]&&(o[u]=c[s])}for(var h=0;h<e.length;h++)Gl(e[h],o);return o}function Gl(r,e){for(var t=e.length,n=r.length,i=0;i<n;i++){var o=t-n+i;if(r[i]<e[o]&&r[i]>1||r[i]>e[o])throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(r,") not possible to broadcast dimension ").concat(n," with size ").concat(r[i]," to size ").concat(e[o]))}}function Gr(r,e){var t=ut(r);if(Ce(t,e))return r;Gl(t,e);var n=ts(t,e),i=n.length,o=[...Array(i-t.length).fill(1),...t],a=kf(r);t.length<i&&(a=Br(a,o),t=ut(a));for(var c=0;c<i;c++)t[c]<n[c]&&(a=Gf(a,n[c],c),t=ut(a));return a}function Gf(r,e,t){return Qo(...Array(e).fill(r),t)}function kl(r,e){if(!Array.isArray(r))throw new Error("Array expected");var t=ut(r);if(e.length!==t.length)throw new tt(e.length,t.length);for(var n=0;n<e.length;n++)wt(e[n],t[n]);return e.reduce((i,o)=>i[o],r)}function kf(r){return Wn([],r)}var kr=On(Ro(),1);function Ni(r,e,t,n,i){if(kr.default.isTypedFunction(r)){var o=[e,t,n],a=kr.default.resolve(r,o);if(a)return h(a.implementation,o);var c=[e,t],l=kr.default.resolve(r,c);if(l)return h(l.implementation,c);var s=[e],u=kr.default.resolve(r,s);return u?h(u.implementation,s):h(r,o)}else return r(e,t,n);function h(f,d){try{return f.apply(f,d)}catch(m){var g;if(m instanceof TypeError&&((g=m.data)===null||g===void 0?void 0:g.category)==="wrongType"){var p=[];throw p.push("value: ".concat($t(e))),d.length>=2&&p.push("index: ".concat($t(t))),d.length>=3&&p.push("array: ".concat($t(n))),new TypeError("Function ".concat(i," cannot apply callback arguments ")+"".concat(r.name,"(").concat(p.join(", "),") at index ").concat(JSON.stringify(t)))}else throw new TypeError("Function ".concat(i," cannot apply callback arguments ")+"to function ".concat(r.name,": ").concat(m.message))}}}var Vf="DenseMatrix",Hf=["Matrix"],es=N(Vf,Hf,r=>{var{Matrix:e}=r;function t(u,h){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(h&&!oe(h))throw new Error("Invalid datatype: "+h);if(at(u))u.type==="DenseMatrix"?(this._data=mt(u._data),this._size=mt(u._size),this._datatype=h||u._datatype):(this._data=u.toArray(),this._size=u.size(),this._datatype=h||u._datatype);else if(u&&Et(u.data)&&Et(u.size))this._data=u.data,this._size=u.size,Jo(this._data,this._size),this._datatype=h||u.datatype;else if(Et(u))this._data=s(u),this._size=ut(this._data),Jo(this._data,this._size),this._datatype=h;else{if(u)throw new TypeError("Unsupported type of data ("+$t(u)+")");this._data=[],this._size=[0],this._datatype=h}}t.prototype=new e,t.prototype.createDenseMatrix=function(u,h){return new t(u,h)},Object.defineProperty(t,"name",{value:"DenseMatrix"}),t.prototype.constructor=t,t.prototype.type="DenseMatrix",t.prototype.isDenseMatrix=!0,t.prototype.getDataType=function(){return Qn(this._data,$t)},t.prototype.storage=function(){return"dense"},t.prototype.datatype=function(){return this._datatype},t.prototype.create=function(u,h){return new t(u,h)},t.prototype.subset=function(u,h,f){switch(arguments.length){case 1:return n(this,u);case 2:case 3:return o(this,u,h,f);default:throw new SyntaxError("Wrong number of arguments")}},t.prototype.get=function(u){return kl(this._data,u)},t.prototype.set=function(u,h,f){if(!Et(u))throw new TypeError("Array expected");if(u.length<this._size.length)throw new tt(u.length,this._size.length,"<");var d,g,p,m=u.map(function(b){return b+1});l(this,m,f);var v=this._data;for(d=0,g=u.length-1;d<g;d++)p=u[d],wt(p,v.length),v=v[p];return p=u[u.length-1],wt(p,v.length),v[p]=h,this};function n(u,h){if(!Xn(h))throw new TypeError("Invalid index");var f=h.isScalar();if(f)return u.get(h.min());var d=h.size();if(d.length!==u._size.length)throw new tt(d.length,u._size.length);for(var g=h.min(),p=h.max(),m=0,v=u._size.length;m<v;m++)wt(g[m],u._size[m]),wt(p[m],u._size[m]);return new t(i(u._data,h,d.length,0),u._datatype)}function i(u,h,f,d){var g=d===f-1,p=h.dimension(d);return g?p.map(function(m){return wt(m,u.length),u[m]}).valueOf():p.map(function(m){wt(m,u.length);var v=u[m];return i(v,h,f,d+1)}).valueOf()}function o(u,h,f,d){if(!h||h.isIndex!==!0)throw new TypeError("Invalid index");var g=h.size(),p=h.isScalar(),m;if(at(f)?(m=f.size(),f=f.valueOf()):m=ut(f),p){if(m.length!==0)throw new TypeError("Scalar expected");u.set(h.min(),f,d)}else{if(!Ce(m,g))try{m.length===0?f=Gr([f],g):f=Gr(f,g),m=ut(f)}catch{}if(g.length<u._size.length)throw new tt(g.length,u._size.length,"<");if(m.length<g.length){for(var v=0,b=0;g[v]===1&&m[v]===1;)v++;for(;g[v]===1;)b++,v++;f=Ri(f,g.length,b,m)}if(!Ce(g,m))throw new tt(g,m,">");var y=h.max().map(function(_){return _+1});l(u,y,d);var S=g.length,x=0;a(u._data,h,f,S,x)}return u}function a(u,h,f,d,g){var p=g===d-1,m=h.dimension(g);p?m.forEach(function(v,b){wt(v),u[v]=f[b[0]]}):m.forEach(function(v,b){wt(v),a(u[v],h,f[b[0]],d,g+1)})}t.prototype.resize=function(u,h,f){if(!Je(u))throw new TypeError("Array or Matrix expected");var d=u.valueOf().map(p=>Array.isArray(p)&&p.length===1?p[0]:p),g=f?this.clone():this;return c(g,d,h)};function c(u,h,f){if(h.length===0){for(var d=u._data;Et(d);)d=d[0];return d}return u._size=h.slice(0),u._data=In(u._data,u._size,f),u}t.prototype.reshape=function(u,h){var f=h?this.clone():this;f._data=Br(f._data,u);var d=f._size.reduce((g,p)=>g*p);return f._size=zr(u,d),f};function l(u,h,f){for(var d=u._size.slice(0),g=!1;d.length<h.length;)d.push(0),g=!0;for(var p=0,m=h.length;p<m;p++)h[p]>d[p]&&(d[p]=h[p],g=!0);g&&c(u,d,f)}t.prototype.clone=function(){var u=new t({data:mt(this._data),size:mt(this._size),datatype:this._datatype});return u},t.prototype.size=function(){return this._size.slice(0)},t.prototype.map=function(u){var h=this,f=function(m,v){return Et(m)?m.map(function(b,y){return f(b,v.concat(y))}):Ni(u,m,v,h,"map")},d=f(this._data,[]),g=this._datatype!==void 0?Qn(d,$t):void 0;return new t(d,g)},t.prototype.forEach=function(u){var h=this,f=function(g,p){Et(g)?g.forEach(function(m,v){f(m,p.concat(v))}):u(g,p,h)};f(this._data,[])},t.prototype[Symbol.iterator]=function*(){var u=function*(f,d){if(Et(f))for(var g=0;g<f.length;g++)yield*u(f[g],d.concat(g));else yield{value:f,index:d}};yield*u(this._data,[])},t.prototype.rows=function(){var u=[],h=this.size();if(h.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var f=this._data;for(var d of f)u.push(new t([d],this._datatype));return u},t.prototype.columns=function(){var u=this,h=[],f=this.size();if(f.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var d=this._data,g=function(v){var b=d.map(y=>[y[v]]);h.push(new t(b,u._datatype))},p=0;p<f[1];p++)g(p);return h},t.prototype.toArray=function(){return mt(this._data)},t.prototype.valueOf=function(){return this._data},t.prototype.format=function(u){return bt(this._data,u)},t.prototype.toString=function(){return bt(this._data)},t.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},t.prototype.diagonal=function(u){if(u){if(st(u)&&(u=u.toNumber()),!it(u)||!rt(u))throw new TypeError("The parameter k must be an integer number")}else u=0;for(var h=u>0?u:0,f=u<0?-u:0,d=this._size[0],g=this._size[1],p=Math.min(d-f,g-h),m=[],v=0;v<p;v++)m[v]=this._data[v+f][v+h];return new t({data:m,size:[p],datatype:this._datatype})},t.diagonal=function(u,h,f,d){if(!Et(u))throw new TypeError("Array expected, size parameter");if(u.length!==2)throw new Error("Only two dimensions matrix are supported");if(u=u.map(function(M){if(st(M)&&(M=M.toNumber()),!it(M)||!rt(M)||M<1)throw new Error("Size values must be positive integers");return M}),f){if(st(f)&&(f=f.toNumber()),!it(f)||!rt(f))throw new TypeError("The parameter k must be an integer number")}else f=0;var g=f>0?f:0,p=f<0?-f:0,m=u[0],v=u[1],b=Math.min(m-p,v-g),y;if(Et(h)){if(h.length!==b)throw new Error("Invalid value array length");y=function(w){return h[w]}}else if(at(h)){var S=h.size();if(S.length!==1||S[0]!==b)throw new Error("Invalid matrix length");y=function(w){return h.get([w])}}else y=function(){return h};d||(d=st(y(0))?y(0).mul(0):0);var x=[];if(u.length>0){x=In(x,u,d);for(var _=0;_<b;_++)x[_+p][_+g]=y(_)}return new t({data:x,size:[m,v]})},t.fromJSON=function(u){return new t(u)},t.prototype.swapRows=function(u,h){if(!it(u)||!rt(u)||!it(h)||!rt(h))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return wt(u,this._size[0]),wt(h,this._size[0]),t._swapRows(u,h,this._data),this},t._swapRows=function(u,h,f){var d=f[u];f[u]=f[h],f[h]=d};function s(u){return at(u)?s(u.valueOf()):Et(u)?u.map(s):u}return t},{isClass:!0});function Vl(r){var e=r.length,t=r[0].length,n,i,o=[];for(i=0;i<t;i++){var a=[];for(n=0;n<e;n++)a.push(r[n][i]);o.push(a)}return o}function Hl(r){for(var e=0;e<r.length;e++)if(Je(r[e]))return!0;return!1}function ns(r,e){at(r)&&(r=r.valueOf());for(var t=0,n=r.length;t<n;t++){var i=r[t];Array.isArray(i)?ns(i,e):e(i)}}function St(r,e,t){return r&&typeof r.map=="function"?r.map(function(n){return St(n,e,t)}):e(r)}function Wl(r,e,t){var n=Array.isArray(r)?ut(r):r.size();if(e<0||e>=n.length)throw new Ge(e,n.length);return at(r)?r.create(Li(r.valueOf(),e,t),r.datatype()):Li(r,e,t)}function Li(r,e,t){var n,i,o,a;if(e<=0)if(Array.isArray(r[0])){for(a=Vl(r),i=[],n=0;n<a.length;n++)i[n]=Li(a[n],e-1,t);return i}else{for(o=r[0],n=1;n<r.length;n++)o=t(o,r[n]);return o}else{for(i=[],n=0;n<r.length;n++)i[n]=Li(r[n],e-1,t);return i}}var ql="isInteger",Wf=["typed"],rs=N(ql,Wf,r=>{var{typed:e}=r;return e(ql,{number:rt,BigNumber:function(n){return n.isInt()},bigint:function(n){return!0},Fraction:function(n){return n.d===1&&isFinite(n.n)},"Array | Matrix":e.referToSelf(t=>n=>St(n,t))})});var ge="number",en="number, number";function is(r){return Math.abs(r)}is.signature=ge;function os(r,e){return r+e}os.signature=en;function ss(r,e){return r-e}ss.signature=en;function as(r,e){return r*e}as.signature=en;function qf(r,e){return r/e}qf.signature=en;function us(r){return-r}us.signature=ge;function Xf(r){return r}Xf.signature=ge;function jf(r){return ul(r)}jf.signature=ge;function Yf(r){return r*r*r}Yf.signature=ge;function ls(r){return Math.exp(r)}ls.signature=ge;function $f(r){return ll(r)}$f.signature=ge;function Zf(r,e){if(!rt(r)||!rt(e))throw new Error("Parameters in function gcd must be integer numbers");for(var t;e!==0;)t=r%e,r=e,e=t;return r<0?-r:r}Zf.signature=en;function Kf(r,e){if(!rt(r)||!rt(e))throw new Error("Parameters in function lcm must be integer numbers");if(r===0||e===0)return 0;for(var t,n=r*e;e!==0;)t=e,e=r%t,r=t;return Math.abs(n/r)}Kf.signature=en;function Jf(r){return sl(r)}Jf.signature=ge;function cs(r){return ol(r)}cs.signature=ge;function Qf(r){return al(r)}Qf.signature=ge;function td(r,e){return e===0?r:r-e*Math.floor(r/e)}td.signature=en;function ed(r){return il(r)}ed.signature=ge;function nd(r){return Math.sqrt(r)}nd.signature=ge;function rd(r){return r*r}rd.signature=ge;function id(r,e){var t,n,i,o=0,a=1,c=1,l=0;if(!rt(r)||!rt(e))throw new Error("Parameters in function xgcd must be integer numbers");for(;e;)n=Math.floor(r/e),i=r-n*e,t=o,o=a-n*o,a=t,t=c,c=l-n*c,l=t,r=e,e=i;var s;return r<0?s=[-r,-a,-l]:s=[r,r?a:0,l],s}id.signature=en;function hs(r,e){return r*r<1&&e===1/0||r*r>1&&e===-1/0?0:Math.pow(r,e)}hs.signature=en;function tr(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!rt(e)||e<0||e>15)throw new Error("Number of decimals in function round must be an integer from 0 to 15 inclusive");return parseFloat(Oo(r,e))}function od(r){return Math.abs(r)}od.signature=ge;var Xl=2*Math.PI;function yn(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(t<=0)throw new Error("Relative tolerance must be greater than 0");if(n<0)throw new Error("Absolute tolerance must be at least 0");return r.isNaN()||e.isNaN()?!1:!r.isFinite()||!e.isFinite()?r.eq(e):r.eq(e)?!0:r.minus(e).abs().lte(r.constructor.max(r.constructor.max(r.abs(),e.abs()).mul(t),n))}var jl="isZero",sd=["typed","equalScalar"],ps=N(jl,sd,r=>{var{typed:e,equalScalar:t}=r;return e(jl,{"number | BigNumber | Complex | Fraction":n=>t(n,0),bigint:n=>n===0n,Unit:e.referToSelf(n=>i=>e.find(n,i.valueType())(i.value)),"Array | Matrix":e.referToSelf(n=>i=>St(i,n))})});function Yl(r,e,t,n){return Pe(r.re,e.re,t,n)&&Pe(r.im,e.im,t,n)}var $l=N("compareUnits",["typed"],r=>{var{typed:e}=r;return{"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(!n.equalBase(i))throw new Error("Cannot compare units with different base");return e.find(t,[n.valueType(),i.valueType()])(n.value,i.value)})}});var Oi="equalScalar",ad=["typed","config"],fs=N(Oi,ad,r=>{var{typed:e,config:t}=r,n=$l({typed:e});return e(Oi,{"boolean, boolean":function(o,a){return o===a},"number, number":function(o,a){return Pe(o,a,t.relTol,t.absTol)},"BigNumber, BigNumber":function(o,a){return o.eq(a)||yn(o,a,t.relTol,t.absTol)},"bigint, bigint":function(o,a){return o===a},"Fraction, Fraction":function(o,a){return o.equals(a)},"Complex, Complex":function(o,a){return Yl(o,a,t.relTol,t.absTol)}},n)}),gb=N(Oi,["typed","config"],r=>{var{typed:e,config:t}=r;return e(Oi,{"number, number":function(i,o){return Pe(i,o,t.relTol,t.absTol)}})});var ud="SparseMatrix",ld=["typed","equalScalar","Matrix"],ds=N(ud,ld,r=>{var{typed:e,equalScalar:t,Matrix:n}=r;function i(p,m){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if(m&&!oe(m))throw new Error("Invalid datatype: "+m);if(at(p))o(this,p,m);else if(p&&Et(p.index)&&Et(p.ptr)&&Et(p.size))this._values=p.values,this._index=p.index,this._ptr=p.ptr,this._size=p.size,this._datatype=m||p.datatype;else if(Et(p))a(this,p,m);else{if(p)throw new TypeError("Unsupported type of data ("+$t(p)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=m}}function o(p,m,v){m.type==="SparseMatrix"?(p._values=m._values?mt(m._values):void 0,p._index=mt(m._index),p._ptr=mt(m._ptr),p._size=mt(m._size),p._datatype=v||m._datatype):a(p,m.valueOf(),v||m._datatype)}function a(p,m,v){p._values=[],p._index=[],p._ptr=[],p._datatype=v;var b=m.length,y=0,S=t,x=0;if(oe(v)&&(S=e.find(t,[v,v])||t,x=e.convert(0,v)),b>0){var _=0;do{p._ptr.push(p._index.length);for(var M=0;M<b;M++){var w=m[M];if(Et(w)){if(_===0&&y<w.length&&(y=w.length),_<w.length){var C=w[_];S(C,x)||(p._values.push(C),p._index.push(M))}}else _===0&&y<1&&(y=1),S(w,x)||(p._values.push(w),p._index.push(M))}_++}while(_<y)}p._ptr.push(p._index.length),p._size=[b,y]}i.prototype=new n,i.prototype.createSparseMatrix=function(p,m){return new i(p,m)},Object.defineProperty(i,"name",{value:"SparseMatrix"}),i.prototype.constructor=i,i.prototype.type="SparseMatrix",i.prototype.isSparseMatrix=!0,i.prototype.getDataType=function(){return Qn(this._values,$t)},i.prototype.storage=function(){return"sparse"},i.prototype.datatype=function(){return this._datatype},i.prototype.create=function(p,m){return new i(p,m)},i.prototype.density=function(){var p=this._size[0],m=this._size[1];return p!==0&&m!==0?this._index.length/(p*m):0},i.prototype.subset=function(p,m,v){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return c(this,p);case 2:case 3:return l(this,p,m,v);default:throw new SyntaxError("Wrong number of arguments")}};function c(p,m){if(!Xn(m))throw new TypeError("Invalid index");var v=m.isScalar();if(v)return p.get(m.min());var b=m.size();if(b.length!==p._size.length)throw new tt(b.length,p._size.length);var y,S,x,_,M=m.min(),w=m.max();for(y=0,S=p._size.length;y<S;y++)wt(M[y],p._size[y]),wt(w[y],p._size[y]);var C=p._values,P=p._index,D=p._ptr,R=m.dimension(0),W=m.dimension(1),G=[],k=[];R.forEach(function(j,Q){k[j]=Q[0],G[j]=!0});var L=C?[]:void 0,q=[],Y=[];return W.forEach(function(j){for(Y.push(q.length),x=D[j],_=D[j+1];x<_;x++)y=P[x],G[y]===!0&&(q.push(k[y]),L&&L.push(C[x]))}),Y.push(q.length),new i({values:L,index:q,ptr:Y,size:b,datatype:p._datatype})}function l(p,m,v,b){if(!m||m.isIndex!==!0)throw new TypeError("Invalid index");var y=m.size(),S=m.isScalar(),x;if(at(v)?(x=v.size(),v=v.toArray()):x=ut(v),S){if(x.length!==0)throw new TypeError("Scalar expected");p.set(m.min(),v,b)}else{if(y.length!==1&&y.length!==2)throw new tt(y.length,p._size.length,"<");if(x.length<y.length){for(var _=0,M=0;y[_]===1&&x[_]===1;)_++;for(;y[_]===1;)M++,_++;v=Ri(v,y.length,M,x)}if(!Ce(y,x))throw new tt(y,x,">");if(y.length===1){var w=m.dimension(0);w.forEach(function(D,R){wt(D),p.set([D,0],v[R[0]],b)})}else{var C=m.dimension(0),P=m.dimension(1);C.forEach(function(D,R){wt(D),P.forEach(function(W,G){wt(W),p.set([D,W],v[R[0]][G[0]],b)})})}}return p}i.prototype.get=function(p){if(!Et(p))throw new TypeError("Array expected");if(p.length!==this._size.length)throw new tt(p.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var m=p[0],v=p[1];wt(m,this._size[0]),wt(v,this._size[1]);var b=s(m,this._ptr[v],this._ptr[v+1],this._index);return b<this._ptr[v+1]&&this._index[b]===m?this._values[b]:0},i.prototype.set=function(p,m,v){if(!Et(p))throw new TypeError("Array expected");if(p.length!==this._size.length)throw new tt(p.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var b=p[0],y=p[1],S=this._size[0],x=this._size[1],_=t,M=0;oe(this._datatype)&&(_=e.find(t,[this._datatype,this._datatype])||t,M=e.convert(0,this._datatype)),(b>S-1||y>x-1)&&(f(this,Math.max(b+1,S),Math.max(y+1,x),v),S=this._size[0],x=this._size[1]),wt(b,S),wt(y,x);var w=s(b,this._ptr[y],this._ptr[y+1],this._index);return w<this._ptr[y+1]&&this._index[w]===b?_(m,M)?u(w,y,this._values,this._index,this._ptr):this._values[w]=m:_(m,M)||h(w,b,y,m,this._values,this._index,this._ptr),this};function s(p,m,v,b){if(v-m===0)return v;for(var y=m;y<v;y++)if(b[y]===p)return y;return m}function u(p,m,v,b,y){v.splice(p,1),b.splice(p,1);for(var S=m+1;S<y.length;S++)y[S]--}function h(p,m,v,b,y,S,x){y.splice(p,0,b),S.splice(p,0,m);for(var _=v+1;_<x.length;_++)x[_]++}i.prototype.resize=function(p,m,v){if(!Je(p))throw new TypeError("Array or Matrix expected");var b=p.valueOf().map(S=>Array.isArray(S)&&S.length===1?S[0]:S);if(b.length!==2)throw new Error("Only two dimensions matrix are supported");b.forEach(function(S){if(!it(S)||!rt(S)||S<0)throw new TypeError("Invalid size, must contain positive integers (size: "+bt(b)+")")});var y=v?this.clone():this;return f(y,b[0],b[1],m)};function f(p,m,v,b){var y=b||0,S=t,x=0;oe(p._datatype)&&(S=e.find(t,[p._datatype,p._datatype])||t,x=e.convert(0,p._datatype),y=e.convert(y,p._datatype));var _=!S(y,x),M=p._size[0],w=p._size[1],C,P,D;if(v>w){for(P=w;P<v;P++)if(p._ptr[P]=p._values.length,_)for(C=0;C<M;C++)p._values.push(y),p._index.push(C);p._ptr[v]=p._values.length}else v<w&&(p._ptr.splice(v+1,w-v),p._values.splice(p._ptr[v],p._values.length),p._index.splice(p._ptr[v],p._index.length));if(w=v,m>M){if(_){var R=0;for(P=0;P<w;P++){p._ptr[P]=p._ptr[P]+R,D=p._ptr[P+1]+R;var W=0;for(C=M;C<m;C++,W++)p._values.splice(D+W,0,y),p._index.splice(D+W,0,C),R++}p._ptr[w]=p._values.length}}else if(m<M){var G=0;for(P=0;P<w;P++){p._ptr[P]=p._ptr[P]-G;var k=p._ptr[P],L=p._ptr[P+1]-G;for(D=k;D<L;D++)C=p._index[D],C>m-1&&(p._values.splice(D,1),p._index.splice(D,1),G++)}p._ptr[P]=p._values.length}return p._size[0]=m,p._size[1]=v,p}i.prototype.reshape=function(p,m){if(!Et(p))throw new TypeError("Array expected");if(p.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");p.forEach(function(j){if(!it(j)||!rt(j)||j<=-2||j===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+bt(p)+")")});var v=this._size[0]*this._size[1];p=zr(p,v);var b=p[0]*p[1];if(v!==b)throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var y=m?this.clone():this;if(this._size[0]===p[0]&&this._size[1]===p[1])return y;for(var S=[],x=0;x<y._ptr.length;x++)for(var _=0;_<y._ptr[x+1]-y._ptr[x];_++)S.push(x);for(var M=y._values.slice(),w=y._index.slice(),C=0;C<y._index.length;C++){var P=w[C],D=S[C],R=P*y._size[1]+D;S[C]=R%p[1],w[C]=Math.floor(R/p[1])}y._values.length=0,y._index.length=0,y._ptr.length=p[1]+1,y._size=p.slice();for(var W=0;W<y._ptr.length;W++)y._ptr[W]=0;for(var G=0;G<M.length;G++){var k=w[G],L=S[G],q=M[G],Y=s(k,y._ptr[L],y._ptr[L+1],y._index);h(Y,k,L,q,y._values,y._index,y._ptr)}return y},i.prototype.clone=function(){var p=new i({values:this._values?mt(this._values):void 0,index:mt(this._index),ptr:mt(this._ptr),size:mt(this._size),datatype:this._datatype});return p},i.prototype.size=function(){return this._size.slice(0)},i.prototype.map=function(p,m){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var v=this,b=this._size[0],y=this._size[1],S=function(_,M,w){return Ni(p,_,[M,w],v,"map")};return d(this,0,b-1,0,y-1,S,m)};function d(p,m,v,b,y,S,x){var _=[],M=[],w=[],C=t,P=0;oe(p._datatype)&&(C=e.find(t,[p._datatype,p._datatype])||t,P=e.convert(0,p._datatype));for(var D=function(dt,Dt,Pt){var Ct=S(dt,Dt,Pt);C(Ct,P)||(_.push(Ct),M.push(Dt))},R=b;R<=y;R++){w.push(_.length);var W=p._ptr[R],G=p._ptr[R+1];if(x)for(var k=W;k<G;k++){var L=p._index[k];L>=m&&L<=v&&D(p._values[k],L-m,R-b)}else{for(var q={},Y=W;Y<G;Y++){var j=p._index[Y];q[j]=p._values[Y]}for(var Q=m;Q<=v;Q++){var ht=Q in q?q[Q]:0;D(ht,Q-m,R-b)}}}return w.push(_.length),new i({values:_,index:M,ptr:w,size:[v-m+1,y-b+1]})}i.prototype.forEach=function(p,m){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var v=this,b=this._size[0],y=this._size[1],S=0;S<y;S++){var x=this._ptr[S],_=this._ptr[S+1];if(m)for(var M=x;M<_;M++){var w=this._index[M];p(this._values[M],[w,S],v)}else{for(var C={},P=x;P<_;P++){var D=this._index[P];C[D]=this._values[P]}for(var R=0;R<b;R++){var W=R in C?C[R]:0;p(W,[R,S],v)}}}},i.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var p=this._size[1],m=0;m<p;m++)for(var v=this._ptr[m],b=this._ptr[m+1],y=v;y<b;y++){var S=this._index[y];yield{value:this._values[y],index:[S,m]}}},i.prototype.toArray=function(){return g(this._values,this._index,this._ptr,this._size,!0)},i.prototype.valueOf=function(){return g(this._values,this._index,this._ptr,this._size,!1)};function g(p,m,v,b,y){var S=b[0],x=b[1],_=[],M,w;for(M=0;M<S;M++)for(_[M]=[],w=0;w<x;w++)_[M][w]=0;for(w=0;w<x;w++)for(var C=v[w],P=v[w+1],D=C;D<P;D++)M=m[D],_[M][w]=p?y?mt(p[D]):p[D]:1;return _}return i.prototype.format=function(p){for(var m=this._size[0],v=this._size[1],b=this.density(),y="Sparse Matrix ["+bt(m,p)+" x "+bt(v,p)+"] density: "+bt(b,p)+`
|
|
7515
7515
|
`,S=0;S<v;S++)for(var x=this._ptr[S],_=this._ptr[S+1],M=x;M<_;M++){var w=this._index[M];y+=`
|
|
7516
|
-
(`+bt(w,p)+", "+bt(S,p)+") ==> "+(this._values?bt(this._values[M],p):"X")}return y},i.prototype.toString=function(){return bt(this.toArray())},i.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},i.prototype.diagonal=function(p){if(p){if(st(p)&&(p=p.toNumber()),!it(p)||!rt(p))throw new TypeError("The parameter k must be an integer number")}else p=0;var m=p>0?p:0,v=p<0?-p:0,b=this._size[0],y=this._size[1],S=Math.min(b-v,y-m),x=[],_=[],M=[];M[0]=0;for(var w=m;w<y&&x.length<S;w++)for(var C=this._ptr[w],P=this._ptr[w+1],D=C;D<P;D++){var R=this._index[D];if(R===w-m+v){x.push(this._values[D]),_[x.length-1]=R-v;break}}return M.push(x.length),new i({values:x,index:_,ptr:M,size:[S,1]})},i.fromJSON=function(p){return new i(p)},i.diagonal=function(p,m,v,b,y){if(!Et(p))throw new TypeError("Array expected, size parameter");if(p.length!==2)throw new Error("Only two dimensions matrix are supported");if(p=p.map(function(j){if(st(j)&&(j=j.toNumber()),!it(j)||!rt(j)||j<1)throw new Error("Size values must be positive integers");return j}),v){if(st(v)&&(v=v.toNumber()),!it(v)||!rt(v))throw new TypeError("The parameter k must be an integer number")}else v=0;var S=t,x=0;oe(y)&&(S=e.find(t,[y,y])||t,x=e.convert(0,y));var _=v>0?v:0,M=v<0?-v:0,w=p[0],C=p[1],P=Math.min(w-M,C-_),D;if(Et(m)){if(m.length!==P)throw new Error("Invalid value array length");D=function(Q){return m[Q]}}else if(at(m)){var R=m.size();if(R.length!==1||R[0]!==P)throw new Error("Invalid matrix length");D=function(Q){return m.get([Q])}}else D=function(){return m};for(var W=[],G=[],k=[],L=0;L<C;L++){k.push(W.length);var q=L-_;if(q>=0&&q<P){var Y=D(q);S(Y,x)||(G.push(q+M),W.push(Y))}}return k.push(W.length),new i({values:W,index:G,ptr:k,size:[w,C]})},i.prototype.swapRows=function(p,m){if(!it(p)||!rt(p)||!it(m)||!rt(m))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return wt(p,this._size[0]),wt(m,this._size[0]),i._swapRows(p,m,this._size[1],this._values,this._index,this._ptr),this},i._forEachRow=function(p,m,v,b,y){for(var S=b[p],x=b[p+1],_=S;_<x;_++)y(v[_],m[_])},i._swapRows=function(p,m,v,b,y,S){for(var x=0;x<v;x++){var _=S[x],M=S[x+1],w=s(p,_,M,y),C=s(m,_,M,y);if(w<M&&C<M&&y[w]===p&&y[C]===m){if(b){var P=b[w];b[w]=b[C],b[C]=P}continue}if(w<M&&y[w]===p&&(C>=M||y[C]!==m)){var D=b?b[w]:void 0;y.splice(C,0,m),b&&b.splice(C,0,D),y.splice(C<=w?w+1:w,1),b&&b.splice(C<=w?w+1:w,1);continue}if(C<M&&y[C]===m&&(w>=M||y[w]!==p)){var R=b?b[C]:void 0;y.splice(w,0,p),b&&b.splice(w,0,R),y.splice(w<=C?C+1:C,1),b&&b.splice(w<=C?C+1:C,1)}}},i},{isClass:!0});var cd="number",hd=["typed"];function pd(r){var e=r.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(e){var t={"0b":2,"0o":8,"0x":16}[e[1]],n=e[2],i=e[3];return{input:r,radix:t,integerPart:n,fractionalPart:i}}else return null}function fd(r){for(var e=parseInt(r.integerPart,r.radix),t=0,n=0;n<r.fractionalPart.length;n++){var i=parseInt(r.fractionalPart[n],r.radix);t+=i/Math.pow(r.radix,n+1)}var o=e+t;if(isNaN(o))throw new SyntaxError('String "'+r.input+'" is not a valid number');return o}var gs=N(cd,hd,r=>{var{typed:e}=r,t=e("number",{"":function(){return 0},number:function(i){return i},string:function(i){if(i==="NaN")return NaN;var o=pd(i);if(o)return fd(o);var a=0,c=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);c&&(a=Number(c[2]),i=c[1]);var l=Number(i);if(isNaN(l))throw new SyntaxError('String "'+i+'" is not a valid number');if(c){if(l>2**a-1)throw new SyntaxError('String "'.concat(i,'" is out of range'));l>=2**(a-1)&&(l=l-2**a)}return l},BigNumber:function(i){return i.toNumber()},bigint:function(i){return Number(i)},Fraction:function(i){return i.valueOf()},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),null:function(i){return 0},"Unit, string | Unit":function(i,o){return i.toNumber(o)},"Array | Matrix":e.referToSelf(n=>i=>St(i,n))});return t.fromJSON=function(n){return parseFloat(n.value)},t});var dd="bignumber",gd=["typed","BigNumber"],ms=N(dd,gd,r=>{var{typed:e,BigNumber:t}=r;return e("bignumber",{"":function(){return new t(0)},number:function(i){return new t(i+"")},string:function(i){var o=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(o){var a=o[2],c=t(o[1]),l=new t(2).pow(Number(a));if(c.gt(l.sub(1)))throw new SyntaxError('String "'.concat(i,'" is out of range'));var s=new t(2).pow(Number(a)-1);return c.gte(s)?c.sub(l):c}return new t(i)},BigNumber:function(i){return i},bigint:function(i){return new t(i.toString())},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Fraction:function(i){return new t(i.n).div(i.d).times(i.s)},null:function(i){return new t(0)},"Array | Matrix":e.referToSelf(n=>i=>St(i,n))})});var md="fraction",yd=["typed","Fraction"],ys=N(md,yd,r=>{var{typed:e,Fraction:t}=r;return e("fraction",{number:function(i){if(!isFinite(i)||isNaN(i))throw new Error(i+" cannot be represented as a fraction");return new t(i)},string:function(i){return new t(i)},"number, number":function(i,o){return new t(i,o)},null:function(i){return new t(0)},BigNumber:function(i){return new t(i.toString())},bigint:function(i){return new t(i.toString())},Fraction:function(i){return i},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Object:function(i){return new t(i)},"Array | Matrix":e.referToSelf(n=>i=>St(i,n))})});var Zl="matrix",vd=["typed","Matrix","DenseMatrix","SparseMatrix"],vs=N(Zl,vd,r=>{var{typed:e,Matrix:t,DenseMatrix:n,SparseMatrix:i}=r;return e(Zl,{"":function(){return o([])},string:function(c){return o([],c)},"string, string":function(c,l){return o([],c,l)},Array:function(c){return o(c)},Matrix:function(c){return o(c,c.storage())},"Array | Matrix, string":o,"Array | Matrix, string, string":o});function o(a,c,l){if(c==="dense"||c==="default"||c===void 0)return new n(a,l);if(c==="sparse")return new i(a,l);throw new TypeError("Unknown matrix type "+JSON.stringify(c)+".")}});var Kl="unaryMinus",_d=["typed"],_s=N(Kl,_d,r=>{var{typed:e}=r;return e(Kl,{number:us,"Complex | BigNumber | Fraction":t=>t.neg(),bigint:t=>-t,Unit:e.referToSelf(t=>n=>{var i=n.clone();return i.value=e.find(t,i.valueType())(n.value),i}),"Array | Matrix":e.referToSelf(t=>n=>St(n,t,!0))})});var Jl="abs",xd=["typed"],xs=N(Jl,xd,r=>{var{typed:e}=r;return e(Jl,{number:is,"Complex | BigNumber | Fraction | Unit":t=>t.abs(),bigint:t=>t<0n?-t:t,"Array | Matrix":e.referToSelf(t=>n=>St(n,t,!0))})});var Ql="addScalar",Ed=["typed"],Es=N(Ql,Ed,r=>{var{typed:e}=r;return e(Ql,{"number, number":os,"Complex, Complex":function(n,i){return n.add(i)},"BigNumber, BigNumber":function(n,i){return n.plus(i)},"bigint, bigint":function(n,i){return n+i},"Fraction, Fraction":function(n,i){return n.add(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var tc="subtractScalar",bd=["typed"],bs=N(tc,bd,r=>{var{typed:e}=r;return e(tc,{"number, number":ss,"Complex, Complex":function(n,i){return n.sub(i)},"BigNumber, BigNumber":function(n,i){return n.minus(i)},"bigint, bigint":function(n,i){return n-i},"Fraction, Fraction":function(n,i){return n.sub(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var Sd="matAlgo11xS0s",Md=["typed","equalScalar"],je=N(Sd,Md,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=t,v=0,b=a;typeof f=="string"&&(p=f,m=e.find(t,[p,p]),v=e.convert(0,p),o=e.convert(o,p),b=e.find(a,[p,p]));for(var y=[],S=[],x=[],_=0;_<g;_++){x[_]=S.length;for(var M=u[_],w=u[_+1],C=M;C<w;C++){var P=s[C],D=c?b(o,l[C]):b(l[C],o);m(D,v)||(S.push(P),y.push(D))}}return x[g]=S.length,i.createSparseMatrix({values:y,index:S,ptr:x,size:[d,g],datatype:p})}});var wd="matAlgo12xSfs",Td=["typed","DenseMatrix"],er=N(wd,Td,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=c?m(o,0):m(0,o)}return new t({data:v,size:[d,g],datatype:p})}});var Cd="matAlgo14xDs",Ad=["typed"],Ye=N(Cd,Ad,r=>{var{typed:e}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype,h,f=a;typeof u=="string"&&(h=u,o=e.convert(o,h),f=e.find(a,[h,h]));var d=s.length>0?t(f,0,s,s[0],l,o,c):[];return i.createDenseMatrix({data:d,size:mt(s),datatype:h})};function t(n,i,o,a,c,l,s){var u=[];if(i===o.length-1)for(var h=0;h<a;h++)u[h]=s?n(l,c[h]):n(c[h],l);else for(var f=0;f<a;f++)u[f]=t(n,i+1,o,o[i+1],c[f],l,s);return u}});var Ss="ceil",Pd=["typed","config","round","matrix","equalScalar","zeros","DenseMatrix"],Dd=N(Ss,["typed","config","round"],r=>{var{typed:e,config:t,round:n}=r;return e(Ss,{number:function(o){return Pe(o,n(o),t.relTol,t.absTol)?n(o):Math.ceil(o)},"number, number":function(o,a){if(Pe(o,n(o,a),t.relTol,t.absTol))return n(o,a);var[c,l]="".concat(o,"e").split("e"),s=Math.ceil(Number("".concat(c,"e").concat(Number(l)+a)));return[c,l]="".concat(s,"e").split("e"),Number("".concat(c,"e").concat(Number(l)-a))}})}),Ms=N(Ss,Pd,r=>{var{typed:e,config:t,round:n,matrix:i,equalScalar:o,zeros:a,DenseMatrix:c}=r,l=je({typed:e,equalScalar:o}),s=er({typed:e,DenseMatrix:c}),u=Ye({typed:e}),h=Dd({typed:e,config:t,round:n});return e("ceil",{number:h.signatures.number,"number,number":h.signatures["number,number"],Complex:function(d){return d.ceil()},"Complex, number":function(d,g){return d.ceil(g)},"Complex, BigNumber":function(d,g){return d.ceil(g.toNumber())},BigNumber:function(d){return yn(d,n(d),t.relTol,t.absTol)?n(d):d.ceil()},"BigNumber, BigNumber":function(d,g){return yn(d,n(d,g),t.relTol,t.absTol)?n(d,g):d.toDecimalPlaces(g.toNumber(),Ur.ROUND_CEIL)},Fraction:function(d){return d.ceil()},"Fraction, number":function(d,g){return d.ceil(g)},"Fraction, BigNumber":function(d,g){return d.ceil(g.toNumber())},"Array | Matrix":e.referToSelf(f=>d=>St(d,f,!0)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>St(d,p=>f(p,g),!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"number | Complex | Fraction | BigNumber, Array":e.referToSelf(f=>(d,g)=>u(i(g),d,f,!0).valueOf()),"number | Complex | Fraction | BigNumber, Matrix":e.referToSelf(f=>(d,g)=>o(d,0)?a(g.size(),g.storage()):g.storage()==="dense"?u(g,d,f,!0):s(g,d,f,!0))})});var ec="exp",Id=["typed"],ws=N(ec,Id,r=>{var{typed:e}=r;return e(ec,{number:ls,Complex:function(n){return n.exp()},BigNumber:function(n){return n.exp()}})});var Rd="matAlgo02xDS0",Nd=["typed","equalScalar"],nc=N(Rd,Nd,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype||i.getDataType(),h=o._values,f=o._index,d=o._ptr,g=o._size,p=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(s.length!==g.length)throw new tt(s.length,g.length);if(s[0]!==g[0]||s[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+g+")");if(!h)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var m=s[0],v=s[1],b,y=t,S=0,x=a;typeof u=="string"&&u===p&&u!=="mixed"&&(b=u,y=e.find(t,[b,b]),S=e.convert(0,b),x=e.find(a,[b,b]));for(var _=[],M=[],w=[],C=0;C<v;C++){w[C]=M.length;for(var P=d[C],D=d[C+1],R=P;R<D;R++){var W=f[R],G=c?x(h[R],l[W][C]):x(l[W][C],h[R]);y(G,S)||(M.push(W),_.push(G))}}return w[v]=M.length,o.createSparseMatrix({values:_,index:M,ptr:w,size:[m,v],datatype:u===i._datatype&&p===o._datatype?b:void 0})}});var Ld="matAlgo03xDSf",Od=["typed"],rc=N(Ld,Od,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new tt(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v,b=0,y=o;typeof s=="string"&&s===g&&s!=="mixed"&&(v=s,b=e.convert(0,v),y=e.find(o,[v,v]));for(var S=[],x=0;x<p;x++)S[x]=[];for(var _=[],M=[],w=0;w<m;w++){for(var C=w+1,P=f[w],D=f[w+1],R=P;R<D;R++){var W=h[R];_[W]=a?y(u[R],c[W][w]):y(c[W][w],u[R]),M[W]=C}for(var G=0;G<p;G++)M[G]===C?S[G][w]=_[G]:S[G][w]=a?y(b,c[G][w]):y(c[G][w],b)}return n.createDenseMatrix({data:S,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var Fd="matAlgo13xDD",Ud=["typed"],ic=N(Fd,Ud,r=>{var{typed:e}=r;return function(i,o,a){var c=i._data,l=i._size,s=i._datatype,u=o._data,h=o._size,f=o._datatype,d=[];if(l.length!==h.length)throw new tt(l.length,h.length);for(var g=0;g<l.length;g++){if(l[g]!==h[g])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+h+")");d[g]=l[g]}var p,m=a;typeof s=="string"&&s===f&&(p=s,m=e.find(a,[p,p]));var v=d.length>0?t(m,0,d,d[0],c,u):[];return i.createDenseMatrix({data:v,size:d,datatype:p})};function t(n,i,o,a,c,l){var s=[];if(i===o.length-1)for(var u=0;u<a;u++)s[u]=n(c[u],l[u]);else for(var h=0;h<a;h++)s[h]=t(n,i+1,o,o[i+1],c[h],l[h]);return s}});function Ot(r,e){if(Ce(r.size(),e.size()))return[r,e];var t=ts(r.size(),e.size());return[r,e].map(n=>Bd(n,t))}function Bd(r,e){return Ce(r.size(),e)?r:r.create(Gr(r.valueOf(),e),r.datatype())}var zd="matrixAlgorithmSuite",Gd=["typed","matrix"],Fi=N(zd,Gd,r=>{var{typed:e,matrix:t}=r,n=ic({typed:e}),i=Ye({typed:e});return function(a){var c=a.elop,l=a.SD||a.DS,s;c?(s={"DenseMatrix, DenseMatrix":(d,g)=>n(...Ot(d,g),c),"Array, Array":(d,g)=>n(...Ot(t(d),t(g)),c).valueOf(),"Array, DenseMatrix":(d,g)=>n(...Ot(t(d),g),c),"DenseMatrix, Array":(d,g)=>n(...Ot(d,t(g)),c)},a.SS&&(s["SparseMatrix, SparseMatrix"]=(d,g)=>a.SS(...Ot(d,g),c,!1)),a.DS&&(s["DenseMatrix, SparseMatrix"]=(d,g)=>a.DS(...Ot(d,g),c,!1),s["Array, SparseMatrix"]=(d,g)=>a.DS(...Ot(t(d),g),c,!1)),l&&(s["SparseMatrix, DenseMatrix"]=(d,g)=>l(...Ot(g,d),c,!0),s["SparseMatrix, Array"]=(d,g)=>l(...Ot(t(g),d),c,!0))):(s={"DenseMatrix, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Ot(g,p),d)),"Array, Array":e.referToSelf(d=>(g,p)=>n(...Ot(t(g),t(p)),d).valueOf()),"Array, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Ot(t(g),p),d)),"DenseMatrix, Array":e.referToSelf(d=>(g,p)=>n(...Ot(g,t(p)),d))},a.SS&&(s["SparseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.SS(...Ot(g,p),d,!1))),a.DS&&(s["DenseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Ot(g,p),d,!1)),s["Array, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Ot(t(g),p),d,!1))),l&&(s["SparseMatrix, DenseMatrix"]=e.referToSelf(d=>(g,p)=>l(...Ot(p,g),d,!0)),s["SparseMatrix, Array"]=e.referToSelf(d=>(g,p)=>l(...Ot(t(p),g),d,!0))));var u=a.scalar||"any",h=a.Ds||a.Ss;h&&(c?(s["DenseMatrix,"+u]=(d,g)=>i(d,g,c,!1),s[u+", DenseMatrix"]=(d,g)=>i(g,d,c,!0),s["Array,"+u]=(d,g)=>i(t(d),g,c,!1).valueOf(),s[u+", Array"]=(d,g)=>i(t(g),d,c,!0).valueOf()):(s["DenseMatrix,"+u]=e.referToSelf(d=>(g,p)=>i(g,p,d,!1)),s[u+", DenseMatrix"]=e.referToSelf(d=>(g,p)=>i(p,g,d,!0)),s["Array,"+u]=e.referToSelf(d=>(g,p)=>i(t(g),p,d,!1).valueOf()),s[u+", Array"]=e.referToSelf(d=>(g,p)=>i(t(p),g,d,!0).valueOf())));var f=a.sS!==void 0?a.sS:a.Ss;return c?(a.Ss&&(s["SparseMatrix,"+u]=(d,g)=>a.Ss(d,g,c,!1)),f&&(s[u+", SparseMatrix"]=(d,g)=>f(g,d,c,!0))):(a.Ss&&(s["SparseMatrix,"+u]=e.referToSelf(d=>(g,p)=>a.Ss(g,p,d,!1))),f&&(s[u+", SparseMatrix"]=e.referToSelf(d=>(g,p)=>f(p,g,d,!0)))),c&&c.signatures&&_i(s,c.signatures),s}});var kd="matAlgo01xDSid",Vd=["typed"],oc=N(kd,Vd,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new tt(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v=typeof s=="string"&&s!=="mixed"&&s===g?s:void 0,b=v?e.find(o,[v,v]):o,y,S,x=[];for(y=0;y<p;y++)x[y]=[];var _=[],M=[];for(S=0;S<m;S++){for(var w=S+1,C=f[S],P=f[S+1],D=C;D<P;D++)y=h[D],_[y]=a?b(u[D],c[y][S]):b(c[y][S],u[D]),M[y]=w;for(y=0;y<p;y++)M[y]===w?x[y][S]=_[y]:x[y][S]=c[y][S]}return n.createDenseMatrix({data:x,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var Hd="matAlgo04xSidSid",Wd=["typed","equalScalar"],sc=N(Hd,Wd,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a){var c=i._values,l=i._index,s=i._ptr,u=i._size,h=i._datatype||i._data===void 0?i._datatype:i.getDataType(),f=o._values,d=o._index,g=o._ptr,p=o._size,m=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(u.length!==p.length)throw new tt(u.length,p.length);if(u[0]!==p[0]||u[1]!==p[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+p+")");var v=u[0],b=u[1],y,S=t,x=0,_=a;typeof h=="string"&&h===m&&h!=="mixed"&&(y=h,S=e.find(t,[y,y]),x=e.convert(0,y),_=e.find(a,[y,y]));var M=c&&f?[]:void 0,w=[],C=[],P=c&&f?[]:void 0,D=c&&f?[]:void 0,R=[],W=[],G,k,L,q,Y;for(k=0;k<b;k++){C[k]=w.length;var j=k+1;for(q=s[k],Y=s[k+1],L=q;L<Y;L++)G=l[L],w.push(G),R[G]=j,P&&(P[G]=c[L]);for(q=g[k],Y=g[k+1],L=q;L<Y;L++)if(G=d[L],R[G]===j){if(P){var Q=_(P[G],f[L]);S(Q,x)?R[G]=null:P[G]=Q}}else w.push(G),W[G]=j,D&&(D[G]=f[L]);if(P&&D)for(L=C[k];L<w.length;)G=w[L],R[G]===j?(M[L]=P[G],L++):W[G]===j?(M[L]=D[G],L++):w.splice(L,1)}return C[b]=w.length,i.createSparseMatrix({values:M,index:w,ptr:C,size:[v,b],datatype:h===i._datatype&&m===o._datatype?y:void 0})}});var qd="matAlgo10xSids",Xd=["typed","DenseMatrix"],ac=N(qd,Xd,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=o}return new t({data:v,size:[d,g],datatype:p})}});var uc="log2",jd=["typed","config","Complex"],Ts=N(uc,jd,r=>{var{typed:e,config:t,Complex:n}=r;return e(uc,{number:function(a){return a>=0||t.predictable?cs(a):i(new n(a,0))},Complex:i,BigNumber:function(a){return!a.isNegative()||t.predictable?a.log(2):i(new n(a.toNumber(),0))},"Array | Matrix":e.referToSelf(o=>a=>St(a,o))});function i(o){var a=Math.sqrt(o.re*o.re+o.im*o.im);return new n(Math.log2?Math.log2(a):Math.log(a)/Math.LN2,Math.atan2(o.im,o.re)/Math.LN2)}});var Yd="multiplyScalar",$d=["typed"],Cs=N(Yd,$d,r=>{var{typed:e}=r;return e("multiplyScalar",{"number, number":as,"Complex, Complex":function(n,i){return n.mul(i)},"BigNumber, BigNumber":function(n,i){return n.times(i)},"bigint, bigint":function(n,i){return n*i},"Fraction, Fraction":function(n,i){return n.mul(i)},"number | Fraction | BigNumber | Complex, Unit":(t,n)=>n.multiply(t),"Unit, number | Fraction | BigNumber | Complex | Unit":(t,n)=>t.multiply(n)})});var lc="multiply",Zd=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],As=N(lc,Zd,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,equalScalar:o,dot:a}=r,c=je({typed:e,equalScalar:o}),l=Ye({typed:e});function s(x,_){switch(x.length){case 1:switch(_.length){case 1:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+x[0]+") must match Matrix rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;case 2:switch(_.length){case 1:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+x[1]+") must match Vector length ("+_[0]+")");break;case 2:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+x[1]+") must match Matrix B rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+x.length+" dimensions)")}}function u(x,_,M){if(M===0)throw new Error("Cannot multiply two empty vectors");return a(x,_)}function h(x,_){if(_.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return f(x,_)}function f(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=D[1],k,L=n,q=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&(k=C,L=e.find(n,[k,k]),q=e.find(i,[k,k]));for(var Y=[],j=0;j<G;j++){for(var Q=q(M[0],P[0][j]),ht=1;ht<W;ht++)Q=L(Q,q(M[ht],P[ht][j]));Y[j]=Q}return x.createDenseMatrix({data:Y,size:[G],datatype:C===x._datatype&&R===_._datatype?k:void 0})}var d=e("_multiplyMatrixVector",{"DenseMatrix, any":p,"SparseMatrix, any":b}),g=e("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":m,"DenseMatrix, SparseMatrix":v,"SparseMatrix, DenseMatrix":y,"SparseMatrix, SparseMatrix":S});function p(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._datatype||_.getDataType(),R=w[0],W=w[1],G,k=n,L=i;C&&D&&C===D&&typeof C=="string"&&C!=="mixed"&&(G=C,k=e.find(n,[G,G]),L=e.find(i,[G,G]));for(var q=[],Y=0;Y<R;Y++){for(var j=M[Y],Q=L(j[0],P[0]),ht=1;ht<W;ht++)Q=k(Q,L(j[ht],P[ht]));q[Y]=Q}return x.createDenseMatrix({data:q,size:[R],datatype:C===x._datatype&&D===_._datatype?G:void 0})}function m(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=w[1],k=D[1],L,q=n,Y=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&C!=="mixed"&&(L=C,q=e.find(n,[L,L]),Y=e.find(i,[L,L]));for(var j=[],Q=0;Q<W;Q++){var ht=M[Q];j[Q]=[];for(var lt=0;lt<k;lt++){for(var dt=Y(ht[0],P[0][lt]),Dt=1;Dt<G;Dt++)dt=q(dt,Y(ht[Dt],P[Dt][lt]));j[Q][lt]=dt}}return x.createDenseMatrix({data:j,size:[W,k],datatype:C===x._datatype&&R===_._datatype?L:void 0})}function v(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._values,D=_._index,R=_._ptr,W=_._size,G=_._datatype||_._data===void 0?_._datatype:_.getDataType();if(!P)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var k=w[0],L=W[1],q,Y=n,j=i,Q=o,ht=0;C&&G&&C===G&&typeof C=="string"&&C!=="mixed"&&(q=C,Y=e.find(n,[q,q]),j=e.find(i,[q,q]),Q=e.find(o,[q,q]),ht=e.convert(0,q));for(var lt=[],dt=[],Dt=[],Pt=_.createSparseMatrix({values:lt,index:dt,ptr:Dt,size:[k,L],datatype:C===x._datatype&&G===_._datatype?q:void 0}),Ct=0;Ct<L;Ct++){Dt[Ct]=dt.length;var Mt=R[Ct],ae=R[Ct+1];if(ae>Mt)for(var At=0,vt=0;vt<k;vt++){for(var Ee=vt+1,Ht=void 0,pt=Mt;pt<ae;pt++){var Ft=D[pt];At!==Ee?(Ht=j(M[vt][Ft],P[pt]),At=Ee):Ht=Y(Ht,j(M[vt][Ft],P[pt]))}At===Ee&&!Q(Ht,ht)&&(dt.push(vt),lt.push(Ht))}}return Dt[L]=dt.length,Pt}function b(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=[],L=[],q=[],Y,j=n,Q=i,ht=o,lt=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),Q=e.find(i,[Y,Y]),ht=e.find(o,[Y,Y]),lt=e.convert(0,Y));var dt=[],Dt=[];q[0]=0;for(var Pt=0;Pt<G;Pt++){var Ct=D[Pt];if(!ht(Ct,lt))for(var Mt=C[Pt],ae=C[Pt+1],At=Mt;At<ae;At++){var vt=w[At];Dt[vt]?dt[vt]=j(dt[vt],Q(Ct,M[At])):(Dt[vt]=!0,L.push(vt),dt[vt]=Q(Ct,M[At]))}}for(var Ee=L.length,Ht=0;Ht<Ee;Ht++){var pt=L[Ht];k[Ht]=dt[pt]}return q[1]=L.length,x.createSparseMatrix({values:k,index:L,ptr:q,size:[W,1],datatype:P===x._datatype&&R===_._datatype?Y:void 0})}function y(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=_._size[1],L,q=n,Y=i,j=o,Q=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(L=P,q=e.find(n,[L,L]),Y=e.find(i,[L,L]),j=e.find(o,[L,L]),Q=e.convert(0,L));for(var ht=[],lt=[],dt=[],Dt=x.createSparseMatrix({values:ht,index:lt,ptr:dt,size:[W,k],datatype:P===x._datatype&&R===_._datatype?L:void 0}),Pt=[],Ct=[],Mt=0;Mt<k;Mt++){dt[Mt]=lt.length;for(var ae=Mt+1,At=0;At<G;At++){var vt=D[At][Mt];if(!j(vt,Q))for(var Ee=C[At],Ht=C[At+1],pt=Ee;pt<Ht;pt++){var Ft=w[pt];Ct[Ft]!==ae?(Ct[Ft]=ae,lt.push(Ft),Pt[Ft]=Y(vt,M[pt])):Pt[Ft]=q(Pt[Ft],Y(vt,M[pt]))}}for(var Kt=dt[Mt],Ve=lt.length,nn=Kt;nn<Ve;nn++){var or=lt[nn];ht[nn]=Pt[or]}}return dt[k]=lt.length,Dt}function S(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType(),D=_._values,R=_._index,W=_._ptr,G=_._datatype||_._data===void 0?_._datatype:_.getDataType(),k=x._size[0],L=_._size[1],q=M&&D,Y,j=n,Q=i;P&&G&&P===G&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),Q=e.find(i,[Y,Y]));for(var ht=q?[]:void 0,lt=[],dt=[],Dt=x.createSparseMatrix({values:ht,index:lt,ptr:dt,size:[k,L],datatype:P===x._datatype&&G===_._datatype?Y:void 0}),Pt=q?[]:void 0,Ct=[],Mt,ae,At,vt,Ee,Ht,pt,Ft,Kt=0;Kt<L;Kt++){dt[Kt]=lt.length;var Ve=Kt+1;for(Ee=W[Kt],Ht=W[Kt+1],vt=Ee;vt<Ht;vt++)if(Ft=R[vt],q)for(ae=C[Ft],At=C[Ft+1],Mt=ae;Mt<At;Mt++)pt=w[Mt],Ct[pt]!==Ve?(Ct[pt]=Ve,lt.push(pt),Pt[pt]=Q(D[vt],M[Mt])):Pt[pt]=j(Pt[pt],Q(D[vt],M[Mt]));else for(ae=C[Ft],At=C[Ft+1],Mt=ae;Mt<At;Mt++)pt=w[Mt],Ct[pt]!==Ve&&(Ct[pt]=Ve,lt.push(pt));if(q)for(var nn=dt[Kt],or=lt.length,Nn=nn;Nn<or;Nn++){var Xr=lt[Nn];ht[Nn]=Pt[Xr]}}return dt[L]=lt.length,Dt}return e(lc,i,{"Array, Array":e.referTo("Matrix, Matrix",x=>(_,M)=>{s(ut(_),ut(M));var w=x(t(_),t(M));return at(w)?w.valueOf():w}),"Matrix, Matrix":function(_,M){var w=_.size(),C=M.size();return s(w,C),w.length===1?C.length===1?u(_,M,w[0]):h(_,M):C.length===1?d(_,M):g(_,M)},"Matrix, Array":e.referTo("Matrix,Matrix",x=>(_,M)=>x(_,t(M))),"Array, Matrix":e.referToSelf(x=>(_,M)=>x(t(_,M.storage()),M)),"SparseMatrix, any":function(_,M){return c(_,M,i,!1)},"DenseMatrix, any":function(_,M){return l(_,M,i,!1)},"any, SparseMatrix":function(_,M){return c(M,_,i,!0)},"any, DenseMatrix":function(_,M){return l(M,_,i,!0)},"Array, any":function(_,M){return l(t(_),M,i,!1).valueOf()},"any, Array":function(_,M){return l(t(M),_,i,!0).valueOf()},"any, any":i,"any, any, ...any":e.referToSelf(x=>(_,M,w)=>{for(var C=x(_,M),P=0;P<w.length;P++)C=x(C,w[P]);return C})})});var Kd="matAlgo07xSSf",Jd=["typed","DenseMatrix"],cc=N(Kd,Jd,r=>{var{typed:e,DenseMatrix:t}=r;return function(o,a,c){var l=o._size,s=o._datatype||o._data===void 0?o._datatype:o.getDataType(),u=a._size,h=a._datatype||a._data===void 0?a._datatype:a.getDataType();if(l.length!==u.length)throw new tt(l.length,u.length);if(l[0]!==u[0]||l[1]!==u[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+u+")");var f=l[0],d=l[1],g,p=0,m=c;typeof s=="string"&&s===h&&s!=="mixed"&&(g=s,p=e.convert(0,g),m=e.find(c,[g,g]));var v,b,y=[];for(v=0;v<f;v++)y[v]=[];var S=[],x=[],_=[],M=[];for(b=0;b<d;b++){var w=b+1;for(n(o,b,_,S,w),n(a,b,M,x,w),v=0;v<f;v++){var C=_[v]===w?S[v]:p,P=M[v]===w?x[v]:p;y[v][b]=m(C,P)}}return new t({data:y,size:[f,d],datatype:s===o._datatype&&h===a._datatype?g:void 0})};function n(i,o,a,c,l){for(var s=i._values,u=i._index,h=i._ptr,f=h[o],d=h[o+1];f<d;f++){var g=u[f];a[g]=l,c[g]=s[f]}}});var hc="conj",Qd=["typed"],Ps=N(hc,Qd,r=>{var{typed:e}=r;return e(hc,{"number | BigNumber | Fraction":t=>t,Complex:t=>t.conjugate(),"Array | Matrix":e.referToSelf(t=>n=>St(n,t))})});var pc="concat",tg=["typed","matrix","isInteger"],Ds=N(pc,tg,r=>{var{typed:e,matrix:t,isInteger:n}=r;return e(pc,{"...Array | Matrix | number | BigNumber":function(o){var a,c=o.length,l=-1,s,u=!1,h=[];for(a=0;a<c;a++){var f=o[a];if(at(f)&&(u=!0),it(f)||st(f)){if(a!==c-1)throw new Error("Dimension must be specified as last argument");if(s=l,l=f.valueOf(),!n(l))throw new TypeError("Integer number expected for dimension");if(l<0||a>0&&l>s)throw new Ge(l,s+1)}else{var d=mt(f).valueOf(),g=ut(d);if(h[a]=d,s=l,l=g.length-1,a>0&&l!==s)throw new tt(s+1,l+1)}}if(h.length===0)throw new SyntaxError("At least one matrix expected");for(var p=h.shift();h.length;)p=Qo(p,h.shift(),l);return u?t(p):p},"...string":function(o){return o.join("")}})});var fc="identity",eg=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],Is=N(fc,eg,r=>{var{typed:e,config:t,matrix:n,BigNumber:i,DenseMatrix:o,SparseMatrix:a}=r;return e(fc,{"":function(){return t.matrix==="Matrix"?n([]):[]},string:function(u){return n(u)},"number | BigNumber":function(u){return l(u,u,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(u,h){return l(u,u,h)},"number | BigNumber, number | BigNumber":function(u,h){return l(u,h,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(u,h,f){return l(u,h,f)},Array:function(u){return c(u)},"Array, string":function(u,h){return c(u,h)},Matrix:function(u){return c(u.valueOf(),u.storage())},"Matrix, string":function(u,h){return c(u.valueOf(),h)}});function c(s,u){switch(s.length){case 0:return u?n(u):[];case 1:return l(s[0],s[0],u);case 2:return l(s[0],s[1],u);default:throw new Error("Vector containing two values expected")}}function l(s,u,h){var f=st(s)||st(u)?i:null;if(st(s)&&(s=s.toNumber()),st(u)&&(u=u.toNumber()),!rt(s)||s<1)throw new Error("Parameters in function identity must be positive integers");if(!rt(u)||u<1)throw new Error("Parameters in function identity must be positive integers");var d=f?new i(1):1,g=f?new f(0):0,p=[s,u];if(h){if(h==="sparse")return a.diagonal(p,d,0,g);if(h==="dense")return o.diagonal(p,d,0,g);throw new TypeError('Unknown matrix type "'.concat(h,'"'))}for(var m=In([],p,g),v=s<u?s:u,b=0;b<v;b++)m[b][b]=d;return m}});function dc(){throw new Error('No "bignumber" implementation available')}function gc(){throw new Error('No "fraction" implementation available')}function mc(){throw new Error('No "matrix" implementation available')}var yc="reshape",ng=["typed","isInteger","matrix"],Rs=N(yc,ng,r=>{var{typed:e,isInteger:t}=r;return e(yc,{"Matrix, Array":function(i,o){return i.reshape(o,!0)},"Array, Array":function(i,o){return o.forEach(function(a){if(!t(a))throw new TypeError("Invalid size for dimension: "+a)}),Br(i,o)}})});var vc="size",rg=["typed","config","?matrix"],Ns=N(vc,rg,r=>{var{typed:e,config:t,matrix:n}=r;return e(vc,{Matrix:function(o){return o.create(o.size(),"number")},Array:ut,string:function(o){return t.matrix==="Array"?[o.length]:n([o.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(o){return t.matrix==="Array"?[]:n?n([],"dense","number"):mc()}})});var _c="zeros",ig=["typed","config","matrix","BigNumber"],Ls=N(_c,ig,r=>{var{typed:e,config:t,matrix:n,BigNumber:i}=r;return e(_c,{"":function(){return t.matrix==="Array"?o([]):o([],"default")},"...number | BigNumber | string":function(s){var u=s[s.length-1];if(typeof u=="string"){var h=s.pop();return o(s,h)}else return t.matrix==="Array"?o(s):o(s,"default")},Array:o,Matrix:function(s){var u=s.storage();return o(s.valueOf(),u)},"Array | Matrix, string":function(s,u){return o(s.valueOf(),u)}});function o(l,s){var u=a(l),h=u?new i(0):0;if(c(l),s){var f=n(s);return l.length>0?f.resize(l,h):f}else{var d=[];return l.length>0?In(d,l,h):d}}function a(l){var s=!1;return l.forEach(function(u,h,f){st(u)&&(s=!0,f[h]=u.toNumber())}),s}function c(l){l.forEach(function(s){if(typeof s!="number"||!rt(s)||s<0)throw new Error("Parameters in function zeros must be positive integers")})}});var xc="fft",og=["typed","matrix","addScalar","multiplyScalar","divideScalar","exp","tau","i","dotDivide","conj","pow","ceil","log2"],Os=N(xc,og,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,divideScalar:o,exp:a,tau:c,i:l,dotDivide:s,conj:u,pow:h,ceil:f,log2:d}=r;return e(xc,{Array:g,Matrix:function(y){return y.create(g(y.valueOf()),y.datatype())}});function g(b){var y=ut(b);return y.length===1?v(b,y[0]):p(b.map(S=>g(S,y.slice(1))),0)}function p(b,y){var S=ut(b);if(y!==0)return new Array(S[0]).fill(0).map((_,M)=>p(b[M],y-1));if(S.length===1)return v(b);function x(_){var M=ut(_);return new Array(M[1]).fill(0).map((w,C)=>new Array(M[0]).fill(0).map((P,D)=>_[D][C]))}return x(p(x(b),1))}function m(b){for(var y=b.length,S=a(o(i(-1,i(l,c)),y)),x=[],_=1-y;_<y;_++)x.push(h(S,o(h(_,2),2)));for(var M=h(2,f(d(y+y-1))),w=[...new Array(y).fill(0).map((L,q)=>i(b[q],x[y-1+q])),...new Array(M-y).fill(0)],C=[...new Array(y+y-1).fill(0).map((L,q)=>o(1,x[q])),...new Array(M-(y+y-1)).fill(0)],P=v(w),D=v(C),R=new Array(M).fill(0).map((L,q)=>i(P[q],D[q])),W=s(u(g(u(R))),M),G=[],k=y-1;k<y+y-1;k++)G.push(i(W[k],x[k]));return G}function v(b){var y=b.length;if(y===1)return[b[0]];if(y%2===0){for(var S=[...v(b.filter((w,C)=>C%2===0),y/2),...v(b.filter((w,C)=>C%2===1),y/2)],x=0;x<y/2;x++){var _=S[x],M=i(S[x+y/2],a(i(i(c,l),o(-x,y))));S[x]=n(_,M),S[x+y/2]=n(_,i(-1,M))}return S}else return m(b)}});function Fs(r,e,t){var n;return String(r).includes("Unexpected type")?(n=arguments.length>2?" (type: "+$t(t)+", value: "+JSON.stringify(t)+")":" (type: "+r.data.actual+")",new TypeError("Cannot calculate "+e+", unexpected type of argument"+n)):String(r).includes("complex numbers")?(n=arguments.length>2?" (type: "+$t(t)+", value: "+JSON.stringify(t)+")":"",new TypeError("Cannot calculate "+e+", no ordering relation is defined for complex numbers"+n)):r}var sg="numeric",ag=["number","?bignumber","?fraction"],Us=N(sg,ag,r=>{var{number:e,bignumber:t,fraction:n}=r,i={string:!0,number:!0,BigNumber:!0,Fraction:!0},o={number:a=>e(a),BigNumber:t?a=>t(a):dc,bigint:a=>BigInt(a),Fraction:n?a=>n(a):gc};return function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",s=arguments.length>2?arguments[2]:void 0;if(s!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var u=$t(c);if(!(u in i))throw new TypeError("Cannot convert "+c+' of type "'+u+'"; valid input types are '+Object.keys(i).join(", "));if(!(l in o))throw new TypeError("Cannot convert "+c+' to type "'+l+'"; valid output types are '+Object.keys(o).join(", "));return l===u?c:o[l](c)}});var Ec="divideScalar",ug=["typed","numeric"],Bs=N(Ec,ug,r=>{var{typed:e,numeric:t}=r;return e(Ec,{"number, number":function(i,o){return i/o},"Complex, Complex":function(i,o){return i.div(o)},"BigNumber, BigNumber":function(i,o){return i.div(o)},"bigint, bigint":function(i,o){return i/o},"Fraction, Fraction":function(i,o){return i.div(o)},"Unit, number | Complex | Fraction | BigNumber | Unit":(n,i)=>n.divide(i),"number | Fraction | Complex | BigNumber, Unit":(n,i)=>i.divideInto(n)})});var bc="pow",lg=["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],zs=N(bc,lg,r=>{var{typed:e,config:t,identity:n,multiply:i,matrix:o,inv:a,number:c,fraction:l,Complex:s}=r;return e(bc,{"number, number":u,"Complex, Complex":function(g,p){return g.pow(p)},"BigNumber, BigNumber":function(g,p){return p.isInteger()||g>=0||t.predictable?g.pow(p):new s(g.toNumber(),0).pow(p.toNumber(),0)},"bigint, bigint":(d,g)=>d**g,"Fraction, Fraction":function(g,p){var m=g.pow(p);if(m!=null)return m;if(t.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return u(g.valueOf(),p.valueOf())},"Array, number":h,"Array, BigNumber":function(g,p){return h(g,p.toNumber())},"Matrix, number":f,"Matrix, BigNumber":function(g,p){return f(g,p.toNumber())},"Unit, number | BigNumber":function(g,p){return g.pow(p)}});function u(d,g){if(t.predictable&&!rt(g)&&d<0)try{var p=l(g),m=c(p);if((g===m||Math.abs((g-m)/g)<1e-14)&&p.d%2===1)return(p.n%2===0?1:-1)*Math.pow(-d,g)}catch{}return t.predictable&&(d<-1&&g===1/0||d>-1&&d<0&&g===-1/0)?NaN:rt(g)||d>=0||t.predictable?hs(d,g):d*d<1&&g===1/0||d*d>1&&g===-1/0?0:new s(d,0).pow(g,0)}function h(d,g){if(!rt(g))throw new TypeError("For A^b, b must be an integer (value is "+g+")");var p=ut(d);if(p.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+p.length+" dimensions)");if(p[0]!==p[1])throw new Error("For A^b, A must be square (size is "+p[0]+"x"+p[1]+")");if(g<0)try{return h(a(d),-g)}catch(b){throw b.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+g+")"):b}for(var m=n(p[0]).valueOf(),v=d;g>=1;)(g&1)===1&&(m=i(v,m)),g>>=1,v=i(v,v);return m}function f(d,g){return o(h(d.valueOf(),g))}});var nr="Number of decimals in function round must be an integer",Sc="round",cg=["typed","config","matrix","equalScalar","zeros","BigNumber","DenseMatrix"],Gs=N(Sc,cg,r=>{var{typed:e,config:t,matrix:n,equalScalar:i,zeros:o,BigNumber:a,DenseMatrix:c}=r,l=je({typed:e,equalScalar:i}),s=er({typed:e,DenseMatrix:c}),u=Ye({typed:e});function h(f){return Math.abs($n(f).exponent)}return e(Sc,{number:function(d){var g=tr(d,h(t.relTol)),p=Pe(d,g,t.relTol,t.absTol)?g:d;return tr(p)},"number, number":function(d,g){var p=h(t.relTol);if(g>=p)return tr(d,g);var m=tr(d,p),v=Pe(d,m,t.relTol,t.absTol)?m:d;return tr(v,g)},"number, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(nr);return new a(d).toDecimalPlaces(g.toNumber())},Complex:function(d){return d.round()},"Complex, number":function(d,g){if(g%1)throw new TypeError(nr);return d.round(g)},"Complex, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(nr);var p=g.toNumber();return d.round(p)},BigNumber:function(d){var g=new a(d).toDecimalPlaces(h(t.relTol)),p=yn(d,g,t.relTol,t.absTol)?g:d;return p.toDecimalPlaces(0)},"BigNumber, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(nr);var p=h(t.relTol);if(g>=p)return d.toDecimalPlaces(g.toNumber());var m=d.toDecimalPlaces(p),v=yn(d,m,t.relTol,t.absTol)?m:d;return v.toDecimalPlaces(g.toNumber())},Fraction:function(d){return d.round()},"Fraction, number":function(d,g){if(g%1)throw new TypeError(nr);return d.round(g)},"Fraction, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(nr);return d.round(g.toNumber())},"Unit, number, Unit":e.referToSelf(f=>function(d,g,p){var m=d.toNumeric(p);return p.multiply(f(m,g))}),"Unit, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Unit, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix, number, Unit":e.referToSelf(f=>(d,g,p)=>St(d,m=>f(m,g,p),!0)),"Array | Matrix, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Array | Matrix, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix":e.referToSelf(f=>d=>St(d,f,!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>u(n(d),g,f,!1).valueOf()),"number | Complex | BigNumber | Fraction, SparseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):s(g,d,f,!0)),"number | Complex | BigNumber | Fraction, DenseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):u(g,d,f,!0)),"number | Complex | BigNumber | Fraction, Array":e.referToSelf(f=>(d,g)=>u(n(g),d,f,!0).valueOf())})});var Mc="dotDivide",hg=["typed","matrix","equalScalar","divideScalar","DenseMatrix","concat"],ks=N(Mc,hg,r=>{var{typed:e,matrix:t,equalScalar:n,divideScalar:i,DenseMatrix:o,concat:a}=r,c=nc({typed:e,equalScalar:n}),l=rc({typed:e}),s=cc({typed:e,DenseMatrix:o}),u=je({typed:e,equalScalar:n}),h=er({typed:e,DenseMatrix:o}),f=Fi({typed:e,matrix:t,concat:a});return e(Mc,f({elop:i,SS:s,DS:l,SD:c,Ss:u,sS:h}))});function wc(r){var e=0,t=1,n=Object.create(null),i=Object.create(null),o=0,a=function(l){var s=i[l];if(s&&(delete n[s],delete i[l],--e,t===s)){if(!e){o=0,t=1;return}for(;!Object.prototype.hasOwnProperty.call(n,++t););}};return r=Math.abs(r),{hit:function(l){var s=i[l],u=++o;if(n[u]=l,i[l]=u,!s)return++e,e<=r?void 0:(l=n[t],a(l),l);if(delete n[s],t===s)for(;!Object.prototype.hasOwnProperty.call(n,++t););},delete:a,clear:function(){e=o=0,t=1,n=Object.create(null),i=Object.create(null)}}}function Vr(r){var{hasher:e,limit:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t=t??Number.POSITIVE_INFINITY,e=e??JSON.stringify,function n(){typeof n.cache!="object"&&(n.cache={values:new Map,lru:wc(t||Number.POSITIVE_INFINITY)});for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=e(i);if(n.cache.values.has(a))return n.cache.lru.hit(a),n.cache.values.get(a);var c=r.apply(r,i);return n.cache.values.set(a,c),n.cache.values.delete(n.cache.lru.hit(a)),c}}var pg=Vr(function(r){return new r(1).exp()},{hasher:Ui}),fg=Vr(function(r){return new r(1).plus(new r(5).sqrt()).div(2)},{hasher:Ui}),Tc=Vr(function(r){return r.acos(-1)},{hasher:Ui}),Cc=Vr(function(r){return Tc(r).times(2)},{hasher:Ui});function Ui(r){return r[0].precision}var Ac="add",dg=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],Vs=N(Ac,dg,r=>{var{typed:e,matrix:t,addScalar:n,equalScalar:i,DenseMatrix:o,SparseMatrix:a,concat:c}=r,l=oc({typed:e}),s=sc({typed:e,equalScalar:i}),u=ac({typed:e,DenseMatrix:o}),h=Fi({typed:e,matrix:t,concat:c});return e(Ac,{"any, any":n,"any, any, ...any":e.referToSelf(f=>(d,g,p)=>{for(var m=f(d,g),v=0;v<p.length;v++)m=f(m,p[v]);return m})},h({elop:n,DS:l,SS:s,Ss:u}))});var Pc="dot",gg=["typed","addScalar","multiplyScalar","conj","size"],Hs=N(Pc,gg,r=>{var{typed:e,addScalar:t,multiplyScalar:n,conj:i,size:o}=r;return e(Pc,{"Array | DenseMatrix, Array | DenseMatrix":c,"SparseMatrix, SparseMatrix":l});function a(u,h){var f=s(u),d=s(h),g,p;if(f.length===1)g=f[0];else if(f.length===2&&f[1]===1)g=f[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+f.join(", ")+")");if(d.length===1)p=d[0];else if(d.length===2&&d[1]===1)p=d[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+d.join(", ")+")");if(g!==p)throw new RangeError("Vectors must have equal length ("+g+" != "+p+")");if(g===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return g}function c(u,h){var f=a(u,h),d=at(u)?u._data:u,g=at(u)?u._datatype||u.getDataType():void 0,p=at(h)?h._data:h,m=at(h)?h._datatype||h.getDataType():void 0,v=s(u).length===2,b=s(h).length===2,y=t,S=n;if(g&&m&&g===m&&typeof g=="string"&&g!=="mixed"){var x=g;y=e.find(t,[x,x]),S=e.find(n,[x,x])}if(!v&&!b){for(var _=S(i(d[0]),p[0]),M=1;M<f;M++)_=y(_,S(i(d[M]),p[M]));return _}if(!v&&b){for(var w=S(i(d[0]),p[0][0]),C=1;C<f;C++)w=y(w,S(i(d[C]),p[C][0]));return w}if(v&&!b){for(var P=S(i(d[0][0]),p[0]),D=1;D<f;D++)P=y(P,S(i(d[D][0]),p[D]));return P}if(v&&b){for(var R=S(i(d[0][0]),p[0][0]),W=1;W<f;W++)R=y(R,S(i(d[W][0]),p[W][0]));return R}}function l(u,h){a(u,h);for(var f=u._index,d=u._values,g=h._index,p=h._values,m=0,v=t,b=n,y=0,S=0;y<f.length&&S<g.length;){var x=f[y],_=g[S];if(x<_){y++;continue}if(x>_){S++;continue}x===_&&(m=v(m,b(d[y],p[S])),y++,S++)}return m}function s(u){return at(u)?u.size():o(u)}});var Dc="det",mg=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],Ws=N(Dc,mg,r=>{var{typed:e,matrix:t,subtractScalar:n,multiply:i,divideScalar:o,isZero:a,unaryMinus:c}=r;return e(Dc,{any:function(u){return mt(u)},"Array | Matrix":function(u){var h;switch(at(u)?h=u.size():Array.isArray(u)?(u=t(u),h=u.size()):h=[],h.length){case 0:return mt(u);case 1:if(h[0]===1)return mt(u.valueOf()[0]);if(h[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+bt(h)+")");case 2:{var f=h[0],d=h[1];if(f===d)return l(u.clone().valueOf(),f,d);if(d===0)return 1;throw new RangeError("Matrix must be square (size: "+bt(h)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+bt(h)+")")}}});function l(s,u,h){if(u===1)return mt(s[0][0]);if(u===2)return n(i(s[0][0],s[1][1]),i(s[1][0],s[0][1]));for(var f=!1,d=new Array(u).fill(0).map((M,w)=>w),g=0;g<u;g++){var p=d[g];if(a(s[p][g])){var m=void 0;for(m=g+1;m<u;m++)if(!a(s[d[m]][g])){p=d[m],d[m]=d[g],d[g]=p,f=!f;break}if(m===u)return s[p][g]}for(var v=s[p][g],b=g===0?1:s[d[g-1]][g-1],y=g+1;y<u;y++)for(var S=d[y],x=g+1;x<u;x++)s[S][x]=o(n(i(s[S][x],v),i(s[S][g],s[p][x])),b)}var _=s[d[u-1]][u-1];return f?c(_):_}});var Ic="inv",yg=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],qs=N(Ic,yg,r=>{var{typed:e,matrix:t,divideScalar:n,addScalar:i,multiply:o,unaryMinus:a,det:c,identity:l,abs:s}=r;return e(Ic,{"Array | Matrix":function(f){var d=at(f)?f.size():ut(f);switch(d.length){case 1:if(d[0]===1)return at(f)?t([n(1,f.valueOf()[0])]):[n(1,f[0])];throw new RangeError("Matrix must be square (size: "+bt(d)+")");case 2:{var g=d[0],p=d[1];if(g===p)return at(f)?t(u(f.valueOf(),g,p),f.storage()):u(f,g,p);throw new RangeError("Matrix must be square (size: "+bt(d)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+bt(d)+")")}},any:function(f){return n(1,f)}});function u(h,f,d){var g,p,m,v,b;if(f===1){if(v=h[0][0],v===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(1,v)]]}else if(f===2){var y=c(h);if(y===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(h[1][1],y),n(a(h[0][1]),y)],[n(a(h[1][0]),y),n(h[0][0],y)]]}else{var S=h.concat();for(g=0;g<f;g++)S[g]=S[g].concat();for(var x=l(f).valueOf(),_=0;_<d;_++){var M=s(S[_][_]),w=_;for(g=_+1;g<f;)s(S[g][_])>M&&(M=s(S[g][_]),w=g),g++;if(M===0)throw Error("Cannot calculate inverse, determinant is zero");g=w,g!==_&&(b=S[_],S[_]=S[g],S[g]=b,b=x[_],x[_]=x[g],x[g]=b);var C=S[_],P=x[_];for(g=0;g<f;g++){var D=S[g],R=x[g];if(g!==_){if(D[_]!==0){for(m=n(a(D[_]),C[_]),p=_;p<d;p++)D[p]=i(D[p],o(m,C[p]));for(p=0;p<d;p++)R[p]=i(R[p],o(m,P[p]))}}else{for(m=C[_],p=_;p<d;p++)D[p]=n(D[p],m);for(p=0;p<d;p++)R[p]=n(R[p],m)}}}return x}}});var vg="divide",_g=["typed","matrix","multiply","equalScalar","divideScalar","inv"],Xs=N(vg,_g,r=>{var{typed:e,matrix:t,multiply:n,equalScalar:i,divideScalar:o,inv:a}=r,c=je({typed:e,equalScalar:i}),l=Ye({typed:e});return e("divide",_i({"Array | Matrix, Array | Matrix":function(u,h){return n(u,a(h))},"DenseMatrix, any":function(u,h){return l(u,h,o,!1)},"SparseMatrix, any":function(u,h){return c(u,h,o,!1)},"Array, any":function(u,h){return l(t(u),h,o,!1).valueOf()},"any, Array | Matrix":function(u,h){return n(u,a(h))}},o.signatures))});var Rc="mean",xg=["typed","add","divide"],js=N(Rc,xg,r=>{var{typed:e,add:t,divide:n}=r;return e(Rc,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":i,"...":function(c){if(Hl(c))throw new TypeError("Scalar values expected in function mean");return o(c)}});function i(a,c){try{var l=Wl(a,c,t),s=Array.isArray(a)?ut(a):a.size();return n(l,s[c])}catch(u){throw Fs(u,"mean")}}function o(a){var c,l=0;if(ns(a,function(s){try{c=c===void 0?s:t(c,s),l++}catch(u){throw Fs(u,"mean",s)}}),l===0)throw new Error("Cannot calculate the mean of an empty array");return n(c,l)}});var Ys=Nc("tau",["config","?BigNumber"],r=>{var{config:e,BigNumber:t}=r;return e.number==="BigNumber"?Cc(t):Xl});var $s=Nc("i",["Complex"],r=>{var{Complex:e}=r;return e.I});function Nc(r,e,t){return N(r,e,t,{recreateOnConfigChange:!0})}var rr=Wo({config:Ae}),Bi=Xo({});var Lc=Yo({}),Fg=$s({Complex:Bi});var Zs=$o({});var Ug=Ys({BigNumber:rr,config:Ae});var Rn=es({Matrix:Zs});var ot=Uo({BigNumber:rr,Complex:Bi,DenseMatrix:Rn,Fraction:Lc});var Bg=xs({typed:ot});var Hr=Es({typed:ot});var Oc=Ps({typed:ot});var vn=fs({config:Ae,typed:ot});var zg=ws({typed:ot});var Fc=rs({typed:ot});var Gg=ps({equalScalar:vn,typed:ot});var kg=Ts({Complex:Bi,config:Ae,typed:ot});var Ks=Cs({typed:ot});var Uc=gs({typed:ot});var Js=ds({Matrix:Zs,equalScalar:vn,typed:ot});var Vg=bs({typed:ot});var Hg=ms({BigNumber:rr,typed:ot});var Bc=_s({typed:ot});var zc=ys({Fraction:Lc,typed:ot});var se=vs({DenseMatrix:Rn,Matrix:Zs,SparseMatrix:Js,typed:ot});var Wg=Us({bignumber:Hg,fraction:zc,number:Uc});var Gc=Rs({isInteger:Fc,matrix:se,typed:ot}),qg=Ns({matrix:se,config:Ae,typed:ot});var kc=Ls({BigNumber:rr,config:Ae,matrix:se,typed:ot});var Vc=Ds({isInteger:Fc,matrix:se,typed:ot});var Wr=Bs({numeric:Wg,typed:ot}),Xg=ks({DenseMatrix:Rn,concat:Vc,divideScalar:Wr,equalScalar:vn,matrix:se,typed:ot});var Hc=Is({BigNumber:rr,DenseMatrix:Rn,SparseMatrix:Js,config:Ae,matrix:se,typed:ot});var jg=Gs({BigNumber:rr,DenseMatrix:Rn,config:Ae,equalScalar:vn,matrix:se,typed:ot,zeros:kc});var Yg=Vs({DenseMatrix:Rn,SparseMatrix:Js,addScalar:Hr,concat:Vc,equalScalar:vn,matrix:se,typed:ot});var $g=Hs({addScalar:Hr,conj:Oc,multiplyScalar:Ks,size:qg,typed:ot});var ir=As({addScalar:Hr,dot:$g,equalScalar:vn,matrix:se,multiplyScalar:Ks,typed:ot});var Zg=Ms({DenseMatrix:Rn,config:Ae,equalScalar:vn,matrix:se,round:jg,typed:ot,zeros:kc});var Kg=Ws({divideScalar:Wr,isZero:Gg,matrix:se,multiply:ir,subtractScalar:Vg,typed:ot,unaryMinus:Bc});var Wc=qs({abs:Bg,addScalar:Hr,det:Kg,divideScalar:Wr,identity:Hc,matrix:se,multiply:ir,typed:ot,unaryMinus:Bc});var Jg=zs({Complex:Bi,config:Ae,fraction:zc,identity:Hc,inv:Wc,matrix:se,multiply:ir,number:Uc,typed:ot});var qc=Os({addScalar:Hr,ceil:Zg,conj:Oc,divideScalar:Wr,dotDivide:Xg,exp:zg,i:Fg,log2:kg,matrix:se,multiplyScalar:Ks,pow:Jg,tau:Ug,typed:ot});var Qg=Xs({divideScalar:Wr,equalScalar:vn,inv:Wc,matrix:se,multiply:ir,typed:ot});var Xc=js({add:Yg,divide:Qg,typed:ot});var zi=class{NumParticle;reSampNumParticle;initial_xy_uncertainty;initial_yaw_uncertainty;step_noise_sigma;yaw_noise_sigma;compass_update_interval;sigmaCompass;delta_yaw;sigmaBeacon;unaccess_weight;particle_PosInitFlag;particle_yawInitFlag;xEst;particleX;particleWeight;last_compass_time;last_yaw_compass=0;compass_consecutive_offset_count=0;constructor(e){this.NumParticle=e.NumParticle,this.reSampNumParticle=e.reSampNumParticle,this.initial_xy_uncertainty=e.initial_xy_uncertainty,this.initial_yaw_uncertainty=e.initial_yaw_uncertainty,this.step_noise_sigma=e.step_noise_sigma,this.yaw_noise_sigma=e.yaw_noise_sigma,this.compass_update_interval=e.compass_update_interval,this.sigmaCompass=e.sigmaCompass,this.delta_yaw=e.delta_yaw,this.sigmaBeacon=e.sigmaBeacon,this.unaccess_weight=e.unaccess_weight,this.particle_PosInitFlag=!1,this.particle_yawInitFlag=!1,this.xEst=[[0],[0],[0]],this.particleX=Array.from({length:3},()=>Array(this.NumParticle).fill(0)),this.particleWeight=Array.from({length:1},()=>Array(this.NumParticle).fill(1/this.NumParticle)),this.last_compass_time=0}motionModelRotYaw(e){if(!(Math.abs(e)<.001)){this.last_yaw_compass=Rr(this.last_yaw_compass+e);for(let t=0;t<this.NumParticle;t++){let n=Math.random()*this.yaw_noise_sigma;this.particleX[2][t]=this.particleX[2][t]+e+n,this.particleX[2][t]=Rr(this.particleX[2][t])}}}motionModelStepLength(e,t){if(e===0)return;for(let i=0;i<this.NumParticle;i++){let o=Math.random()*this.step_noise_sigma;this.particleX[0][i]+=(.65+o)*Math.sin(-this.particleX[2][i]/180*Math.PI),this.particleX[1][i]+=(.65+o)*Math.cos(this.particleX[2][i]/180*Math.PI),t(this.particleX[0][i],this.particleX[1][i])||(this.particleWeight[0][i]*=this.unaccess_weight)}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}motionModelCompassYaw(e,t){if(t-this.last_compass_time>this.compass_update_interval){let n=360-e;n+=this.delta_yaw,n=Rr(n),Math.abs(n-this.last_yaw_compass)>60?this.compass_consecutive_offset_count++:this.compass_consecutive_offset_count=0,this.compass_consecutive_offset_count>=5&&this.initParticlesByCompass(e);for(let o=0;o<this.NumParticle;o++){let a=Math.abs(this.particleX[2][o]-n);a>180&&(a=360-a),this.particleWeight[0][o]*=mi(a,this.sigmaCompass)}let i=this.particleWeight[0].reduce((o,a)=>o+a,0);this.particleWeight[0]=this.particleWeight[0].map(o=>o/i),this.setLastCompassTime(t)}}resampling(){if(1/this.particleWeight[0].reduce((t,n)=>t+n*n,0)<this.reSampNumParticle){let t=this.particleWeight[0].reduce((c,l,s)=>c.concat(c[s]+l),[0]),i=this.particleWeight[0].map(()=>1/this.NumParticle).map((c,l)=>c+Math.random()/this.NumParticle),o=[],a=0;for(let c=0;c<this.NumParticle;c++){for(;i[c]>t[a];)a++;o.push(a)}this.particleX=this.particleX.map((c,l)=>o.map(s=>c[s])),this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle)}}update(e,t){for(let i=0;i<this.NumParticle;i++){let o=Hn(this.particleX[0][i],this.particleX[1][i],e.x,e.y);this.particleWeight[0][i]=Math.max(1e-7,this.particleWeight[0][i]*mi(o,t))}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}updateCar(e,t){let n=e.x-this.xEst[0][0],i=e.y-this.xEst[1][0];for(let a=0;a<this.NumParticle;a++){let c=Hn(this.particleX[0][a],this.particleX[1][a],e.x,e.y);this.particleWeight[0][a]=Math.max(1e-7,this.particleWeight[0][a]*mi(c,t)),this.particleX[0][a]+=n,this.particleX[1][a]+=i}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o)}getPosInitFlag(){return this.particle_PosInitFlag}getYawInitFlag(){return this.particle_yawInitFlag}setPosInitFlag(e){this.particle_PosInitFlag=e}setYawInitFlag(e){this.particle_yawInitFlag=e}getResultX(){let e=Gc(this.particleWeight,[this.NumParticle,1]),t=ir(this.particleX,e);return this.xEst=t,this.xEst[0][0]}getResultY(){return this.xEst[1][0]}getResultYaw(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0]));return this.particleX[2][e]}getEstConfidence(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0])),t=this.particleWeight[0].indexOf(Math.min(...this.particleWeight[0])),n=[this.particleX[0][e],this.particleX[1][e]],i=[this.particleX[0][t],this.particleX[1][t]],o=Hn(n[0],n[1],i[0],i[1]),a=o*.67;return console.log(o,a),a}getParticleNum(){return this.NumParticle}getParticleX(){return this.particleX}setLastCompassTime(e){this.last_compass_time=e}getLastCompassTime(){return this.last_compass_time}initParticlesByPos(e,t,n){if(!this.particle_PosInitFlag){this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle);let i=0;for(;i<this.NumParticle;){let a=(2*Math.random()-1)*this.initial_xy_uncertainty,c=(2*Math.random()-1)*this.initial_xy_uncertainty;n(e+a,t+c)||(this.particleWeight[0][i]*=this.unaccess_weight),this.particleX[0][i]=e+a,this.particleX[1][i]=t+c,i++}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o),this.particle_PosInitFlag=!0,this.xEst[0][0]=e,this.xEst[1][0]=t,this.xEst[2][0]=0}}initParticlesByCompass(e){console.log(`Init compass: ${e}`);let t=360-e;t+=this.delta_yaw,t=Rr(t),console.log(`Init Yaw: ${t}`);for(let n=0;n<this.NumParticle;n++){let i=(2*Math.random()-1)*this.initial_yaw_uncertainty;this.particleX[2][n]=t+i}this.particle_yawInitFlag=!0,this.xEst[2][0]=t,this.last_yaw_compass=t,this.compass_consecutive_offset_count=0}};var Gi=class{fre=100;accH_fifo=[];accH_time_fifo=[];accH_fifo_len=Math.floor(1*this.fre)+1;step_count=0;state_count=0;last_valley_time=0;last_peak_time=0;last_step_time=0;min_step_time=.3;max_step_time=1;min_peak=10.5;max_valley=9.5;peak_num=0;valley_num=0;fft_min_amp=.3;fft_min_fre=0;fft_max_fre=4;last_fft_amp=0;abnor_start_time=0;abnor_fft_detected=!1;abnor_time_threshold=4;abnor_peak_time=0;abnor_peak_accH=0;const_step_length=.65;last_rot=[];delta_rot=[];last_yaw=0;delta_yaw=null;delta_rot_sum_fifo=[];delta_rot_sum_time_fifo=[];delta_yaw_accum=0;delta_yaw_accum_timestamp=0;delta_yaw_time_threshold=.5;last_px=0;last_py=0;delta_px=0;delta_py=0;init(){this.fre=100,this.accH_fifo=[],this.accH_time_fifo=[],this.accH_fifo_len=Math.floor(1*this.fre)+1,this.step_count=0,this.state_count=0,this.last_valley_time=0,this.last_peak_time=0,this.last_step_time=0,this.min_step_time=.3,this.max_step_time=1,this.min_peak=10+.5,this.max_valley=10-.5,this.peak_num=0,this.valley_num=0,this.fft_min_amp=.3,this.fft_min_fre=0,this.fft_max_fre=4,this.last_fft_amp=0,this.abnor_start_time=0,this.abnor_fft_detected=!1,this.abnor_peak_time=0,this.abnor_peak_accH=0,this.const_step_length=.65,this.last_rot=[0,0,0],this.delta_rot=[0,0,0],this.last_yaw=0,this.delta_yaw=null,this.delta_rot_sum_fifo=[],this.delta_rot_sum_time_fifo=[],this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=0,this.delta_yaw_time_threshold=.5,this.last_px=0,this.last_py=0,this.delta_px=0,this.delta_py=0}reset(){this.init()}setInitPose(e=[0,0]){this.last_px=e[0],this.last_py=e[1],console.info(`pdr init pos: ${this.last_px}, ${this.last_py}`)}setInitYaw(e=0){this.last_yaw=e}getPos(e,t,n){let i=0;return n.length===3&&(this.delta_yaw=this.getDeltaYawFromRot(e,n)),t.length===3&&(i=this.getStepLength(e,t)),i!==0&&(this.last_px+=this.delta_px,this.last_py+=this.delta_py),[this.last_px,this.last_py]}getDeltaPose(){return[this.delta_px,this.delta_py]}getStepLength(e,t){if(t.length<3)return console.warn("acc data less than 3"),0;let n=!1,i=Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2));if(this.accH_fifo.push(i),this.accH_time_fifo.push(e),this.imuFreUpdate(),this.accH_fifo.length<this.accH_fifo_len+1)n=!1;else{for(;this.accH_fifo.length>=this.accH_fifo_len+1;)this.accH_fifo.shift(),this.accH_time_fifo.shift();let o=this.PVStepDetec(),a=this.FFTStepDetec(),c=this.recheckState(),l=this.accH_time_fifo[Math.floor(this.accH_time_fifo.length*3/4)];Math.abs(this.abnor_start_time)<.001&&this.abnor_fft_detected?this.abnor_start_time=l:this.abnor_fft_detected||(this.abnor_start_time=0),o&&a&&c?(this.step_count+=1,this.last_step_time=l,n=!0):Math.abs(this.abnor_start_time)>.001&&this.abnor_peak_time-this.abnor_start_time>this.abnor_time_threshold&&this.step_count>1&&this.abnor_peak_time-this.last_step_time>1?(this.step_count+=1,this.last_step_time=l,n=!0):(l-this.last_step_time>2&&(this.state_count=0),n=!1)}if(n){let o=this.last_yaw/180*Math.PI;return this.delta_px=this.const_step_length*Math.cos(o),this.delta_py=this.const_step_length*Math.sin(o),this.const_step_length}else return 0}imuFreUpdate(){if(this.accH_time_fifo.length>2&&(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]<0||this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]>10||this.accH_time_fifo[this.accH_time_fifo.length-1]===this.accH_time_fifo[0])&&(console.warn(`pdr reset last one time ${this.accH_time_fifo[this.accH_time_fifo.length-1]} last two time ${this.accH_time_fifo[this.accH_time_fifo.length-2]}`),this.reset()),this.accH_fifo.length>9||this.fre<15){let e=(this.accH_fifo.length-1)/(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[0]);Math.abs(this.fre-e)>8&&(this.fre=Math.round((e-3)/10)*10,(this.fre<=10||this.fre>=100)&&(console.warn(`Frequency Error ${this.fre}`),this.fre=100),console.debug(`Frequency change to ${this.fre}`),this.accH_fifo_len=Math.floor(1*this.fre)+1)}}recheckState(){return!0}PVStepDetec(){let e=!1,t=this.accH_fifo.slice(Math.floor(this.accH_fifo_len/2)),n=this.accH_time_fifo.slice(Math.floor(this.accH_fifo_len/2)),i=t[Math.floor(t.length/2)],o=n[Math.floor(n.length/2)],a=Math.max(...t),c=Math.min(...t),l=!1,s=!1;return Math.abs(i-c)<.01&&i<this.max_valley&&this.valley_num<=this.peak_num&&(this.last_valley_time===0?s=!0:s=o-this.last_valley_time>this.min_step_time,s&&(this.last_valley_time=o,this.valley_num+=1)),Math.abs(i-a)<.01&&i>this.min_peak&&this.peak_num<=this.valley_num&&(this.last_peak_time===0?l=!0:l=o-this.last_peak_time>this.min_step_time,l&&(this.last_peak_time=o,this.peak_num+=1)),i===a&&i>this.min_peak&&(this.abnor_peak_time=o,this.abnor_peak_accH=i),this.peak_num===this.valley_num&&(l||s)&&(e=!0),e}FFTStepDetec(){return!0}getDeltaYawFromRot(e,t){if(t.length<3)return console.warn("rot data less than 3"),0;let n=[0,0,0];this.last_rot.length===3&&(n=t.map((c,l)=>c-this.last_rot[l]));for(let c=0;c<t.length;c++)n[c]<-180?n[c]+=360:n[c]>180&&(n[c]-=360);let i=.2;this.delta_rot.length===3?this.delta_rot=this.delta_rot.map((c,l)=>i*c+(1-i)*n[l]):this.delta_rot=n,this.last_rot=t,this.delta_yaw=this.delta_rot[0],this.last_yaw+=this.delta_yaw,this.last_yaw=this.limitYaw(this.last_yaw);let o=this.delta_rot.reduce((c,l)=>c+Math.abs(l),0);this.delta_rot_sum_fifo.push(o),this.delta_rot_sum_time_fifo.push(e),Math.abs(this.delta_rot_sum_time_fifo[this.delta_rot_sum_time_fifo.length-1]-this.delta_rot_sum_time_fifo[0])>1&&(this.delta_rot_sum_fifo.shift(),this.delta_rot_sum_time_fifo.shift()),this.delta_yaw_accum+=this.delta_yaw;let a=0;return Math.abs(this.delta_yaw_accum_timestamp-e)>this.delta_yaw_time_threshold?(a=this.delta_yaw_accum,this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=e,a):null}limitYaw(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};var ki=class{particleFilter;pdr;sigmaBeacon=5;gps_horizontalAccuracy=10;using_gps=!0;last_beacon_time=null;last_pos_time;position_count=0;gps_max_horizontalAccuracy=20;MaxEstimateErr=5;outTrustRegionNum=0;TrustNum=4;cacheSensorData=[];constructor(){this.particleFilter=new zi({NumParticle:200,reSampNumParticle:.65,initial_xy_uncertainty:12,initial_yaw_uncertainty:100,step_noise_sigma:.5,yaw_noise_sigma:2,compass_update_interval:3e3,sigmaCompass:80,delta_yaw:2,sigmaBeacon:5,unaccess_weight:.7}),this.pdr=new Gi}pfFusionPDRiBeacon(e){let{type:t,timestamp:n,res:i}=e,o=!1;if(this.particleFilter.getPosInitFlag()&&this.particleFilter.getYawInitFlag()){if(t==="acceleration"){let a=i,c=this.pdr.getStepLength(n/1e3,a);c!==0&&(this.particleFilter.motionModelStepLength(c,()=>!0),this.particleFilter.resampling(),this.position_count+=1,o=!0)}if(this.using_gps&&t==="gps"&&(this.last_beacon_time===null||n-this.last_beacon_time>5e3)){let a=this.getGpsPosition(i);o=a!==null,a&&(this.particleFilter.update(a,this.gps_horizontalAccuracy),this.resetParticleFilterDist(a),this.particleFilter.resampling(),this.position_count+=1)}if(t==="deviceMotion"){let a=this.pdr.getDeltaYawFromRot(n/1e3,i);a!==null&&this.particleFilter.motionModelRotYaw(a)}t==="compass"&&this.particleFilter.motionModelCompassYaw(i,n),this.last_pos_time&&n-this.last_pos_time>500&&(this.position_count+=1,o=!0)}else if(!this.particleFilter.getPosInitFlag()&&this.using_gps&&t==="gps"){let a=this.getGpsPosition(i);o=a!==null,a?(this.particleFilter.initParticlesByPos(a.x,a.y,()=>!0),this.last_pos_time=n,console.log(`init Pos by gps success time ${n}`),this.cacheSensorData.length=0):console.log(`init Pos by gps fail time ${n}`)}else if(!this.particleFilter.getYawInitFlag()&&t==="compass"){let a=i;this.particleFilter.initParticlesByCompass(a),this.particleFilter.setLastCompassTime(n),console.log(`init yaw by compass success time ${n}`)}else this.cacheSensorData.push(e);return o&&(this.last_pos_time=n),[o,this.particleFilter.getResultX(),this.particleFilter.getResultY()]}setBeaconPosition(e,t){return this.last_beacon_time=t,this.particleFilter.getPosInitFlag()?this.particleFilter.update(e,this.sigmaBeacon):this.particleFilter.initParticlesByPos(e.x,e.y,()=>!0),this.resetParticleFilterDist(e),this.particleFilter.resampling(),this.position_count+=1,this.cacheSensorData.filter(i=>i.timestamp>t).map(i=>this.pfFusionPDRiBeacon(i)),this.cacheSensorData.length=0,[this.particleFilter.getResultX(),this.particleFilter.getResultY()]}getGpsPosition(e){return e[2]>this.gps_max_horizontalAccuracy?null:xu(e[0],e[1])}resetParticleFilterDist(e){let t=this.particleFilter.getResultX(),n=this.particleFilter.getResultY();Hn(t,n,e.x,e.y)>this.MaxEstimateErr?(this.outTrustRegionNum+=1,this.outTrustRegionNum>=this.TrustNum&&(console.info(`\u8D85\u51FA\u53EF\u4FE1\u533A\u57DF\uFF0C\u91CD\u7F6E\u7C92\u5B50\u8FC7\u6EE4\u5668\u5230: ${e.x}, ${e.y}`),this.particleFilter.setPosInitFlag(!1),this.particleFilter.setYawInitFlag(!1),this.outTrustRegionNum=0)):this.outTrustRegionNum=0}};var Qs=class extends jc.EventDispatcher{sensor;pdr;constructor(e={}){super(),this.sensor=new Ir(e.sensor),this.pdr=new ki}checkSensor(){return this.sensor.checkSensor()}start(){this.sensor.start(),this.sensor.addEventListener("add-data-item",({item:e})=>{this.getPositionBySensorItem(e)})}getPositionBySensorItem(e){let[t,n,i]=this.pdr.pfFusionPDRiBeacon(e);return t&&this.dispatchEvent({type:"position",x:n,y:i,_type:e.type==="gps"?"gps":"pdr"}),[t,n,i]}setBeaconPosition(e,t){let[n,i]=this.pdr.setBeaconPosition(e,t);this.dispatchEvent({type:"position",x:n,y:i,_type:"beacon"})}dispose(){this.sensor.stop()}};async function ta({brand:r,project:e},t){let{apiDomain:n,apiPath:{floorRange:i},apiInfo:o}=t,a=`${n}${i}?brand=${r}&project=${e}&phase=${e}&building=${e}`;return await fetch(a,o).then(l=>l.json()).then(l=>l.data).then(l=>{let s=(l||[])[0];return s&&(s.info=JSON.parse(s.info)),s})}async function ea({brand:r,project:e,floor:t,ts:n,resource_type_list:i},o){let{apiDomain:a,apiPath:{floorGraphic:c},apiInfo:l}=o,s=`${a}${c}?brand=${r}&project=${e}&phase=${e}&building=${e}&floor=${t}&ts=${n}&resource_type_list=${i}`;return await fetch(s,l).then(h=>h.json()).then(h=>h.data).then(h=>((h||[]).map(f=>f.info=JSON.parse(f.info)),h||[]))}async function em({project:r,floor:e},t){let{apiDomain:n,apiInfo:i}=t,o=`${n}/api/inception-map/external_street/get?projectCode=${r}&floorCode=${e}`;return await fetch(o,i).then(c=>c.json()).then(c=>c.data).then(c=>JSON.parse(c[0].streetInfo||"{}")).then(c=>c.fileId?nm(c.fileId,t):null)}async function nm(r,e){let{apiDomain:t,apiInfo:n}=e;return fetch(`${t}/api/inception-map/file/getFileStream?fileId=${r}`,n).then(i=>i.arrayBuffer()).then(i=>{let a=new TextDecoder("utf-8").decode(i);return a?JSON.parse(a):null})}var ke;function Yc(r="aibee_map"){return new Promise((e,t)=>{if(ke)return e({db:ke,type:"success"});let n=indexedDB.open(r);n.onupgradeneeded=function(i){ke=i.target.result,console.log("onupgradeneeded"),e({db:ke,type:"onupgradeneeded"})},n.onsuccess=i=>{ke=i.target.result,e({db:ke,type:"success"})},n.onerror=i=>{t(i)}})}function $c(r,e,t=ke){return new Promise((n,i)=>{t||i("\u6CA1\u6709db");let a=t.transaction([r],"readonly").objectStore(r).get(e);a.onsuccess=()=>{a.result?n(a.result.value):n(null)},a.onerror=c=>{console.log("[getVersionByKey]",c),n(null)}})}function Zc(r,e,t,n=ke){return new Promise((i,o)=>(n||o("\u6CA1\u6709db"),new Promise((a,c)=>{let s=n.transaction([r],"readwrite").objectStore(r).add({key:e,value:t});s.onsuccess=function(u){a(u)},s.onerror=function(u){c(u)}})))}function qr(r,e=ke){e&&(e.objectStoreNames.contains(r)||e.createObjectStore(r,{keyPath:"key"}))}function Kc(){ke?.close(),ke=null}var Jc="data:image/png;base64,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";var Qc="data:image/png;base64,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";var th="data:image/png;base64,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";var sm={loadRoadNetwork:!1},na="map_version",ra="route_version",ia="map_data",Vi="road_network_data",eh={half:Jc,power:Qc,mechanical:th},oa=class{constructor(e){this.bmap=e;this.initDb()}floors=[];async initDb(){try{let{db:e,type:t}=await Yc();t==="onupgradeneeded"&&(qr(na),qr(ra),qr(ia),qr(Vi))}catch(e){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",e)}}async load(e){if(this.clear(),Array.isArray(e))this.floors=e;else{let t=await fetch(e).then(n=>n.json());t.code==="0"&&(this.floors=t.data.list)}}setCacheData(e,t,n){return Zc(e,`${t}`,n)}getCacheData(e,t){return $c(e,`${t}`)}getFloorCacheKey(e){return`${e.floor_id}`}async getFloorData(e){let t=this.floors.find(i=>i.floor===e);if(!t)return null;let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(na,n)===t.version_id){let o=await this.getCacheData(ia,n);if(o)return this.getDataByJson(o)}return this.getFloorDataByFloorInfo(t)}catch{return this.getFloorDataByFloorInfo(t)}}async getFloorDataByFloorInfo(e){let t=this.getFloorCacheKey(e);console.time("zstd_json");let n=await fetch(e.map_url).then(i=>i.json());return n.floor=e.floor,console.timeEnd("zstd_json"),this.setCacheData(ia,t,n),this.setCacheData(na,t,e.version_id),this.getDataByJson(n)}async getRoadNetworkData(){return(await Promise.all(this.floors.map(async t=>{let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(ra,n)===t.version_id){let a=await this.getCacheData(Vi,n);if(a)return a}let o=await fetch(t.route_url).then(a=>a.json());return this.setCacheData(Vi,n,o),this.setCacheData(ra,n,t.version_id),o}catch{let i=await fetch(t.route_url).then(o=>o.json());return this.setCacheData(Vi,n,i),i}}))).filter(t=>t.points)}async getFacilitiesData(){if(this.floors[0]?.entry_infra_url)return fetch(this.floors[0].entry_infra_url).then(e=>e.json())}async getOtherDataByFreeTime(){}async getMulFloorsData(e){return Promise.all(e.map(t=>this.getFloorData(t))).then(t=>t.filter(n=>n))}async getDataByUrl(e){let t=await fetch(e).then(n=>n.json());return this.getDataByJson(t)}getDataByJson(e){let t=new Ue(this.bmap.context);t.userData.graphics=[],t.userData.graphicMap=new Map;let n=[0,0];return e.layers.forEach(i=>{switch(i.l_type){case"range":let o=i.elements[0];n=[o.center_x,o.center_y];break;case"graph":ce(i.elements,n);let a=[];i.elements.forEach(p=>{p.group==="ground"?t.createGround(p):a.push(p)});let c=a.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(c).forEach(p=>{let m=new Sr(this.bmap.context,p);t.mergeGraphicLayer.add(m)});break;case"ground":ce(i.elements,n);let l=i.elements.map(p=>new Bt(this.bmap.context,p));t.addGrounds(l);break;case"wall":ce(i.elements,n);let s=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(s).forEach(p=>{let m=new xr(this.bmap.context,p);t.wallLayer.add(m)});break;case"lane":ce(i.elements,n);let u=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S}=m,x=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}`;return S===0&&(x=`${v.toLowerCase()}-${b}`),p[x]?p[x].push(m):p[x]=[m],p},{});Object.values(u).forEach(p=>{let m=new br(this.bmap.context,p);t.laneLayer.add(m)});break;case"texture2d":case"texture3d":if(ce(i.elements,n),i.elements.length){let p=new kn(this.bmap.context,i.elements);t.textureLayer.add(p)}break;case"glb":ce(i.elements,n),i.elements.forEach(p=>{let m=Fe([p.center_x,p.center_y],n),v=new Er(this.bmap.context,{...p,url:p.secondUrl,rotate:p.secondRotate,width:p.secondWidth,center_x:m[0],center_y:m[1]});t.glbModelLayer.add(v)});break;case"store":ce(i.elements,n),i.elements.map(p=>{let m=Fe([p.center_x,p.center_y],n),v=t.addGraphic(p);t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v);try{let b=new he(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b&&(b.userData.type="store",b.userData.data=p)}catch(b){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",b,p)}});break;case"facility":ce(i.elements,n),i.elements.map(p=>{let m=Fe([p.center_x,p.center_y],n),v=t.addGraphic(p);if(t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v),p.poi_info){let b=new he(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b.userData.type="facility",b.userData.data=p}else console.log("\u6DFB\u52A0facility\u5931\u8D25\u6CA1\u6709poi_info",p)});break;case"parkingSpace":ce(i.elements,n);let h=[],f=new Map;i.elements.forEach(p=>{let m=t.addGraphic(p);h.push(m),f.set(p.id,m);let v=Fe([p.center_x,p.center_y],n);if(p.texts[0]){let b=new he(this.bmap.context,{id:p.id,text:p.texts[0],position:{x:v[0],y:v[1],z:p.airHeight+p.height}});b&&(b.userData.type="parkingSpace",b.userData.data=p),t.poiLayer2.pushPoi(b)}});let d=i.elements.filter(p=>eh[p.parkingType]).map(p=>{let m=Fe([p.center_x,p.center_y],n),v=ji(p.geometry.coords,m);return{uuid:p.id,iconUrl:eh[p.parkingType],name:p.texts[0],deltaHeight:p.deltaHeight,airHeight:p.airHeight,height:p.height,geometry:{...p.geometry,coords:v},opacity:p.fillOpacity,visible:!0}});if(d.length){let p=new kn(this.bmap.context,d);t.textureLayer.add(p)}t.userData.parkingSpaces=h,t.userData.parkingSpacesGraphicMap=f;break;case"text":ce(i.elements,n);let g=new Mr(this.bmap.context,i.elements.map(p=>{let m=Fe([p.center_x,p.center_y],n);return{...p,center_x:m[0],center_y:m[1]}}));t.textTextureLayer.add(g);break}}),t.userData.center=n,t.userData.height=e.floorHeight*10,t.name=e.floor,t.userData.data=e,t.updateBox(),t}clear(){}dispose(){this.clear(),Kc()}};var sa=class{constructor(e){this.bmap=e}cacheData=new Map;floorDataLengthMap=new Map;buildingGroundMap=new Map;externalStreetMap=new Map;async load(e){let t=Sn(e);if(this.cacheData.has(t))return this.cacheData.get(t);let[,n]=await Promise.all([this.loadBuildGround(e),ea(e,this.bmap.config)]),i=Sn({floor:e.floor,ts:e.ts});ce(n.map(a=>a.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(i)||0),n.forEach(a=>a.info.transformToBuildingGround=!1),this.cacheData.set(t,n);let o=this.floorDataLengthMap.get(i)||0;return this.floorDataLengthMap.set(i,o+n.length),this.loadExternalStreet(e),n}async loadExternalStreet(e){}switchFloorByData(e,t){if(!e.length)return;let n=t.userData.legacyToGraphicMap||new Map,i=t.userData.graphicMap||new Map,{ground:o,markGraphic:a,graphic:c}=this.bmap.config;for(let l=0;l<e.length;l++){let s=e[l];s.info.group==="ground"?(s.info.fillColor=o.color,s.info.fillOpacity=o.opacity,s.info.height=o.height,s.info.stroke=o.stroke,s.info.strokeColor=o.strokeColor,s.info.strokeOpacity=o.strokeOpacity):s.info.userData.mark?(s.info.height=a.height,s.info.fillColor=a.color,s.info.fillOpacity=a.opacity,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity):(s.info.fillOpacity=c.fillOpacity,this.bmap.config.initTransToMark&&(s.info.height=a.height,s.info.fillColor=a.color,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity))}for(let l of e){if(l.info.group==="ground")t.createGround(l.info);else{let s=t.addGraphic(l.info);s.userData.data=l,n.set(l.legacy_id,s)}i.set(l.element_uuid,l)}t.userData.legacyToGraphicMap=n,t.userData.graphicMap=i,t.updateBox(),t===this.bmap.context.currentFloor?(this.bmap.triggerHooks("switch_floor_before",{curFloor:t,graphics:t.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks("switch_floor_after",{curFloor:t,graphics:t.graphicLayer.children})):this.bmap.switchFloorByFloor(t)}filterData(e,t){let n=t.userData.graphicMap||new Map;return e.filter(i=>!n.has(i.element_uuid))}async switchFloorByStoreData(e,t){let n=await this.load({...e,resource_type_list:"6"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async switchFloorByOtherData(e,t){let n=await this.load({...e,resource_type_list:"1,2,3,4"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async loadBuildGround({brand:e,project:t}){let n=await this.loadBuildingGround({brand:e,project:t});return this.bmap.currentBuildGround=n,this.bmap.changeBuildingCenter(n,{brand:e,project:t}),this.bmap.currentBuildGround}async loadBuildingGround({brand:e,project:t}){let n=Sn({brand:e,project:t});if(this.buildingGroundMap.has(n))return this.buildingGroundMap.get(n);let i=ta({brand:e,project:t},this.bmap.config).then(o=>(this.buildingGroundMap.set(n,o),o));return this.buildingGroundMap.set(n,i),i}async switchFloor(e){let t=new Ue(this.bmap.context);t.name=e.floor;try{await Promise.all([this.switchFloorByStoreData(e,t),this.switchFloorByOtherData(e,t)])}catch(n){console.log(n)}return t}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}};
|
|
7516
|
+
(`+bt(w,p)+", "+bt(S,p)+") ==> "+(this._values?bt(this._values[M],p):"X")}return y},i.prototype.toString=function(){return bt(this.toArray())},i.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},i.prototype.diagonal=function(p){if(p){if(st(p)&&(p=p.toNumber()),!it(p)||!rt(p))throw new TypeError("The parameter k must be an integer number")}else p=0;var m=p>0?p:0,v=p<0?-p:0,b=this._size[0],y=this._size[1],S=Math.min(b-v,y-m),x=[],_=[],M=[];M[0]=0;for(var w=m;w<y&&x.length<S;w++)for(var C=this._ptr[w],P=this._ptr[w+1],D=C;D<P;D++){var R=this._index[D];if(R===w-m+v){x.push(this._values[D]),_[x.length-1]=R-v;break}}return M.push(x.length),new i({values:x,index:_,ptr:M,size:[S,1]})},i.fromJSON=function(p){return new i(p)},i.diagonal=function(p,m,v,b,y){if(!Et(p))throw new TypeError("Array expected, size parameter");if(p.length!==2)throw new Error("Only two dimensions matrix are supported");if(p=p.map(function(j){if(st(j)&&(j=j.toNumber()),!it(j)||!rt(j)||j<1)throw new Error("Size values must be positive integers");return j}),v){if(st(v)&&(v=v.toNumber()),!it(v)||!rt(v))throw new TypeError("The parameter k must be an integer number")}else v=0;var S=t,x=0;oe(y)&&(S=e.find(t,[y,y])||t,x=e.convert(0,y));var _=v>0?v:0,M=v<0?-v:0,w=p[0],C=p[1],P=Math.min(w-M,C-_),D;if(Et(m)){if(m.length!==P)throw new Error("Invalid value array length");D=function(Q){return m[Q]}}else if(at(m)){var R=m.size();if(R.length!==1||R[0]!==P)throw new Error("Invalid matrix length");D=function(Q){return m.get([Q])}}else D=function(){return m};for(var W=[],G=[],k=[],L=0;L<C;L++){k.push(W.length);var q=L-_;if(q>=0&&q<P){var Y=D(q);S(Y,x)||(G.push(q+M),W.push(Y))}}return k.push(W.length),new i({values:W,index:G,ptr:k,size:[w,C]})},i.prototype.swapRows=function(p,m){if(!it(p)||!rt(p)||!it(m)||!rt(m))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return wt(p,this._size[0]),wt(m,this._size[0]),i._swapRows(p,m,this._size[1],this._values,this._index,this._ptr),this},i._forEachRow=function(p,m,v,b,y){for(var S=b[p],x=b[p+1],_=S;_<x;_++)y(v[_],m[_])},i._swapRows=function(p,m,v,b,y,S){for(var x=0;x<v;x++){var _=S[x],M=S[x+1],w=s(p,_,M,y),C=s(m,_,M,y);if(w<M&&C<M&&y[w]===p&&y[C]===m){if(b){var P=b[w];b[w]=b[C],b[C]=P}continue}if(w<M&&y[w]===p&&(C>=M||y[C]!==m)){var D=b?b[w]:void 0;y.splice(C,0,m),b&&b.splice(C,0,D),y.splice(C<=w?w+1:w,1),b&&b.splice(C<=w?w+1:w,1);continue}if(C<M&&y[C]===m&&(w>=M||y[w]!==p)){var R=b?b[C]:void 0;y.splice(w,0,p),b&&b.splice(w,0,R),y.splice(w<=C?C+1:C,1),b&&b.splice(w<=C?C+1:C,1)}}},i},{isClass:!0});var cd="number",hd=["typed"];function pd(r){var e=r.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(e){var t={"0b":2,"0o":8,"0x":16}[e[1]],n=e[2],i=e[3];return{input:r,radix:t,integerPart:n,fractionalPart:i}}else return null}function fd(r){for(var e=parseInt(r.integerPart,r.radix),t=0,n=0;n<r.fractionalPart.length;n++){var i=parseInt(r.fractionalPart[n],r.radix);t+=i/Math.pow(r.radix,n+1)}var o=e+t;if(isNaN(o))throw new SyntaxError('String "'+r.input+'" is not a valid number');return o}var gs=N(cd,hd,r=>{var{typed:e}=r,t=e("number",{"":function(){return 0},number:function(i){return i},string:function(i){if(i==="NaN")return NaN;var o=pd(i);if(o)return fd(o);var a=0,c=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);c&&(a=Number(c[2]),i=c[1]);var l=Number(i);if(isNaN(l))throw new SyntaxError('String "'+i+'" is not a valid number');if(c){if(l>2**a-1)throw new SyntaxError('String "'.concat(i,'" is out of range'));l>=2**(a-1)&&(l=l-2**a)}return l},BigNumber:function(i){return i.toNumber()},bigint:function(i){return Number(i)},Fraction:function(i){return i.valueOf()},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),null:function(i){return 0},"Unit, string | Unit":function(i,o){return i.toNumber(o)},"Array | Matrix":e.referToSelf(n=>i=>St(i,n))});return t.fromJSON=function(n){return parseFloat(n.value)},t});var dd="bignumber",gd=["typed","BigNumber"],ms=N(dd,gd,r=>{var{typed:e,BigNumber:t}=r;return e("bignumber",{"":function(){return new t(0)},number:function(i){return new t(i+"")},string:function(i){var o=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(o){var a=o[2],c=t(o[1]),l=new t(2).pow(Number(a));if(c.gt(l.sub(1)))throw new SyntaxError('String "'.concat(i,'" is out of range'));var s=new t(2).pow(Number(a)-1);return c.gte(s)?c.sub(l):c}return new t(i)},BigNumber:function(i){return i},bigint:function(i){return new t(i.toString())},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Fraction:function(i){return new t(i.n).div(i.d).times(i.s)},null:function(i){return new t(0)},"Array | Matrix":e.referToSelf(n=>i=>St(i,n))})});var md="fraction",yd=["typed","Fraction"],ys=N(md,yd,r=>{var{typed:e,Fraction:t}=r;return e("fraction",{number:function(i){if(!isFinite(i)||isNaN(i))throw new Error(i+" cannot be represented as a fraction");return new t(i)},string:function(i){return new t(i)},"number, number":function(i,o){return new t(i,o)},null:function(i){return new t(0)},BigNumber:function(i){return new t(i.toString())},bigint:function(i){return new t(i.toString())},Fraction:function(i){return i},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Object:function(i){return new t(i)},"Array | Matrix":e.referToSelf(n=>i=>St(i,n))})});var Zl="matrix",vd=["typed","Matrix","DenseMatrix","SparseMatrix"],vs=N(Zl,vd,r=>{var{typed:e,Matrix:t,DenseMatrix:n,SparseMatrix:i}=r;return e(Zl,{"":function(){return o([])},string:function(c){return o([],c)},"string, string":function(c,l){return o([],c,l)},Array:function(c){return o(c)},Matrix:function(c){return o(c,c.storage())},"Array | Matrix, string":o,"Array | Matrix, string, string":o});function o(a,c,l){if(c==="dense"||c==="default"||c===void 0)return new n(a,l);if(c==="sparse")return new i(a,l);throw new TypeError("Unknown matrix type "+JSON.stringify(c)+".")}});var Kl="unaryMinus",_d=["typed"],_s=N(Kl,_d,r=>{var{typed:e}=r;return e(Kl,{number:us,"Complex | BigNumber | Fraction":t=>t.neg(),bigint:t=>-t,Unit:e.referToSelf(t=>n=>{var i=n.clone();return i.value=e.find(t,i.valueType())(n.value),i}),"Array | Matrix":e.referToSelf(t=>n=>St(n,t,!0))})});var Jl="abs",xd=["typed"],xs=N(Jl,xd,r=>{var{typed:e}=r;return e(Jl,{number:is,"Complex | BigNumber | Fraction | Unit":t=>t.abs(),bigint:t=>t<0n?-t:t,"Array | Matrix":e.referToSelf(t=>n=>St(n,t,!0))})});var Ql="addScalar",Ed=["typed"],Es=N(Ql,Ed,r=>{var{typed:e}=r;return e(Ql,{"number, number":os,"Complex, Complex":function(n,i){return n.add(i)},"BigNumber, BigNumber":function(n,i){return n.plus(i)},"bigint, bigint":function(n,i){return n+i},"Fraction, Fraction":function(n,i){return n.add(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var tc="subtractScalar",bd=["typed"],bs=N(tc,bd,r=>{var{typed:e}=r;return e(tc,{"number, number":ss,"Complex, Complex":function(n,i){return n.sub(i)},"BigNumber, BigNumber":function(n,i){return n.minus(i)},"bigint, bigint":function(n,i){return n-i},"Fraction, Fraction":function(n,i){return n.sub(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var Sd="matAlgo11xS0s",Md=["typed","equalScalar"],je=N(Sd,Md,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=t,v=0,b=a;typeof f=="string"&&(p=f,m=e.find(t,[p,p]),v=e.convert(0,p),o=e.convert(o,p),b=e.find(a,[p,p]));for(var y=[],S=[],x=[],_=0;_<g;_++){x[_]=S.length;for(var M=u[_],w=u[_+1],C=M;C<w;C++){var P=s[C],D=c?b(o,l[C]):b(l[C],o);m(D,v)||(S.push(P),y.push(D))}}return x[g]=S.length,i.createSparseMatrix({values:y,index:S,ptr:x,size:[d,g],datatype:p})}});var wd="matAlgo12xSfs",Td=["typed","DenseMatrix"],er=N(wd,Td,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=c?m(o,0):m(0,o)}return new t({data:v,size:[d,g],datatype:p})}});var Cd="matAlgo14xDs",Ad=["typed"],Ye=N(Cd,Ad,r=>{var{typed:e}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype,h,f=a;typeof u=="string"&&(h=u,o=e.convert(o,h),f=e.find(a,[h,h]));var d=s.length>0?t(f,0,s,s[0],l,o,c):[];return i.createDenseMatrix({data:d,size:mt(s),datatype:h})};function t(n,i,o,a,c,l,s){var u=[];if(i===o.length-1)for(var h=0;h<a;h++)u[h]=s?n(l,c[h]):n(c[h],l);else for(var f=0;f<a;f++)u[f]=t(n,i+1,o,o[i+1],c[f],l,s);return u}});var Ss="ceil",Pd=["typed","config","round","matrix","equalScalar","zeros","DenseMatrix"],Dd=N(Ss,["typed","config","round"],r=>{var{typed:e,config:t,round:n}=r;return e(Ss,{number:function(o){return Pe(o,n(o),t.relTol,t.absTol)?n(o):Math.ceil(o)},"number, number":function(o,a){if(Pe(o,n(o,a),t.relTol,t.absTol))return n(o,a);var[c,l]="".concat(o,"e").split("e"),s=Math.ceil(Number("".concat(c,"e").concat(Number(l)+a)));return[c,l]="".concat(s,"e").split("e"),Number("".concat(c,"e").concat(Number(l)-a))}})}),Ms=N(Ss,Pd,r=>{var{typed:e,config:t,round:n,matrix:i,equalScalar:o,zeros:a,DenseMatrix:c}=r,l=je({typed:e,equalScalar:o}),s=er({typed:e,DenseMatrix:c}),u=Ye({typed:e}),h=Dd({typed:e,config:t,round:n});return e("ceil",{number:h.signatures.number,"number,number":h.signatures["number,number"],Complex:function(d){return d.ceil()},"Complex, number":function(d,g){return d.ceil(g)},"Complex, BigNumber":function(d,g){return d.ceil(g.toNumber())},BigNumber:function(d){return yn(d,n(d),t.relTol,t.absTol)?n(d):d.ceil()},"BigNumber, BigNumber":function(d,g){return yn(d,n(d,g),t.relTol,t.absTol)?n(d,g):d.toDecimalPlaces(g.toNumber(),Ur.ROUND_CEIL)},Fraction:function(d){return d.ceil()},"Fraction, number":function(d,g){return d.ceil(g)},"Fraction, BigNumber":function(d,g){return d.ceil(g.toNumber())},"Array | Matrix":e.referToSelf(f=>d=>St(d,f,!0)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>St(d,p=>f(p,g),!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"number | Complex | Fraction | BigNumber, Array":e.referToSelf(f=>(d,g)=>u(i(g),d,f,!0).valueOf()),"number | Complex | Fraction | BigNumber, Matrix":e.referToSelf(f=>(d,g)=>o(d,0)?a(g.size(),g.storage()):g.storage()==="dense"?u(g,d,f,!0):s(g,d,f,!0))})});var ec="exp",Id=["typed"],ws=N(ec,Id,r=>{var{typed:e}=r;return e(ec,{number:ls,Complex:function(n){return n.exp()},BigNumber:function(n){return n.exp()}})});var Rd="matAlgo02xDS0",Nd=["typed","equalScalar"],nc=N(Rd,Nd,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype||i.getDataType(),h=o._values,f=o._index,d=o._ptr,g=o._size,p=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(s.length!==g.length)throw new tt(s.length,g.length);if(s[0]!==g[0]||s[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+g+")");if(!h)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var m=s[0],v=s[1],b,y=t,S=0,x=a;typeof u=="string"&&u===p&&u!=="mixed"&&(b=u,y=e.find(t,[b,b]),S=e.convert(0,b),x=e.find(a,[b,b]));for(var _=[],M=[],w=[],C=0;C<v;C++){w[C]=M.length;for(var P=d[C],D=d[C+1],R=P;R<D;R++){var W=f[R],G=c?x(h[R],l[W][C]):x(l[W][C],h[R]);y(G,S)||(M.push(W),_.push(G))}}return w[v]=M.length,o.createSparseMatrix({values:_,index:M,ptr:w,size:[m,v],datatype:u===i._datatype&&p===o._datatype?b:void 0})}});var Ld="matAlgo03xDSf",Od=["typed"],rc=N(Ld,Od,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new tt(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v,b=0,y=o;typeof s=="string"&&s===g&&s!=="mixed"&&(v=s,b=e.convert(0,v),y=e.find(o,[v,v]));for(var S=[],x=0;x<p;x++)S[x]=[];for(var _=[],M=[],w=0;w<m;w++){for(var C=w+1,P=f[w],D=f[w+1],R=P;R<D;R++){var W=h[R];_[W]=a?y(u[R],c[W][w]):y(c[W][w],u[R]),M[W]=C}for(var G=0;G<p;G++)M[G]===C?S[G][w]=_[G]:S[G][w]=a?y(b,c[G][w]):y(c[G][w],b)}return n.createDenseMatrix({data:S,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var Fd="matAlgo13xDD",Ud=["typed"],ic=N(Fd,Ud,r=>{var{typed:e}=r;return function(i,o,a){var c=i._data,l=i._size,s=i._datatype,u=o._data,h=o._size,f=o._datatype,d=[];if(l.length!==h.length)throw new tt(l.length,h.length);for(var g=0;g<l.length;g++){if(l[g]!==h[g])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+h+")");d[g]=l[g]}var p,m=a;typeof s=="string"&&s===f&&(p=s,m=e.find(a,[p,p]));var v=d.length>0?t(m,0,d,d[0],c,u):[];return i.createDenseMatrix({data:v,size:d,datatype:p})};function t(n,i,o,a,c,l){var s=[];if(i===o.length-1)for(var u=0;u<a;u++)s[u]=n(c[u],l[u]);else for(var h=0;h<a;h++)s[h]=t(n,i+1,o,o[i+1],c[h],l[h]);return s}});function Ot(r,e){if(Ce(r.size(),e.size()))return[r,e];var t=ts(r.size(),e.size());return[r,e].map(n=>Bd(n,t))}function Bd(r,e){return Ce(r.size(),e)?r:r.create(Gr(r.valueOf(),e),r.datatype())}var zd="matrixAlgorithmSuite",Gd=["typed","matrix"],Fi=N(zd,Gd,r=>{var{typed:e,matrix:t}=r,n=ic({typed:e}),i=Ye({typed:e});return function(a){var c=a.elop,l=a.SD||a.DS,s;c?(s={"DenseMatrix, DenseMatrix":(d,g)=>n(...Ot(d,g),c),"Array, Array":(d,g)=>n(...Ot(t(d),t(g)),c).valueOf(),"Array, DenseMatrix":(d,g)=>n(...Ot(t(d),g),c),"DenseMatrix, Array":(d,g)=>n(...Ot(d,t(g)),c)},a.SS&&(s["SparseMatrix, SparseMatrix"]=(d,g)=>a.SS(...Ot(d,g),c,!1)),a.DS&&(s["DenseMatrix, SparseMatrix"]=(d,g)=>a.DS(...Ot(d,g),c,!1),s["Array, SparseMatrix"]=(d,g)=>a.DS(...Ot(t(d),g),c,!1)),l&&(s["SparseMatrix, DenseMatrix"]=(d,g)=>l(...Ot(g,d),c,!0),s["SparseMatrix, Array"]=(d,g)=>l(...Ot(t(g),d),c,!0))):(s={"DenseMatrix, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Ot(g,p),d)),"Array, Array":e.referToSelf(d=>(g,p)=>n(...Ot(t(g),t(p)),d).valueOf()),"Array, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Ot(t(g),p),d)),"DenseMatrix, Array":e.referToSelf(d=>(g,p)=>n(...Ot(g,t(p)),d))},a.SS&&(s["SparseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.SS(...Ot(g,p),d,!1))),a.DS&&(s["DenseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Ot(g,p),d,!1)),s["Array, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Ot(t(g),p),d,!1))),l&&(s["SparseMatrix, DenseMatrix"]=e.referToSelf(d=>(g,p)=>l(...Ot(p,g),d,!0)),s["SparseMatrix, Array"]=e.referToSelf(d=>(g,p)=>l(...Ot(t(p),g),d,!0))));var u=a.scalar||"any",h=a.Ds||a.Ss;h&&(c?(s["DenseMatrix,"+u]=(d,g)=>i(d,g,c,!1),s[u+", DenseMatrix"]=(d,g)=>i(g,d,c,!0),s["Array,"+u]=(d,g)=>i(t(d),g,c,!1).valueOf(),s[u+", Array"]=(d,g)=>i(t(g),d,c,!0).valueOf()):(s["DenseMatrix,"+u]=e.referToSelf(d=>(g,p)=>i(g,p,d,!1)),s[u+", DenseMatrix"]=e.referToSelf(d=>(g,p)=>i(p,g,d,!0)),s["Array,"+u]=e.referToSelf(d=>(g,p)=>i(t(g),p,d,!1).valueOf()),s[u+", Array"]=e.referToSelf(d=>(g,p)=>i(t(p),g,d,!0).valueOf())));var f=a.sS!==void 0?a.sS:a.Ss;return c?(a.Ss&&(s["SparseMatrix,"+u]=(d,g)=>a.Ss(d,g,c,!1)),f&&(s[u+", SparseMatrix"]=(d,g)=>f(g,d,c,!0))):(a.Ss&&(s["SparseMatrix,"+u]=e.referToSelf(d=>(g,p)=>a.Ss(g,p,d,!1))),f&&(s[u+", SparseMatrix"]=e.referToSelf(d=>(g,p)=>f(p,g,d,!0)))),c&&c.signatures&&_i(s,c.signatures),s}});var kd="matAlgo01xDSid",Vd=["typed"],oc=N(kd,Vd,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new tt(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v=typeof s=="string"&&s!=="mixed"&&s===g?s:void 0,b=v?e.find(o,[v,v]):o,y,S,x=[];for(y=0;y<p;y++)x[y]=[];var _=[],M=[];for(S=0;S<m;S++){for(var w=S+1,C=f[S],P=f[S+1],D=C;D<P;D++)y=h[D],_[y]=a?b(u[D],c[y][S]):b(c[y][S],u[D]),M[y]=w;for(y=0;y<p;y++)M[y]===w?x[y][S]=_[y]:x[y][S]=c[y][S]}return n.createDenseMatrix({data:x,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var Hd="matAlgo04xSidSid",Wd=["typed","equalScalar"],sc=N(Hd,Wd,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a){var c=i._values,l=i._index,s=i._ptr,u=i._size,h=i._datatype||i._data===void 0?i._datatype:i.getDataType(),f=o._values,d=o._index,g=o._ptr,p=o._size,m=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(u.length!==p.length)throw new tt(u.length,p.length);if(u[0]!==p[0]||u[1]!==p[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+p+")");var v=u[0],b=u[1],y,S=t,x=0,_=a;typeof h=="string"&&h===m&&h!=="mixed"&&(y=h,S=e.find(t,[y,y]),x=e.convert(0,y),_=e.find(a,[y,y]));var M=c&&f?[]:void 0,w=[],C=[],P=c&&f?[]:void 0,D=c&&f?[]:void 0,R=[],W=[],G,k,L,q,Y;for(k=0;k<b;k++){C[k]=w.length;var j=k+1;for(q=s[k],Y=s[k+1],L=q;L<Y;L++)G=l[L],w.push(G),R[G]=j,P&&(P[G]=c[L]);for(q=g[k],Y=g[k+1],L=q;L<Y;L++)if(G=d[L],R[G]===j){if(P){var Q=_(P[G],f[L]);S(Q,x)?R[G]=null:P[G]=Q}}else w.push(G),W[G]=j,D&&(D[G]=f[L]);if(P&&D)for(L=C[k];L<w.length;)G=w[L],R[G]===j?(M[L]=P[G],L++):W[G]===j?(M[L]=D[G],L++):w.splice(L,1)}return C[b]=w.length,i.createSparseMatrix({values:M,index:w,ptr:C,size:[v,b],datatype:h===i._datatype&&m===o._datatype?y:void 0})}});var qd="matAlgo10xSids",Xd=["typed","DenseMatrix"],ac=N(qd,Xd,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=o}return new t({data:v,size:[d,g],datatype:p})}});var uc="log2",jd=["typed","config","Complex"],Ts=N(uc,jd,r=>{var{typed:e,config:t,Complex:n}=r;return e(uc,{number:function(a){return a>=0||t.predictable?cs(a):i(new n(a,0))},Complex:i,BigNumber:function(a){return!a.isNegative()||t.predictable?a.log(2):i(new n(a.toNumber(),0))},"Array | Matrix":e.referToSelf(o=>a=>St(a,o))});function i(o){var a=Math.sqrt(o.re*o.re+o.im*o.im);return new n(Math.log2?Math.log2(a):Math.log(a)/Math.LN2,Math.atan2(o.im,o.re)/Math.LN2)}});var Yd="multiplyScalar",$d=["typed"],Cs=N(Yd,$d,r=>{var{typed:e}=r;return e("multiplyScalar",{"number, number":as,"Complex, Complex":function(n,i){return n.mul(i)},"BigNumber, BigNumber":function(n,i){return n.times(i)},"bigint, bigint":function(n,i){return n*i},"Fraction, Fraction":function(n,i){return n.mul(i)},"number | Fraction | BigNumber | Complex, Unit":(t,n)=>n.multiply(t),"Unit, number | Fraction | BigNumber | Complex | Unit":(t,n)=>t.multiply(n)})});var lc="multiply",Zd=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],As=N(lc,Zd,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,equalScalar:o,dot:a}=r,c=je({typed:e,equalScalar:o}),l=Ye({typed:e});function s(x,_){switch(x.length){case 1:switch(_.length){case 1:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+x[0]+") must match Matrix rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;case 2:switch(_.length){case 1:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+x[1]+") must match Vector length ("+_[0]+")");break;case 2:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+x[1]+") must match Matrix B rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+x.length+" dimensions)")}}function u(x,_,M){if(M===0)throw new Error("Cannot multiply two empty vectors");return a(x,_)}function h(x,_){if(_.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return f(x,_)}function f(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=D[1],k,L=n,q=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&(k=C,L=e.find(n,[k,k]),q=e.find(i,[k,k]));for(var Y=[],j=0;j<G;j++){for(var Q=q(M[0],P[0][j]),ht=1;ht<W;ht++)Q=L(Q,q(M[ht],P[ht][j]));Y[j]=Q}return x.createDenseMatrix({data:Y,size:[G],datatype:C===x._datatype&&R===_._datatype?k:void 0})}var d=e("_multiplyMatrixVector",{"DenseMatrix, any":p,"SparseMatrix, any":b}),g=e("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":m,"DenseMatrix, SparseMatrix":v,"SparseMatrix, DenseMatrix":y,"SparseMatrix, SparseMatrix":S});function p(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._datatype||_.getDataType(),R=w[0],W=w[1],G,k=n,L=i;C&&D&&C===D&&typeof C=="string"&&C!=="mixed"&&(G=C,k=e.find(n,[G,G]),L=e.find(i,[G,G]));for(var q=[],Y=0;Y<R;Y++){for(var j=M[Y],Q=L(j[0],P[0]),ht=1;ht<W;ht++)Q=k(Q,L(j[ht],P[ht]));q[Y]=Q}return x.createDenseMatrix({data:q,size:[R],datatype:C===x._datatype&&D===_._datatype?G:void 0})}function m(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=w[1],k=D[1],L,q=n,Y=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&C!=="mixed"&&(L=C,q=e.find(n,[L,L]),Y=e.find(i,[L,L]));for(var j=[],Q=0;Q<W;Q++){var ht=M[Q];j[Q]=[];for(var lt=0;lt<k;lt++){for(var dt=Y(ht[0],P[0][lt]),Dt=1;Dt<G;Dt++)dt=q(dt,Y(ht[Dt],P[Dt][lt]));j[Q][lt]=dt}}return x.createDenseMatrix({data:j,size:[W,k],datatype:C===x._datatype&&R===_._datatype?L:void 0})}function v(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._values,D=_._index,R=_._ptr,W=_._size,G=_._datatype||_._data===void 0?_._datatype:_.getDataType();if(!P)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var k=w[0],L=W[1],q,Y=n,j=i,Q=o,ht=0;C&&G&&C===G&&typeof C=="string"&&C!=="mixed"&&(q=C,Y=e.find(n,[q,q]),j=e.find(i,[q,q]),Q=e.find(o,[q,q]),ht=e.convert(0,q));for(var lt=[],dt=[],Dt=[],Pt=_.createSparseMatrix({values:lt,index:dt,ptr:Dt,size:[k,L],datatype:C===x._datatype&&G===_._datatype?q:void 0}),Ct=0;Ct<L;Ct++){Dt[Ct]=dt.length;var Mt=R[Ct],ae=R[Ct+1];if(ae>Mt)for(var At=0,vt=0;vt<k;vt++){for(var Ee=vt+1,Ht=void 0,pt=Mt;pt<ae;pt++){var Ft=D[pt];At!==Ee?(Ht=j(M[vt][Ft],P[pt]),At=Ee):Ht=Y(Ht,j(M[vt][Ft],P[pt]))}At===Ee&&!Q(Ht,ht)&&(dt.push(vt),lt.push(Ht))}}return Dt[L]=dt.length,Pt}function b(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=[],L=[],q=[],Y,j=n,Q=i,ht=o,lt=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),Q=e.find(i,[Y,Y]),ht=e.find(o,[Y,Y]),lt=e.convert(0,Y));var dt=[],Dt=[];q[0]=0;for(var Pt=0;Pt<G;Pt++){var Ct=D[Pt];if(!ht(Ct,lt))for(var Mt=C[Pt],ae=C[Pt+1],At=Mt;At<ae;At++){var vt=w[At];Dt[vt]?dt[vt]=j(dt[vt],Q(Ct,M[At])):(Dt[vt]=!0,L.push(vt),dt[vt]=Q(Ct,M[At]))}}for(var Ee=L.length,Ht=0;Ht<Ee;Ht++){var pt=L[Ht];k[Ht]=dt[pt]}return q[1]=L.length,x.createSparseMatrix({values:k,index:L,ptr:q,size:[W,1],datatype:P===x._datatype&&R===_._datatype?Y:void 0})}function y(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=_._size[1],L,q=n,Y=i,j=o,Q=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(L=P,q=e.find(n,[L,L]),Y=e.find(i,[L,L]),j=e.find(o,[L,L]),Q=e.convert(0,L));for(var ht=[],lt=[],dt=[],Dt=x.createSparseMatrix({values:ht,index:lt,ptr:dt,size:[W,k],datatype:P===x._datatype&&R===_._datatype?L:void 0}),Pt=[],Ct=[],Mt=0;Mt<k;Mt++){dt[Mt]=lt.length;for(var ae=Mt+1,At=0;At<G;At++){var vt=D[At][Mt];if(!j(vt,Q))for(var Ee=C[At],Ht=C[At+1],pt=Ee;pt<Ht;pt++){var Ft=w[pt];Ct[Ft]!==ae?(Ct[Ft]=ae,lt.push(Ft),Pt[Ft]=Y(vt,M[pt])):Pt[Ft]=q(Pt[Ft],Y(vt,M[pt]))}}for(var Kt=dt[Mt],Ve=lt.length,nn=Kt;nn<Ve;nn++){var or=lt[nn];ht[nn]=Pt[or]}}return dt[k]=lt.length,Dt}function S(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType(),D=_._values,R=_._index,W=_._ptr,G=_._datatype||_._data===void 0?_._datatype:_.getDataType(),k=x._size[0],L=_._size[1],q=M&&D,Y,j=n,Q=i;P&&G&&P===G&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),Q=e.find(i,[Y,Y]));for(var ht=q?[]:void 0,lt=[],dt=[],Dt=x.createSparseMatrix({values:ht,index:lt,ptr:dt,size:[k,L],datatype:P===x._datatype&&G===_._datatype?Y:void 0}),Pt=q?[]:void 0,Ct=[],Mt,ae,At,vt,Ee,Ht,pt,Ft,Kt=0;Kt<L;Kt++){dt[Kt]=lt.length;var Ve=Kt+1;for(Ee=W[Kt],Ht=W[Kt+1],vt=Ee;vt<Ht;vt++)if(Ft=R[vt],q)for(ae=C[Ft],At=C[Ft+1],Mt=ae;Mt<At;Mt++)pt=w[Mt],Ct[pt]!==Ve?(Ct[pt]=Ve,lt.push(pt),Pt[pt]=Q(D[vt],M[Mt])):Pt[pt]=j(Pt[pt],Q(D[vt],M[Mt]));else for(ae=C[Ft],At=C[Ft+1],Mt=ae;Mt<At;Mt++)pt=w[Mt],Ct[pt]!==Ve&&(Ct[pt]=Ve,lt.push(pt));if(q)for(var nn=dt[Kt],or=lt.length,Nn=nn;Nn<or;Nn++){var Xr=lt[Nn];ht[Nn]=Pt[Xr]}}return dt[L]=lt.length,Dt}return e(lc,i,{"Array, Array":e.referTo("Matrix, Matrix",x=>(_,M)=>{s(ut(_),ut(M));var w=x(t(_),t(M));return at(w)?w.valueOf():w}),"Matrix, Matrix":function(_,M){var w=_.size(),C=M.size();return s(w,C),w.length===1?C.length===1?u(_,M,w[0]):h(_,M):C.length===1?d(_,M):g(_,M)},"Matrix, Array":e.referTo("Matrix,Matrix",x=>(_,M)=>x(_,t(M))),"Array, Matrix":e.referToSelf(x=>(_,M)=>x(t(_,M.storage()),M)),"SparseMatrix, any":function(_,M){return c(_,M,i,!1)},"DenseMatrix, any":function(_,M){return l(_,M,i,!1)},"any, SparseMatrix":function(_,M){return c(M,_,i,!0)},"any, DenseMatrix":function(_,M){return l(M,_,i,!0)},"Array, any":function(_,M){return l(t(_),M,i,!1).valueOf()},"any, Array":function(_,M){return l(t(M),_,i,!0).valueOf()},"any, any":i,"any, any, ...any":e.referToSelf(x=>(_,M,w)=>{for(var C=x(_,M),P=0;P<w.length;P++)C=x(C,w[P]);return C})})});var Kd="matAlgo07xSSf",Jd=["typed","DenseMatrix"],cc=N(Kd,Jd,r=>{var{typed:e,DenseMatrix:t}=r;return function(o,a,c){var l=o._size,s=o._datatype||o._data===void 0?o._datatype:o.getDataType(),u=a._size,h=a._datatype||a._data===void 0?a._datatype:a.getDataType();if(l.length!==u.length)throw new tt(l.length,u.length);if(l[0]!==u[0]||l[1]!==u[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+u+")");var f=l[0],d=l[1],g,p=0,m=c;typeof s=="string"&&s===h&&s!=="mixed"&&(g=s,p=e.convert(0,g),m=e.find(c,[g,g]));var v,b,y=[];for(v=0;v<f;v++)y[v]=[];var S=[],x=[],_=[],M=[];for(b=0;b<d;b++){var w=b+1;for(n(o,b,_,S,w),n(a,b,M,x,w),v=0;v<f;v++){var C=_[v]===w?S[v]:p,P=M[v]===w?x[v]:p;y[v][b]=m(C,P)}}return new t({data:y,size:[f,d],datatype:s===o._datatype&&h===a._datatype?g:void 0})};function n(i,o,a,c,l){for(var s=i._values,u=i._index,h=i._ptr,f=h[o],d=h[o+1];f<d;f++){var g=u[f];a[g]=l,c[g]=s[f]}}});var hc="conj",Qd=["typed"],Ps=N(hc,Qd,r=>{var{typed:e}=r;return e(hc,{"number | BigNumber | Fraction":t=>t,Complex:t=>t.conjugate(),"Array | Matrix":e.referToSelf(t=>n=>St(n,t))})});var pc="concat",tg=["typed","matrix","isInteger"],Ds=N(pc,tg,r=>{var{typed:e,matrix:t,isInteger:n}=r;return e(pc,{"...Array | Matrix | number | BigNumber":function(o){var a,c=o.length,l=-1,s,u=!1,h=[];for(a=0;a<c;a++){var f=o[a];if(at(f)&&(u=!0),it(f)||st(f)){if(a!==c-1)throw new Error("Dimension must be specified as last argument");if(s=l,l=f.valueOf(),!n(l))throw new TypeError("Integer number expected for dimension");if(l<0||a>0&&l>s)throw new Ge(l,s+1)}else{var d=mt(f).valueOf(),g=ut(d);if(h[a]=d,s=l,l=g.length-1,a>0&&l!==s)throw new tt(s+1,l+1)}}if(h.length===0)throw new SyntaxError("At least one matrix expected");for(var p=h.shift();h.length;)p=Qo(p,h.shift(),l);return u?t(p):p},"...string":function(o){return o.join("")}})});var fc="identity",eg=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],Is=N(fc,eg,r=>{var{typed:e,config:t,matrix:n,BigNumber:i,DenseMatrix:o,SparseMatrix:a}=r;return e(fc,{"":function(){return t.matrix==="Matrix"?n([]):[]},string:function(u){return n(u)},"number | BigNumber":function(u){return l(u,u,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(u,h){return l(u,u,h)},"number | BigNumber, number | BigNumber":function(u,h){return l(u,h,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(u,h,f){return l(u,h,f)},Array:function(u){return c(u)},"Array, string":function(u,h){return c(u,h)},Matrix:function(u){return c(u.valueOf(),u.storage())},"Matrix, string":function(u,h){return c(u.valueOf(),h)}});function c(s,u){switch(s.length){case 0:return u?n(u):[];case 1:return l(s[0],s[0],u);case 2:return l(s[0],s[1],u);default:throw new Error("Vector containing two values expected")}}function l(s,u,h){var f=st(s)||st(u)?i:null;if(st(s)&&(s=s.toNumber()),st(u)&&(u=u.toNumber()),!rt(s)||s<1)throw new Error("Parameters in function identity must be positive integers");if(!rt(u)||u<1)throw new Error("Parameters in function identity must be positive integers");var d=f?new i(1):1,g=f?new f(0):0,p=[s,u];if(h){if(h==="sparse")return a.diagonal(p,d,0,g);if(h==="dense")return o.diagonal(p,d,0,g);throw new TypeError('Unknown matrix type "'.concat(h,'"'))}for(var m=In([],p,g),v=s<u?s:u,b=0;b<v;b++)m[b][b]=d;return m}});function dc(){throw new Error('No "bignumber" implementation available')}function gc(){throw new Error('No "fraction" implementation available')}function mc(){throw new Error('No "matrix" implementation available')}var yc="reshape",ng=["typed","isInteger","matrix"],Rs=N(yc,ng,r=>{var{typed:e,isInteger:t}=r;return e(yc,{"Matrix, Array":function(i,o){return i.reshape(o,!0)},"Array, Array":function(i,o){return o.forEach(function(a){if(!t(a))throw new TypeError("Invalid size for dimension: "+a)}),Br(i,o)}})});var vc="size",rg=["typed","config","?matrix"],Ns=N(vc,rg,r=>{var{typed:e,config:t,matrix:n}=r;return e(vc,{Matrix:function(o){return o.create(o.size(),"number")},Array:ut,string:function(o){return t.matrix==="Array"?[o.length]:n([o.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(o){return t.matrix==="Array"?[]:n?n([],"dense","number"):mc()}})});var _c="zeros",ig=["typed","config","matrix","BigNumber"],Ls=N(_c,ig,r=>{var{typed:e,config:t,matrix:n,BigNumber:i}=r;return e(_c,{"":function(){return t.matrix==="Array"?o([]):o([],"default")},"...number | BigNumber | string":function(s){var u=s[s.length-1];if(typeof u=="string"){var h=s.pop();return o(s,h)}else return t.matrix==="Array"?o(s):o(s,"default")},Array:o,Matrix:function(s){var u=s.storage();return o(s.valueOf(),u)},"Array | Matrix, string":function(s,u){return o(s.valueOf(),u)}});function o(l,s){var u=a(l),h=u?new i(0):0;if(c(l),s){var f=n(s);return l.length>0?f.resize(l,h):f}else{var d=[];return l.length>0?In(d,l,h):d}}function a(l){var s=!1;return l.forEach(function(u,h,f){st(u)&&(s=!0,f[h]=u.toNumber())}),s}function c(l){l.forEach(function(s){if(typeof s!="number"||!rt(s)||s<0)throw new Error("Parameters in function zeros must be positive integers")})}});var xc="fft",og=["typed","matrix","addScalar","multiplyScalar","divideScalar","exp","tau","i","dotDivide","conj","pow","ceil","log2"],Os=N(xc,og,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,divideScalar:o,exp:a,tau:c,i:l,dotDivide:s,conj:u,pow:h,ceil:f,log2:d}=r;return e(xc,{Array:g,Matrix:function(y){return y.create(g(y.valueOf()),y.datatype())}});function g(b){var y=ut(b);return y.length===1?v(b,y[0]):p(b.map(S=>g(S,y.slice(1))),0)}function p(b,y){var S=ut(b);if(y!==0)return new Array(S[0]).fill(0).map((_,M)=>p(b[M],y-1));if(S.length===1)return v(b);function x(_){var M=ut(_);return new Array(M[1]).fill(0).map((w,C)=>new Array(M[0]).fill(0).map((P,D)=>_[D][C]))}return x(p(x(b),1))}function m(b){for(var y=b.length,S=a(o(i(-1,i(l,c)),y)),x=[],_=1-y;_<y;_++)x.push(h(S,o(h(_,2),2)));for(var M=h(2,f(d(y+y-1))),w=[...new Array(y).fill(0).map((L,q)=>i(b[q],x[y-1+q])),...new Array(M-y).fill(0)],C=[...new Array(y+y-1).fill(0).map((L,q)=>o(1,x[q])),...new Array(M-(y+y-1)).fill(0)],P=v(w),D=v(C),R=new Array(M).fill(0).map((L,q)=>i(P[q],D[q])),W=s(u(g(u(R))),M),G=[],k=y-1;k<y+y-1;k++)G.push(i(W[k],x[k]));return G}function v(b){var y=b.length;if(y===1)return[b[0]];if(y%2===0){for(var S=[...v(b.filter((w,C)=>C%2===0),y/2),...v(b.filter((w,C)=>C%2===1),y/2)],x=0;x<y/2;x++){var _=S[x],M=i(S[x+y/2],a(i(i(c,l),o(-x,y))));S[x]=n(_,M),S[x+y/2]=n(_,i(-1,M))}return S}else return m(b)}});function Fs(r,e,t){var n;return String(r).includes("Unexpected type")?(n=arguments.length>2?" (type: "+$t(t)+", value: "+JSON.stringify(t)+")":" (type: "+r.data.actual+")",new TypeError("Cannot calculate "+e+", unexpected type of argument"+n)):String(r).includes("complex numbers")?(n=arguments.length>2?" (type: "+$t(t)+", value: "+JSON.stringify(t)+")":"",new TypeError("Cannot calculate "+e+", no ordering relation is defined for complex numbers"+n)):r}var sg="numeric",ag=["number","?bignumber","?fraction"],Us=N(sg,ag,r=>{var{number:e,bignumber:t,fraction:n}=r,i={string:!0,number:!0,BigNumber:!0,Fraction:!0},o={number:a=>e(a),BigNumber:t?a=>t(a):dc,bigint:a=>BigInt(a),Fraction:n?a=>n(a):gc};return function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",s=arguments.length>2?arguments[2]:void 0;if(s!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var u=$t(c);if(!(u in i))throw new TypeError("Cannot convert "+c+' of type "'+u+'"; valid input types are '+Object.keys(i).join(", "));if(!(l in o))throw new TypeError("Cannot convert "+c+' to type "'+l+'"; valid output types are '+Object.keys(o).join(", "));return l===u?c:o[l](c)}});var Ec="divideScalar",ug=["typed","numeric"],Bs=N(Ec,ug,r=>{var{typed:e,numeric:t}=r;return e(Ec,{"number, number":function(i,o){return i/o},"Complex, Complex":function(i,o){return i.div(o)},"BigNumber, BigNumber":function(i,o){return i.div(o)},"bigint, bigint":function(i,o){return i/o},"Fraction, Fraction":function(i,o){return i.div(o)},"Unit, number | Complex | Fraction | BigNumber | Unit":(n,i)=>n.divide(i),"number | Fraction | Complex | BigNumber, Unit":(n,i)=>i.divideInto(n)})});var bc="pow",lg=["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],zs=N(bc,lg,r=>{var{typed:e,config:t,identity:n,multiply:i,matrix:o,inv:a,number:c,fraction:l,Complex:s}=r;return e(bc,{"number, number":u,"Complex, Complex":function(g,p){return g.pow(p)},"BigNumber, BigNumber":function(g,p){return p.isInteger()||g>=0||t.predictable?g.pow(p):new s(g.toNumber(),0).pow(p.toNumber(),0)},"bigint, bigint":(d,g)=>d**g,"Fraction, Fraction":function(g,p){var m=g.pow(p);if(m!=null)return m;if(t.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return u(g.valueOf(),p.valueOf())},"Array, number":h,"Array, BigNumber":function(g,p){return h(g,p.toNumber())},"Matrix, number":f,"Matrix, BigNumber":function(g,p){return f(g,p.toNumber())},"Unit, number | BigNumber":function(g,p){return g.pow(p)}});function u(d,g){if(t.predictable&&!rt(g)&&d<0)try{var p=l(g),m=c(p);if((g===m||Math.abs((g-m)/g)<1e-14)&&p.d%2===1)return(p.n%2===0?1:-1)*Math.pow(-d,g)}catch{}return t.predictable&&(d<-1&&g===1/0||d>-1&&d<0&&g===-1/0)?NaN:rt(g)||d>=0||t.predictable?hs(d,g):d*d<1&&g===1/0||d*d>1&&g===-1/0?0:new s(d,0).pow(g,0)}function h(d,g){if(!rt(g))throw new TypeError("For A^b, b must be an integer (value is "+g+")");var p=ut(d);if(p.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+p.length+" dimensions)");if(p[0]!==p[1])throw new Error("For A^b, A must be square (size is "+p[0]+"x"+p[1]+")");if(g<0)try{return h(a(d),-g)}catch(b){throw b.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+g+")"):b}for(var m=n(p[0]).valueOf(),v=d;g>=1;)(g&1)===1&&(m=i(v,m)),g>>=1,v=i(v,v);return m}function f(d,g){return o(h(d.valueOf(),g))}});var nr="Number of decimals in function round must be an integer",Sc="round",cg=["typed","config","matrix","equalScalar","zeros","BigNumber","DenseMatrix"],Gs=N(Sc,cg,r=>{var{typed:e,config:t,matrix:n,equalScalar:i,zeros:o,BigNumber:a,DenseMatrix:c}=r,l=je({typed:e,equalScalar:i}),s=er({typed:e,DenseMatrix:c}),u=Ye({typed:e});function h(f){return Math.abs($n(f).exponent)}return e(Sc,{number:function(d){var g=tr(d,h(t.relTol)),p=Pe(d,g,t.relTol,t.absTol)?g:d;return tr(p)},"number, number":function(d,g){var p=h(t.relTol);if(g>=p)return tr(d,g);var m=tr(d,p),v=Pe(d,m,t.relTol,t.absTol)?m:d;return tr(v,g)},"number, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(nr);return new a(d).toDecimalPlaces(g.toNumber())},Complex:function(d){return d.round()},"Complex, number":function(d,g){if(g%1)throw new TypeError(nr);return d.round(g)},"Complex, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(nr);var p=g.toNumber();return d.round(p)},BigNumber:function(d){var g=new a(d).toDecimalPlaces(h(t.relTol)),p=yn(d,g,t.relTol,t.absTol)?g:d;return p.toDecimalPlaces(0)},"BigNumber, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(nr);var p=h(t.relTol);if(g>=p)return d.toDecimalPlaces(g.toNumber());var m=d.toDecimalPlaces(p),v=yn(d,m,t.relTol,t.absTol)?m:d;return v.toDecimalPlaces(g.toNumber())},Fraction:function(d){return d.round()},"Fraction, number":function(d,g){if(g%1)throw new TypeError(nr);return d.round(g)},"Fraction, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(nr);return d.round(g.toNumber())},"Unit, number, Unit":e.referToSelf(f=>function(d,g,p){var m=d.toNumeric(p);return p.multiply(f(m,g))}),"Unit, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Unit, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix, number, Unit":e.referToSelf(f=>(d,g,p)=>St(d,m=>f(m,g,p),!0)),"Array | Matrix, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Array | Matrix, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix":e.referToSelf(f=>d=>St(d,f,!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>u(n(d),g,f,!1).valueOf()),"number | Complex | BigNumber | Fraction, SparseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):s(g,d,f,!0)),"number | Complex | BigNumber | Fraction, DenseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):u(g,d,f,!0)),"number | Complex | BigNumber | Fraction, Array":e.referToSelf(f=>(d,g)=>u(n(g),d,f,!0).valueOf())})});var Mc="dotDivide",hg=["typed","matrix","equalScalar","divideScalar","DenseMatrix","concat"],ks=N(Mc,hg,r=>{var{typed:e,matrix:t,equalScalar:n,divideScalar:i,DenseMatrix:o,concat:a}=r,c=nc({typed:e,equalScalar:n}),l=rc({typed:e}),s=cc({typed:e,DenseMatrix:o}),u=je({typed:e,equalScalar:n}),h=er({typed:e,DenseMatrix:o}),f=Fi({typed:e,matrix:t,concat:a});return e(Mc,f({elop:i,SS:s,DS:l,SD:c,Ss:u,sS:h}))});function wc(r){var e=0,t=1,n=Object.create(null),i=Object.create(null),o=0,a=function(l){var s=i[l];if(s&&(delete n[s],delete i[l],--e,t===s)){if(!e){o=0,t=1;return}for(;!Object.prototype.hasOwnProperty.call(n,++t););}};return r=Math.abs(r),{hit:function(l){var s=i[l],u=++o;if(n[u]=l,i[l]=u,!s)return++e,e<=r?void 0:(l=n[t],a(l),l);if(delete n[s],t===s)for(;!Object.prototype.hasOwnProperty.call(n,++t););},delete:a,clear:function(){e=o=0,t=1,n=Object.create(null),i=Object.create(null)}}}function Vr(r){var{hasher:e,limit:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t=t??Number.POSITIVE_INFINITY,e=e??JSON.stringify,function n(){typeof n.cache!="object"&&(n.cache={values:new Map,lru:wc(t||Number.POSITIVE_INFINITY)});for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=e(i);if(n.cache.values.has(a))return n.cache.lru.hit(a),n.cache.values.get(a);var c=r.apply(r,i);return n.cache.values.set(a,c),n.cache.values.delete(n.cache.lru.hit(a)),c}}var pg=Vr(function(r){return new r(1).exp()},{hasher:Ui}),fg=Vr(function(r){return new r(1).plus(new r(5).sqrt()).div(2)},{hasher:Ui}),Tc=Vr(function(r){return r.acos(-1)},{hasher:Ui}),Cc=Vr(function(r){return Tc(r).times(2)},{hasher:Ui});function Ui(r){return r[0].precision}var Ac="add",dg=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],Vs=N(Ac,dg,r=>{var{typed:e,matrix:t,addScalar:n,equalScalar:i,DenseMatrix:o,SparseMatrix:a,concat:c}=r,l=oc({typed:e}),s=sc({typed:e,equalScalar:i}),u=ac({typed:e,DenseMatrix:o}),h=Fi({typed:e,matrix:t,concat:c});return e(Ac,{"any, any":n,"any, any, ...any":e.referToSelf(f=>(d,g,p)=>{for(var m=f(d,g),v=0;v<p.length;v++)m=f(m,p[v]);return m})},h({elop:n,DS:l,SS:s,Ss:u}))});var Pc="dot",gg=["typed","addScalar","multiplyScalar","conj","size"],Hs=N(Pc,gg,r=>{var{typed:e,addScalar:t,multiplyScalar:n,conj:i,size:o}=r;return e(Pc,{"Array | DenseMatrix, Array | DenseMatrix":c,"SparseMatrix, SparseMatrix":l});function a(u,h){var f=s(u),d=s(h),g,p;if(f.length===1)g=f[0];else if(f.length===2&&f[1]===1)g=f[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+f.join(", ")+")");if(d.length===1)p=d[0];else if(d.length===2&&d[1]===1)p=d[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+d.join(", ")+")");if(g!==p)throw new RangeError("Vectors must have equal length ("+g+" != "+p+")");if(g===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return g}function c(u,h){var f=a(u,h),d=at(u)?u._data:u,g=at(u)?u._datatype||u.getDataType():void 0,p=at(h)?h._data:h,m=at(h)?h._datatype||h.getDataType():void 0,v=s(u).length===2,b=s(h).length===2,y=t,S=n;if(g&&m&&g===m&&typeof g=="string"&&g!=="mixed"){var x=g;y=e.find(t,[x,x]),S=e.find(n,[x,x])}if(!v&&!b){for(var _=S(i(d[0]),p[0]),M=1;M<f;M++)_=y(_,S(i(d[M]),p[M]));return _}if(!v&&b){for(var w=S(i(d[0]),p[0][0]),C=1;C<f;C++)w=y(w,S(i(d[C]),p[C][0]));return w}if(v&&!b){for(var P=S(i(d[0][0]),p[0]),D=1;D<f;D++)P=y(P,S(i(d[D][0]),p[D]));return P}if(v&&b){for(var R=S(i(d[0][0]),p[0][0]),W=1;W<f;W++)R=y(R,S(i(d[W][0]),p[W][0]));return R}}function l(u,h){a(u,h);for(var f=u._index,d=u._values,g=h._index,p=h._values,m=0,v=t,b=n,y=0,S=0;y<f.length&&S<g.length;){var x=f[y],_=g[S];if(x<_){y++;continue}if(x>_){S++;continue}x===_&&(m=v(m,b(d[y],p[S])),y++,S++)}return m}function s(u){return at(u)?u.size():o(u)}});var Dc="det",mg=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],Ws=N(Dc,mg,r=>{var{typed:e,matrix:t,subtractScalar:n,multiply:i,divideScalar:o,isZero:a,unaryMinus:c}=r;return e(Dc,{any:function(u){return mt(u)},"Array | Matrix":function(u){var h;switch(at(u)?h=u.size():Array.isArray(u)?(u=t(u),h=u.size()):h=[],h.length){case 0:return mt(u);case 1:if(h[0]===1)return mt(u.valueOf()[0]);if(h[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+bt(h)+")");case 2:{var f=h[0],d=h[1];if(f===d)return l(u.clone().valueOf(),f,d);if(d===0)return 1;throw new RangeError("Matrix must be square (size: "+bt(h)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+bt(h)+")")}}});function l(s,u,h){if(u===1)return mt(s[0][0]);if(u===2)return n(i(s[0][0],s[1][1]),i(s[1][0],s[0][1]));for(var f=!1,d=new Array(u).fill(0).map((M,w)=>w),g=0;g<u;g++){var p=d[g];if(a(s[p][g])){var m=void 0;for(m=g+1;m<u;m++)if(!a(s[d[m]][g])){p=d[m],d[m]=d[g],d[g]=p,f=!f;break}if(m===u)return s[p][g]}for(var v=s[p][g],b=g===0?1:s[d[g-1]][g-1],y=g+1;y<u;y++)for(var S=d[y],x=g+1;x<u;x++)s[S][x]=o(n(i(s[S][x],v),i(s[S][g],s[p][x])),b)}var _=s[d[u-1]][u-1];return f?c(_):_}});var Ic="inv",yg=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],qs=N(Ic,yg,r=>{var{typed:e,matrix:t,divideScalar:n,addScalar:i,multiply:o,unaryMinus:a,det:c,identity:l,abs:s}=r;return e(Ic,{"Array | Matrix":function(f){var d=at(f)?f.size():ut(f);switch(d.length){case 1:if(d[0]===1)return at(f)?t([n(1,f.valueOf()[0])]):[n(1,f[0])];throw new RangeError("Matrix must be square (size: "+bt(d)+")");case 2:{var g=d[0],p=d[1];if(g===p)return at(f)?t(u(f.valueOf(),g,p),f.storage()):u(f,g,p);throw new RangeError("Matrix must be square (size: "+bt(d)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+bt(d)+")")}},any:function(f){return n(1,f)}});function u(h,f,d){var g,p,m,v,b;if(f===1){if(v=h[0][0],v===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(1,v)]]}else if(f===2){var y=c(h);if(y===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(h[1][1],y),n(a(h[0][1]),y)],[n(a(h[1][0]),y),n(h[0][0],y)]]}else{var S=h.concat();for(g=0;g<f;g++)S[g]=S[g].concat();for(var x=l(f).valueOf(),_=0;_<d;_++){var M=s(S[_][_]),w=_;for(g=_+1;g<f;)s(S[g][_])>M&&(M=s(S[g][_]),w=g),g++;if(M===0)throw Error("Cannot calculate inverse, determinant is zero");g=w,g!==_&&(b=S[_],S[_]=S[g],S[g]=b,b=x[_],x[_]=x[g],x[g]=b);var C=S[_],P=x[_];for(g=0;g<f;g++){var D=S[g],R=x[g];if(g!==_){if(D[_]!==0){for(m=n(a(D[_]),C[_]),p=_;p<d;p++)D[p]=i(D[p],o(m,C[p]));for(p=0;p<d;p++)R[p]=i(R[p],o(m,P[p]))}}else{for(m=C[_],p=_;p<d;p++)D[p]=n(D[p],m);for(p=0;p<d;p++)R[p]=n(R[p],m)}}}return x}}});var vg="divide",_g=["typed","matrix","multiply","equalScalar","divideScalar","inv"],Xs=N(vg,_g,r=>{var{typed:e,matrix:t,multiply:n,equalScalar:i,divideScalar:o,inv:a}=r,c=je({typed:e,equalScalar:i}),l=Ye({typed:e});return e("divide",_i({"Array | Matrix, Array | Matrix":function(u,h){return n(u,a(h))},"DenseMatrix, any":function(u,h){return l(u,h,o,!1)},"SparseMatrix, any":function(u,h){return c(u,h,o,!1)},"Array, any":function(u,h){return l(t(u),h,o,!1).valueOf()},"any, Array | Matrix":function(u,h){return n(u,a(h))}},o.signatures))});var Rc="mean",xg=["typed","add","divide"],js=N(Rc,xg,r=>{var{typed:e,add:t,divide:n}=r;return e(Rc,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":i,"...":function(c){if(Hl(c))throw new TypeError("Scalar values expected in function mean");return o(c)}});function i(a,c){try{var l=Wl(a,c,t),s=Array.isArray(a)?ut(a):a.size();return n(l,s[c])}catch(u){throw Fs(u,"mean")}}function o(a){var c,l=0;if(ns(a,function(s){try{c=c===void 0?s:t(c,s),l++}catch(u){throw Fs(u,"mean",s)}}),l===0)throw new Error("Cannot calculate the mean of an empty array");return n(c,l)}});var Ys=Nc("tau",["config","?BigNumber"],r=>{var{config:e,BigNumber:t}=r;return e.number==="BigNumber"?Cc(t):Xl});var $s=Nc("i",["Complex"],r=>{var{Complex:e}=r;return e.I});function Nc(r,e,t){return N(r,e,t,{recreateOnConfigChange:!0})}var rr=Wo({config:Ae}),Bi=Xo({});var Lc=Yo({}),Fg=$s({Complex:Bi});var Zs=$o({});var Ug=Ys({BigNumber:rr,config:Ae});var Rn=es({Matrix:Zs});var ot=Uo({BigNumber:rr,Complex:Bi,DenseMatrix:Rn,Fraction:Lc});var Bg=xs({typed:ot});var Hr=Es({typed:ot});var Oc=Ps({typed:ot});var vn=fs({config:Ae,typed:ot});var zg=ws({typed:ot});var Fc=rs({typed:ot});var Gg=ps({equalScalar:vn,typed:ot});var kg=Ts({Complex:Bi,config:Ae,typed:ot});var Ks=Cs({typed:ot});var Uc=gs({typed:ot});var Js=ds({Matrix:Zs,equalScalar:vn,typed:ot});var Vg=bs({typed:ot});var Hg=ms({BigNumber:rr,typed:ot});var Bc=_s({typed:ot});var zc=ys({Fraction:Lc,typed:ot});var se=vs({DenseMatrix:Rn,Matrix:Zs,SparseMatrix:Js,typed:ot});var Wg=Us({bignumber:Hg,fraction:zc,number:Uc});var Gc=Rs({isInteger:Fc,matrix:se,typed:ot}),qg=Ns({matrix:se,config:Ae,typed:ot});var kc=Ls({BigNumber:rr,config:Ae,matrix:se,typed:ot});var Vc=Ds({isInteger:Fc,matrix:se,typed:ot});var Wr=Bs({numeric:Wg,typed:ot}),Xg=ks({DenseMatrix:Rn,concat:Vc,divideScalar:Wr,equalScalar:vn,matrix:se,typed:ot});var Hc=Is({BigNumber:rr,DenseMatrix:Rn,SparseMatrix:Js,config:Ae,matrix:se,typed:ot});var jg=Gs({BigNumber:rr,DenseMatrix:Rn,config:Ae,equalScalar:vn,matrix:se,typed:ot,zeros:kc});var Yg=Vs({DenseMatrix:Rn,SparseMatrix:Js,addScalar:Hr,concat:Vc,equalScalar:vn,matrix:se,typed:ot});var $g=Hs({addScalar:Hr,conj:Oc,multiplyScalar:Ks,size:qg,typed:ot});var ir=As({addScalar:Hr,dot:$g,equalScalar:vn,matrix:se,multiplyScalar:Ks,typed:ot});var Zg=Ms({DenseMatrix:Rn,config:Ae,equalScalar:vn,matrix:se,round:jg,typed:ot,zeros:kc});var Kg=Ws({divideScalar:Wr,isZero:Gg,matrix:se,multiply:ir,subtractScalar:Vg,typed:ot,unaryMinus:Bc});var Wc=qs({abs:Bg,addScalar:Hr,det:Kg,divideScalar:Wr,identity:Hc,matrix:se,multiply:ir,typed:ot,unaryMinus:Bc});var Jg=zs({Complex:Bi,config:Ae,fraction:zc,identity:Hc,inv:Wc,matrix:se,multiply:ir,number:Uc,typed:ot});var qc=Os({addScalar:Hr,ceil:Zg,conj:Oc,divideScalar:Wr,dotDivide:Xg,exp:zg,i:Fg,log2:kg,matrix:se,multiplyScalar:Ks,pow:Jg,tau:Ug,typed:ot});var Qg=Xs({divideScalar:Wr,equalScalar:vn,inv:Wc,matrix:se,multiply:ir,typed:ot});var Xc=js({add:Yg,divide:Qg,typed:ot});var zi=class{NumParticle;reSampNumParticle;initial_xy_uncertainty;initial_yaw_uncertainty;step_noise_sigma;yaw_noise_sigma;compass_update_interval;sigmaCompass;delta_yaw;sigmaBeacon;unaccess_weight;particle_PosInitFlag;particle_yawInitFlag;xEst;particleX;particleWeight;last_compass_time;last_yaw_compass=0;compass_consecutive_offset_count=0;constructor(e){this.NumParticle=e.NumParticle,this.reSampNumParticle=e.reSampNumParticle,this.initial_xy_uncertainty=e.initial_xy_uncertainty,this.initial_yaw_uncertainty=e.initial_yaw_uncertainty,this.step_noise_sigma=e.step_noise_sigma,this.yaw_noise_sigma=e.yaw_noise_sigma,this.compass_update_interval=e.compass_update_interval,this.sigmaCompass=e.sigmaCompass,this.delta_yaw=e.delta_yaw,this.sigmaBeacon=e.sigmaBeacon,this.unaccess_weight=e.unaccess_weight,this.particle_PosInitFlag=!1,this.particle_yawInitFlag=!1,this.xEst=[[0],[0],[0]],this.particleX=Array.from({length:3},()=>Array(this.NumParticle).fill(0)),this.particleWeight=Array.from({length:1},()=>Array(this.NumParticle).fill(1/this.NumParticle)),this.last_compass_time=0}motionModelRotYaw(e){if(!(Math.abs(e)<.001)){this.last_yaw_compass=Rr(this.last_yaw_compass+e);for(let t=0;t<this.NumParticle;t++){let n=Math.random()*this.yaw_noise_sigma;this.particleX[2][t]=this.particleX[2][t]+e+n,this.particleX[2][t]=Rr(this.particleX[2][t])}}}motionModelStepLength(e,t){if(e===0)return;for(let i=0;i<this.NumParticle;i++){let o=Math.random()*this.step_noise_sigma;this.particleX[0][i]+=(.65+o)*Math.sin(-this.particleX[2][i]/180*Math.PI),this.particleX[1][i]+=(.65+o)*Math.cos(this.particleX[2][i]/180*Math.PI),t(this.particleX[0][i],this.particleX[1][i])||(this.particleWeight[0][i]*=this.unaccess_weight)}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}motionModelCompassYaw(e,t){if(t-this.last_compass_time>this.compass_update_interval){let n=360-e;n+=this.delta_yaw,n=Rr(n),Math.abs(n-this.last_yaw_compass)>60?this.compass_consecutive_offset_count++:this.compass_consecutive_offset_count=0;for(let o=0;o<this.NumParticle;o++){let a=Math.abs(this.particleX[2][o]-n);a>180&&(a=360-a),this.particleWeight[0][o]*=mi(a,this.sigmaCompass)}let i=this.particleWeight[0].reduce((o,a)=>o+a,0);this.particleWeight[0]=this.particleWeight[0].map(o=>o/i),this.setLastCompassTime(t)}}resampling(){if(1/this.particleWeight[0].reduce((t,n)=>t+n*n,0)<this.reSampNumParticle){let t=this.particleWeight[0].reduce((c,l,s)=>c.concat(c[s]+l),[0]),i=this.particleWeight[0].map(()=>1/this.NumParticle).map((c,l)=>c+Math.random()/this.NumParticle),o=[],a=0;for(let c=0;c<this.NumParticle;c++){for(;i[c]>t[a];)a++;o.push(a)}this.particleX=this.particleX.map((c,l)=>o.map(s=>c[s])),this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle)}}update(e,t){for(let i=0;i<this.NumParticle;i++){let o=Hn(this.particleX[0][i],this.particleX[1][i],e.x,e.y);this.particleWeight[0][i]=Math.max(1e-7,this.particleWeight[0][i]*mi(o,t))}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}updateCar(e,t){let n=e.x-this.xEst[0][0],i=e.y-this.xEst[1][0];for(let a=0;a<this.NumParticle;a++){let c=Hn(this.particleX[0][a],this.particleX[1][a],e.x,e.y);this.particleWeight[0][a]=Math.max(1e-7,this.particleWeight[0][a]*mi(c,t)),this.particleX[0][a]+=n,this.particleX[1][a]+=i}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o)}getPosInitFlag(){return this.particle_PosInitFlag}getYawInitFlag(){return this.particle_yawInitFlag}setPosInitFlag(e){this.particle_PosInitFlag=e}setYawInitFlag(e){this.particle_yawInitFlag=e}getResultX(){let e=Gc(this.particleWeight,[this.NumParticle,1]),t=ir(this.particleX,e);return this.xEst=t,this.xEst[0][0]}getResultY(){return this.xEst[1][0]}getResultYaw(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0]));return this.particleX[2][e]}getEstConfidence(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0])),t=this.particleWeight[0].indexOf(Math.min(...this.particleWeight[0])),n=[this.particleX[0][e],this.particleX[1][e]],i=[this.particleX[0][t],this.particleX[1][t]],o=Hn(n[0],n[1],i[0],i[1]),a=o*.67;return console.log(o,a),a}getParticleNum(){return this.NumParticle}getParticleX(){return this.particleX}setLastCompassTime(e){this.last_compass_time=e}getLastCompassTime(){return this.last_compass_time}initParticlesByPos(e,t,n){if(!this.particle_PosInitFlag){this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle);let i=0;for(;i<this.NumParticle;){let a=(2*Math.random()-1)*this.initial_xy_uncertainty,c=(2*Math.random()-1)*this.initial_xy_uncertainty;n(e+a,t+c)||(this.particleWeight[0][i]*=this.unaccess_weight),this.particleX[0][i]=e+a,this.particleX[1][i]=t+c,i++}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o),this.particle_PosInitFlag=!0,this.xEst[0][0]=e,this.xEst[1][0]=t,this.xEst[2][0]=0}}initParticlesByCompass(e){console.log(`Init compass: ${e}`);let t=360-e;t+=this.delta_yaw,t=Rr(t),console.log(`Init Yaw: ${t}`);for(let n=0;n<this.NumParticle;n++){let i=(2*Math.random()-1)*this.initial_yaw_uncertainty;this.particleX[2][n]=t+i}this.particle_yawInitFlag=!0,this.xEst[2][0]=t,this.last_yaw_compass=t,this.compass_consecutive_offset_count=0}};var Gi=class{fre=100;accH_fifo=[];accH_time_fifo=[];accH_fifo_len=Math.floor(1*this.fre)+1;step_count=0;state_count=0;last_valley_time=0;last_peak_time=0;last_step_time=0;min_step_time=.3;max_step_time=1;min_peak=10.5;max_valley=9.5;peak_num=0;valley_num=0;fft_min_amp=.3;fft_min_fre=0;fft_max_fre=4;last_fft_amp=0;abnor_start_time=0;abnor_fft_detected=!1;abnor_time_threshold=4;abnor_peak_time=0;abnor_peak_accH=0;const_step_length=.65;last_rot=[];delta_rot=[];last_yaw=0;delta_yaw=null;delta_rot_sum_fifo=[];delta_rot_sum_time_fifo=[];delta_yaw_accum=0;delta_yaw_accum_timestamp=0;delta_yaw_time_threshold=.5;last_px=0;last_py=0;delta_px=0;delta_py=0;init(){this.fre=100,this.accH_fifo=[],this.accH_time_fifo=[],this.accH_fifo_len=Math.floor(1*this.fre)+1,this.step_count=0,this.state_count=0,this.last_valley_time=0,this.last_peak_time=0,this.last_step_time=0,this.min_step_time=.3,this.max_step_time=1,this.min_peak=10+.5,this.max_valley=10-.5,this.peak_num=0,this.valley_num=0,this.fft_min_amp=.3,this.fft_min_fre=0,this.fft_max_fre=4,this.last_fft_amp=0,this.abnor_start_time=0,this.abnor_fft_detected=!1,this.abnor_peak_time=0,this.abnor_peak_accH=0,this.const_step_length=.65,this.last_rot=[0,0,0],this.delta_rot=[0,0,0],this.last_yaw=0,this.delta_yaw=null,this.delta_rot_sum_fifo=[],this.delta_rot_sum_time_fifo=[],this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=0,this.delta_yaw_time_threshold=.5,this.last_px=0,this.last_py=0,this.delta_px=0,this.delta_py=0}reset(){this.init()}setInitPose(e=[0,0]){this.last_px=e[0],this.last_py=e[1],console.info(`pdr init pos: ${this.last_px}, ${this.last_py}`)}setInitYaw(e=0){this.last_yaw=e}getPos(e,t,n){let i=0;return n.length===3&&(this.delta_yaw=this.getDeltaYawFromRot(e,n)),t.length===3&&(i=this.getStepLength(e,t)),i!==0&&(this.last_px+=this.delta_px,this.last_py+=this.delta_py),[this.last_px,this.last_py]}getDeltaPose(){return[this.delta_px,this.delta_py]}getStepLength(e,t){if(t.length<3)return console.warn("acc data less than 3"),0;let n=!1,i=Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2));if(this.accH_fifo.push(i),this.accH_time_fifo.push(e),this.imuFreUpdate(),this.accH_fifo.length<this.accH_fifo_len+1)n=!1;else{for(;this.accH_fifo.length>=this.accH_fifo_len+1;)this.accH_fifo.shift(),this.accH_time_fifo.shift();let o=this.PVStepDetec(),a=this.FFTStepDetec(),c=this.recheckState(),l=this.accH_time_fifo[Math.floor(this.accH_time_fifo.length*3/4)];Math.abs(this.abnor_start_time)<.001&&this.abnor_fft_detected?this.abnor_start_time=l:this.abnor_fft_detected||(this.abnor_start_time=0),o&&a&&c?(this.step_count+=1,this.last_step_time=l,n=!0):Math.abs(this.abnor_start_time)>.001&&this.abnor_peak_time-this.abnor_start_time>this.abnor_time_threshold&&this.step_count>1&&this.abnor_peak_time-this.last_step_time>1?(this.step_count+=1,this.last_step_time=l,n=!0):(l-this.last_step_time>2&&(this.state_count=0),n=!1)}if(n){let o=this.last_yaw/180*Math.PI;return this.delta_px=this.const_step_length*Math.cos(o),this.delta_py=this.const_step_length*Math.sin(o),this.const_step_length}else return 0}imuFreUpdate(){if(this.accH_time_fifo.length>2&&(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]<0||this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]>10||this.accH_time_fifo[this.accH_time_fifo.length-1]===this.accH_time_fifo[0])&&(console.warn(`pdr reset last one time ${this.accH_time_fifo[this.accH_time_fifo.length-1]} last two time ${this.accH_time_fifo[this.accH_time_fifo.length-2]}`),this.reset()),this.accH_fifo.length>9||this.fre<15){let e=(this.accH_fifo.length-1)/(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[0]);Math.abs(this.fre-e)>8&&(this.fre=Math.round((e-3)/10)*10,(this.fre<=10||this.fre>=100)&&(console.warn(`Frequency Error ${this.fre}`),this.fre=100),console.debug(`Frequency change to ${this.fre}`),this.accH_fifo_len=Math.floor(1*this.fre)+1)}}recheckState(){return!0}PVStepDetec(){let e=!1,t=this.accH_fifo.slice(Math.floor(this.accH_fifo_len/2)),n=this.accH_time_fifo.slice(Math.floor(this.accH_fifo_len/2)),i=t[Math.floor(t.length/2)],o=n[Math.floor(n.length/2)],a=Math.max(...t),c=Math.min(...t),l=!1,s=!1;return Math.abs(i-c)<.01&&i<this.max_valley&&this.valley_num<=this.peak_num&&(this.last_valley_time===0?s=!0:s=o-this.last_valley_time>this.min_step_time,s&&(this.last_valley_time=o,this.valley_num+=1)),Math.abs(i-a)<.01&&i>this.min_peak&&this.peak_num<=this.valley_num&&(this.last_peak_time===0?l=!0:l=o-this.last_peak_time>this.min_step_time,l&&(this.last_peak_time=o,this.peak_num+=1)),i===a&&i>this.min_peak&&(this.abnor_peak_time=o,this.abnor_peak_accH=i),this.peak_num===this.valley_num&&(l||s)&&(e=!0),e}FFTStepDetec(){return!0}getDeltaYawFromRot(e,t){if(t.length<3)return console.warn("rot data less than 3"),0;let n=[0,0,0];this.last_rot.length===3&&(n=t.map((c,l)=>c-this.last_rot[l]));for(let c=0;c<t.length;c++)n[c]<-180?n[c]+=360:n[c]>180&&(n[c]-=360);let i=.2;this.delta_rot.length===3?this.delta_rot=this.delta_rot.map((c,l)=>i*c+(1-i)*n[l]):this.delta_rot=n,this.last_rot=t,this.delta_yaw=this.delta_rot[0],this.last_yaw+=this.delta_yaw,this.last_yaw=this.limitYaw(this.last_yaw);let o=this.delta_rot.reduce((c,l)=>c+Math.abs(l),0);this.delta_rot_sum_fifo.push(o),this.delta_rot_sum_time_fifo.push(e),Math.abs(this.delta_rot_sum_time_fifo[this.delta_rot_sum_time_fifo.length-1]-this.delta_rot_sum_time_fifo[0])>1&&(this.delta_rot_sum_fifo.shift(),this.delta_rot_sum_time_fifo.shift()),this.delta_yaw_accum+=this.delta_yaw;let a=0;return Math.abs(this.delta_yaw_accum_timestamp-e)>this.delta_yaw_time_threshold?(a=this.delta_yaw_accum,this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=e,a):null}limitYaw(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};var ki=class{particleFilter;pdr;sigmaBeacon=5;gps_horizontalAccuracy=10;using_gps=!0;last_beacon_time=null;last_pos_time;position_count=0;gps_max_horizontalAccuracy=20;MaxEstimateErr=5;outTrustRegionNum=0;TrustNum=4;cacheSensorData=[];constructor(){this.particleFilter=new zi({NumParticle:200,reSampNumParticle:.65,initial_xy_uncertainty:12,initial_yaw_uncertainty:100,step_noise_sigma:.5,yaw_noise_sigma:2,compass_update_interval:3e3,sigmaCompass:80,delta_yaw:2,sigmaBeacon:5,unaccess_weight:.7}),this.pdr=new Gi}pfFusionPDRiBeacon(e){let{type:t,timestamp:n,res:i}=e,o=!1;if(this.particleFilter.getPosInitFlag()&&this.particleFilter.getYawInitFlag()){if(t==="acceleration"){let a=i,c=this.pdr.getStepLength(n/1e3,a);c!==0&&(this.particleFilter.motionModelStepLength(c,()=>!0),this.particleFilter.resampling(),this.position_count+=1,o=!0)}if(this.using_gps&&t==="gps"&&(this.last_beacon_time===null||n-this.last_beacon_time>5e3)){let a=this.getGpsPosition(i);o=a!==null,a&&(this.particleFilter.update(a,this.gps_horizontalAccuracy),this.resetParticleFilterDist(a),this.particleFilter.resampling(),this.position_count+=1)}if(t==="deviceMotion"){let a=this.pdr.getDeltaYawFromRot(n/1e3,i);a!==null&&this.particleFilter.motionModelRotYaw(a)}t==="compass"&&this.particleFilter.motionModelCompassYaw(i,n),this.last_pos_time&&n-this.last_pos_time>500&&(this.position_count+=1,o=!0)}else if(!this.particleFilter.getPosInitFlag()&&this.using_gps&&t==="gps"){let a=this.getGpsPosition(i);o=a!==null,a?(this.particleFilter.initParticlesByPos(a.x,a.y,()=>!0),this.last_pos_time=n,console.log(`init Pos by gps success time ${n}`),this.cacheSensorData.length=0):console.log(`init Pos by gps fail time ${n}`)}else if(!this.particleFilter.getYawInitFlag()&&t==="compass"){let a=i;this.particleFilter.initParticlesByCompass(a),this.particleFilter.setLastCompassTime(n),console.log(`init yaw by compass success time ${n}`)}else this.cacheSensorData.push(e);return o&&(this.last_pos_time=n),[o,this.particleFilter.getResultX(),this.particleFilter.getResultY()]}setBeaconPosition(e,t){return this.last_beacon_time=t,this.particleFilter.getPosInitFlag()?this.particleFilter.update(e,this.sigmaBeacon):this.particleFilter.initParticlesByPos(e.x,e.y,()=>!0),this.resetParticleFilterDist(e),this.particleFilter.resampling(),this.position_count+=1,this.cacheSensorData.filter(i=>i.timestamp>t).map(i=>this.pfFusionPDRiBeacon(i)),this.cacheSensorData.length=0,[this.particleFilter.getResultX(),this.particleFilter.getResultY()]}getGpsPosition(e){return e[2]>this.gps_max_horizontalAccuracy?null:xu(e[0],e[1])}resetParticleFilterDist(e){let t=this.particleFilter.getResultX(),n=this.particleFilter.getResultY();Hn(t,n,e.x,e.y)>this.MaxEstimateErr?(this.outTrustRegionNum+=1,this.outTrustRegionNum>=this.TrustNum&&(console.info(`\u8D85\u51FA\u53EF\u4FE1\u533A\u57DF\uFF0C\u91CD\u7F6E\u7C92\u5B50\u8FC7\u6EE4\u5668\u5230: ${e.x}, ${e.y}`),this.particleFilter.setPosInitFlag(!1),this.particleFilter.setYawInitFlag(!1),this.outTrustRegionNum=0)):this.outTrustRegionNum=0}};var Qs=class extends jc.EventDispatcher{sensor;pdr;constructor(e={}){super(),this.sensor=new Ir(e.sensor),this.pdr=new ki}checkSensor(){return this.sensor.checkSensor()}start(){this.sensor.start(),this.sensor.addEventListener("add-data-item",({item:e})=>{this.getPositionBySensorItem(e)})}getPositionBySensorItem(e){let[t,n,i]=this.pdr.pfFusionPDRiBeacon(e);return t&&this.dispatchEvent({type:"position",x:n,y:i,_type:e.type==="gps"?"gps":"pdr"}),[t,n,i]}setBeaconPosition(e,t){let[n,i]=this.pdr.setBeaconPosition(e,t);this.dispatchEvent({type:"position",x:n,y:i,_type:"beacon"})}dispose(){this.sensor.stop()}};async function ta({brand:r,project:e},t){let{apiDomain:n,apiPath:{floorRange:i},apiInfo:o}=t,a=`${n}${i}?brand=${r}&project=${e}&phase=${e}&building=${e}`;return await fetch(a,o).then(l=>l.json()).then(l=>l.data).then(l=>{let s=(l||[])[0];return s&&(s.info=JSON.parse(s.info)),s})}async function ea({brand:r,project:e,floor:t,ts:n,resource_type_list:i},o){let{apiDomain:a,apiPath:{floorGraphic:c},apiInfo:l}=o,s=`${a}${c}?brand=${r}&project=${e}&phase=${e}&building=${e}&floor=${t}&ts=${n}&resource_type_list=${i}`;return await fetch(s,l).then(h=>h.json()).then(h=>h.data).then(h=>((h||[]).map(f=>f.info=JSON.parse(f.info)),h||[]))}async function em({project:r,floor:e},t){let{apiDomain:n,apiInfo:i}=t,o=`${n}/api/inception-map/external_street/get?projectCode=${r}&floorCode=${e}`;return await fetch(o,i).then(c=>c.json()).then(c=>c.data).then(c=>JSON.parse(c[0].streetInfo||"{}")).then(c=>c.fileId?nm(c.fileId,t):null)}async function nm(r,e){let{apiDomain:t,apiInfo:n}=e;return fetch(`${t}/api/inception-map/file/getFileStream?fileId=${r}`,n).then(i=>i.arrayBuffer()).then(i=>{let a=new TextDecoder("utf-8").decode(i);return a?JSON.parse(a):null})}var ke;function Yc(r="aibee_map"){return new Promise((e,t)=>{if(ke)return e({db:ke,type:"success"});let n=indexedDB.open(r);n.onupgradeneeded=function(i){ke=i.target.result,console.log("onupgradeneeded"),e({db:ke,type:"onupgradeneeded"})},n.onsuccess=i=>{ke=i.target.result,e({db:ke,type:"success"})},n.onerror=i=>{t(i)}})}function $c(r,e,t=ke){return new Promise((n,i)=>{t||i("\u6CA1\u6709db");let a=t.transaction([r],"readonly").objectStore(r).get(e);a.onsuccess=()=>{a.result?n(a.result.value):n(null)},a.onerror=c=>{console.log("[getVersionByKey]",c),n(null)}})}function Zc(r,e,t,n=ke){return new Promise((i,o)=>(n||o("\u6CA1\u6709db"),new Promise((a,c)=>{let s=n.transaction([r],"readwrite").objectStore(r).add({key:e,value:t});s.onsuccess=function(u){a(u)},s.onerror=function(u){c(u)}})))}function qr(r,e=ke){e&&(e.objectStoreNames.contains(r)||e.createObjectStore(r,{keyPath:"key"}))}function Kc(){ke?.close(),ke=null}var Jc="data:image/png;base64,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";var Qc="data:image/png;base64,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";var th="data:image/png;base64,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";var sm={loadRoadNetwork:!1},na="map_version",ra="route_version",ia="map_data",Vi="road_network_data",eh={half:Jc,power:Qc,mechanical:th},oa=class{constructor(e){this.bmap=e;this.initDb()}floors=[];async initDb(){try{let{db:e,type:t}=await Yc();t==="onupgradeneeded"&&(qr(na),qr(ra),qr(ia),qr(Vi))}catch(e){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",e)}}async load(e){if(this.clear(),Array.isArray(e))this.floors=e;else{let t=await fetch(e).then(n=>n.json());t.code==="0"&&(this.floors=t.data.list)}}setCacheData(e,t,n){return Zc(e,`${t}`,n)}getCacheData(e,t){return $c(e,`${t}`)}getFloorCacheKey(e){return`${e.floor_id}`}async getFloorData(e){let t=this.floors.find(i=>i.floor===e);if(!t)return null;let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(na,n)===t.version_id){let o=await this.getCacheData(ia,n);if(o)return this.getDataByJson(o)}return this.getFloorDataByFloorInfo(t)}catch{return this.getFloorDataByFloorInfo(t)}}async getFloorDataByFloorInfo(e){let t=this.getFloorCacheKey(e);console.time("zstd_json");let n=await fetch(e.map_url).then(i=>i.json());return n.floor=e.floor,console.timeEnd("zstd_json"),this.setCacheData(ia,t,n),this.setCacheData(na,t,e.version_id),this.getDataByJson(n)}async getRoadNetworkData(){return(await Promise.all(this.floors.map(async t=>{let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(ra,n)===t.version_id){let a=await this.getCacheData(Vi,n);if(a)return a}let o=await fetch(t.route_url).then(a=>a.json());return this.setCacheData(Vi,n,o),this.setCacheData(ra,n,t.version_id),o}catch{let i=await fetch(t.route_url).then(o=>o.json());return this.setCacheData(Vi,n,i),i}}))).filter(t=>t.points)}async getFacilitiesData(){if(this.floors[0]?.entry_infra_url)return fetch(this.floors[0].entry_infra_url).then(e=>e.json())}async getOtherDataByFreeTime(){}async getMulFloorsData(e){return Promise.all(e.map(t=>this.getFloorData(t))).then(t=>t.filter(n=>n))}async getDataByUrl(e){let t=await fetch(e).then(n=>n.json());return this.getDataByJson(t)}getDataByJson(e){let t=new Ue(this.bmap.context);t.userData.graphics=[],t.userData.graphicMap=new Map;let n=[0,0];return e.layers.forEach(i=>{switch(i.l_type){case"range":let o=i.elements[0];n=[o.center_x,o.center_y];break;case"graph":ce(i.elements,n);let a=[];i.elements.forEach(p=>{p.group==="ground"?t.createGround(p):a.push(p)});let c=a.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(c).forEach(p=>{let m=new Sr(this.bmap.context,p);t.mergeGraphicLayer.add(m)});break;case"ground":ce(i.elements,n);let l=i.elements.map(p=>new Bt(this.bmap.context,p));t.addGrounds(l);break;case"wall":ce(i.elements,n);let s=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(s).forEach(p=>{let m=new xr(this.bmap.context,p);t.wallLayer.add(m)});break;case"lane":ce(i.elements,n);let u=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S}=m,x=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}`;return S===0&&(x=`${v.toLowerCase()}-${b}`),p[x]?p[x].push(m):p[x]=[m],p},{});Object.values(u).forEach(p=>{let m=new br(this.bmap.context,p);t.laneLayer.add(m)});break;case"texture2d":case"texture3d":if(ce(i.elements,n),i.elements.length){let p=new kn(this.bmap.context,i.elements);t.textureLayer.add(p)}break;case"glb":ce(i.elements,n),i.elements.forEach(p=>{let m=Fe([p.center_x,p.center_y],n),v=new Er(this.bmap.context,{...p,url:p.secondUrl,rotate:p.secondRotate,width:p.secondWidth,center_x:m[0],center_y:m[1]});t.glbModelLayer.add(v)});break;case"store":ce(i.elements,n),i.elements.map(p=>{let m=Fe([p.center_x,p.center_y],n),v=t.addGraphic(p);t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v);try{let b=new he(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b&&(b.userData.type="store",b.userData.data=p)}catch(b){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",b,p)}});break;case"facility":ce(i.elements,n),i.elements.map(p=>{let m=Fe([p.center_x,p.center_y],n),v=t.addGraphic(p);if(t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v),p.poi_info){let b=new he(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b.userData.type="facility",b.userData.data=p}else console.log("\u6DFB\u52A0facility\u5931\u8D25\u6CA1\u6709poi_info",p)});break;case"parkingSpace":ce(i.elements,n);let h=[],f=new Map;i.elements.forEach(p=>{let m=t.addGraphic(p);h.push(m),f.set(p.id,m);let v=Fe([p.center_x,p.center_y],n);if(p.texts[0]){let b=new he(this.bmap.context,{id:p.id,text:p.texts[0],position:{x:v[0],y:v[1],z:p.airHeight+p.height}});b&&(b.userData.type="parkingSpace",b.userData.data=p),t.poiLayer2.pushPoi(b)}});let d=i.elements.filter(p=>eh[p.parkingType]).map(p=>{let m=Fe([p.center_x,p.center_y],n),v=ji(p.geometry.coords,m);return{uuid:p.id,iconUrl:eh[p.parkingType],name:p.texts[0],deltaHeight:p.deltaHeight,airHeight:p.airHeight,height:p.height,geometry:{...p.geometry,coords:v},opacity:p.fillOpacity,visible:!0}});if(d.length){let p=new kn(this.bmap.context,d);t.textureLayer.add(p)}t.userData.parkingSpaces=h,t.userData.parkingSpacesGraphicMap=f;break;case"text":ce(i.elements,n);let g=new Mr(this.bmap.context,i.elements.map(p=>{let m=Fe([p.center_x,p.center_y],n);return{...p,center_x:m[0],center_y:m[1]}}));t.textTextureLayer.add(g);break}}),t.userData.center=n,t.userData.height=e.floorHeight*10,t.name=e.floor,t.userData.data=e,t.updateBox(),t}clear(){}dispose(){this.clear(),Kc()}};var sa=class{constructor(e){this.bmap=e}cacheData=new Map;floorDataLengthMap=new Map;buildingGroundMap=new Map;externalStreetMap=new Map;async load(e){let t=Sn(e);if(this.cacheData.has(t))return this.cacheData.get(t);let[,n]=await Promise.all([this.loadBuildGround(e),ea(e,this.bmap.config)]),i=Sn({floor:e.floor,ts:e.ts});ce(n.map(a=>a.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(i)||0),n.forEach(a=>a.info.transformToBuildingGround=!1),this.cacheData.set(t,n);let o=this.floorDataLengthMap.get(i)||0;return this.floorDataLengthMap.set(i,o+n.length),this.loadExternalStreet(e),n}async loadExternalStreet(e){}switchFloorByData(e,t){if(!e.length)return;let n=t.userData.legacyToGraphicMap||new Map,i=t.userData.graphicMap||new Map,{ground:o,markGraphic:a,graphic:c}=this.bmap.config;for(let l=0;l<e.length;l++){let s=e[l];s.info.group==="ground"?(s.info.fillColor=o.color,s.info.fillOpacity=o.opacity,s.info.height=o.height,s.info.stroke=o.stroke,s.info.strokeColor=o.strokeColor,s.info.strokeOpacity=o.strokeOpacity):s.info.userData.mark?(s.info.height=a.height,s.info.fillColor=a.color,s.info.fillOpacity=a.opacity,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity):(s.info.fillOpacity=c.fillOpacity,this.bmap.config.initTransToMark&&(s.info.height=a.height,s.info.fillColor=a.color,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity))}for(let l of e){if(l.info.group==="ground")t.createGround(l.info);else{let s=t.addGraphic(l.info);s.userData.data=l,n.set(l.legacy_id,s)}i.set(l.element_uuid,l)}t.userData.legacyToGraphicMap=n,t.userData.graphicMap=i,t.updateBox(),t===this.bmap.context.currentFloor?(this.bmap.triggerHooks("switch_floor_before",{curFloor:t,graphics:t.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks("switch_floor_after",{curFloor:t,graphics:t.graphicLayer.children})):this.bmap.switchFloorByFloor(t)}filterData(e,t){let n=t.userData.graphicMap||new Map;return e.filter(i=>!n.has(i.element_uuid))}async switchFloorByStoreData(e,t){let n=await this.load({...e,resource_type_list:"6"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async switchFloorByOtherData(e,t){let n=await this.load({...e,resource_type_list:"1,2,3,4"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async loadBuildGround({brand:e,project:t}){let n=await this.loadBuildingGround({brand:e,project:t});return this.bmap.currentBuildGround=n,this.bmap.changeBuildingCenter(n,{brand:e,project:t}),this.bmap.currentBuildGround}async loadBuildingGround({brand:e,project:t}){let n=Sn({brand:e,project:t});if(this.buildingGroundMap.has(n))return this.buildingGroundMap.get(n);let i=ta({brand:e,project:t},this.bmap.config).then(o=>(this.buildingGroundMap.set(n,o),o));return this.buildingGroundMap.set(n,i),i}async switchFloor(e){let t=new Ue(this.bmap.context);t.name=e.floor;try{await Promise.all([this.switchFloorByStoreData(e,t),this.switchFloorByOtherData(e,t)])}catch(n){console.log(n)}return t}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}};
|
|
7517
7517
|
/*! Bundled license information:
|
|
7518
7518
|
|
|
7519
7519
|
complex.js/complex.js:
|