@mapcatch/util 2.0.10 → 2.0.11-a
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.
|
@@ -491,7 +491,7 @@ Example:
|
|
|
491
491
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
492
492
|
**/(function(e,n){(function(l){var u=2e3,d={s:1,n:0,d:1};function p(tt,We){if(isNaN(tt=parseInt(tt,10)))throw Fe();return tt*We}function y(tt,We){if(We===0)throw Ze();var Ue=Object.create(Ve.prototype);Ue.s=tt<0?-1:1,tt=tt<0?-tt:tt;var Qe=Je(tt,We);return Ue.n=tt/Qe,Ue.d=We/Qe,Ue}function o(tt){for(var We={},Ue=tt,Qe=2,He=4;He<=Ue;){for(;Ue%Qe===0;)Ue/=Qe,We[Qe]=(We[Qe]||0)+1;He+=1+2*Qe++}return Ue!==tt?Ue>1&&(We[Ue]=(We[Ue]||0)+1):We[tt]=(We[tt]||0)+1,We}var j=function(tt,We){var Ue=0,Qe=1,He=1,tr=0,or=0,xt=0,Er=1,_r=1,Sr=0,hr=1,Kr=1,Lr=1,Sa=1e7,br;if(tt!=null)if(We!==void 0){if(Ue=tt,Qe=We,He=Ue*Qe,Ue%1!==0||Qe%1!==0)throw st()}else switch(typeof tt){case"object":{if("d"in tt&&"n"in tt)Ue=tt.n,Qe=tt.d,"s"in tt&&(Ue*=tt.s);else if(0 in tt)Ue=tt[0],1 in tt&&(Qe=tt[1]);else throw Fe();He=Ue*Qe;break}case"number":{if(tt<0&&(He=tt,tt=-tt),tt%1===0)Ue=tt;else if(tt>0){for(tt>=1&&(_r=Math.pow(10,Math.floor(1+Math.log(tt)/Math.LN10)),tt/=_r);hr<=Sa&&Lr<=Sa;)if(br=(Sr+Kr)/(hr+Lr),tt===br){hr+Lr<=Sa?(Ue=Sr+Kr,Qe=hr+Lr):Lr>hr?(Ue=Kr,Qe=Lr):(Ue=Sr,Qe=hr);break}else tt>br?(Sr+=Kr,hr+=Lr):(Kr+=Sr,Lr+=hr),hr>Sa?(Ue=Kr,Qe=Lr):(Ue=Sr,Qe=hr);Ue*=_r}else(isNaN(tt)||isNaN(We))&&(Qe=Ue=NaN);break}case"string":{if(hr=tt.match(/\d+|./g),hr===null)throw Fe();if(hr[Sr]==="-"?(He=-1,Sr++):hr[Sr]==="+"&&Sr++,hr.length===Sr+1?or=p(hr[Sr++],He):hr[Sr+1]==="."||hr[Sr]==="."?(hr[Sr]!=="."&&(tr=p(hr[Sr++],He)),Sr++,(Sr+1===hr.length||hr[Sr+1]==="("&&hr[Sr+3]===")"||hr[Sr+1]==="'"&&hr[Sr+3]==="'")&&(or=p(hr[Sr],He),Er=Math.pow(10,hr[Sr].length),Sr++),(hr[Sr]==="("&&hr[Sr+2]===")"||hr[Sr]==="'"&&hr[Sr+2]==="'")&&(xt=p(hr[Sr+1],He),_r=Math.pow(10,hr[Sr+1].length)-1,Sr+=3)):hr[Sr+1]==="/"||hr[Sr+1]===":"?(or=p(hr[Sr],He),Er=p(hr[Sr+2],1),Sr+=3):hr[Sr+3]==="/"&&hr[Sr+1]===" "&&(tr=p(hr[Sr],He),or=p(hr[Sr+2],He),Er=p(hr[Sr+4],1),Sr+=5),hr.length<=Sr){Qe=Er*_r,He=Ue=xt+Qe*tr+_r*or;break}}default:throw Fe()}if(Qe===0)throw Ze();d.s=He<0?-1:1,d.n=Math.abs(Ue),d.d=Math.abs(Qe)};function Re(tt,We,Ue){for(var Qe=1;We>0;tt=tt*tt%Ue,We>>=1)We&1&&(Qe=Qe*tt%Ue);return Qe}function _e(tt,We){for(;We%2===0;We/=2);for(;We%5===0;We/=5);if(We===1)return 0;for(var Ue=10%We,Qe=1;Ue!==1;Qe++)if(Ue=Ue*10%We,Qe>u)return 0;return Qe}function $(tt,We,Ue){for(var Qe=1,He=Re(10,Ue,We),tr=0;tr<300;tr++){if(Qe===He)return tr;Qe=Qe*10%We,He=He*10%We}return 0}function Je(tt,We){if(!tt)return We;if(!We)return tt;for(;;){if(tt%=We,!tt)return We;if(We%=tt,!We)return tt}}function Ve(tt,We){if(j(tt,We),this instanceof Ve)tt=Je(d.d,d.n),this.s=d.s,this.n=d.n/tt,this.d=d.d/tt;else return y(d.s*d.n,d.d)}var Ze=function(){return new Error("Division by Zero")},Fe=function(){return new Error("Invalid argument")},st=function(){return new Error("Parameters must be integer")};Ve.prototype={s:1,n:0,d:1,abs:function(){return y(this.n,this.d)},neg:function(){return y(-this.s*this.n,this.d)},add:function(tt,We){return j(tt,We),y(this.s*this.n*d.d+d.s*this.d*d.n,this.d*d.d)},sub:function(tt,We){return j(tt,We),y(this.s*this.n*d.d-d.s*this.d*d.n,this.d*d.d)},mul:function(tt,We){return j(tt,We),y(this.s*d.s*this.n*d.n,this.d*d.d)},div:function(tt,We){return j(tt,We),y(this.s*d.s*this.n*d.d,this.d*d.n)},clone:function(){return y(this.s*this.n,this.d)},mod:function(tt,We){if(isNaN(this.n)||isNaN(this.d))return new Ve(NaN);if(tt===void 0)return y(this.s*this.n%this.d,1);if(j(tt,We),d.n===0&&this.d===0)throw Ze();return y(this.s*(d.d*this.n)%(d.n*this.d),d.d*this.d)},gcd:function(tt,We){return j(tt,We),y(Je(d.n,this.n)*Je(d.d,this.d),d.d*this.d)},lcm:function(tt,We){return j(tt,We),d.n===0&&this.n===0?y(0,1):y(d.n*this.n,Je(d.n,this.n)*Je(d.d,this.d))},ceil:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new Ve(NaN):y(Math.ceil(tt*this.s*this.n/this.d),tt)},floor:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new Ve(NaN):y(Math.floor(tt*this.s*this.n/this.d),tt)},round:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new Ve(NaN):y(Math.round(tt*this.s*this.n/this.d),tt)},inverse:function(){return y(this.s*this.d,this.n)},pow:function(tt,We){if(j(tt,We),d.d===1)return d.s<0?y(Math.pow(this.s*this.d,d.n),Math.pow(this.n,d.n)):y(Math.pow(this.s*this.n,d.n),Math.pow(this.d,d.n));if(this.s<0)return null;var Ue=o(this.n),Qe=o(this.d),He=1,tr=1;for(var or in Ue)if(or!=="1"){if(or==="0"){He=0;break}if(Ue[or]*=d.n,Ue[or]%d.d===0)Ue[or]/=d.d;else return null;He*=Math.pow(or,Ue[or])}for(var or in Qe)if(or!=="1"){if(Qe[or]*=d.n,Qe[or]%d.d===0)Qe[or]/=d.d;else return null;tr*=Math.pow(or,Qe[or])}return d.s<0?y(tr,He):y(He,tr)},equals:function(tt,We){return j(tt,We),this.s*this.n*d.d===d.s*d.n*this.d},compare:function(tt,We){j(tt,We);var Ue=this.s*this.n*d.d-d.s*d.n*this.d;return(0<Ue)-(Ue<0)},simplify:function(tt){if(isNaN(this.n)||isNaN(this.d))return this;tt=tt||.001;for(var We=this.abs(),Ue=We.toContinued(),Qe=1;Qe<Ue.length;Qe++){for(var He=y(Ue[Qe-1],1),tr=Qe-2;tr>=0;tr--)He=He.inverse().add(Ue[tr]);if(Math.abs(He.sub(We).valueOf())<tt)return He.mul(this.s)}return this},divisible:function(tt,We){return j(tt,We),!(!(d.n*this.d)||this.n*d.d%(d.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(tt){var We,Ue="",Qe=this.n,He=this.d;return this.s<0&&(Ue+="-"),He===1?Ue+=Qe:(tt&&(We=Math.floor(Qe/He))>0&&(Ue+=We,Ue+=" ",Qe%=He),Ue+=Qe,Ue+="/",Ue+=He),Ue},toLatex:function(tt){var We,Ue="",Qe=this.n,He=this.d;return this.s<0&&(Ue+="-"),He===1?Ue+=Qe:(tt&&(We=Math.floor(Qe/He))>0&&(Ue+=We,Qe%=He),Ue+="\\frac{",Ue+=Qe,Ue+="}{",Ue+=He,Ue+="}"),Ue},toContinued:function(){var tt,We=this.n,Ue=this.d,Qe=[];if(isNaN(We)||isNaN(Ue))return Qe;do Qe.push(Math.floor(We/Ue)),tt=We%Ue,We=Ue,Ue=tt;while(We!==1);return Qe},toString:function(tt){var We=this.n,Ue=this.d;if(isNaN(We)||isNaN(Ue))return"NaN";tt=tt||15;var Qe=_e(We,Ue),He=$(We,Ue,Qe),tr=this.s<0?"-":"";if(tr+=We/Ue|0,We%=Ue,We*=10,We&&(tr+="."),Qe){for(var or=He;or--;)tr+=We/Ue|0,We%=Ue,We*=10;tr+="(";for(var or=Qe;or--;)tr+=We/Ue|0,We%=Ue,We*=10;tr+=")"}else for(var or=tt;We&&or--;)tr+=We/Ue|0,We%=Ue,We*=10;return tr}},Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.default=Ve,Ve.Fraction=Ve,e.exports=Ve})()})(fraction$1);const Fraction$1=getDefaultExportFromCjs(fraction$1.exports);var name$B="Fraction",dependencies$A=[],createFractionClass=factory(name$B,dependencies$A,()=>(Object.defineProperty(Fraction$1,"name",{value:"Fraction"}),Fraction$1.prototype.constructor=Fraction$1,Fraction$1.prototype.type="Fraction",Fraction$1.prototype.isFraction=!0,Fraction$1.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},Fraction$1.fromJSON=function(e){return new Fraction$1(e)},Fraction$1),{isClass:!0}),name$A="Matrix",dependencies$z=[],createMatrixClass=factory(name$A,dependencies$z,()=>{function e(){if(!(this instanceof e))throw new SyntaxError("Constructor must be called with the new operator")}return e.prototype.type="Matrix",e.prototype.isMatrix=!0,e.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},e.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},e.prototype.create=function(n,l){throw new Error("Cannot invoke create on a Matrix interface")},e.prototype.subset=function(n,l,u){throw new Error("Cannot invoke subset on a Matrix interface")},e.prototype.get=function(n){throw new Error("Cannot invoke get on a Matrix interface")},e.prototype.set=function(n,l,u){throw new Error("Cannot invoke set on a Matrix interface")},e.prototype.resize=function(n,l){throw new Error("Cannot invoke resize on a Matrix interface")},e.prototype.reshape=function(n,l){throw new Error("Cannot invoke reshape on a Matrix interface")},e.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},e.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},e.prototype.map=function(n,l){throw new Error("Cannot invoke map on a Matrix interface")},e.prototype.forEach=function(n){throw new Error("Cannot invoke forEach on a Matrix interface")},e.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},e.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},e.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},e.prototype.format=function(n){throw new Error("Cannot invoke format on a Matrix interface")},e.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},e},{isClass:!0});function maxArgumentCount(e){return Object.keys(e.signatures||{}).reduce(function(n,l){var u=(l.match(/,/g)||[]).length+1;return Math.max(n,u)},-1)}var name$z="DenseMatrix",dependencies$y=["Matrix"],createDenseMatrixClass=factory(name$z,dependencies$y,e=>{var{Matrix:n}=e;function l(_e,$){if(!(this instanceof l))throw new SyntaxError("Constructor must be called with the new operator");if($&&!isString($))throw new Error("Invalid datatype: "+$);if(isMatrix(_e))_e.type==="DenseMatrix"?(this._data=clone$2(_e._data),this._size=clone$2(_e._size),this._datatype=$||_e._datatype):(this._data=_e.toArray(),this._size=_e.size(),this._datatype=$||_e._datatype);else if(_e&&isArray(_e.data)&&isArray(_e.size))this._data=_e.data,this._size=_e.size,validate(this._data,this._size),this._datatype=$||_e.datatype;else if(isArray(_e))this._data=Re(_e),this._size=arraySize(this._data),validate(this._data,this._size),this._datatype=$;else{if(_e)throw new TypeError("Unsupported type of data ("+typeOf(_e)+")");this._data=[],this._size=[0],this._datatype=$}}l.prototype=new n,l.prototype.createDenseMatrix=function(_e,$){return new l(_e,$)},Object.defineProperty(l,"name",{value:"DenseMatrix"}),l.prototype.constructor=l,l.prototype.type="DenseMatrix",l.prototype.isDenseMatrix=!0,l.prototype.getDataType=function(){return getArrayDataType(this._data,typeOf)},l.prototype.storage=function(){return"dense"},l.prototype.datatype=function(){return this._datatype},l.prototype.create=function(_e,$){return new l(_e,$)},l.prototype.subset=function(_e,$,Je){switch(arguments.length){case 1:return u(this,_e);case 2:case 3:return p(this,_e,$,Je);default:throw new SyntaxError("Wrong number of arguments")}},l.prototype.get=function(_e){if(!isArray(_e))throw new TypeError("Array expected");if(_e.length!==this._size.length)throw new DimensionError(_e.length,this._size.length);for(var $=0;$<_e.length;$++)validateIndex(_e[$],this._size[$]);for(var Je=this._data,Ve=0,Ze=_e.length;Ve<Ze;Ve++){var Fe=_e[Ve];validateIndex(Fe,Je.length),Je=Je[Fe]}return Je},l.prototype.set=function(_e,$,Je){if(!isArray(_e))throw new TypeError("Array expected");if(_e.length<this._size.length)throw new DimensionError(_e.length,this._size.length,"<");var Ve,Ze,Fe,st=_e.map(function(We){return We+1});j(this,st,Je);var tt=this._data;for(Ve=0,Ze=_e.length-1;Ve<Ze;Ve++)Fe=_e[Ve],validateIndex(Fe,tt.length),tt=tt[Fe];return Fe=_e[_e.length-1],validateIndex(Fe,tt.length),tt[Fe]=$,this};function u(_e,$){if(!isIndex($))throw new TypeError("Invalid index");var Je=$.isScalar();if(Je)return _e.get($.min());var Ve=$.size();if(Ve.length!==_e._size.length)throw new DimensionError(Ve.length,_e._size.length);for(var Ze=$.min(),Fe=$.max(),st=0,tt=_e._size.length;st<tt;st++)validateIndex(Ze[st],_e._size[st]),validateIndex(Fe[st],_e._size[st]);return new l(d(_e._data,$,Ve.length,0),_e._datatype)}function d(_e,$,Je,Ve){var Ze=Ve===Je-1,Fe=$.dimension(Ve);return Ze?Fe.map(function(st){return validateIndex(st,_e.length),_e[st]}).valueOf():Fe.map(function(st){validateIndex(st,_e.length);var tt=_e[st];return d(tt,$,Je,Ve+1)}).valueOf()}function p(_e,$,Je,Ve){if(!$||$.isIndex!==!0)throw new TypeError("Invalid index");var Ze=$.size(),Fe=$.isScalar(),st;if(isMatrix(Je)?(st=Je.size(),Je=Je.valueOf()):st=arraySize(Je),Fe){if(st.length!==0)throw new TypeError("Scalar expected");_e.set($.min(),Je,Ve)}else{if(!deepStrictEqual(st,Ze))try{st.length===0?Je=broadcastTo([Je],Ze):Je=broadcastTo(Je,Ze),st=arraySize(Je)}catch(tr){}if(Ze.length<_e._size.length)throw new DimensionError(Ze.length,_e._size.length,"<");if(st.length<Ze.length){for(var tt=0,We=0;Ze[tt]===1&&st[tt]===1;)tt++;for(;Ze[tt]===1;)We++,tt++;Je=unsqueeze(Je,Ze.length,We,st)}if(!deepStrictEqual(Ze,st))throw new DimensionError(Ze,st,">");var Ue=$.max().map(function(tr){return tr+1});j(_e,Ue,Ve);var Qe=Ze.length,He=0;y(_e._data,$,Je,Qe,He)}return _e}function y(_e,$,Je,Ve,Ze){var Fe=Ze===Ve-1,st=$.dimension(Ze);Fe?st.forEach(function(tt,We){validateIndex(tt),_e[tt]=Je[We[0]]}):st.forEach(function(tt,We){validateIndex(tt),y(_e[tt],$,Je[We[0]],Ve,Ze+1)})}l.prototype.resize=function(_e,$,Je){if(!isCollection(_e))throw new TypeError("Array or Matrix expected");var Ve=_e.valueOf().map(Fe=>Array.isArray(Fe)&&Fe.length===1?Fe[0]:Fe),Ze=Je?this.clone():this;return o(Ze,Ve,$)};function o(_e,$,Je){if($.length===0){for(var Ve=_e._data;isArray(Ve);)Ve=Ve[0];return Ve}return _e._size=$.slice(0),_e._data=resize(_e._data,_e._size,Je),_e}l.prototype.reshape=function(_e,$){var Je=$?this.clone():this;Je._data=reshape(Je._data,_e);var Ve=Je._size.reduce((Ze,Fe)=>Ze*Fe);return Je._size=processSizesWildcard(_e,Ve),Je};function j(_e,$,Je){for(var Ve=_e._size.slice(0),Ze=!1;Ve.length<$.length;)Ve.push(0),Ze=!0;for(var Fe=0,st=$.length;Fe<st;Fe++)$[Fe]>Ve[Fe]&&(Ve[Fe]=$[Fe],Ze=!0);Ze&&o(_e,Ve,Je)}l.prototype.clone=function(){var _e=new l({data:clone$2(this._data),size:clone$2(this._size),datatype:this._datatype});return _e},l.prototype.size=function(){return this._size.slice(0)},l.prototype.map=function(_e){var $=this,Je=maxArgumentCount(_e),Ve=function st(tt,We){return isArray(tt)?tt.map(function(Ue,Qe){return st(Ue,We.concat(Qe))}):Je===1?_e(tt):Je===2?_e(tt,We):_e(tt,We,$)},Ze=Ve(this._data,[]),Fe=this._datatype!==void 0?getArrayDataType(Ze,typeOf):void 0;return new l(Ze,Fe)},l.prototype.forEach=function(_e){var $=this,Je=function Ve(Ze,Fe){isArray(Ze)?Ze.forEach(function(st,tt){Ve(st,Fe.concat(tt))}):_e(Ze,Fe,$)};Je(this._data,[])},l.prototype[Symbol.iterator]=function*(){var _e=function*$(Je,Ve){if(isArray(Je))for(var Ze=0;Ze<Je.length;Ze++)yield*$(Je[Ze],Ve.concat(Ze));else yield{value:Je,index:Ve}};yield*_e(this._data,[])},l.prototype.rows=function(){var _e=[],$=this.size();if($.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var Je=this._data;for(var Ve of Je)_e.push(new l([Ve],this._datatype));return _e},l.prototype.columns=function(){var _e=this,$=[],Je=this.size();if(Je.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var Ve=this._data,Ze=function(tt){var We=Ve.map(Ue=>[Ue[tt]]);$.push(new l(We,_e._datatype))},Fe=0;Fe<Je[1];Fe++)Ze(Fe);return $},l.prototype.toArray=function(){return clone$2(this._data)},l.prototype.valueOf=function(){return this._data},l.prototype.format=function(_e){return format(this._data,_e)},l.prototype.toString=function(){return format(this._data)},l.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},l.prototype.diagonal=function(_e){if(_e){if(isBigNumber(_e)&&(_e=_e.toNumber()),!isNumber(_e)||!isInteger$1(_e))throw new TypeError("The parameter k must be an integer number")}else _e=0;for(var $=_e>0?_e:0,Je=_e<0?-_e:0,Ve=this._size[0],Ze=this._size[1],Fe=Math.min(Ve-Je,Ze-$),st=[],tt=0;tt<Fe;tt++)st[tt]=this._data[tt+Je][tt+$];return new l({data:st,size:[Fe],datatype:this._datatype})},l.diagonal=function(_e,$,Je,Ve){if(!isArray(_e))throw new TypeError("Array expected, size parameter");if(_e.length!==2)throw new Error("Only two dimensions matrix are supported");if(_e=_e.map(function(or){if(isBigNumber(or)&&(or=or.toNumber()),!isNumber(or)||!isInteger$1(or)||or<1)throw new Error("Size values must be positive integers");return or}),Je){if(isBigNumber(Je)&&(Je=Je.toNumber()),!isNumber(Je)||!isInteger$1(Je))throw new TypeError("The parameter k must be an integer number")}else Je=0;var Ze=Je>0?Je:0,Fe=Je<0?-Je:0,st=_e[0],tt=_e[1],We=Math.min(st-Fe,tt-Ze),Ue;if(isArray($)){if($.length!==We)throw new Error("Invalid value array length");Ue=function(xt){return $[xt]}}else if(isMatrix($)){var Qe=$.size();if(Qe.length!==1||Qe[0]!==We)throw new Error("Invalid matrix length");Ue=function(xt){return $.get([xt])}}else Ue=function(){return $};Ve||(Ve=isBigNumber(Ue(0))?Ue(0).mul(0):0);var He=[];if(_e.length>0){He=resize(He,_e,Ve);for(var tr=0;tr<We;tr++)He[tr+Fe][tr+Ze]=Ue(tr)}return new l({data:He,size:[st,tt]})},l.fromJSON=function(_e){return new l(_e)},l.prototype.swapRows=function(_e,$){if(!isNumber(_e)||!isInteger$1(_e)||!isNumber($)||!isInteger$1($))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return validateIndex(_e,this._size[0]),validateIndex($,this._size[0]),l._swapRows(_e,$,this._data),this},l._swapRows=function(_e,$,Je){var Ve=Je[_e];Je[_e]=Je[$],Je[$]=Ve};function Re(_e){return isMatrix(_e)?Re(_e.valueOf()):isArray(_e)?_e.map(Re):_e}return l},{isClass:!0});function _switch(e){var n=e.length,l=e[0].length,u,d,p=[];for(d=0;d<l;d++){var y=[];for(u=0;u<n;u++)y.push(e[u][d]);p.push(y)}return p}function containsCollections(e){for(var n=0;n<e.length;n++)if(isCollection(e[n]))return!0;return!1}function deepForEach(e,n){isMatrix(e)&&(e=e.valueOf());for(var l=0,u=e.length;l<u;l++){var d=e[l];Array.isArray(d)?deepForEach(d,n):n(d)}}function deepMap(e,n,l){return e&&typeof e.map=="function"?e.map(function(u){return deepMap(u,n)}):n(e)}function reduce(e,n,l){var u=Array.isArray(e)?arraySize(e):e.size();if(n<0||n>=u.length)throw new IndexError(n,u.length);return isMatrix(e)?e.create(_reduce(e.valueOf(),n,l)):_reduce(e,n,l)}function _reduce(e,n,l){var u,d,p,y;if(n<=0)if(Array.isArray(e[0])){for(y=_switch(e),d=[],u=0;u<y.length;u++)d[u]=_reduce(y[u],n-1,l);return d}else{for(p=e[0],u=1;u<e.length;u++)p=l(p,e[u]);return p}else{for(d=[],u=0;u<e.length;u++)d[u]=_reduce(e[u],n-1,l);return d}}var name$y="isInteger",dependencies$x=["typed"],createIsInteger=factory(name$y,dependencies$x,e=>{var{typed:n}=e;return n(name$y,{number:isInteger$1,BigNumber:function(u){return u.isInt()},Fraction:function(u){return u.d===1&&isFinite(u.n)},"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),n1$1="number",n2="number, number";function absNumber(e){return Math.abs(e)}absNumber.signature=n1$1;function addNumber(e,n){return e+n}addNumber.signature=n2;function subtractNumber(e,n){return e-n}subtractNumber.signature=n2;function multiplyNumber(e,n){return e*n}multiplyNumber.signature=n2;function unaryMinusNumber(e){return-e}unaryMinusNumber.signature=n1$1;var n1="number";function isZeroNumber(e){return e===0}isZeroNumber.signature=n1;var name$x="isZero",dependencies$w=["typed"],createIsZero=factory(name$x,dependencies$w,e=>{var{typed:n}=e;return n(name$x,{number:isZeroNumber,BigNumber:function(u){return u.isZero()},Complex:function(u){return u.re===0&&u.im===0},Fraction:function(u){return u.d===1&&u.n===0},Unit:n.referToSelf(l=>u=>n.find(l,u.valueType())(u.value)),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})});function nearlyEqual(e,n,l){if(l==null)return e.eq(n);if(e.eq(n))return!0;if(e.isNaN()||n.isNaN())return!1;if(e.isFinite()&&n.isFinite()){var u=e.minus(n).abs();if(u.isZero())return!0;var d=e.constructor.max(e.abs(),n.abs());return u.lte(d.times(l))}return!1}function complexEquals(e,n,l){return nearlyEqual$1(e.re,n.re,l)&&nearlyEqual$1(e.im,n.im,l)}var createCompareUnits=factory("compareUnits",["typed"],e=>{var{typed:n}=e;return{"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(!u.equalBase(d))throw new Error("Cannot compare units with different base");return n.find(l,[u.valueType(),d.valueType()])(u.value,d.value)})}}),name$w="equalScalar",dependencies$v=["typed","config"],createEqualScalar=factory(name$w,dependencies$v,e=>{var{typed:n,config:l}=e,u=createCompareUnits({typed:n});return n(name$w,{"boolean, boolean":function(p,y){return p===y},"number, number":function(p,y){return nearlyEqual$1(p,y,l.epsilon)},"BigNumber, BigNumber":function(p,y){return p.eq(y)||nearlyEqual(p,y,l.epsilon)},"Fraction, Fraction":function(p,y){return p.equals(y)},"Complex, Complex":function(p,y){return complexEquals(p,y,l.epsilon)}},u)});factory(name$w,["typed","config"],e=>{var{typed:n,config:l}=e;return n(name$w,{"number, number":function(d,p){return nearlyEqual$1(d,p,l.epsilon)}})});var name$v="SparseMatrix",dependencies$u=["typed","equalScalar","Matrix"],createSparseMatrixClass=factory(name$v,dependencies$u,e=>{var{typed:n,equalScalar:l,Matrix:u}=e;function d(Fe,st){if(!(this instanceof d))throw new SyntaxError("Constructor must be called with the new operator");if(st&&!isString(st))throw new Error("Invalid datatype: "+st);if(isMatrix(Fe))p(this,Fe,st);else if(Fe&&isArray(Fe.index)&&isArray(Fe.ptr)&&isArray(Fe.size))this._values=Fe.values,this._index=Fe.index,this._ptr=Fe.ptr,this._size=Fe.size,this._datatype=st||Fe.datatype;else if(isArray(Fe))y(this,Fe,st);else{if(Fe)throw new TypeError("Unsupported type of data ("+typeOf(Fe)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=st}}function p(Fe,st,tt){st.type==="SparseMatrix"?(Fe._values=st._values?clone$2(st._values):void 0,Fe._index=clone$2(st._index),Fe._ptr=clone$2(st._ptr),Fe._size=clone$2(st._size),Fe._datatype=tt||st._datatype):y(Fe,st.valueOf(),tt||st._datatype)}function y(Fe,st,tt){Fe._values=[],Fe._index=[],Fe._ptr=[],Fe._datatype=tt;var We=st.length,Ue=0,Qe=l,He=0;if(isString(tt)&&(Qe=n.find(l,[tt,tt])||l,He=n.convert(0,tt)),We>0){var tr=0;do{Fe._ptr.push(Fe._index.length);for(var or=0;or<We;or++){var xt=st[or];if(isArray(xt)){if(tr===0&&Ue<xt.length&&(Ue=xt.length),tr<xt.length){var Er=xt[tr];Qe(Er,He)||(Fe._values.push(Er),Fe._index.push(or))}}else tr===0&&Ue<1&&(Ue=1),Qe(xt,He)||(Fe._values.push(xt),Fe._index.push(or))}tr++}while(tr<Ue)}Fe._ptr.push(Fe._index.length),Fe._size=[We,Ue]}d.prototype=new u,d.prototype.createSparseMatrix=function(Fe,st){return new d(Fe,st)},Object.defineProperty(d,"name",{value:"SparseMatrix"}),d.prototype.constructor=d,d.prototype.type="SparseMatrix",d.prototype.isSparseMatrix=!0,d.prototype.getDataType=function(){return getArrayDataType(this._values,typeOf)},d.prototype.storage=function(){return"sparse"},d.prototype.datatype=function(){return this._datatype},d.prototype.create=function(Fe,st){return new d(Fe,st)},d.prototype.density=function(){var Fe=this._size[0],st=this._size[1];return Fe!==0&&st!==0?this._index.length/(Fe*st):0},d.prototype.subset=function(Fe,st,tt){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return o(this,Fe);case 2:case 3:return j(this,Fe,st,tt);default:throw new SyntaxError("Wrong number of arguments")}};function o(Fe,st){if(!isIndex(st))throw new TypeError("Invalid index");var tt=st.isScalar();if(tt)return Fe.get(st.min());var We=st.size();if(We.length!==Fe._size.length)throw new DimensionError(We.length,Fe._size.length);var Ue,Qe,He,tr,or=st.min(),xt=st.max();for(Ue=0,Qe=Fe._size.length;Ue<Qe;Ue++)validateIndex(or[Ue],Fe._size[Ue]),validateIndex(xt[Ue],Fe._size[Ue]);var Er=Fe._values,_r=Fe._index,Sr=Fe._ptr,hr=st.dimension(0),Kr=st.dimension(1),Lr=[],Sa=[];hr.forEach(function(ya,Rn){Sa[ya]=Rn[0],Lr[ya]=!0});var br=Er?[]:void 0,Pa=[],la=[];return Kr.forEach(function(ya){for(la.push(Pa.length),He=Sr[ya],tr=Sr[ya+1];He<tr;He++)Ue=_r[He],Lr[Ue]===!0&&(Pa.push(Sa[Ue]),br&&br.push(Er[He]))}),la.push(Pa.length),new d({values:br,index:Pa,ptr:la,size:We,datatype:Fe._datatype})}function j(Fe,st,tt,We){if(!st||st.isIndex!==!0)throw new TypeError("Invalid index");var Ue=st.size(),Qe=st.isScalar(),He;if(isMatrix(tt)?(He=tt.size(),tt=tt.toArray()):He=arraySize(tt),Qe){if(He.length!==0)throw new TypeError("Scalar expected");Fe.set(st.min(),tt,We)}else{if(Ue.length!==1&&Ue.length!==2)throw new DimensionError(Ue.length,Fe._size.length,"<");if(He.length<Ue.length){for(var tr=0,or=0;Ue[tr]===1&&He[tr]===1;)tr++;for(;Ue[tr]===1;)or++,tr++;tt=unsqueeze(tt,Ue.length,or,He)}if(!deepStrictEqual(Ue,He))throw new DimensionError(Ue,He,">");if(Ue.length===1){var xt=st.dimension(0);xt.forEach(function(Sr,hr){validateIndex(Sr),Fe.set([Sr,0],tt[hr[0]],We)})}else{var Er=st.dimension(0),_r=st.dimension(1);Er.forEach(function(Sr,hr){validateIndex(Sr),_r.forEach(function(Kr,Lr){validateIndex(Kr),Fe.set([Sr,Kr],tt[hr[0]][Lr[0]],We)})})}}return Fe}d.prototype.get=function(Fe){if(!isArray(Fe))throw new TypeError("Array expected");if(Fe.length!==this._size.length)throw new DimensionError(Fe.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var st=Fe[0],tt=Fe[1];validateIndex(st,this._size[0]),validateIndex(tt,this._size[1]);var We=Re(st,this._ptr[tt],this._ptr[tt+1],this._index);return We<this._ptr[tt+1]&&this._index[We]===st?this._values[We]:0},d.prototype.set=function(Fe,st,tt){if(!isArray(Fe))throw new TypeError("Array expected");if(Fe.length!==this._size.length)throw new DimensionError(Fe.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var We=Fe[0],Ue=Fe[1],Qe=this._size[0],He=this._size[1],tr=l,or=0;isString(this._datatype)&&(tr=n.find(l,[this._datatype,this._datatype])||l,or=n.convert(0,this._datatype)),(We>Qe-1||Ue>He-1)&&(Je(this,Math.max(We+1,Qe),Math.max(Ue+1,He),tt),Qe=this._size[0],He=this._size[1]),validateIndex(We,Qe),validateIndex(Ue,He);var xt=Re(We,this._ptr[Ue],this._ptr[Ue+1],this._index);return xt<this._ptr[Ue+1]&&this._index[xt]===We?tr(st,or)?_e(xt,Ue,this._values,this._index,this._ptr):this._values[xt]=st:tr(st,or)||$(xt,We,Ue,st,this._values,this._index,this._ptr),this};function Re(Fe,st,tt,We){if(tt-st===0)return tt;for(var Ue=st;Ue<tt;Ue++)if(We[Ue]===Fe)return Ue;return st}function _e(Fe,st,tt,We,Ue){tt.splice(Fe,1),We.splice(Fe,1);for(var Qe=st+1;Qe<Ue.length;Qe++)Ue[Qe]--}function $(Fe,st,tt,We,Ue,Qe,He){Ue.splice(Fe,0,We),Qe.splice(Fe,0,st);for(var tr=tt+1;tr<He.length;tr++)He[tr]++}d.prototype.resize=function(Fe,st,tt){if(!isCollection(Fe))throw new TypeError("Array or Matrix expected");var We=Fe.valueOf().map(Qe=>Array.isArray(Qe)&&Qe.length===1?Qe[0]:Qe);if(We.length!==2)throw new Error("Only two dimensions matrix are supported");We.forEach(function(Qe){if(!isNumber(Qe)||!isInteger$1(Qe)||Qe<0)throw new TypeError("Invalid size, must contain positive integers (size: "+format(We)+")")});var Ue=tt?this.clone():this;return Je(Ue,We[0],We[1],st)};function Je(Fe,st,tt,We){var Ue=We||0,Qe=l,He=0;isString(Fe._datatype)&&(Qe=n.find(l,[Fe._datatype,Fe._datatype])||l,He=n.convert(0,Fe._datatype),Ue=n.convert(Ue,Fe._datatype));var tr=!Qe(Ue,He),or=Fe._size[0],xt=Fe._size[1],Er,_r,Sr;if(tt>xt){for(_r=xt;_r<tt;_r++)if(Fe._ptr[_r]=Fe._values.length,tr)for(Er=0;Er<or;Er++)Fe._values.push(Ue),Fe._index.push(Er);Fe._ptr[tt]=Fe._values.length}else tt<xt&&(Fe._ptr.splice(tt+1,xt-tt),Fe._values.splice(Fe._ptr[tt],Fe._values.length),Fe._index.splice(Fe._ptr[tt],Fe._index.length));if(xt=tt,st>or){if(tr){var hr=0;for(_r=0;_r<xt;_r++){Fe._ptr[_r]=Fe._ptr[_r]+hr,Sr=Fe._ptr[_r+1]+hr;var Kr=0;for(Er=or;Er<st;Er++,Kr++)Fe._values.splice(Sr+Kr,0,Ue),Fe._index.splice(Sr+Kr,0,Er),hr++}Fe._ptr[xt]=Fe._values.length}}else if(st<or){var Lr=0;for(_r=0;_r<xt;_r++){Fe._ptr[_r]=Fe._ptr[_r]-Lr;var Sa=Fe._ptr[_r],br=Fe._ptr[_r+1]-Lr;for(Sr=Sa;Sr<br;Sr++)Er=Fe._index[Sr],Er>st-1&&(Fe._values.splice(Sr,1),Fe._index.splice(Sr,1),Lr++)}Fe._ptr[_r]=Fe._values.length}return Fe._size[0]=st,Fe._size[1]=tt,Fe}d.prototype.reshape=function(Fe,st){if(!isArray(Fe))throw new TypeError("Array expected");if(Fe.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");Fe.forEach(function(ya){if(!isNumber(ya)||!isInteger$1(ya)||ya<=-2||ya===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+format(Fe)+")")});var tt=this._size[0]*this._size[1];Fe=processSizesWildcard(Fe,tt);var We=Fe[0]*Fe[1];if(tt!==We)throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var Ue=st?this.clone():this;if(this._size[0]===Fe[0]&&this._size[1]===Fe[1])return Ue;for(var Qe=[],He=0;He<Ue._ptr.length;He++)for(var tr=0;tr<Ue._ptr[He+1]-Ue._ptr[He];tr++)Qe.push(He);for(var or=Ue._values.slice(),xt=Ue._index.slice(),Er=0;Er<Ue._index.length;Er++){var _r=xt[Er],Sr=Qe[Er],hr=_r*Ue._size[1]+Sr;Qe[Er]=hr%Fe[1],xt[Er]=Math.floor(hr/Fe[1])}Ue._values.length=0,Ue._index.length=0,Ue._ptr.length=Fe[1]+1,Ue._size=Fe.slice();for(var Kr=0;Kr<Ue._ptr.length;Kr++)Ue._ptr[Kr]=0;for(var Lr=0;Lr<or.length;Lr++){var Sa=xt[Lr],br=Qe[Lr],Pa=or[Lr],la=Re(Sa,Ue._ptr[br],Ue._ptr[br+1],Ue._index);$(la,Sa,br,Pa,Ue._values,Ue._index,Ue._ptr)}return Ue},d.prototype.clone=function(){var Fe=new d({values:this._values?clone$2(this._values):void 0,index:clone$2(this._index),ptr:clone$2(this._ptr),size:clone$2(this._size),datatype:this._datatype});return Fe},d.prototype.size=function(){return this._size.slice(0)},d.prototype.map=function(Fe,st){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var tt=this,We=this._size[0],Ue=this._size[1],Qe=maxArgumentCount(Fe),He=function(or,xt,Er){return Qe===1?Fe(or):Qe===2?Fe(or,[xt,Er]):Fe(or,[xt,Er],tt)};return Ve(this,0,We-1,0,Ue-1,He,st)};function Ve(Fe,st,tt,We,Ue,Qe,He){var tr=[],or=[],xt=[],Er=l,_r=0;isString(Fe._datatype)&&(Er=n.find(l,[Fe._datatype,Fe._datatype])||l,_r=n.convert(0,Fe._datatype));for(var Sr=function(_n,Ti,gi){_n=Qe(_n,Ti,gi),Er(_n,_r)||(tr.push(_n),or.push(Ti))},hr=We;hr<=Ue;hr++){xt.push(tr.length);var Kr=Fe._ptr[hr],Lr=Fe._ptr[hr+1];if(He)for(var Sa=Kr;Sa<Lr;Sa++){var br=Fe._index[Sa];br>=st&&br<=tt&&Sr(Fe._values[Sa],br-st,hr-We)}else{for(var Pa={},la=Kr;la<Lr;la++){var ya=Fe._index[la];Pa[ya]=Fe._values[la]}for(var Rn=st;Rn<=tt;Rn++){var mn=Rn in Pa?Pa[Rn]:0;Sr(mn,Rn-st,hr-We)}}}return xt.push(tr.length),new d({values:tr,index:or,ptr:xt,size:[tt-st+1,Ue-We+1]})}d.prototype.forEach=function(Fe,st){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var tt=this,We=this._size[0],Ue=this._size[1],Qe=0;Qe<Ue;Qe++){var He=this._ptr[Qe],tr=this._ptr[Qe+1];if(st)for(var or=He;or<tr;or++){var xt=this._index[or];Fe(this._values[or],[xt,Qe],tt)}else{for(var Er={},_r=He;_r<tr;_r++){var Sr=this._index[_r];Er[Sr]=this._values[_r]}for(var hr=0;hr<We;hr++){var Kr=hr in Er?Er[hr]:0;Fe(Kr,[hr,Qe],tt)}}}},d.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var Fe=this._size[1],st=0;st<Fe;st++)for(var tt=this._ptr[st],We=this._ptr[st+1],Ue=tt;Ue<We;Ue++){var Qe=this._index[Ue];yield{value:this._values[Ue],index:[Qe,st]}}},d.prototype.toArray=function(){return Ze(this._values,this._index,this._ptr,this._size,!0)},d.prototype.valueOf=function(){return Ze(this._values,this._index,this._ptr,this._size,!1)};function Ze(Fe,st,tt,We,Ue){var Qe=We[0],He=We[1],tr=[],or,xt;for(or=0;or<Qe;or++)for(tr[or]=[],xt=0;xt<He;xt++)tr[or][xt]=0;for(xt=0;xt<He;xt++)for(var Er=tt[xt],_r=tt[xt+1],Sr=Er;Sr<_r;Sr++)or=st[Sr],tr[or][xt]=Fe?Ue?clone$2(Fe[Sr]):Fe[Sr]:1;return tr}return d.prototype.format=function(Fe){for(var st=this._size[0],tt=this._size[1],We=this.density(),Ue="Sparse Matrix ["+format(st,Fe)+" x "+format(tt,Fe)+"] density: "+format(We,Fe)+`
|
|
493
493
|
`,Qe=0;Qe<tt;Qe++)for(var He=this._ptr[Qe],tr=this._ptr[Qe+1],or=He;or<tr;or++){var xt=this._index[or];Ue+=`
|
|
494
|
-
(`+format(xt,Fe)+", "+format(Qe,Fe)+") ==> "+(this._values?format(this._values[or],Fe):"X")}return Ue},d.prototype.toString=function(){return format(this.toArray())},d.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},d.prototype.diagonal=function(Fe){if(Fe){if(isBigNumber(Fe)&&(Fe=Fe.toNumber()),!isNumber(Fe)||!isInteger$1(Fe))throw new TypeError("The parameter k must be an integer number")}else Fe=0;var st=Fe>0?Fe:0,tt=Fe<0?-Fe:0,We=this._size[0],Ue=this._size[1],Qe=Math.min(We-tt,Ue-st),He=[],tr=[],or=[];or[0]=0;for(var xt=st;xt<Ue&&He.length<Qe;xt++)for(var Er=this._ptr[xt],_r=this._ptr[xt+1],Sr=Er;Sr<_r;Sr++){var hr=this._index[Sr];if(hr===xt-st+tt){He.push(this._values[Sr]),tr[He.length-1]=hr-tt;break}}return or.push(He.length),new d({values:He,index:tr,ptr:or,size:[Qe,1]})},d.fromJSON=function(Fe){return new d(Fe)},d.diagonal=function(Fe,st,tt,We,Ue){if(!isArray(Fe))throw new TypeError("Array expected, size parameter");if(Fe.length!==2)throw new Error("Only two dimensions matrix are supported");if(Fe=Fe.map(function(ya){if(isBigNumber(ya)&&(ya=ya.toNumber()),!isNumber(ya)||!isInteger$1(ya)||ya<1)throw new Error("Size values must be positive integers");return ya}),tt){if(isBigNumber(tt)&&(tt=tt.toNumber()),!isNumber(tt)||!isInteger$1(tt))throw new TypeError("The parameter k must be an integer number")}else tt=0;var Qe=l,He=0;isString(Ue)&&(Qe=n.find(l,[Ue,Ue])||l,He=n.convert(0,Ue));var tr=tt>0?tt:0,or=tt<0?-tt:0,xt=Fe[0],Er=Fe[1],_r=Math.min(xt-or,Er-tr),Sr;if(isArray(st)){if(st.length!==_r)throw new Error("Invalid value array length");Sr=function(Rn){return st[Rn]}}else if(isMatrix(st)){var hr=st.size();if(hr.length!==1||hr[0]!==_r)throw new Error("Invalid matrix length");Sr=function(Rn){return st.get([Rn])}}else Sr=function(){return st};for(var Kr=[],Lr=[],Sa=[],br=0;br<Er;br++){Sa.push(Kr.length);var Pa=br-tr;if(Pa>=0&&Pa<_r){var la=Sr(Pa);Qe(la,He)||(Lr.push(Pa+or),Kr.push(la))}}return Sa.push(Kr.length),new d({values:Kr,index:Lr,ptr:Sa,size:[xt,Er]})},d.prototype.swapRows=function(Fe,st){if(!isNumber(Fe)||!isInteger$1(Fe)||!isNumber(st)||!isInteger$1(st))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return validateIndex(Fe,this._size[0]),validateIndex(st,this._size[0]),d._swapRows(Fe,st,this._size[1],this._values,this._index,this._ptr),this},d._forEachRow=function(Fe,st,tt,We,Ue){for(var Qe=We[Fe],He=We[Fe+1],tr=Qe;tr<He;tr++)Ue(tt[tr],st[tr])},d._swapRows=function(Fe,st,tt,We,Ue,Qe){for(var He=0;He<tt;He++){var tr=Qe[He],or=Qe[He+1],xt=Re(Fe,tr,or,Ue),Er=Re(st,tr,or,Ue);if(xt<or&&Er<or&&Ue[xt]===Fe&&Ue[Er]===st){if(We){var _r=We[xt];We[xt]=We[Er],We[Er]=_r}continue}if(xt<or&&Ue[xt]===Fe&&(Er>=or||Ue[Er]!==st)){var Sr=We?We[xt]:void 0;Ue.splice(Er,0,st),We&&We.splice(Er,0,Sr),Ue.splice(Er<=xt?xt+1:xt,1),We&&We.splice(Er<=xt?xt+1:xt,1);continue}if(Er<or&&Ue[Er]===st&&(xt>=or||Ue[xt]!==Fe)){var hr=We?We[Er]:void 0;Ue.splice(xt,0,Fe),We&&We.splice(xt,0,hr),Ue.splice(xt<=Er?Er+1:Er,1),We&&We.splice(xt<=Er?Er+1:Er,1)}}},d},{isClass:!0}),name$u="number",dependencies$t=["typed"];function getNonDecimalNumberParts(e){var n=e.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(n){var l={"0b":2,"0o":8,"0x":16}[n[1]],u=n[2],d=n[3];return{input:e,radix:l,integerPart:u,fractionalPart:d}}else return null}function makeNumberFromNonDecimalParts(e){for(var n=parseInt(e.integerPart,e.radix),l=0,u=0;u<e.fractionalPart.length;u++){var d=parseInt(e.fractionalPart[u],e.radix);l+=d/Math.pow(e.radix,u+1)}var p=n+l;if(isNaN(p))throw new SyntaxError('String "'+e.input+'" is not a valid number');return p}var createNumber=factory(name$u,dependencies$t,e=>{var{typed:n}=e,l=n("number",{"":function(){return 0},number:function(d){return d},string:function(d){if(d==="NaN")return NaN;var p=getNonDecimalNumberParts(d);if(p)return makeNumberFromNonDecimalParts(p);var y=0,o=d.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);o&&(y=Number(o[2]),d=o[1]);var j=Number(d);if(isNaN(j))throw new SyntaxError('String "'+d+'" is not a valid number');if(o){if(j>b0(2,y)-1)throw new SyntaxError('String "'.concat(d,'" is out of range'));j>=b0(2,y-1)&&(j=j-b0(2,y))}return j},BigNumber:function(d){return d.toNumber()},Fraction:function(d){return d.valueOf()},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),null:function(d){return 0},"Unit, string | Unit":function(d,p){return d.toNumber(p)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))});return l.fromJSON=function(u){return parseFloat(u.value)},l}),name$t="bignumber",dependencies$s=["typed","BigNumber"],createBignumber=factory(name$t,dependencies$s,e=>{var{typed:n,BigNumber:l}=e;return n("bignumber",{"":function(){return new l(0)},number:function(d){return new l(d+"")},string:function(d){var p=d.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(p){var y=p[2],o=l(p[1]),j=new l(2).pow(Number(y));if(o.gt(j.sub(1)))throw new SyntaxError('String "'.concat(d,'" is out of range'));var Re=new l(2).pow(Number(y)-1);return o.gte(Re)?o.sub(j):o}return new l(d)},BigNumber:function(d){return d},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),Fraction:function(d){return new l(d.n).div(d.d).times(d.s)},null:function(d){return new l(0)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))})}),name$s="fraction",dependencies$r=["typed","Fraction"],createFraction=factory(name$s,dependencies$r,e=>{var{typed:n,Fraction:l}=e;return n("fraction",{number:function(d){if(!isFinite(d)||isNaN(d))throw new Error(d+" cannot be represented as a fraction");return new l(d)},string:function(d){return new l(d)},"number, number":function(d,p){return new l(d,p)},null:function(d){return new l(0)},BigNumber:function(d){return new l(d.toString())},Fraction:function(d){return d},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),Object:function(d){return new l(d)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))})}),name$r="matrix",dependencies$q=["typed","Matrix","DenseMatrix","SparseMatrix"],createMatrix=factory(name$r,dependencies$q,e=>{var{typed:n,Matrix:l,DenseMatrix:u,SparseMatrix:d}=e;return n(name$r,{"":function(){return p([])},string:function(o){return p([],o)},"string, string":function(o,j){return p([],o,j)},Array:function(o){return p(o)},Matrix:function(o){return p(o,o.storage())},"Array | Matrix, string":p,"Array | Matrix, string, string":p});function p(y,o,j){if(o==="dense"||o==="default"||o===void 0)return new u(y,j);if(o==="sparse")return new d(y,j);throw new TypeError("Unknown matrix type "+JSON.stringify(o)+".")}}),name$q="unaryMinus",dependencies$p=["typed"],createUnaryMinus=factory(name$q,dependencies$p,e=>{var{typed:n}=e;return n(name$q,{number:unaryMinusNumber,"Complex | BigNumber | Fraction":l=>l.neg(),Unit:n.referToSelf(l=>u=>{var d=u.clone();return d.value=n.find(l,d.valueType())(u.value),d}),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$p="abs",dependencies$o=["typed"],createAbs=factory(name$p,dependencies$o,e=>{var{typed:n}=e;return n(name$p,{number:absNumber,"Complex | BigNumber | Fraction | Unit":l=>l.abs(),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$o="addScalar",dependencies$n=["typed"],createAddScalar=factory(name$o,dependencies$n,e=>{var{typed:n}=e;return n(name$o,{"number, number":addNumber,"Complex, Complex":function(u,d){return u.add(d)},"BigNumber, BigNumber":function(u,d){return u.plus(d)},"Fraction, Fraction":function(u,d){return u.add(d)},"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(u.value===null||u.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(d.value===null||d.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!u.equalBase(d))throw new Error("Units do not match");var p=u.clone();return p.value=n.find(l,[p.valueType(),d.valueType()])(p.value,d.value),p.fixPrefix=!1,p})})}),name$n="subtractScalar",dependencies$m=["typed"],createSubtractScalar=factory(name$n,dependencies$m,e=>{var{typed:n}=e;return n(name$n,{"number, number":subtractNumber,"Complex, Complex":function(u,d){return u.sub(d)},"BigNumber, BigNumber":function(u,d){return u.minus(d)},"Fraction, Fraction":function(u,d){return u.sub(d)},"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(u.value===null||u.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(d.value===null||d.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!u.equalBase(d))throw new Error("Units do not match");var p=u.clone();return p.value=n.find(l,[p.valueType(),d.valueType()])(p.value,d.value),p.fixPrefix=!1,p})})}),name$m="matAlgo11xS0s",dependencies$l=["typed","equalScalar"],createMatAlgo11xS0s=factory(name$m,dependencies$l,e=>{var{typed:n,equalScalar:l}=e;return function(d,p,y,o){var j=d._values,Re=d._index,_e=d._ptr,$=d._size,Je=d._datatype;if(!j)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Ve=$[0],Ze=$[1],Fe,st=l,tt=0,We=y;typeof Je=="string"&&(Fe=Je,st=n.find(l,[Fe,Fe]),tt=n.convert(0,Fe),p=n.convert(p,Fe),We=n.find(y,[Fe,Fe]));for(var Ue=[],Qe=[],He=[],tr=0;tr<Ze;tr++){He[tr]=Qe.length;for(var or=_e[tr],xt=_e[tr+1],Er=or;Er<xt;Er++){var _r=Re[Er],Sr=o?We(p,j[Er]):We(j[Er],p);st(Sr,tt)||(Qe.push(_r),Ue.push(Sr))}}return He[Ze]=Qe.length,d.createSparseMatrix({values:Ue,index:Qe,ptr:He,size:[Ve,Ze],datatype:Fe})}}),name$l="matAlgo14xDs",dependencies$k=["typed"],createMatAlgo14xDs=factory(name$l,dependencies$k,e=>{var{typed:n}=e;return function(d,p,y,o){var j=d._data,Re=d._size,_e=d._datatype,$,Je=y;typeof _e=="string"&&($=_e,p=n.convert(p,$),Je=n.find(y,[$,$]));var Ve=Re.length>0?l(Je,0,Re,Re[0],j,p,o):[];return d.createDenseMatrix({data:Ve,size:clone$2(Re),datatype:$})};function l(u,d,p,y,o,j,Re){var _e=[];if(d===p.length-1)for(var $=0;$<y;$++)_e[$]=Re?u(j,o[$]):u(o[$],j);else for(var Je=0;Je<y;Je++)_e[Je]=l(u,d+1,p,p[d+1],o[Je],j,Re);return _e}}),name$k="matAlgo13xDD",dependencies$j=["typed"],createMatAlgo13xDD=factory(name$k,dependencies$j,e=>{var{typed:n}=e;return function(d,p,y){var o=d._data,j=d._size,Re=d._datatype,_e=p._data,$=p._size,Je=p._datatype,Ve=[];if(j.length!==$.length)throw new DimensionError(j.length,$.length);for(var Ze=0;Ze<j.length;Ze++){if(j[Ze]!==$[Ze])throw new RangeError("Dimension mismatch. Matrix A ("+j+") must match Matrix B ("+$+")");Ve[Ze]=j[Ze]}var Fe,st=y;typeof Re=="string"&&Re===Je&&(Fe=Re,st=n.find(y,[Fe,Fe]));var tt=Ve.length>0?l(st,0,Ve,Ve[0],o,_e):[];return d.createDenseMatrix({data:tt,size:Ve,datatype:Fe})};function l(u,d,p,y,o,j){var Re=[];if(d===p.length-1)for(var _e=0;_e<y;_e++)Re[_e]=u(o[_e],j[_e]);else for(var $=0;$<y;$++)Re[$]=l(u,d+1,p,p[d+1],o[$],j[$]);return Re}}),name$j="broadcast",dependancies=["concat"],createBroadcast=factory(name$j,dependancies,e=>{var{concat:n}=e;return function(d,p){var y=Math.max(d._size.length,p._size.length);if(d._size.length===p._size.length&&d._size.every((Ze,Fe)=>Ze===p._size[Fe]))return[d,p];for(var o=l(d._size,y,0),j=l(p._size,y,0),Re=[],_e=0;_e<y;_e++)Re[_e]=Math.max(o[_e],j[_e]);checkBroadcastingRules(o,Re),checkBroadcastingRules(j,Re);var $=d.clone(),Je=p.clone();$._size.length<y?$.reshape(l($._size,y,1)):Je._size.length<y&&Je.reshape(l(Je._size,y,1));for(var Ve=0;Ve<y;Ve++)$._size[Ve]<Re[Ve]&&($=u($,Re[Ve],Ve)),Je._size[Ve]<Re[Ve]&&(Je=u(Je,Re[Ve],Ve));return[$,Je]};function l(d,p,y){return[...Array(p-d.length).fill(y),...d]}function u(d,p,y){return n(...Array(p).fill(d),y)}}),name$i="matrixAlgorithmSuite",dependencies$i=["typed","matrix","concat"],createMatrixAlgorithmSuite=factory(name$i,dependencies$i,e=>{var{typed:n,matrix:l,concat:u}=e,d=createMatAlgo13xDD({typed:n}),p=createMatAlgo14xDs({typed:n}),y=createBroadcast({concat:u});return function(j){var Re=j.elop,_e=j.SD||j.DS,$;Re?($={"DenseMatrix, DenseMatrix":(Fe,st)=>d(...y(Fe,st),Re),"Array, Array":(Fe,st)=>d(...y(l(Fe),l(st)),Re).valueOf(),"Array, DenseMatrix":(Fe,st)=>d(...y(l(Fe),st),Re),"DenseMatrix, Array":(Fe,st)=>d(...y(Fe,l(st)),Re)},j.SS&&($["SparseMatrix, SparseMatrix"]=(Fe,st)=>j.SS(...y(Fe,st),Re,!1)),j.DS&&($["DenseMatrix, SparseMatrix"]=(Fe,st)=>j.DS(...y(Fe,st),Re,!1),$["Array, SparseMatrix"]=(Fe,st)=>j.DS(...y(l(Fe),st),Re,!1)),_e&&($["SparseMatrix, DenseMatrix"]=(Fe,st)=>_e(...y(st,Fe),Re,!0),$["SparseMatrix, Array"]=(Fe,st)=>_e(...y(l(st),Fe),Re,!0))):($={"DenseMatrix, DenseMatrix":n.referToSelf(Fe=>(st,tt)=>d(...y(st,tt),Fe)),"Array, Array":n.referToSelf(Fe=>(st,tt)=>d(...y(l(st),l(tt)),Fe).valueOf()),"Array, DenseMatrix":n.referToSelf(Fe=>(st,tt)=>d(...y(l(st),tt),Fe)),"DenseMatrix, Array":n.referToSelf(Fe=>(st,tt)=>d(...y(st,l(tt)),Fe))},j.SS&&($["SparseMatrix, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.SS(...y(st,tt),Fe,!1))),j.DS&&($["DenseMatrix, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.DS(...y(st,tt),Fe,!1)),$["Array, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.DS(...y(l(st),tt),Fe,!1))),_e&&($["SparseMatrix, DenseMatrix"]=n.referToSelf(Fe=>(st,tt)=>_e(...y(tt,st),Fe,!0)),$["SparseMatrix, Array"]=n.referToSelf(Fe=>(st,tt)=>_e(...y(l(tt),st),Fe,!0))));var Je=j.scalar||"any",Ve=j.Ds||j.Ss;Ve&&(Re?($["DenseMatrix,"+Je]=(Fe,st)=>p(Fe,st,Re,!1),$[Je+", DenseMatrix"]=(Fe,st)=>p(st,Fe,Re,!0),$["Array,"+Je]=(Fe,st)=>p(l(Fe),st,Re,!1).valueOf(),$[Je+", Array"]=(Fe,st)=>p(l(st),Fe,Re,!0).valueOf()):($["DenseMatrix,"+Je]=n.referToSelf(Fe=>(st,tt)=>p(st,tt,Fe,!1)),$[Je+", DenseMatrix"]=n.referToSelf(Fe=>(st,tt)=>p(tt,st,Fe,!0)),$["Array,"+Je]=n.referToSelf(Fe=>(st,tt)=>p(l(st),tt,Fe,!1).valueOf()),$[Je+", Array"]=n.referToSelf(Fe=>(st,tt)=>p(l(tt),st,Fe,!0).valueOf())));var Ze=j.sS!==void 0?j.sS:j.Ss;return Re?(j.Ss&&($["SparseMatrix,"+Je]=(Fe,st)=>j.Ss(Fe,st,Re,!1)),Ze&&($[Je+", SparseMatrix"]=(Fe,st)=>Ze(st,Fe,Re,!0))):(j.Ss&&($["SparseMatrix,"+Je]=n.referToSelf(Fe=>(st,tt)=>j.Ss(st,tt,Fe,!1))),Ze&&($[Je+", SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>Ze(tt,st,Fe,!0)))),Re&&Re.signatures&&extend($,Re.signatures),$}}),name$h="matAlgo01xDSid",dependencies$h=["typed"],createMatAlgo01xDSid=factory(name$h,dependencies$h,e=>{var{typed:n}=e;return function(u,d,p,y){var o=u._data,j=u._size,Re=u._datatype,_e=d._values,$=d._index,Je=d._ptr,Ve=d._size,Ze=d._datatype;if(j.length!==Ve.length)throw new DimensionError(j.length,Ve.length);if(j[0]!==Ve[0]||j[1]!==Ve[1])throw new RangeError("Dimension mismatch. Matrix A ("+j+") must match Matrix B ("+Ve+")");if(!_e)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var Fe=j[0],st=j[1],tt=typeof Re=="string"&&Re===Ze?Re:void 0,We=tt?n.find(p,[tt,tt]):p,Ue,Qe,He=[];for(Ue=0;Ue<Fe;Ue++)He[Ue]=[];var tr=[],or=[];for(Qe=0;Qe<st;Qe++){for(var xt=Qe+1,Er=Je[Qe],_r=Je[Qe+1],Sr=Er;Sr<_r;Sr++)Ue=$[Sr],tr[Ue]=y?We(_e[Sr],o[Ue][Qe]):We(o[Ue][Qe],_e[Sr]),or[Ue]=xt;for(Ue=0;Ue<Fe;Ue++)or[Ue]===xt?He[Ue][Qe]=tr[Ue]:He[Ue][Qe]=o[Ue][Qe]}return u.createDenseMatrix({data:He,size:[Fe,st],datatype:tt})}}),name$g="matAlgo04xSidSid",dependencies$g=["typed","equalScalar"],createMatAlgo04xSidSid=factory(name$g,dependencies$g,e=>{var{typed:n,equalScalar:l}=e;return function(d,p,y){var o=d._values,j=d._index,Re=d._ptr,_e=d._size,$=d._datatype,Je=p._values,Ve=p._index,Ze=p._ptr,Fe=p._size,st=p._datatype;if(_e.length!==Fe.length)throw new DimensionError(_e.length,Fe.length);if(_e[0]!==Fe[0]||_e[1]!==Fe[1])throw new RangeError("Dimension mismatch. Matrix A ("+_e+") must match Matrix B ("+Fe+")");var tt=_e[0],We=_e[1],Ue,Qe=l,He=0,tr=y;typeof $=="string"&&$===st&&(Ue=$,Qe=n.find(l,[Ue,Ue]),He=n.convert(0,Ue),tr=n.find(y,[Ue,Ue]));var or=o&&Je?[]:void 0,xt=[],Er=[],_r=o&&Je?[]:void 0,Sr=o&&Je?[]:void 0,hr=[],Kr=[],Lr,Sa,br,Pa,la;for(Sa=0;Sa<We;Sa++){Er[Sa]=xt.length;var ya=Sa+1;for(Pa=Re[Sa],la=Re[Sa+1],br=Pa;br<la;br++)Lr=j[br],xt.push(Lr),hr[Lr]=ya,_r&&(_r[Lr]=o[br]);for(Pa=Ze[Sa],la=Ze[Sa+1],br=Pa;br<la;br++)if(Lr=Ve[br],hr[Lr]===ya){if(_r){var Rn=tr(_r[Lr],Je[br]);Qe(Rn,He)?hr[Lr]=null:_r[Lr]=Rn}}else xt.push(Lr),Kr[Lr]=ya,Sr&&(Sr[Lr]=Je[br]);if(_r&&Sr)for(br=Er[Sa];br<xt.length;)Lr=xt[br],hr[Lr]===ya?(or[br]=_r[Lr],br++):Kr[Lr]===ya?(or[br]=Sr[Lr],br++):xt.splice(br,1)}return Er[We]=xt.length,d.createSparseMatrix({values:or,index:xt,ptr:Er,size:[tt,We],datatype:Ue})}}),name$f="matAlgo10xSids",dependencies$f=["typed","DenseMatrix"],createMatAlgo10xSids=factory(name$f,dependencies$f,e=>{var{typed:n,DenseMatrix:l}=e;return function(d,p,y,o){var j=d._values,Re=d._index,_e=d._ptr,$=d._size,Je=d._datatype;if(!j)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Ve=$[0],Ze=$[1],Fe,st=y;typeof Je=="string"&&(Fe=Je,p=n.convert(p,Fe),st=n.find(y,[Fe,Fe]));for(var tt=[],We=[],Ue=[],Qe=0;Qe<Ze;Qe++){for(var He=Qe+1,tr=_e[Qe],or=_e[Qe+1],xt=tr;xt<or;xt++){var Er=Re[xt];We[Er]=j[xt],Ue[Er]=He}for(var _r=0;_r<Ve;_r++)Qe===0&&(tt[_r]=[]),Ue[_r]===He?tt[_r][Qe]=o?st(p,We[_r]):st(We[_r],p):tt[_r][Qe]=p}return new l({data:tt,size:[Ve,Ze],datatype:Fe})}}),name$e="multiplyScalar",dependencies$e=["typed"],createMultiplyScalar=factory(name$e,dependencies$e,e=>{var{typed:n}=e;return n("multiplyScalar",{"number, number":multiplyNumber,"Complex, Complex":function(u,d){return u.mul(d)},"BigNumber, BigNumber":function(u,d){return u.times(d)},"Fraction, Fraction":function(u,d){return u.mul(d)},"number | Fraction | BigNumber | Complex, Unit":(l,u)=>u.multiply(l),"Unit, number | Fraction | BigNumber | Complex | Unit":(l,u)=>l.multiply(u)})}),name$d="multiply",dependencies$d=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],createMultiply=factory(name$d,dependencies$d,e=>{var{typed:n,matrix:l,addScalar:u,multiplyScalar:d,equalScalar:p,dot:y}=e,o=createMatAlgo11xS0s({typed:n,equalScalar:p}),j=createMatAlgo14xDs({typed:n});function Re(He,tr){switch(He.length){case 1:switch(tr.length){case 1:if(He[0]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(He[0]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+He[0]+") must match Matrix rows ("+tr[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+tr.length+" dimensions)")}break;case 2:switch(tr.length){case 1:if(He[1]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+He[1]+") must match Vector length ("+tr[0]+")");break;case 2:if(He[1]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+He[1]+") must match Matrix B rows ("+tr[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+tr.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+He.length+" dimensions)")}}function _e(He,tr,or){if(or===0)throw new Error("Cannot multiply two empty vectors");return y(He,tr)}function $(He,tr){if(tr.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return Je(He,tr)}function Je(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._size,hr=tr._datatype,Kr=xt[0],Lr=Sr[1],Sa,br=u,Pa=d;Er&&hr&&Er===hr&&typeof Er=="string"&&(Sa=Er,br=n.find(u,[Sa,Sa]),Pa=n.find(d,[Sa,Sa]));for(var la=[],ya=0;ya<Lr;ya++){for(var Rn=Pa(or[0],_r[0][ya]),mn=1;mn<Kr;mn++)Rn=br(Rn,Pa(or[mn],_r[mn][ya]));la[ya]=Rn}return He.createDenseMatrix({data:la,size:[Lr],datatype:Sa})}var Ve=n("_multiplyMatrixVector",{"DenseMatrix, any":Fe,"SparseMatrix, any":We}),Ze=n("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":st,"DenseMatrix, SparseMatrix":tt,"SparseMatrix, DenseMatrix":Ue,"SparseMatrix, SparseMatrix":Qe});function Fe(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._datatype,hr=xt[0],Kr=xt[1],Lr,Sa=u,br=d;Er&&Sr&&Er===Sr&&typeof Er=="string"&&(Lr=Er,Sa=n.find(u,[Lr,Lr]),br=n.find(d,[Lr,Lr]));for(var Pa=[],la=0;la<hr;la++){for(var ya=or[la],Rn=br(ya[0],_r[0]),mn=1;mn<Kr;mn++)Rn=Sa(Rn,br(ya[mn],_r[mn]));Pa[la]=Rn}return He.createDenseMatrix({data:Pa,size:[hr],datatype:Lr})}function st(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._size,hr=tr._datatype,Kr=xt[0],Lr=xt[1],Sa=Sr[1],br,Pa=u,la=d;Er&&hr&&Er===hr&&typeof Er=="string"&&(br=Er,Pa=n.find(u,[br,br]),la=n.find(d,[br,br]));for(var ya=[],Rn=0;Rn<Kr;Rn++){var mn=or[Rn];ya[Rn]=[];for(var Fa=0;Fa<Sa;Fa++){for(var _n=la(mn[0],_r[0][Fa]),Ti=1;Ti<Lr;Ti++)_n=Pa(_n,la(mn[Ti],_r[Ti][Fa]));ya[Rn][Fa]=_n}}return He.createDenseMatrix({data:ya,size:[Kr,Sa],datatype:br})}function tt(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._values,Sr=tr._index,hr=tr._ptr,Kr=tr._size,Lr=tr._datatype;if(!_r)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var Sa=xt[0],br=Kr[1],Pa,la=u,ya=d,Rn=p,mn=0;Er&&Lr&&Er===Lr&&typeof Er=="string"&&(Pa=Er,la=n.find(u,[Pa,Pa]),ya=n.find(d,[Pa,Pa]),Rn=n.find(p,[Pa,Pa]),mn=n.convert(0,Pa));for(var Fa=[],_n=[],Ti=[],gi=tr.createSparseMatrix({values:Fa,index:_n,ptr:Ti,size:[Sa,br],datatype:Pa}),jn=0;jn<br;jn++){Ti[jn]=_n.length;var Qn=hr[jn],tn=hr[jn+1];if(tn>Qn)for(var Xn=0,ti=0;ti<Sa;ti++){for(var l0=ti+1,Pi=void 0,di=Qn;di<tn;di++){var ui=Sr[di];Xn!==l0?(Pi=ya(or[ti][ui],_r[di]),Xn=l0):Pi=la(Pi,ya(or[ti][ui],_r[di]))}Xn===l0&&!Rn(Pi,mn)&&(_n.push(ti),Fa.push(Pi))}}return Ti[br]=_n.length,gi}function We(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype;if(!or)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var Sr=tr._data,hr=tr._datatype,Kr=He._size[0],Lr=tr._size[0],Sa=[],br=[],Pa=[],la,ya=u,Rn=d,mn=p,Fa=0;_r&&hr&&_r===hr&&typeof _r=="string"&&(la=_r,ya=n.find(u,[la,la]),Rn=n.find(d,[la,la]),mn=n.find(p,[la,la]),Fa=n.convert(0,la));var _n=[],Ti=[];Pa[0]=0;for(var gi=0;gi<Lr;gi++){var jn=Sr[gi];if(!mn(jn,Fa))for(var Qn=Er[gi],tn=Er[gi+1],Xn=Qn;Xn<tn;Xn++){var ti=xt[Xn];Ti[ti]?_n[ti]=ya(_n[ti],Rn(jn,or[Xn])):(Ti[ti]=!0,br.push(ti),_n[ti]=Rn(jn,or[Xn]))}}for(var l0=br.length,Pi=0;Pi<l0;Pi++){var di=br[Pi];Sa[Pi]=_n[di]}return Pa[1]=br.length,He.createSparseMatrix({values:Sa,index:br,ptr:Pa,size:[Kr,1],datatype:la})}function Ue(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype;if(!or)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var Sr=tr._data,hr=tr._datatype,Kr=He._size[0],Lr=tr._size[0],Sa=tr._size[1],br,Pa=u,la=d,ya=p,Rn=0;_r&&hr&&_r===hr&&typeof _r=="string"&&(br=_r,Pa=n.find(u,[br,br]),la=n.find(d,[br,br]),ya=n.find(p,[br,br]),Rn=n.convert(0,br));for(var mn=[],Fa=[],_n=[],Ti=He.createSparseMatrix({values:mn,index:Fa,ptr:_n,size:[Kr,Sa],datatype:br}),gi=[],jn=[],Qn=0;Qn<Sa;Qn++){_n[Qn]=Fa.length;for(var tn=Qn+1,Xn=0;Xn<Lr;Xn++){var ti=Sr[Xn][Qn];if(!ya(ti,Rn))for(var l0=Er[Xn],Pi=Er[Xn+1],di=l0;di<Pi;di++){var ui=xt[di];jn[ui]!==tn?(jn[ui]=tn,Fa.push(ui),gi[ui]=la(ti,or[di])):gi[ui]=Pa(gi[ui],la(ti,or[di]))}}for(var Zi=_n[Qn],$i=Fa.length,n0=Zi;n0<$i;n0++){var fi=Fa[n0];mn[n0]=gi[fi]}}return _n[Sa]=Fa.length,Ti}function Qe(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype,Sr=tr._values,hr=tr._index,Kr=tr._ptr,Lr=tr._datatype,Sa=He._size[0],br=tr._size[1],Pa=or&&Sr,la,ya=u,Rn=d;_r&&Lr&&_r===Lr&&typeof _r=="string"&&(la=_r,ya=n.find(u,[la,la]),Rn=n.find(d,[la,la]));for(var mn=Pa?[]:void 0,Fa=[],_n=[],Ti=He.createSparseMatrix({values:mn,index:Fa,ptr:_n,size:[Sa,br],datatype:la}),gi=Pa?[]:void 0,jn=[],Qn,tn,Xn,ti,l0,Pi,di,ui,Zi=0;Zi<br;Zi++){_n[Zi]=Fa.length;var $i=Zi+1;for(l0=Kr[Zi],Pi=Kr[Zi+1],ti=l0;ti<Pi;ti++)if(ui=hr[ti],Pa)for(tn=Er[ui],Xn=Er[ui+1],Qn=tn;Qn<Xn;Qn++)di=xt[Qn],jn[di]!==$i?(jn[di]=$i,Fa.push(di),gi[di]=Rn(Sr[ti],or[Qn])):gi[di]=ya(gi[di],Rn(Sr[ti],or[Qn]));else for(tn=Er[ui],Xn=Er[ui+1],Qn=tn;Qn<Xn;Qn++)di=xt[Qn],jn[di]!==$i&&(jn[di]=$i,Fa.push(di));if(Pa)for(var n0=_n[Zi],fi=Fa.length,ri=n0;ri<fi;ri++){var Oi=Fa[ri];mn[ri]=gi[Oi]}}return _n[br]=Fa.length,Ti}return n(name$d,d,{"Array, Array":n.referTo("Matrix, Matrix",He=>(tr,or)=>{Re(arraySize(tr),arraySize(or));var xt=He(l(tr),l(or));return isMatrix(xt)?xt.valueOf():xt}),"Matrix, Matrix":function(tr,or){var xt=tr.size(),Er=or.size();return Re(xt,Er),xt.length===1?Er.length===1?_e(tr,or,xt[0]):$(tr,or):Er.length===1?Ve(tr,or):Ze(tr,or)},"Matrix, Array":n.referTo("Matrix,Matrix",He=>(tr,or)=>He(tr,l(or))),"Array, Matrix":n.referToSelf(He=>(tr,or)=>He(l(tr,or.storage()),or)),"SparseMatrix, any":function(tr,or){return o(tr,or,d,!1)},"DenseMatrix, any":function(tr,or){return j(tr,or,d,!1)},"any, SparseMatrix":function(tr,or){return o(or,tr,d,!0)},"any, DenseMatrix":function(tr,or){return j(or,tr,d,!0)},"Array, any":function(tr,or){return j(l(tr),or,d,!1).valueOf()},"any, Array":function(tr,or){return j(l(or),tr,d,!0).valueOf()},"any, any":d,"any, any, ...any":n.referToSelf(He=>(tr,or,xt)=>{for(var Er=He(tr,or),_r=0;_r<xt.length;_r++)Er=He(Er,xt[_r]);return Er})})}),name$c="conj",dependencies$c=["typed"],createConj=factory(name$c,dependencies$c,e=>{var{typed:n}=e;return n(name$c,{"number | BigNumber | Fraction":l=>l,Complex:l=>l.conjugate(),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$b="concat",dependencies$b=["typed","matrix","isInteger"],createConcat=factory(name$b,dependencies$b,e=>{var{typed:n,matrix:l,isInteger:u}=e;return n(name$b,{"...Array | Matrix | number | BigNumber":function(p){var y,o=p.length,j=-1,Re,_e=!1,$=[];for(y=0;y<o;y++){var Je=p[y];if(isMatrix(Je)&&(_e=!0),isNumber(Je)||isBigNumber(Je)){if(y!==o-1)throw new Error("Dimension must be specified as last argument");if(Re=j,j=Je.valueOf(),!u(j))throw new TypeError("Integer number expected for dimension");if(j<0||y>0&&j>Re)throw new IndexError(j,Re+1)}else{var Ve=clone$2(Je).valueOf(),Ze=arraySize(Ve);if($[y]=Ve,Re=j,j=Ze.length-1,y>0&&j!==Re)throw new DimensionError(Re+1,j+1)}}if($.length===0)throw new SyntaxError("At least one matrix expected");for(var Fe=$.shift();$.length;)Fe=concat$1(Fe,$.shift(),j);return _e?l(Fe):Fe},"...string":function(p){return p.join("")}})}),name$a="identity",dependencies$a=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],createIdentity=factory(name$a,dependencies$a,e=>{var{typed:n,config:l,matrix:u,BigNumber:d,DenseMatrix:p,SparseMatrix:y}=e;return n(name$a,{"":function(){return l.matrix==="Matrix"?u([]):[]},string:function(_e){return u(_e)},"number | BigNumber":function(_e){return j(_e,_e,l.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(_e,$){return j(_e,_e,$)},"number | BigNumber, number | BigNumber":function(_e,$){return j(_e,$,l.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(_e,$,Je){return j(_e,$,Je)},Array:function(_e){return o(_e)},"Array, string":function(_e,$){return o(_e,$)},Matrix:function(_e){return o(_e.valueOf(),_e.storage())},"Matrix, string":function(_e,$){return o(_e.valueOf(),$)}});function o(Re,_e){switch(Re.length){case 0:return _e?u(_e):[];case 1:return j(Re[0],Re[0],_e);case 2:return j(Re[0],Re[1],_e);default:throw new Error("Vector containing two values expected")}}function j(Re,_e,$){var Je=isBigNumber(Re)||isBigNumber(_e)?d:null;if(isBigNumber(Re)&&(Re=Re.toNumber()),isBigNumber(_e)&&(_e=_e.toNumber()),!isInteger$1(Re)||Re<1)throw new Error("Parameters in function identity must be positive integers");if(!isInteger$1(_e)||_e<1)throw new Error("Parameters in function identity must be positive integers");var Ve=Je?new d(1):1,Ze=Je?new Je(0):0,Fe=[Re,_e];if($){if($==="sparse")return y.diagonal(Fe,Ve,0,Ze);if($==="dense")return p.diagonal(Fe,Ve,0,Ze);throw new TypeError('Unknown matrix type "'.concat($,'"'))}for(var st=resize([],Fe,Ze),tt=Re<_e?Re:_e,We=0;We<tt;We++)st[We][We]=Ve;return st}});function noBignumber(){throw new Error('No "bignumber" implementation available')}function noFraction(){throw new Error('No "fraction" implementation available')}function noMatrix(){throw new Error('No "matrix" implementation available')}var name$9="size",dependencies$9=["typed","config","?matrix"],createSize=factory(name$9,dependencies$9,e=>{var{typed:n,config:l,matrix:u}=e;return n(name$9,{Matrix:function(p){return p.create(p.size())},Array:arraySize,string:function(p){return l.matrix==="Array"?[p.length]:u([p.length])},"number | Complex | BigNumber | Unit | boolean | null":function(p){return l.matrix==="Array"?[]:u?u([]):noMatrix()}})}),name$8="transpose",dependencies$8=["typed","matrix"],createTranspose=factory(name$8,dependencies$8,e=>{var{typed:n,matrix:l}=e;return n(name$8,{Array:y=>u(l(y)).valueOf(),Matrix:u,any:clone$2});function u(y){var o=y.size(),j;switch(o.length){case 1:j=y.clone();break;case 2:{var Re=o[0],_e=o[1];if(_e===0)throw new RangeError("Cannot transpose a 2D matrix with no columns (size: "+format(o)+")");switch(y.storage()){case"dense":j=d(y,Re,_e);break;case"sparse":j=p(y,Re,_e);break}}break;default:throw new RangeError("Matrix must be a vector or two dimensional (size: "+format(o)+")")}return j}function d(y,o,j){for(var Re=y._data,_e=[],$,Je=0;Je<j;Je++){$=_e[Je]=[];for(var Ve=0;Ve<o;Ve++)$[Ve]=clone$2(Re[Ve][Je])}return y.createDenseMatrix({data:_e,size:[j,o],datatype:y._datatype})}function p(y,o,j){for(var Re=y._values,_e=y._index,$=y._ptr,Je=Re?[]:void 0,Ve=[],Ze=[],Fe=[],st=0;st<o;st++)Fe[st]=0;var tt,We,Ue;for(tt=0,We=_e.length;tt<We;tt++)Fe[_e[tt]]++;for(var Qe=0,He=0;He<o;He++)Ze.push(Qe),Qe+=Fe[He],Fe[He]=Ze[He];for(Ze.push(Qe),Ue=0;Ue<j;Ue++)for(var tr=$[Ue],or=$[Ue+1],xt=tr;xt<or;xt++){var Er=Fe[_e[xt]]++;Ve[Er]=Ue,Re&&(Je[Er]=clone$2(Re[xt]))}return y.createSparseMatrix({values:Je,index:Ve,ptr:Ze,size:[j,o],datatype:y._datatype})}});function improveErrorMessage(e,n,l){var u;return String(e).indexOf("Unexpected type")!==-1?(u=arguments.length>2?" (type: "+typeOf(l)+", value: "+JSON.stringify(l)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+n+", unexpected type of argument"+u)):String(e).indexOf("complex numbers")!==-1?(u=arguments.length>2?" (type: "+typeOf(l)+", value: "+JSON.stringify(l)+")":"",new TypeError("Cannot calculate "+n+", no ordering relation is defined for complex numbers"+u)):e}var name$7="numeric",dependencies$7=["number","?bignumber","?fraction"],createNumeric=factory(name$7,dependencies$7,e=>{var{number:n,bignumber:l,fraction:u}=e,d={string:!0,number:!0,BigNumber:!0,Fraction:!0},p={number:y=>n(y),BigNumber:l?y=>l(y):noBignumber,Fraction:u?y=>u(y):noFraction};return function(o){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",Re=arguments.length>2?arguments[2]:void 0;if(Re!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var _e=typeOf(o);if(!(_e in d))throw new TypeError("Cannot convert "+o+' of type "'+_e+'"; valid input types are '+Object.keys(d).join(", "));if(!(j in p))throw new TypeError("Cannot convert "+o+' to type "'+j+'"; valid output types are '+Object.keys(p).join(", "));return j===_e?o:p[j](o)}}),name$6="divideScalar",dependencies$6=["typed","numeric"],createDivideScalar=factory(name$6,dependencies$6,e=>{var{typed:n,numeric:l}=e;return n(name$6,{"number, number":function(d,p){return d/p},"Complex, Complex":function(d,p){return d.div(p)},"BigNumber, BigNumber":function(d,p){return d.div(p)},"Fraction, Fraction":function(d,p){return d.div(p)},"Unit, number | Complex | Fraction | BigNumber | Unit":(u,d)=>u.divide(d),"number | Fraction | Complex | BigNumber, Unit":(u,d)=>d.divideInto(u)})}),name$5="add",dependencies$5=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],createAdd=factory(name$5,dependencies$5,e=>{var{typed:n,matrix:l,addScalar:u,equalScalar:d,DenseMatrix:p,SparseMatrix:y,concat:o}=e,j=createMatAlgo01xDSid({typed:n}),Re=createMatAlgo04xSidSid({typed:n,equalScalar:d}),_e=createMatAlgo10xSids({typed:n,DenseMatrix:p}),$=createMatrixAlgorithmSuite({typed:n,matrix:l,concat:o});return n(name$5,{"any, any":u,"any, any, ...any":n.referToSelf(Je=>(Ve,Ze,Fe)=>{for(var st=Je(Ve,Ze),tt=0;tt<Fe.length;tt++)st=Je(st,Fe[tt]);return st})},$({elop:u,DS:j,SS:Re,Ss:_e}))}),name$4="dot",dependencies$4=["typed","addScalar","multiplyScalar","conj","size"],createDot=factory(name$4,dependencies$4,e=>{var{typed:n,addScalar:l,multiplyScalar:u,conj:d,size:p}=e;return n(name$4,{"Array | DenseMatrix, Array | DenseMatrix":o,"SparseMatrix, SparseMatrix":j});function y(_e,$){var Je=Re(_e),Ve=Re($),Ze,Fe;if(Je.length===1)Ze=Je[0];else if(Je.length===2&&Je[1]===1)Ze=Je[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+Je.join(", ")+")");if(Ve.length===1)Fe=Ve[0];else if(Ve.length===2&&Ve[1]===1)Fe=Ve[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+Ve.join(", ")+")");if(Ze!==Fe)throw new RangeError("Vectors must have equal length ("+Ze+" != "+Fe+")");if(Ze===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return Ze}function o(_e,$){var Je=y(_e,$),Ve=isMatrix(_e)?_e._data:_e,Ze=isMatrix(_e)?_e._datatype:void 0,Fe=isMatrix($)?$._data:$,st=isMatrix($)?$._datatype:void 0,tt=Re(_e).length===2,We=Re($).length===2,Ue=l,Qe=u;if(Ze&&st&&Ze===st&&typeof Ze=="string"){var He=Ze;Ue=n.find(l,[He,He]),Qe=n.find(u,[He,He])}if(!tt&&!We){for(var tr=Qe(d(Ve[0]),Fe[0]),or=1;or<Je;or++)tr=Ue(tr,Qe(d(Ve[or]),Fe[or]));return tr}if(!tt&&We){for(var xt=Qe(d(Ve[0]),Fe[0][0]),Er=1;Er<Je;Er++)xt=Ue(xt,Qe(d(Ve[Er]),Fe[Er][0]));return xt}if(tt&&!We){for(var _r=Qe(d(Ve[0][0]),Fe[0]),Sr=1;Sr<Je;Sr++)_r=Ue(_r,Qe(d(Ve[Sr][0]),Fe[Sr]));return _r}if(tt&&We){for(var hr=Qe(d(Ve[0][0]),Fe[0][0]),Kr=1;Kr<Je;Kr++)hr=Ue(hr,Qe(d(Ve[Kr][0]),Fe[Kr][0]));return hr}}function j(_e,$){y(_e,$);for(var Je=_e._index,Ve=_e._values,Ze=$._index,Fe=$._values,st=0,tt=l,We=u,Ue=0,Qe=0;Ue<Je.length&&Qe<Ze.length;){var He=Je[Ue],tr=Ze[Qe];if(He<tr){Ue++;continue}if(He>tr){Qe++;continue}He===tr&&(st=tt(st,We(Ve[Ue],Fe[Qe])),Ue++,Qe++)}return st}function Re(_e){return isMatrix(_e)?_e.size():p(_e)}}),name$3="det",dependencies$3=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],createDet=factory(name$3,dependencies$3,e=>{var{typed:n,matrix:l,subtractScalar:u,multiply:d,divideScalar:p,isZero:y,unaryMinus:o}=e;return n(name$3,{any:function(_e){return clone$2(_e)},"Array | Matrix":function(_e){var $;switch(isMatrix(_e)?$=_e.size():Array.isArray(_e)?(_e=l(_e),$=_e.size()):$=[],$.length){case 0:return clone$2(_e);case 1:if($[0]===1)return clone$2(_e.valueOf()[0]);if($[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+format($)+")");case 2:{var Je=$[0],Ve=$[1];if(Je===Ve)return j(_e.clone().valueOf(),Je);if(Ve===0)return 1;throw new RangeError("Matrix must be square (size: "+format($)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+format($)+")")}}});function j(Re,_e,$){if(_e===1)return clone$2(Re[0][0]);if(_e===2)return u(d(Re[0][0],Re[1][1]),d(Re[1][0],Re[0][1]));for(var Je=!1,Ve=new Array(_e).fill(0).map((or,xt)=>xt),Ze=0;Ze<_e;Ze++){var Fe=Ve[Ze];if(y(Re[Fe][Ze])){var st=void 0;for(st=Ze+1;st<_e;st++)if(!y(Re[Ve[st]][Ze])){Fe=Ve[st],Ve[st]=Ve[Ze],Ve[Ze]=Fe,Je=!Je;break}if(st===_e)return Re[Fe][Ze]}for(var tt=Re[Fe][Ze],We=Ze===0?1:Re[Ve[Ze-1]][Ze-1],Ue=Ze+1;Ue<_e;Ue++)for(var Qe=Ve[Ue],He=Ze+1;He<_e;He++)Re[Qe][He]=p(u(d(Re[Qe][He],tt),d(Re[Qe][Ze],Re[Fe][He])),We)}var tr=Re[Ve[_e-1]][_e-1];return Je?o(tr):tr}}),name$2="inv",dependencies$2=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],createInv=factory(name$2,dependencies$2,e=>{var{typed:n,matrix:l,divideScalar:u,addScalar:d,multiply:p,unaryMinus:y,det:o,identity:j,abs:Re}=e;return n(name$2,{"Array | Matrix":function(Je){var Ve=isMatrix(Je)?Je.size():arraySize(Je);switch(Ve.length){case 1:if(Ve[0]===1)return isMatrix(Je)?l([u(1,Je.valueOf()[0])]):[u(1,Je[0])];throw new RangeError("Matrix must be square (size: "+format(Ve)+")");case 2:{var Ze=Ve[0],Fe=Ve[1];if(Ze===Fe)return isMatrix(Je)?l(_e(Je.valueOf(),Ze,Fe),Je.storage()):_e(Je,Ze,Fe);throw new RangeError("Matrix must be square (size: "+format(Ve)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+format(Ve)+")")}},any:function(Je){return u(1,Je)}});function _e($,Je,Ve){var Ze,Fe,st,tt,We;if(Je===1){if(tt=$[0][0],tt===0)throw Error("Cannot calculate inverse, determinant is zero");return[[u(1,tt)]]}else if(Je===2){var Ue=o($);if(Ue===0)throw Error("Cannot calculate inverse, determinant is zero");return[[u($[1][1],Ue),u(y($[0][1]),Ue)],[u(y($[1][0]),Ue),u($[0][0],Ue)]]}else{var Qe=$.concat();for(Ze=0;Ze<Je;Ze++)Qe[Ze]=Qe[Ze].concat();for(var He=j(Je).valueOf(),tr=0;tr<Ve;tr++){var or=Re(Qe[tr][tr]),xt=tr;for(Ze=tr+1;Ze<Je;)Re(Qe[Ze][tr])>or&&(or=Re(Qe[Ze][tr]),xt=Ze),Ze++;if(or===0)throw Error("Cannot calculate inverse, determinant is zero");Ze=xt,Ze!==tr&&(We=Qe[tr],Qe[tr]=Qe[Ze],Qe[Ze]=We,We=He[tr],He[tr]=He[Ze],He[Ze]=We);var Er=Qe[tr],_r=He[tr];for(Ze=0;Ze<Je;Ze++){var Sr=Qe[Ze],hr=He[Ze];if(Ze!==tr){if(Sr[tr]!==0){for(st=u(y(Sr[tr]),Er[tr]),Fe=tr;Fe<Ve;Fe++)Sr[Fe]=d(Sr[Fe],p(st,Er[Fe]));for(Fe=0;Fe<Ve;Fe++)hr[Fe]=d(hr[Fe],p(st,_r[Fe]))}}else{for(st=Er[tr],Fe=tr;Fe<Ve;Fe++)Sr[Fe]=u(Sr[Fe],st);for(Fe=0;Fe<Ve;Fe++)hr[Fe]=u(hr[Fe],st)}}}return He}}}),name$1="sum",dependencies$1=["typed","config","add","numeric"],createSum=factory(name$1,dependencies$1,e=>{var{typed:n,config:l,add:u,numeric:d}=e;return n(name$1,{"Array | Matrix":p,"Array | Matrix, number | BigNumber":y,"...":function(j){if(containsCollections(j))throw new TypeError("Scalar values expected in function sum");return p(j)}});function p(o){var j;return deepForEach(o,function(Re){try{j=j===void 0?Re:u(j,Re)}catch(_e){throw improveErrorMessage(_e,"sum",Re)}}),j===void 0&&(j=d(0,l.number)),typeof j=="string"&&(j=d(j,l.number)),j}function y(o,j){try{var Re=reduce(o,j,u);return Re}catch(_e){throw improveErrorMessage(_e,"sum")}}}),BigNumber=createBigNumberClass({config:config$1}),Complex=createComplexClass({}),Fraction=createFractionClass({}),Matrix=createMatrixClass({}),DenseMatrix=createDenseMatrixClass({Matrix}),typed=createTyped({BigNumber,Complex,DenseMatrix,Fraction}),abs=createAbs({typed}),addScalar=createAddScalar({typed}),bignumber=createBignumber({BigNumber,typed}),conj=createConj({typed}),equalScalar=createEqualScalar({config:config$1,typed}),isInteger=createIsInteger({typed}),isZero=createIsZero({typed}),multiplyScalar=createMultiplyScalar({typed}),number=createNumber({typed}),SparseMatrix=createSparseMatrixClass({Matrix,equalScalar,typed}),subtractScalar=createSubtractScalar({typed}),unaryMinus=createUnaryMinus({typed}),fraction=createFraction({Fraction,typed}),matrix=createMatrix({DenseMatrix,Matrix,SparseMatrix,typed}),numeric=createNumeric({bignumber,fraction,number}),size=createSize({matrix,config:config$1,typed}),transpose=createTranspose({matrix,typed}),concat=createConcat({isInteger,matrix,typed}),divideScalar=createDivideScalar({numeric,typed}),identity=createIdentity({BigNumber,DenseMatrix,SparseMatrix,config:config$1,matrix,typed}),add=createAdd({DenseMatrix,SparseMatrix,addScalar,concat,equalScalar,matrix,typed}),dot=createDot({addScalar,conj,multiplyScalar,size,typed}),multiply=createMultiply({addScalar,dot,equalScalar,matrix,multiplyScalar,typed}),sum=createSum({add,config:config$1,numeric,typed}),det=createDet({divideScalar,isZero,matrix,multiply,subtractScalar,typed,unaryMinus}),inv=createInv({abs,addScalar,det,divideScalar,identity,matrix,multiply,typed,unaryMinus});function predictObservations(e,n,l,u){let{observations:d}=n;return d.length>1?predictOptimize(e,n,u):predictBeforeAT(e,n,l,u)}function predictBeforeAT(e,n,l,u){let{images:d,cameras:p,coordinateSystem:y}=e;if(y.type===1)return{predicts:{}};let o={};p.forEach($=>o[$.camera_id]=$);let{coordinate:j}=n,Re=fromValues$1(0,0,0);if(l.type===1)Re=fromValues$1(j[1],j[1],j[2]);else{let $=transformCoordinateToLngLat(j,l),Je=y.origin_point,Ve=satellite_geo_calc.coordinateTransfer.lla_to_enu({lon:$[0],lat:$[1],alt:$[2]||0},{lon:Je[0],lat:Je[1],alt:Je[2]});Re=fromValues$1(Ve.x,Ve.y,Ve.z)}let _e={};return d.forEach($=>{let{img_id:Je,camera_id:Ve,projection_matrix:Ze,image_rect:Fe}=$,st=o[Ve].camera_params,{width:tt,height:We}=Fe,Ue=Ze,Qe=fromValues$3(Ue[0],Ue[4],Ue[8],Ue[1],Ue[5],Ue[9],Ue[2],Ue[6],Ue[10]),He=fromValues$1(Ue[3],Ue[7],Ue[11]),tr=fromValues$3(st[0],0,0,0,st[1],0,st[2],st[3],1),or=transformMat3(create$2(),add$4(create$2(),transformMat3(create$2(),Re,Qe),He),tr),xt=scale(create$2,or,1/or[2]);if(xt[0]>0&&xt[0]<tt&&xt[1]>0&&xt[1]<We){let Er=fromValues$1(xt[0],xt[1],1),_r=transformMat3(create$2(),Er,invert(create$4(),tr)),Sr=distortPoint(_r,st);xt=transformMat3(create$2(),fromValues$1(...Sr,1),tr),_e[Je]=[xt[0],xt[1]],u&&($.predict={uv:[xt[0],xt[1]],position:{left:xt[0]*100/tt,top:xt[1]*100/We},distance:Math.hypot(xt[0]-tt/2,xt[1]-We/2)})}else u&&($.predict=void 0)}),{predicts:_e}}function predictOptimize(e,n,l){let{images:u,cameras:d}=e,{observations:p}=n,y={};d.forEach(Ue=>y[Ue.camera_id]=Ue);let o={},j=[],Re=new Map;p.forEach(Ue=>Re.set(Ue.id,Ue.uv)),u.forEach(Ue=>{if(!Re.has(Ue.img_id)){Ue.observation=void 0;return}Ue.observation={id:Ue.img_id,uv:Re.get(Ue.img_id)},j.push(Ue)});let _e=[],$=[];j.forEach(Ue=>{let Qe=Ue.projection_matrix,He=y[Ue.camera_id].camera_params,tr=undistortPoint(Ue.observation.uv,He),or=fromValues$3(Qe[0],Qe[4],Qe[8],Qe[1],Qe[5],Qe[9],Qe[2],Qe[6],Qe[10]),xt=fromValues$1(Qe[3],Qe[7],Qe[11]),Er=fromValues$3(He[0],0,0,0,He[1],0,He[2],He[3],1),_r=invert(create$4(),Er),Sr=transformMat3(create$2(),tr,_r);_e.push([or[0]-or[2]*Sr[0],or[3]-or[5]*Sr[0],or[6]-or[8]*Sr[0]]),_e.push([or[1]-or[2]*Sr[1],or[4]-or[5]*Sr[1],or[7]-or[8]*Sr[1]]),$.push(xt[2]*Sr[0]-xt[0],xt[2]*Sr[1]-xt[1])});let Je=matrix(_e),Ve=matrix($),Ze=transpose(Je),Fe=multiply(multiply(inv(multiply(Ze,Je)),Ze),Ve),st=fromValues$1(Fe.get([0]),Fe.get([1]),Fe.get([2])),tt=0,We=[];return u.forEach(Ue=>{let{img_id:Qe,camera_id:He,projection_matrix:tr,image_rect:or}=Ue,xt=y[He].camera_params,{width:Er,height:_r}=or,Sr=tr,hr=fromValues$3(Sr[0],Sr[4],Sr[8],Sr[1],Sr[5],Sr[9],Sr[2],Sr[6],Sr[10]),Kr=fromValues$1(Sr[3],Sr[7],Sr[11]),Lr=fromValues$3(xt[0],0,0,0,xt[1],0,xt[2],xt[3],1),Sa=add$4(create$2(),transformMat3(create$2(),st,hr),Kr),br=transformMat3(create$2(),fromValues$1(Sa[0]/Sa[2],Sa[1]/Sa[2],1),Lr);if(br[0]>0&&br[0]<Er&&br[1]>0&&br[1]<_r){let Pa=fromValues$1(...br,1),la=transformMat3(create$2(),Pa,invert(create$4(),Lr)),ya=distortPoint(la,xt);if(br=transformMat3(create$2(),fromValues$1(...ya,1),Lr),Ue.observation){l&&(Ue.predict={uv:Ue.observation.uv,position:{left:Ue.observation.uv[0]*100/Er,top:Ue.observation.uv[1]*100/_r},distance:Math.hypot(Ue.observation.uv[0]-Er/2,Ue.observation.uv[1]-_r/2)});let Rn=Ue.observation.uv;We.push(Math.sqrt((br[0]-Rn[0])*(br[0]-Rn[0])+(br[1]-Rn[1])*(br[1]-Rn[1])))}else o[Qe]=[br[0],br[1]],l&&(Ue.predict={uv:[br[0],br[1]],position:{left:br[0]*100/Er,top:br[1]*100/_r},distance:Math.hypot(br[0]-Er/2,br[1]-_r/2)})}else l&&(Ue.predict=void 0)}),tt=sum(We)/We.length,{predicts:o,residual_rmse:tt}}function undistortPoint(e,n){let l=fromValues$3(n[0],0,0,0,n[1],0,n[2],n[3],1),u=transformMat3(create$2(),fromValues$1(...e,1),invert(create$4(),l)),d=100,p=1e-10,y=fromValues(u[0],u[1]),o=subtract(create$1(),distortPoint(y,n),y),j=subtract(create$1(),add$3(create$1(),y,o),u);for(;Math.abs(j[0])+Math.abs(j[1])>p&&d-- >0;)y=subtract(create$1(),u,o),o=subtract(create$1(),distortPoint(y,n),y),j=subtract(create$1(),add$3(create$1(),y,o),u);return transformMat3(create$2(),fromValues$1(...y,1),l)}function distortPoint(e,n){let l=[e[0],e[1]],u=l[0]*l[0]+l[1]*l[1],d=Math.pow(u,2),p=Math.pow(u,3),y=[l[0]*(1+n[4]*u+n[5]*d+n[6]*p)+2*n[7]*l[0]*l[1]+n[8]*(u+2*l[0]*l[0]),l[1]*(1+n[4]*u+n[5]*d+n[6]*p)+2*n[8]*l[0]*l[1]+n[7]*(u+2*l[1]*l[1])];return fromValues(...y)}var ieee754$1={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ieee754$1.read=function(e,n,l,u,d){var p,y,o=d*8-u-1,j=(1<<o)-1,Re=j>>1,_e=-7,$=l?d-1:0,Je=l?-1:1,Ve=e[n+$];for($+=Je,p=Ve&(1<<-_e)-1,Ve>>=-_e,_e+=o;_e>0;p=p*256+e[n+$],$+=Je,_e-=8);for(y=p&(1<<-_e)-1,p>>=-_e,_e+=u;_e>0;y=y*256+e[n+$],$+=Je,_e-=8);if(p===0)p=1-Re;else{if(p===j)return y?NaN:(Ve?-1:1)*(1/0);y=y+Math.pow(2,u),p=p-Re}return(Ve?-1:1)*y*Math.pow(2,p-u)};ieee754$1.write=function(e,n,l,u,d,p){var y,o,j,Re=p*8-d-1,_e=(1<<Re)-1,$=_e>>1,Je=d===23?Math.pow(2,-24)-Math.pow(2,-77):0,Ve=u?0:p-1,Ze=u?1:-1,Fe=n<0||n===0&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(o=isNaN(n)?1:0,y=_e):(y=Math.floor(Math.log(n)/Math.LN2),n*(j=Math.pow(2,-y))<1&&(y--,j*=2),y+$>=1?n+=Je/j:n+=Je*Math.pow(2,1-$),n*j>=2&&(y++,j/=2),y+$>=_e?(o=0,y=_e):y+$>=1?(o=(n*j-1)*Math.pow(2,d),y=y+$):(o=n*Math.pow(2,$-1)*Math.pow(2,d),y=0));d>=8;e[l+Ve]=o&255,Ve+=Ze,o/=256,d-=8);for(y=y<<d|o,Re+=d;Re>0;e[l+Ve]=y&255,Ve+=Ze,y/=256,Re-=8);e[l+Ve-Ze]|=Fe*128};var pbf=Pbf,ieee754=ieee754$1;function Pbf(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}Pbf.Varint=0;Pbf.Fixed64=1;Pbf.Bytes=2;Pbf.Fixed32=5;var SHIFT_LEFT_32=(1<<16)*(1<<16),SHIFT_RIGHT_32=1/SHIFT_LEFT_32,TEXT_DECODER_MIN_LENGTH=12,utf8TextDecoder=typeof TextDecoder=="undefined"?null:new TextDecoder("utf8");Pbf.prototype={destroy:function(){this.buf=null},readFields:function(e,n,l){for(l=l||this.length;this.pos<l;){var u=this.readVarint(),d=u>>3,p=this.pos;this.type=u&7,e(d,n,this),this.pos===p&&this.skip(u)}return n},readMessage:function(e,n){return this.readFields(e,n,this.readVarint()+this.pos)},readFixed32:function(){var e=readUInt32(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=readInt32(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=readUInt32(this.buf,this.pos)+readUInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,e},readSFixed64:function(){var e=readUInt32(this.buf,this.pos)+readInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,e},readFloat:function(){var e=ieee754.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=ieee754.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var n=this.buf,l,u;return u=n[this.pos++],l=u&127,u<128||(u=n[this.pos++],l|=(u&127)<<7,u<128)||(u=n[this.pos++],l|=(u&127)<<14,u<128)||(u=n[this.pos++],l|=(u&127)<<21,u<128)?l:(u=n[this.pos],l|=(u&15)<<28,readVarintRemainder(l,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,n=this.pos;return this.pos=e,e-n>=TEXT_DECODER_MIN_LENGTH&&utf8TextDecoder?readUtf8TextDecoder(this.buf,n,e):readUtf8(this.buf,n,e)},readBytes:function(){var e=this.readVarint()+this.pos,n=this.buf.subarray(this.pos,e);return this.pos=e,n},readPackedVarint:function(e,n){if(this.type!==Pbf.Bytes)return e.push(this.readVarint(n));var l=readPackedEnd(this);for(e=e||[];this.pos<l;)e.push(this.readVarint(n));return e},readPackedSVarint:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSVarint());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readBoolean());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFloat());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readDouble());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFixed32());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSFixed32());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFixed64());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSFixed64());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSFixed64());return e},skip:function(e){var n=e&7;if(n===Pbf.Varint)for(;this.buf[this.pos++]>127;);else if(n===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(n===Pbf.Fixed32)this.pos+=4;else if(n===Pbf.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+n)},writeTag:function(e,n){this.writeVarint(e<<3|n)},realloc:function(e){for(var n=this.length||16;n<this.pos+e;)n*=2;if(n!==this.length){var l=new Uint8Array(n);l.set(this.buf),this.buf=l,this.length=n}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),writeInt32(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),writeInt32(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),writeInt32(this.buf,e&-1,this.pos),writeInt32(this.buf,Math.floor(e*SHIFT_RIGHT_32),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),writeInt32(this.buf,e&-1,this.pos),writeInt32(this.buf,Math.floor(e*SHIFT_RIGHT_32),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){writeBigVarint(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var n=this.pos;this.pos=writeUtf8(this.buf,e,this.pos);var l=this.pos-n;l>=128&&makeRoomForExtraLength(n,l,this),this.pos=n-1,this.writeVarint(l),this.pos+=l},writeFloat:function(e){this.realloc(4),ieee754.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),ieee754.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var n=e.length;this.writeVarint(n),this.realloc(n);for(var l=0;l<n;l++)this.buf[this.pos++]=e[l]},writeRawMessage:function(e,n){this.pos++;var l=this.pos;e(n,this);var u=this.pos-l;u>=128&&makeRoomForExtraLength(l,u,this),this.pos=l-1,this.writeVarint(u),this.pos+=u},writeMessage:function(e,n,l){this.writeTag(e,Pbf.Bytes),this.writeRawMessage(n,l)},writePackedVarint:function(e,n){n.length&&this.writeMessage(e,writePackedVarint,n)},writePackedSVarint:function(e,n){n.length&&this.writeMessage(e,writePackedSVarint,n)},writePackedBoolean:function(e,n){n.length&&this.writeMessage(e,writePackedBoolean,n)},writePackedFloat:function(e,n){n.length&&this.writeMessage(e,writePackedFloat,n)},writePackedDouble:function(e,n){n.length&&this.writeMessage(e,writePackedDouble,n)},writePackedFixed32:function(e,n){n.length&&this.writeMessage(e,writePackedFixed32,n)},writePackedSFixed32:function(e,n){n.length&&this.writeMessage(e,writePackedSFixed32,n)},writePackedFixed64:function(e,n){n.length&&this.writeMessage(e,writePackedFixed64,n)},writePackedSFixed64:function(e,n){n.length&&this.writeMessage(e,writePackedSFixed64,n)},writeBytesField:function(e,n){this.writeTag(e,Pbf.Bytes),this.writeBytes(n)},writeFixed32Field:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeSFixed64(n)},writeVarintField:function(e,n){this.writeTag(e,Pbf.Varint),this.writeVarint(n)},writeSVarintField:function(e,n){this.writeTag(e,Pbf.Varint),this.writeSVarint(n)},writeStringField:function(e,n){this.writeTag(e,Pbf.Bytes),this.writeString(n)},writeFloatField:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeFloat(n)},writeDoubleField:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeDouble(n)},writeBooleanField:function(e,n){this.writeVarintField(e,Boolean(n))}};function readVarintRemainder(e,n,l){var u=l.buf,d,p;if(p=u[l.pos++],d=(p&112)>>4,p<128||(p=u[l.pos++],d|=(p&127)<<3,p<128)||(p=u[l.pos++],d|=(p&127)<<10,p<128)||(p=u[l.pos++],d|=(p&127)<<17,p<128)||(p=u[l.pos++],d|=(p&127)<<24,p<128)||(p=u[l.pos++],d|=(p&1)<<31,p<128))return toNum(e,d,n);throw new Error("Expected varint not more than 10 bytes")}function readPackedEnd(e){return e.type===Pbf.Bytes?e.readVarint()+e.pos:e.pos+1}function toNum(e,n,l){return l?n*4294967296+(e>>>0):(n>>>0)*4294967296+(e>>>0)}function writeBigVarint(e,n){var l,u;if(e>=0?(l=e%4294967296|0,u=e/4294967296|0):(l=~(-e%4294967296),u=~(-e/4294967296),l^4294967295?l=l+1|0:(l=0,u=u+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");n.realloc(10),writeBigVarintLow(l,u,n),writeBigVarintHigh(u,n)}function writeBigVarintLow(e,n,l){l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos]=e&127}function writeBigVarintHigh(e,n){var l=(e&7)<<4;n.buf[n.pos++]|=l|((e>>>=3)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127)))))}function makeRoomForExtraLength(e,n,l){var u=n<=16383?1:n<=2097151?2:n<=268435455?3:Math.floor(Math.log(n)/(Math.LN2*7));l.realloc(u);for(var d=l.pos-1;d>=e;d--)l.buf[d+u]=l.buf[d]}function writePackedVarint(e,n){for(var l=0;l<e.length;l++)n.writeVarint(e[l])}function writePackedSVarint(e,n){for(var l=0;l<e.length;l++)n.writeSVarint(e[l])}function writePackedFloat(e,n){for(var l=0;l<e.length;l++)n.writeFloat(e[l])}function writePackedDouble(e,n){for(var l=0;l<e.length;l++)n.writeDouble(e[l])}function writePackedBoolean(e,n){for(var l=0;l<e.length;l++)n.writeBoolean(e[l])}function writePackedFixed32(e,n){for(var l=0;l<e.length;l++)n.writeFixed32(e[l])}function writePackedSFixed32(e,n){for(var l=0;l<e.length;l++)n.writeSFixed32(e[l])}function writePackedFixed64(e,n){for(var l=0;l<e.length;l++)n.writeFixed64(e[l])}function writePackedSFixed64(e,n){for(var l=0;l<e.length;l++)n.writeSFixed64(e[l])}function readUInt32(e,n){return(e[n]|e[n+1]<<8|e[n+2]<<16)+e[n+3]*16777216}function writeInt32(e,n,l){e[l]=n,e[l+1]=n>>>8,e[l+2]=n>>>16,e[l+3]=n>>>24}function readInt32(e,n){return(e[n]|e[n+1]<<8|e[n+2]<<16)+(e[n+3]<<24)}function readUtf8(e,n,l){for(var u="",d=n;d<l;){var p=e[d],y=null,o=p>239?4:p>223?3:p>191?2:1;if(d+o>l)break;var j,Re,_e;o===1?p<128&&(y=p):o===2?(j=e[d+1],(j&192)===128&&(y=(p&31)<<6|j&63,y<=127&&(y=null))):o===3?(j=e[d+1],Re=e[d+2],(j&192)===128&&(Re&192)===128&&(y=(p&15)<<12|(j&63)<<6|Re&63,(y<=2047||y>=55296&&y<=57343)&&(y=null))):o===4&&(j=e[d+1],Re=e[d+2],_e=e[d+3],(j&192)===128&&(Re&192)===128&&(_e&192)===128&&(y=(p&15)<<18|(j&63)<<12|(Re&63)<<6|_e&63,(y<=65535||y>=1114112)&&(y=null))),y===null?(y=65533,o=1):y>65535&&(y-=65536,u+=String.fromCharCode(y>>>10&1023|55296),y=56320|y&1023),u+=String.fromCharCode(y),d+=o}return u}function readUtf8TextDecoder(e,n,l){return utf8TextDecoder.decode(e.subarray(n,l))}function writeUtf8(e,n,l){for(var u=0,d,p;u<n.length;u++){if(d=n.charCodeAt(u),d>55295&&d<57344)if(p)if(d<56320){e[l++]=239,e[l++]=191,e[l++]=189,p=d;continue}else d=p-55296<<10|d-56320|65536,p=null;else{d>56319||u+1===n.length?(e[l++]=239,e[l++]=191,e[l++]=189):p=d;continue}else p&&(e[l++]=239,e[l++]=191,e[l++]=189,p=null);d<128?e[l++]=d:(d<2048?e[l++]=d>>6|192:(d<65536?e[l++]=d>>12|224:(e[l++]=d>>18|240,e[l++]=d>>12&63|128),e[l++]=d>>6&63|128),e[l++]=d&63|128)}return l}const proto_10=`
|
|
494
|
+
(`+format(xt,Fe)+", "+format(Qe,Fe)+") ==> "+(this._values?format(this._values[or],Fe):"X")}return Ue},d.prototype.toString=function(){return format(this.toArray())},d.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},d.prototype.diagonal=function(Fe){if(Fe){if(isBigNumber(Fe)&&(Fe=Fe.toNumber()),!isNumber(Fe)||!isInteger$1(Fe))throw new TypeError("The parameter k must be an integer number")}else Fe=0;var st=Fe>0?Fe:0,tt=Fe<0?-Fe:0,We=this._size[0],Ue=this._size[1],Qe=Math.min(We-tt,Ue-st),He=[],tr=[],or=[];or[0]=0;for(var xt=st;xt<Ue&&He.length<Qe;xt++)for(var Er=this._ptr[xt],_r=this._ptr[xt+1],Sr=Er;Sr<_r;Sr++){var hr=this._index[Sr];if(hr===xt-st+tt){He.push(this._values[Sr]),tr[He.length-1]=hr-tt;break}}return or.push(He.length),new d({values:He,index:tr,ptr:or,size:[Qe,1]})},d.fromJSON=function(Fe){return new d(Fe)},d.diagonal=function(Fe,st,tt,We,Ue){if(!isArray(Fe))throw new TypeError("Array expected, size parameter");if(Fe.length!==2)throw new Error("Only two dimensions matrix are supported");if(Fe=Fe.map(function(ya){if(isBigNumber(ya)&&(ya=ya.toNumber()),!isNumber(ya)||!isInteger$1(ya)||ya<1)throw new Error("Size values must be positive integers");return ya}),tt){if(isBigNumber(tt)&&(tt=tt.toNumber()),!isNumber(tt)||!isInteger$1(tt))throw new TypeError("The parameter k must be an integer number")}else tt=0;var Qe=l,He=0;isString(Ue)&&(Qe=n.find(l,[Ue,Ue])||l,He=n.convert(0,Ue));var tr=tt>0?tt:0,or=tt<0?-tt:0,xt=Fe[0],Er=Fe[1],_r=Math.min(xt-or,Er-tr),Sr;if(isArray(st)){if(st.length!==_r)throw new Error("Invalid value array length");Sr=function(Rn){return st[Rn]}}else if(isMatrix(st)){var hr=st.size();if(hr.length!==1||hr[0]!==_r)throw new Error("Invalid matrix length");Sr=function(Rn){return st.get([Rn])}}else Sr=function(){return st};for(var Kr=[],Lr=[],Sa=[],br=0;br<Er;br++){Sa.push(Kr.length);var Pa=br-tr;if(Pa>=0&&Pa<_r){var la=Sr(Pa);Qe(la,He)||(Lr.push(Pa+or),Kr.push(la))}}return Sa.push(Kr.length),new d({values:Kr,index:Lr,ptr:Sa,size:[xt,Er]})},d.prototype.swapRows=function(Fe,st){if(!isNumber(Fe)||!isInteger$1(Fe)||!isNumber(st)||!isInteger$1(st))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return validateIndex(Fe,this._size[0]),validateIndex(st,this._size[0]),d._swapRows(Fe,st,this._size[1],this._values,this._index,this._ptr),this},d._forEachRow=function(Fe,st,tt,We,Ue){for(var Qe=We[Fe],He=We[Fe+1],tr=Qe;tr<He;tr++)Ue(tt[tr],st[tr])},d._swapRows=function(Fe,st,tt,We,Ue,Qe){for(var He=0;He<tt;He++){var tr=Qe[He],or=Qe[He+1],xt=Re(Fe,tr,or,Ue),Er=Re(st,tr,or,Ue);if(xt<or&&Er<or&&Ue[xt]===Fe&&Ue[Er]===st){if(We){var _r=We[xt];We[xt]=We[Er],We[Er]=_r}continue}if(xt<or&&Ue[xt]===Fe&&(Er>=or||Ue[Er]!==st)){var Sr=We?We[xt]:void 0;Ue.splice(Er,0,st),We&&We.splice(Er,0,Sr),Ue.splice(Er<=xt?xt+1:xt,1),We&&We.splice(Er<=xt?xt+1:xt,1);continue}if(Er<or&&Ue[Er]===st&&(xt>=or||Ue[xt]!==Fe)){var hr=We?We[Er]:void 0;Ue.splice(xt,0,Fe),We&&We.splice(xt,0,hr),Ue.splice(xt<=Er?Er+1:Er,1),We&&We.splice(xt<=Er?Er+1:Er,1)}}},d},{isClass:!0}),name$u="number",dependencies$t=["typed"];function getNonDecimalNumberParts(e){var n=e.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(n){var l={"0b":2,"0o":8,"0x":16}[n[1]],u=n[2],d=n[3];return{input:e,radix:l,integerPart:u,fractionalPart:d}}else return null}function makeNumberFromNonDecimalParts(e){for(var n=parseInt(e.integerPart,e.radix),l=0,u=0;u<e.fractionalPart.length;u++){var d=parseInt(e.fractionalPart[u],e.radix);l+=d/Math.pow(e.radix,u+1)}var p=n+l;if(isNaN(p))throw new SyntaxError('String "'+e.input+'" is not a valid number');return p}var createNumber=factory(name$u,dependencies$t,e=>{var{typed:n}=e,l=n("number",{"":function(){return 0},number:function(d){return d},string:function(d){if(d==="NaN")return NaN;var p=getNonDecimalNumberParts(d);if(p)return makeNumberFromNonDecimalParts(p);var y=0,o=d.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);o&&(y=Number(o[2]),d=o[1]);var j=Number(d);if(isNaN(j))throw new SyntaxError('String "'+d+'" is not a valid number');if(o){if(j>b0(2,y)-1)throw new SyntaxError('String "'.concat(d,'" is out of range'));j>=b0(2,y-1)&&(j=j-b0(2,y))}return j},BigNumber:function(d){return d.toNumber()},Fraction:function(d){return d.valueOf()},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),null:function(d){return 0},"Unit, string | Unit":function(d,p){return d.toNumber(p)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))});return l.fromJSON=function(u){return parseFloat(u.value)},l}),name$t="bignumber",dependencies$s=["typed","BigNumber"],createBignumber=factory(name$t,dependencies$s,e=>{var{typed:n,BigNumber:l}=e;return n("bignumber",{"":function(){return new l(0)},number:function(d){return new l(d+"")},string:function(d){var p=d.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(p){var y=p[2],o=l(p[1]),j=new l(2).pow(Number(y));if(o.gt(j.sub(1)))throw new SyntaxError('String "'.concat(d,'" is out of range'));var Re=new l(2).pow(Number(y)-1);return o.gte(Re)?o.sub(j):o}return new l(d)},BigNumber:function(d){return d},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),Fraction:function(d){return new l(d.n).div(d.d).times(d.s)},null:function(d){return new l(0)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))})}),name$s="fraction",dependencies$r=["typed","Fraction"],createFraction=factory(name$s,dependencies$r,e=>{var{typed:n,Fraction:l}=e;return n("fraction",{number:function(d){if(!isFinite(d)||isNaN(d))throw new Error(d+" cannot be represented as a fraction");return new l(d)},string:function(d){return new l(d)},"number, number":function(d,p){return new l(d,p)},null:function(d){return new l(0)},BigNumber:function(d){return new l(d.toString())},Fraction:function(d){return d},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),Object:function(d){return new l(d)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))})}),name$r="matrix",dependencies$q=["typed","Matrix","DenseMatrix","SparseMatrix"],createMatrix=factory(name$r,dependencies$q,e=>{var{typed:n,Matrix:l,DenseMatrix:u,SparseMatrix:d}=e;return n(name$r,{"":function(){return p([])},string:function(o){return p([],o)},"string, string":function(o,j){return p([],o,j)},Array:function(o){return p(o)},Matrix:function(o){return p(o,o.storage())},"Array | Matrix, string":p,"Array | Matrix, string, string":p});function p(y,o,j){if(o==="dense"||o==="default"||o===void 0)return new u(y,j);if(o==="sparse")return new d(y,j);throw new TypeError("Unknown matrix type "+JSON.stringify(o)+".")}}),name$q="unaryMinus",dependencies$p=["typed"],createUnaryMinus=factory(name$q,dependencies$p,e=>{var{typed:n}=e;return n(name$q,{number:unaryMinusNumber,"Complex | BigNumber | Fraction":l=>l.neg(),Unit:n.referToSelf(l=>u=>{var d=u.clone();return d.value=n.find(l,d.valueType())(u.value),d}),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$p="abs",dependencies$o=["typed"],createAbs=factory(name$p,dependencies$o,e=>{var{typed:n}=e;return n(name$p,{number:absNumber,"Complex | BigNumber | Fraction | Unit":l=>l.abs(),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$o="addScalar",dependencies$n=["typed"],createAddScalar=factory(name$o,dependencies$n,e=>{var{typed:n}=e;return n(name$o,{"number, number":addNumber,"Complex, Complex":function(u,d){return u.add(d)},"BigNumber, BigNumber":function(u,d){return u.plus(d)},"Fraction, Fraction":function(u,d){return u.add(d)},"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(u.value===null||u.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(d.value===null||d.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!u.equalBase(d))throw new Error("Units do not match");var p=u.clone();return p.value=n.find(l,[p.valueType(),d.valueType()])(p.value,d.value),p.fixPrefix=!1,p})})}),name$n="subtractScalar",dependencies$m=["typed"],createSubtractScalar=factory(name$n,dependencies$m,e=>{var{typed:n}=e;return n(name$n,{"number, number":subtractNumber,"Complex, Complex":function(u,d){return u.sub(d)},"BigNumber, BigNumber":function(u,d){return u.minus(d)},"Fraction, Fraction":function(u,d){return u.sub(d)},"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(u.value===null||u.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(d.value===null||d.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!u.equalBase(d))throw new Error("Units do not match");var p=u.clone();return p.value=n.find(l,[p.valueType(),d.valueType()])(p.value,d.value),p.fixPrefix=!1,p})})}),name$m="matAlgo11xS0s",dependencies$l=["typed","equalScalar"],createMatAlgo11xS0s=factory(name$m,dependencies$l,e=>{var{typed:n,equalScalar:l}=e;return function(d,p,y,o){var j=d._values,Re=d._index,_e=d._ptr,$=d._size,Je=d._datatype;if(!j)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Ve=$[0],Ze=$[1],Fe,st=l,tt=0,We=y;typeof Je=="string"&&(Fe=Je,st=n.find(l,[Fe,Fe]),tt=n.convert(0,Fe),p=n.convert(p,Fe),We=n.find(y,[Fe,Fe]));for(var Ue=[],Qe=[],He=[],tr=0;tr<Ze;tr++){He[tr]=Qe.length;for(var or=_e[tr],xt=_e[tr+1],Er=or;Er<xt;Er++){var _r=Re[Er],Sr=o?We(p,j[Er]):We(j[Er],p);st(Sr,tt)||(Qe.push(_r),Ue.push(Sr))}}return He[Ze]=Qe.length,d.createSparseMatrix({values:Ue,index:Qe,ptr:He,size:[Ve,Ze],datatype:Fe})}}),name$l="matAlgo14xDs",dependencies$k=["typed"],createMatAlgo14xDs=factory(name$l,dependencies$k,e=>{var{typed:n}=e;return function(d,p,y,o){var j=d._data,Re=d._size,_e=d._datatype,$,Je=y;typeof _e=="string"&&($=_e,p=n.convert(p,$),Je=n.find(y,[$,$]));var Ve=Re.length>0?l(Je,0,Re,Re[0],j,p,o):[];return d.createDenseMatrix({data:Ve,size:clone$2(Re),datatype:$})};function l(u,d,p,y,o,j,Re){var _e=[];if(d===p.length-1)for(var $=0;$<y;$++)_e[$]=Re?u(j,o[$]):u(o[$],j);else for(var Je=0;Je<y;Je++)_e[Je]=l(u,d+1,p,p[d+1],o[Je],j,Re);return _e}}),name$k="matAlgo13xDD",dependencies$j=["typed"],createMatAlgo13xDD=factory(name$k,dependencies$j,e=>{var{typed:n}=e;return function(d,p,y){var o=d._data,j=d._size,Re=d._datatype,_e=p._data,$=p._size,Je=p._datatype,Ve=[];if(j.length!==$.length)throw new DimensionError(j.length,$.length);for(var Ze=0;Ze<j.length;Ze++){if(j[Ze]!==$[Ze])throw new RangeError("Dimension mismatch. Matrix A ("+j+") must match Matrix B ("+$+")");Ve[Ze]=j[Ze]}var Fe,st=y;typeof Re=="string"&&Re===Je&&(Fe=Re,st=n.find(y,[Fe,Fe]));var tt=Ve.length>0?l(st,0,Ve,Ve[0],o,_e):[];return d.createDenseMatrix({data:tt,size:Ve,datatype:Fe})};function l(u,d,p,y,o,j){var Re=[];if(d===p.length-1)for(var _e=0;_e<y;_e++)Re[_e]=u(o[_e],j[_e]);else for(var $=0;$<y;$++)Re[$]=l(u,d+1,p,p[d+1],o[$],j[$]);return Re}}),name$j="broadcast",dependancies=["concat"],createBroadcast=factory(name$j,dependancies,e=>{var{concat:n}=e;return function(d,p){var y=Math.max(d._size.length,p._size.length);if(d._size.length===p._size.length&&d._size.every((Ze,Fe)=>Ze===p._size[Fe]))return[d,p];for(var o=l(d._size,y,0),j=l(p._size,y,0),Re=[],_e=0;_e<y;_e++)Re[_e]=Math.max(o[_e],j[_e]);checkBroadcastingRules(o,Re),checkBroadcastingRules(j,Re);var $=d.clone(),Je=p.clone();$._size.length<y?$.reshape(l($._size,y,1)):Je._size.length<y&&Je.reshape(l(Je._size,y,1));for(var Ve=0;Ve<y;Ve++)$._size[Ve]<Re[Ve]&&($=u($,Re[Ve],Ve)),Je._size[Ve]<Re[Ve]&&(Je=u(Je,Re[Ve],Ve));return[$,Je]};function l(d,p,y){return[...Array(p-d.length).fill(y),...d]}function u(d,p,y){return n(...Array(p).fill(d),y)}}),name$i="matrixAlgorithmSuite",dependencies$i=["typed","matrix","concat"],createMatrixAlgorithmSuite=factory(name$i,dependencies$i,e=>{var{typed:n,matrix:l,concat:u}=e,d=createMatAlgo13xDD({typed:n}),p=createMatAlgo14xDs({typed:n}),y=createBroadcast({concat:u});return function(j){var Re=j.elop,_e=j.SD||j.DS,$;Re?($={"DenseMatrix, DenseMatrix":(Fe,st)=>d(...y(Fe,st),Re),"Array, Array":(Fe,st)=>d(...y(l(Fe),l(st)),Re).valueOf(),"Array, DenseMatrix":(Fe,st)=>d(...y(l(Fe),st),Re),"DenseMatrix, Array":(Fe,st)=>d(...y(Fe,l(st)),Re)},j.SS&&($["SparseMatrix, SparseMatrix"]=(Fe,st)=>j.SS(...y(Fe,st),Re,!1)),j.DS&&($["DenseMatrix, SparseMatrix"]=(Fe,st)=>j.DS(...y(Fe,st),Re,!1),$["Array, SparseMatrix"]=(Fe,st)=>j.DS(...y(l(Fe),st),Re,!1)),_e&&($["SparseMatrix, DenseMatrix"]=(Fe,st)=>_e(...y(st,Fe),Re,!0),$["SparseMatrix, Array"]=(Fe,st)=>_e(...y(l(st),Fe),Re,!0))):($={"DenseMatrix, DenseMatrix":n.referToSelf(Fe=>(st,tt)=>d(...y(st,tt),Fe)),"Array, Array":n.referToSelf(Fe=>(st,tt)=>d(...y(l(st),l(tt)),Fe).valueOf()),"Array, DenseMatrix":n.referToSelf(Fe=>(st,tt)=>d(...y(l(st),tt),Fe)),"DenseMatrix, Array":n.referToSelf(Fe=>(st,tt)=>d(...y(st,l(tt)),Fe))},j.SS&&($["SparseMatrix, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.SS(...y(st,tt),Fe,!1))),j.DS&&($["DenseMatrix, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.DS(...y(st,tt),Fe,!1)),$["Array, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.DS(...y(l(st),tt),Fe,!1))),_e&&($["SparseMatrix, DenseMatrix"]=n.referToSelf(Fe=>(st,tt)=>_e(...y(tt,st),Fe,!0)),$["SparseMatrix, Array"]=n.referToSelf(Fe=>(st,tt)=>_e(...y(l(tt),st),Fe,!0))));var Je=j.scalar||"any",Ve=j.Ds||j.Ss;Ve&&(Re?($["DenseMatrix,"+Je]=(Fe,st)=>p(Fe,st,Re,!1),$[Je+", DenseMatrix"]=(Fe,st)=>p(st,Fe,Re,!0),$["Array,"+Je]=(Fe,st)=>p(l(Fe),st,Re,!1).valueOf(),$[Je+", Array"]=(Fe,st)=>p(l(st),Fe,Re,!0).valueOf()):($["DenseMatrix,"+Je]=n.referToSelf(Fe=>(st,tt)=>p(st,tt,Fe,!1)),$[Je+", DenseMatrix"]=n.referToSelf(Fe=>(st,tt)=>p(tt,st,Fe,!0)),$["Array,"+Je]=n.referToSelf(Fe=>(st,tt)=>p(l(st),tt,Fe,!1).valueOf()),$[Je+", Array"]=n.referToSelf(Fe=>(st,tt)=>p(l(tt),st,Fe,!0).valueOf())));var Ze=j.sS!==void 0?j.sS:j.Ss;return Re?(j.Ss&&($["SparseMatrix,"+Je]=(Fe,st)=>j.Ss(Fe,st,Re,!1)),Ze&&($[Je+", SparseMatrix"]=(Fe,st)=>Ze(st,Fe,Re,!0))):(j.Ss&&($["SparseMatrix,"+Je]=n.referToSelf(Fe=>(st,tt)=>j.Ss(st,tt,Fe,!1))),Ze&&($[Je+", SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>Ze(tt,st,Fe,!0)))),Re&&Re.signatures&&extend($,Re.signatures),$}}),name$h="matAlgo01xDSid",dependencies$h=["typed"],createMatAlgo01xDSid=factory(name$h,dependencies$h,e=>{var{typed:n}=e;return function(u,d,p,y){var o=u._data,j=u._size,Re=u._datatype,_e=d._values,$=d._index,Je=d._ptr,Ve=d._size,Ze=d._datatype;if(j.length!==Ve.length)throw new DimensionError(j.length,Ve.length);if(j[0]!==Ve[0]||j[1]!==Ve[1])throw new RangeError("Dimension mismatch. Matrix A ("+j+") must match Matrix B ("+Ve+")");if(!_e)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var Fe=j[0],st=j[1],tt=typeof Re=="string"&&Re===Ze?Re:void 0,We=tt?n.find(p,[tt,tt]):p,Ue,Qe,He=[];for(Ue=0;Ue<Fe;Ue++)He[Ue]=[];var tr=[],or=[];for(Qe=0;Qe<st;Qe++){for(var xt=Qe+1,Er=Je[Qe],_r=Je[Qe+1],Sr=Er;Sr<_r;Sr++)Ue=$[Sr],tr[Ue]=y?We(_e[Sr],o[Ue][Qe]):We(o[Ue][Qe],_e[Sr]),or[Ue]=xt;for(Ue=0;Ue<Fe;Ue++)or[Ue]===xt?He[Ue][Qe]=tr[Ue]:He[Ue][Qe]=o[Ue][Qe]}return u.createDenseMatrix({data:He,size:[Fe,st],datatype:tt})}}),name$g="matAlgo04xSidSid",dependencies$g=["typed","equalScalar"],createMatAlgo04xSidSid=factory(name$g,dependencies$g,e=>{var{typed:n,equalScalar:l}=e;return function(d,p,y){var o=d._values,j=d._index,Re=d._ptr,_e=d._size,$=d._datatype,Je=p._values,Ve=p._index,Ze=p._ptr,Fe=p._size,st=p._datatype;if(_e.length!==Fe.length)throw new DimensionError(_e.length,Fe.length);if(_e[0]!==Fe[0]||_e[1]!==Fe[1])throw new RangeError("Dimension mismatch. Matrix A ("+_e+") must match Matrix B ("+Fe+")");var tt=_e[0],We=_e[1],Ue,Qe=l,He=0,tr=y;typeof $=="string"&&$===st&&(Ue=$,Qe=n.find(l,[Ue,Ue]),He=n.convert(0,Ue),tr=n.find(y,[Ue,Ue]));var or=o&&Je?[]:void 0,xt=[],Er=[],_r=o&&Je?[]:void 0,Sr=o&&Je?[]:void 0,hr=[],Kr=[],Lr,Sa,br,Pa,la;for(Sa=0;Sa<We;Sa++){Er[Sa]=xt.length;var ya=Sa+1;for(Pa=Re[Sa],la=Re[Sa+1],br=Pa;br<la;br++)Lr=j[br],xt.push(Lr),hr[Lr]=ya,_r&&(_r[Lr]=o[br]);for(Pa=Ze[Sa],la=Ze[Sa+1],br=Pa;br<la;br++)if(Lr=Ve[br],hr[Lr]===ya){if(_r){var Rn=tr(_r[Lr],Je[br]);Qe(Rn,He)?hr[Lr]=null:_r[Lr]=Rn}}else xt.push(Lr),Kr[Lr]=ya,Sr&&(Sr[Lr]=Je[br]);if(_r&&Sr)for(br=Er[Sa];br<xt.length;)Lr=xt[br],hr[Lr]===ya?(or[br]=_r[Lr],br++):Kr[Lr]===ya?(or[br]=Sr[Lr],br++):xt.splice(br,1)}return Er[We]=xt.length,d.createSparseMatrix({values:or,index:xt,ptr:Er,size:[tt,We],datatype:Ue})}}),name$f="matAlgo10xSids",dependencies$f=["typed","DenseMatrix"],createMatAlgo10xSids=factory(name$f,dependencies$f,e=>{var{typed:n,DenseMatrix:l}=e;return function(d,p,y,o){var j=d._values,Re=d._index,_e=d._ptr,$=d._size,Je=d._datatype;if(!j)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Ve=$[0],Ze=$[1],Fe,st=y;typeof Je=="string"&&(Fe=Je,p=n.convert(p,Fe),st=n.find(y,[Fe,Fe]));for(var tt=[],We=[],Ue=[],Qe=0;Qe<Ze;Qe++){for(var He=Qe+1,tr=_e[Qe],or=_e[Qe+1],xt=tr;xt<or;xt++){var Er=Re[xt];We[Er]=j[xt],Ue[Er]=He}for(var _r=0;_r<Ve;_r++)Qe===0&&(tt[_r]=[]),Ue[_r]===He?tt[_r][Qe]=o?st(p,We[_r]):st(We[_r],p):tt[_r][Qe]=p}return new l({data:tt,size:[Ve,Ze],datatype:Fe})}}),name$e="multiplyScalar",dependencies$e=["typed"],createMultiplyScalar=factory(name$e,dependencies$e,e=>{var{typed:n}=e;return n("multiplyScalar",{"number, number":multiplyNumber,"Complex, Complex":function(u,d){return u.mul(d)},"BigNumber, BigNumber":function(u,d){return u.times(d)},"Fraction, Fraction":function(u,d){return u.mul(d)},"number | Fraction | BigNumber | Complex, Unit":(l,u)=>u.multiply(l),"Unit, number | Fraction | BigNumber | Complex | Unit":(l,u)=>l.multiply(u)})}),name$d="multiply",dependencies$d=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],createMultiply=factory(name$d,dependencies$d,e=>{var{typed:n,matrix:l,addScalar:u,multiplyScalar:d,equalScalar:p,dot:y}=e,o=createMatAlgo11xS0s({typed:n,equalScalar:p}),j=createMatAlgo14xDs({typed:n});function Re(He,tr){switch(He.length){case 1:switch(tr.length){case 1:if(He[0]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(He[0]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+He[0]+") must match Matrix rows ("+tr[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+tr.length+" dimensions)")}break;case 2:switch(tr.length){case 1:if(He[1]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+He[1]+") must match Vector length ("+tr[0]+")");break;case 2:if(He[1]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+He[1]+") must match Matrix B rows ("+tr[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+tr.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+He.length+" dimensions)")}}function _e(He,tr,or){if(or===0)throw new Error("Cannot multiply two empty vectors");return y(He,tr)}function $(He,tr){if(tr.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return Je(He,tr)}function Je(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._size,hr=tr._datatype,Kr=xt[0],Lr=Sr[1],Sa,br=u,Pa=d;Er&&hr&&Er===hr&&typeof Er=="string"&&(Sa=Er,br=n.find(u,[Sa,Sa]),Pa=n.find(d,[Sa,Sa]));for(var la=[],ya=0;ya<Lr;ya++){for(var Rn=Pa(or[0],_r[0][ya]),mn=1;mn<Kr;mn++)Rn=br(Rn,Pa(or[mn],_r[mn][ya]));la[ya]=Rn}return He.createDenseMatrix({data:la,size:[Lr],datatype:Sa})}var Ve=n("_multiplyMatrixVector",{"DenseMatrix, any":Fe,"SparseMatrix, any":We}),Ze=n("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":st,"DenseMatrix, SparseMatrix":tt,"SparseMatrix, DenseMatrix":Ue,"SparseMatrix, SparseMatrix":Qe});function Fe(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._datatype,hr=xt[0],Kr=xt[1],Lr,Sa=u,br=d;Er&&Sr&&Er===Sr&&typeof Er=="string"&&(Lr=Er,Sa=n.find(u,[Lr,Lr]),br=n.find(d,[Lr,Lr]));for(var Pa=[],la=0;la<hr;la++){for(var ya=or[la],Rn=br(ya[0],_r[0]),mn=1;mn<Kr;mn++)Rn=Sa(Rn,br(ya[mn],_r[mn]));Pa[la]=Rn}return He.createDenseMatrix({data:Pa,size:[hr],datatype:Lr})}function st(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._size,hr=tr._datatype,Kr=xt[0],Lr=xt[1],Sa=Sr[1],br,Pa=u,la=d;Er&&hr&&Er===hr&&typeof Er=="string"&&(br=Er,Pa=n.find(u,[br,br]),la=n.find(d,[br,br]));for(var ya=[],Rn=0;Rn<Kr;Rn++){var mn=or[Rn];ya[Rn]=[];for(var Fa=0;Fa<Sa;Fa++){for(var _n=la(mn[0],_r[0][Fa]),Ti=1;Ti<Lr;Ti++)_n=Pa(_n,la(mn[Ti],_r[Ti][Fa]));ya[Rn][Fa]=_n}}return He.createDenseMatrix({data:ya,size:[Kr,Sa],datatype:br})}function tt(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._values,Sr=tr._index,hr=tr._ptr,Kr=tr._size,Lr=tr._datatype;if(!_r)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var Sa=xt[0],br=Kr[1],Pa,la=u,ya=d,Rn=p,mn=0;Er&&Lr&&Er===Lr&&typeof Er=="string"&&(Pa=Er,la=n.find(u,[Pa,Pa]),ya=n.find(d,[Pa,Pa]),Rn=n.find(p,[Pa,Pa]),mn=n.convert(0,Pa));for(var Fa=[],_n=[],Ti=[],gi=tr.createSparseMatrix({values:Fa,index:_n,ptr:Ti,size:[Sa,br],datatype:Pa}),jn=0;jn<br;jn++){Ti[jn]=_n.length;var Qn=hr[jn],tn=hr[jn+1];if(tn>Qn)for(var Xn=0,ti=0;ti<Sa;ti++){for(var l0=ti+1,Pi=void 0,di=Qn;di<tn;di++){var ui=Sr[di];Xn!==l0?(Pi=ya(or[ti][ui],_r[di]),Xn=l0):Pi=la(Pi,ya(or[ti][ui],_r[di]))}Xn===l0&&!Rn(Pi,mn)&&(_n.push(ti),Fa.push(Pi))}}return Ti[br]=_n.length,gi}function We(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype;if(!or)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var Sr=tr._data,hr=tr._datatype,Kr=He._size[0],Lr=tr._size[0],Sa=[],br=[],Pa=[],la,ya=u,Rn=d,mn=p,Fa=0;_r&&hr&&_r===hr&&typeof _r=="string"&&(la=_r,ya=n.find(u,[la,la]),Rn=n.find(d,[la,la]),mn=n.find(p,[la,la]),Fa=n.convert(0,la));var _n=[],Ti=[];Pa[0]=0;for(var gi=0;gi<Lr;gi++){var jn=Sr[gi];if(!mn(jn,Fa))for(var Qn=Er[gi],tn=Er[gi+1],Xn=Qn;Xn<tn;Xn++){var ti=xt[Xn];Ti[ti]?_n[ti]=ya(_n[ti],Rn(jn,or[Xn])):(Ti[ti]=!0,br.push(ti),_n[ti]=Rn(jn,or[Xn]))}}for(var l0=br.length,Pi=0;Pi<l0;Pi++){var di=br[Pi];Sa[Pi]=_n[di]}return Pa[1]=br.length,He.createSparseMatrix({values:Sa,index:br,ptr:Pa,size:[Kr,1],datatype:la})}function Ue(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype;if(!or)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var Sr=tr._data,hr=tr._datatype,Kr=He._size[0],Lr=tr._size[0],Sa=tr._size[1],br,Pa=u,la=d,ya=p,Rn=0;_r&&hr&&_r===hr&&typeof _r=="string"&&(br=_r,Pa=n.find(u,[br,br]),la=n.find(d,[br,br]),ya=n.find(p,[br,br]),Rn=n.convert(0,br));for(var mn=[],Fa=[],_n=[],Ti=He.createSparseMatrix({values:mn,index:Fa,ptr:_n,size:[Kr,Sa],datatype:br}),gi=[],jn=[],Qn=0;Qn<Sa;Qn++){_n[Qn]=Fa.length;for(var tn=Qn+1,Xn=0;Xn<Lr;Xn++){var ti=Sr[Xn][Qn];if(!ya(ti,Rn))for(var l0=Er[Xn],Pi=Er[Xn+1],di=l0;di<Pi;di++){var ui=xt[di];jn[ui]!==tn?(jn[ui]=tn,Fa.push(ui),gi[ui]=la(ti,or[di])):gi[ui]=Pa(gi[ui],la(ti,or[di]))}}for(var Zi=_n[Qn],$i=Fa.length,n0=Zi;n0<$i;n0++){var fi=Fa[n0];mn[n0]=gi[fi]}}return _n[Sa]=Fa.length,Ti}function Qe(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype,Sr=tr._values,hr=tr._index,Kr=tr._ptr,Lr=tr._datatype,Sa=He._size[0],br=tr._size[1],Pa=or&&Sr,la,ya=u,Rn=d;_r&&Lr&&_r===Lr&&typeof _r=="string"&&(la=_r,ya=n.find(u,[la,la]),Rn=n.find(d,[la,la]));for(var mn=Pa?[]:void 0,Fa=[],_n=[],Ti=He.createSparseMatrix({values:mn,index:Fa,ptr:_n,size:[Sa,br],datatype:la}),gi=Pa?[]:void 0,jn=[],Qn,tn,Xn,ti,l0,Pi,di,ui,Zi=0;Zi<br;Zi++){_n[Zi]=Fa.length;var $i=Zi+1;for(l0=Kr[Zi],Pi=Kr[Zi+1],ti=l0;ti<Pi;ti++)if(ui=hr[ti],Pa)for(tn=Er[ui],Xn=Er[ui+1],Qn=tn;Qn<Xn;Qn++)di=xt[Qn],jn[di]!==$i?(jn[di]=$i,Fa.push(di),gi[di]=Rn(Sr[ti],or[Qn])):gi[di]=ya(gi[di],Rn(Sr[ti],or[Qn]));else for(tn=Er[ui],Xn=Er[ui+1],Qn=tn;Qn<Xn;Qn++)di=xt[Qn],jn[di]!==$i&&(jn[di]=$i,Fa.push(di));if(Pa)for(var n0=_n[Zi],fi=Fa.length,ri=n0;ri<fi;ri++){var Oi=Fa[ri];mn[ri]=gi[Oi]}}return _n[br]=Fa.length,Ti}return n(name$d,d,{"Array, Array":n.referTo("Matrix, Matrix",He=>(tr,or)=>{Re(arraySize(tr),arraySize(or));var xt=He(l(tr),l(or));return isMatrix(xt)?xt.valueOf():xt}),"Matrix, Matrix":function(tr,or){var xt=tr.size(),Er=or.size();return Re(xt,Er),xt.length===1?Er.length===1?_e(tr,or,xt[0]):$(tr,or):Er.length===1?Ve(tr,or):Ze(tr,or)},"Matrix, Array":n.referTo("Matrix,Matrix",He=>(tr,or)=>He(tr,l(or))),"Array, Matrix":n.referToSelf(He=>(tr,or)=>He(l(tr,or.storage()),or)),"SparseMatrix, any":function(tr,or){return o(tr,or,d,!1)},"DenseMatrix, any":function(tr,or){return j(tr,or,d,!1)},"any, SparseMatrix":function(tr,or){return o(or,tr,d,!0)},"any, DenseMatrix":function(tr,or){return j(or,tr,d,!0)},"Array, any":function(tr,or){return j(l(tr),or,d,!1).valueOf()},"any, Array":function(tr,or){return j(l(or),tr,d,!0).valueOf()},"any, any":d,"any, any, ...any":n.referToSelf(He=>(tr,or,xt)=>{for(var Er=He(tr,or),_r=0;_r<xt.length;_r++)Er=He(Er,xt[_r]);return Er})})}),name$c="conj",dependencies$c=["typed"],createConj=factory(name$c,dependencies$c,e=>{var{typed:n}=e;return n(name$c,{"number | BigNumber | Fraction":l=>l,Complex:l=>l.conjugate(),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$b="concat",dependencies$b=["typed","matrix","isInteger"],createConcat=factory(name$b,dependencies$b,e=>{var{typed:n,matrix:l,isInteger:u}=e;return n(name$b,{"...Array | Matrix | number | BigNumber":function(p){var y,o=p.length,j=-1,Re,_e=!1,$=[];for(y=0;y<o;y++){var Je=p[y];if(isMatrix(Je)&&(_e=!0),isNumber(Je)||isBigNumber(Je)){if(y!==o-1)throw new Error("Dimension must be specified as last argument");if(Re=j,j=Je.valueOf(),!u(j))throw new TypeError("Integer number expected for dimension");if(j<0||y>0&&j>Re)throw new IndexError(j,Re+1)}else{var Ve=clone$2(Je).valueOf(),Ze=arraySize(Ve);if($[y]=Ve,Re=j,j=Ze.length-1,y>0&&j!==Re)throw new DimensionError(Re+1,j+1)}}if($.length===0)throw new SyntaxError("At least one matrix expected");for(var Fe=$.shift();$.length;)Fe=concat$1(Fe,$.shift(),j);return _e?l(Fe):Fe},"...string":function(p){return p.join("")}})}),name$a="identity",dependencies$a=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],createIdentity=factory(name$a,dependencies$a,e=>{var{typed:n,config:l,matrix:u,BigNumber:d,DenseMatrix:p,SparseMatrix:y}=e;return n(name$a,{"":function(){return l.matrix==="Matrix"?u([]):[]},string:function(_e){return u(_e)},"number | BigNumber":function(_e){return j(_e,_e,l.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(_e,$){return j(_e,_e,$)},"number | BigNumber, number | BigNumber":function(_e,$){return j(_e,$,l.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(_e,$,Je){return j(_e,$,Je)},Array:function(_e){return o(_e)},"Array, string":function(_e,$){return o(_e,$)},Matrix:function(_e){return o(_e.valueOf(),_e.storage())},"Matrix, string":function(_e,$){return o(_e.valueOf(),$)}});function o(Re,_e){switch(Re.length){case 0:return _e?u(_e):[];case 1:return j(Re[0],Re[0],_e);case 2:return j(Re[0],Re[1],_e);default:throw new Error("Vector containing two values expected")}}function j(Re,_e,$){var Je=isBigNumber(Re)||isBigNumber(_e)?d:null;if(isBigNumber(Re)&&(Re=Re.toNumber()),isBigNumber(_e)&&(_e=_e.toNumber()),!isInteger$1(Re)||Re<1)throw new Error("Parameters in function identity must be positive integers");if(!isInteger$1(_e)||_e<1)throw new Error("Parameters in function identity must be positive integers");var Ve=Je?new d(1):1,Ze=Je?new Je(0):0,Fe=[Re,_e];if($){if($==="sparse")return y.diagonal(Fe,Ve,0,Ze);if($==="dense")return p.diagonal(Fe,Ve,0,Ze);throw new TypeError('Unknown matrix type "'.concat($,'"'))}for(var st=resize([],Fe,Ze),tt=Re<_e?Re:_e,We=0;We<tt;We++)st[We][We]=Ve;return st}});function noBignumber(){throw new Error('No "bignumber" implementation available')}function noFraction(){throw new Error('No "fraction" implementation available')}function noMatrix(){throw new Error('No "matrix" implementation available')}var name$9="size",dependencies$9=["typed","config","?matrix"],createSize=factory(name$9,dependencies$9,e=>{var{typed:n,config:l,matrix:u}=e;return n(name$9,{Matrix:function(p){return p.create(p.size())},Array:arraySize,string:function(p){return l.matrix==="Array"?[p.length]:u([p.length])},"number | Complex | BigNumber | Unit | boolean | null":function(p){return l.matrix==="Array"?[]:u?u([]):noMatrix()}})}),name$8="transpose",dependencies$8=["typed","matrix"],createTranspose=factory(name$8,dependencies$8,e=>{var{typed:n,matrix:l}=e;return n(name$8,{Array:y=>u(l(y)).valueOf(),Matrix:u,any:clone$2});function u(y){var o=y.size(),j;switch(o.length){case 1:j=y.clone();break;case 2:{var Re=o[0],_e=o[1];if(_e===0)throw new RangeError("Cannot transpose a 2D matrix with no columns (size: "+format(o)+")");switch(y.storage()){case"dense":j=d(y,Re,_e);break;case"sparse":j=p(y,Re,_e);break}}break;default:throw new RangeError("Matrix must be a vector or two dimensional (size: "+format(o)+")")}return j}function d(y,o,j){for(var Re=y._data,_e=[],$,Je=0;Je<j;Je++){$=_e[Je]=[];for(var Ve=0;Ve<o;Ve++)$[Ve]=clone$2(Re[Ve][Je])}return y.createDenseMatrix({data:_e,size:[j,o],datatype:y._datatype})}function p(y,o,j){for(var Re=y._values,_e=y._index,$=y._ptr,Je=Re?[]:void 0,Ve=[],Ze=[],Fe=[],st=0;st<o;st++)Fe[st]=0;var tt,We,Ue;for(tt=0,We=_e.length;tt<We;tt++)Fe[_e[tt]]++;for(var Qe=0,He=0;He<o;He++)Ze.push(Qe),Qe+=Fe[He],Fe[He]=Ze[He];for(Ze.push(Qe),Ue=0;Ue<j;Ue++)for(var tr=$[Ue],or=$[Ue+1],xt=tr;xt<or;xt++){var Er=Fe[_e[xt]]++;Ve[Er]=Ue,Re&&(Je[Er]=clone$2(Re[xt]))}return y.createSparseMatrix({values:Je,index:Ve,ptr:Ze,size:[j,o],datatype:y._datatype})}});function improveErrorMessage(e,n,l){var u;return String(e).indexOf("Unexpected type")!==-1?(u=arguments.length>2?" (type: "+typeOf(l)+", value: "+JSON.stringify(l)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+n+", unexpected type of argument"+u)):String(e).indexOf("complex numbers")!==-1?(u=arguments.length>2?" (type: "+typeOf(l)+", value: "+JSON.stringify(l)+")":"",new TypeError("Cannot calculate "+n+", no ordering relation is defined for complex numbers"+u)):e}var name$7="numeric",dependencies$7=["number","?bignumber","?fraction"],createNumeric=factory(name$7,dependencies$7,e=>{var{number:n,bignumber:l,fraction:u}=e,d={string:!0,number:!0,BigNumber:!0,Fraction:!0},p={number:y=>n(y),BigNumber:l?y=>l(y):noBignumber,Fraction:u?y=>u(y):noFraction};return function(o){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",Re=arguments.length>2?arguments[2]:void 0;if(Re!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var _e=typeOf(o);if(!(_e in d))throw new TypeError("Cannot convert "+o+' of type "'+_e+'"; valid input types are '+Object.keys(d).join(", "));if(!(j in p))throw new TypeError("Cannot convert "+o+' to type "'+j+'"; valid output types are '+Object.keys(p).join(", "));return j===_e?o:p[j](o)}}),name$6="divideScalar",dependencies$6=["typed","numeric"],createDivideScalar=factory(name$6,dependencies$6,e=>{var{typed:n,numeric:l}=e;return n(name$6,{"number, number":function(d,p){return d/p},"Complex, Complex":function(d,p){return d.div(p)},"BigNumber, BigNumber":function(d,p){return d.div(p)},"Fraction, Fraction":function(d,p){return d.div(p)},"Unit, number | Complex | Fraction | BigNumber | Unit":(u,d)=>u.divide(d),"number | Fraction | Complex | BigNumber, Unit":(u,d)=>d.divideInto(u)})}),name$5="add",dependencies$5=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],createAdd=factory(name$5,dependencies$5,e=>{var{typed:n,matrix:l,addScalar:u,equalScalar:d,DenseMatrix:p,SparseMatrix:y,concat:o}=e,j=createMatAlgo01xDSid({typed:n}),Re=createMatAlgo04xSidSid({typed:n,equalScalar:d}),_e=createMatAlgo10xSids({typed:n,DenseMatrix:p}),$=createMatrixAlgorithmSuite({typed:n,matrix:l,concat:o});return n(name$5,{"any, any":u,"any, any, ...any":n.referToSelf(Je=>(Ve,Ze,Fe)=>{for(var st=Je(Ve,Ze),tt=0;tt<Fe.length;tt++)st=Je(st,Fe[tt]);return st})},$({elop:u,DS:j,SS:Re,Ss:_e}))}),name$4="dot",dependencies$4=["typed","addScalar","multiplyScalar","conj","size"],createDot=factory(name$4,dependencies$4,e=>{var{typed:n,addScalar:l,multiplyScalar:u,conj:d,size:p}=e;return n(name$4,{"Array | DenseMatrix, Array | DenseMatrix":o,"SparseMatrix, SparseMatrix":j});function y(_e,$){var Je=Re(_e),Ve=Re($),Ze,Fe;if(Je.length===1)Ze=Je[0];else if(Je.length===2&&Je[1]===1)Ze=Je[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+Je.join(", ")+")");if(Ve.length===1)Fe=Ve[0];else if(Ve.length===2&&Ve[1]===1)Fe=Ve[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+Ve.join(", ")+")");if(Ze!==Fe)throw new RangeError("Vectors must have equal length ("+Ze+" != "+Fe+")");if(Ze===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return Ze}function o(_e,$){var Je=y(_e,$),Ve=isMatrix(_e)?_e._data:_e,Ze=isMatrix(_e)?_e._datatype:void 0,Fe=isMatrix($)?$._data:$,st=isMatrix($)?$._datatype:void 0,tt=Re(_e).length===2,We=Re($).length===2,Ue=l,Qe=u;if(Ze&&st&&Ze===st&&typeof Ze=="string"){var He=Ze;Ue=n.find(l,[He,He]),Qe=n.find(u,[He,He])}if(!tt&&!We){for(var tr=Qe(d(Ve[0]),Fe[0]),or=1;or<Je;or++)tr=Ue(tr,Qe(d(Ve[or]),Fe[or]));return tr}if(!tt&&We){for(var xt=Qe(d(Ve[0]),Fe[0][0]),Er=1;Er<Je;Er++)xt=Ue(xt,Qe(d(Ve[Er]),Fe[Er][0]));return xt}if(tt&&!We){for(var _r=Qe(d(Ve[0][0]),Fe[0]),Sr=1;Sr<Je;Sr++)_r=Ue(_r,Qe(d(Ve[Sr][0]),Fe[Sr]));return _r}if(tt&&We){for(var hr=Qe(d(Ve[0][0]),Fe[0][0]),Kr=1;Kr<Je;Kr++)hr=Ue(hr,Qe(d(Ve[Kr][0]),Fe[Kr][0]));return hr}}function j(_e,$){y(_e,$);for(var Je=_e._index,Ve=_e._values,Ze=$._index,Fe=$._values,st=0,tt=l,We=u,Ue=0,Qe=0;Ue<Je.length&&Qe<Ze.length;){var He=Je[Ue],tr=Ze[Qe];if(He<tr){Ue++;continue}if(He>tr){Qe++;continue}He===tr&&(st=tt(st,We(Ve[Ue],Fe[Qe])),Ue++,Qe++)}return st}function Re(_e){return isMatrix(_e)?_e.size():p(_e)}}),name$3="det",dependencies$3=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],createDet=factory(name$3,dependencies$3,e=>{var{typed:n,matrix:l,subtractScalar:u,multiply:d,divideScalar:p,isZero:y,unaryMinus:o}=e;return n(name$3,{any:function(_e){return clone$2(_e)},"Array | Matrix":function(_e){var $;switch(isMatrix(_e)?$=_e.size():Array.isArray(_e)?(_e=l(_e),$=_e.size()):$=[],$.length){case 0:return clone$2(_e);case 1:if($[0]===1)return clone$2(_e.valueOf()[0]);if($[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+format($)+")");case 2:{var Je=$[0],Ve=$[1];if(Je===Ve)return j(_e.clone().valueOf(),Je);if(Ve===0)return 1;throw new RangeError("Matrix must be square (size: "+format($)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+format($)+")")}}});function j(Re,_e,$){if(_e===1)return clone$2(Re[0][0]);if(_e===2)return u(d(Re[0][0],Re[1][1]),d(Re[1][0],Re[0][1]));for(var Je=!1,Ve=new Array(_e).fill(0).map((or,xt)=>xt),Ze=0;Ze<_e;Ze++){var Fe=Ve[Ze];if(y(Re[Fe][Ze])){var st=void 0;for(st=Ze+1;st<_e;st++)if(!y(Re[Ve[st]][Ze])){Fe=Ve[st],Ve[st]=Ve[Ze],Ve[Ze]=Fe,Je=!Je;break}if(st===_e)return Re[Fe][Ze]}for(var tt=Re[Fe][Ze],We=Ze===0?1:Re[Ve[Ze-1]][Ze-1],Ue=Ze+1;Ue<_e;Ue++)for(var Qe=Ve[Ue],He=Ze+1;He<_e;He++)Re[Qe][He]=p(u(d(Re[Qe][He],tt),d(Re[Qe][Ze],Re[Fe][He])),We)}var tr=Re[Ve[_e-1]][_e-1];return Je?o(tr):tr}}),name$2="inv",dependencies$2=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],createInv=factory(name$2,dependencies$2,e=>{var{typed:n,matrix:l,divideScalar:u,addScalar:d,multiply:p,unaryMinus:y,det:o,identity:j,abs:Re}=e;return n(name$2,{"Array | Matrix":function(Je){var Ve=isMatrix(Je)?Je.size():arraySize(Je);switch(Ve.length){case 1:if(Ve[0]===1)return isMatrix(Je)?l([u(1,Je.valueOf()[0])]):[u(1,Je[0])];throw new RangeError("Matrix must be square (size: "+format(Ve)+")");case 2:{var Ze=Ve[0],Fe=Ve[1];if(Ze===Fe)return isMatrix(Je)?l(_e(Je.valueOf(),Ze,Fe),Je.storage()):_e(Je,Ze,Fe);throw new RangeError("Matrix must be square (size: "+format(Ve)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+format(Ve)+")")}},any:function(Je){return u(1,Je)}});function _e($,Je,Ve){var Ze,Fe,st,tt,We;if(Je===1){if(tt=$[0][0],tt===0)throw Error("Cannot calculate inverse, determinant is zero");return[[u(1,tt)]]}else if(Je===2){var Ue=o($);if(Ue===0)throw Error("Cannot calculate inverse, determinant is zero");return[[u($[1][1],Ue),u(y($[0][1]),Ue)],[u(y($[1][0]),Ue),u($[0][0],Ue)]]}else{var Qe=$.concat();for(Ze=0;Ze<Je;Ze++)Qe[Ze]=Qe[Ze].concat();for(var He=j(Je).valueOf(),tr=0;tr<Ve;tr++){var or=Re(Qe[tr][tr]),xt=tr;for(Ze=tr+1;Ze<Je;)Re(Qe[Ze][tr])>or&&(or=Re(Qe[Ze][tr]),xt=Ze),Ze++;if(or===0)throw Error("Cannot calculate inverse, determinant is zero");Ze=xt,Ze!==tr&&(We=Qe[tr],Qe[tr]=Qe[Ze],Qe[Ze]=We,We=He[tr],He[tr]=He[Ze],He[Ze]=We);var Er=Qe[tr],_r=He[tr];for(Ze=0;Ze<Je;Ze++){var Sr=Qe[Ze],hr=He[Ze];if(Ze!==tr){if(Sr[tr]!==0){for(st=u(y(Sr[tr]),Er[tr]),Fe=tr;Fe<Ve;Fe++)Sr[Fe]=d(Sr[Fe],p(st,Er[Fe]));for(Fe=0;Fe<Ve;Fe++)hr[Fe]=d(hr[Fe],p(st,_r[Fe]))}}else{for(st=Er[tr],Fe=tr;Fe<Ve;Fe++)Sr[Fe]=u(Sr[Fe],st);for(Fe=0;Fe<Ve;Fe++)hr[Fe]=u(hr[Fe],st)}}}return He}}}),name$1="sum",dependencies$1=["typed","config","add","numeric"],createSum=factory(name$1,dependencies$1,e=>{var{typed:n,config:l,add:u,numeric:d}=e;return n(name$1,{"Array | Matrix":p,"Array | Matrix, number | BigNumber":y,"...":function(j){if(containsCollections(j))throw new TypeError("Scalar values expected in function sum");return p(j)}});function p(o){var j;return deepForEach(o,function(Re){try{j=j===void 0?Re:u(j,Re)}catch(_e){throw improveErrorMessage(_e,"sum",Re)}}),j===void 0&&(j=d(0,l.number)),typeof j=="string"&&(j=d(j,l.number)),j}function y(o,j){try{var Re=reduce(o,j,u);return Re}catch(_e){throw improveErrorMessage(_e,"sum")}}}),BigNumber=createBigNumberClass({config:config$1}),Complex=createComplexClass({}),Fraction=createFractionClass({}),Matrix=createMatrixClass({}),DenseMatrix=createDenseMatrixClass({Matrix}),typed=createTyped({BigNumber,Complex,DenseMatrix,Fraction}),abs=createAbs({typed}),addScalar=createAddScalar({typed}),bignumber=createBignumber({BigNumber,typed}),conj=createConj({typed}),equalScalar=createEqualScalar({config:config$1,typed}),isInteger=createIsInteger({typed}),isZero=createIsZero({typed}),multiplyScalar=createMultiplyScalar({typed}),number=createNumber({typed}),SparseMatrix=createSparseMatrixClass({Matrix,equalScalar,typed}),subtractScalar=createSubtractScalar({typed}),unaryMinus=createUnaryMinus({typed}),fraction=createFraction({Fraction,typed}),matrix=createMatrix({DenseMatrix,Matrix,SparseMatrix,typed}),numeric=createNumeric({bignumber,fraction,number}),size=createSize({matrix,config:config$1,typed}),transpose=createTranspose({matrix,typed}),concat=createConcat({isInteger,matrix,typed}),divideScalar=createDivideScalar({numeric,typed}),identity=createIdentity({BigNumber,DenseMatrix,SparseMatrix,config:config$1,matrix,typed}),add=createAdd({DenseMatrix,SparseMatrix,addScalar,concat,equalScalar,matrix,typed}),dot=createDot({addScalar,conj,multiplyScalar,size,typed}),multiply=createMultiply({addScalar,dot,equalScalar,matrix,multiplyScalar,typed}),sum=createSum({add,config:config$1,numeric,typed}),det=createDet({divideScalar,isZero,matrix,multiply,subtractScalar,typed,unaryMinus}),inv=createInv({abs,addScalar,det,divideScalar,identity,matrix,multiply,typed,unaryMinus});function predictObservations(e,n,l,u){let{observations:d}=n;return d.length>1?predictOptimize(e,n,u):predictBeforeAT(e,n,l,u)}function predictBeforeAT(e,n,l,u){let{images:d,cameras:p,coordinateSystem:y}=e;if(y.type===1)return u&&d.forEach($=>{$.predict=void 0}),{predicts:{}};let o={};p.forEach($=>o[$.camera_id]=$);let{coordinate:j}=n,Re=fromValues$1(0,0,0);if(l.type===1)Re=fromValues$1(j[1],j[1],j[2]);else{let $=transformCoordinateToLngLat(j,l),Je=y.origin_point,Ve=satellite_geo_calc.coordinateTransfer.lla_to_enu({lon:$[0],lat:$[1],alt:$[2]||0},{lon:Je[0],lat:Je[1],alt:Je[2]});Re=fromValues$1(Ve.x,Ve.y,Ve.z)}let _e={};return d.forEach($=>{let{img_id:Je,camera_id:Ve,projection_matrix:Ze,image_rect:Fe}=$,st=o[Ve].camera_params,{width:tt,height:We}=Fe,Ue=Ze,Qe=fromValues$3(Ue[0],Ue[4],Ue[8],Ue[1],Ue[5],Ue[9],Ue[2],Ue[6],Ue[10]),He=fromValues$1(Ue[3],Ue[7],Ue[11]),tr=fromValues$3(st[0],0,0,0,st[1],0,st[2],st[3],1),or=transformMat3(create$2(),add$4(create$2(),transformMat3(create$2(),Re,Qe),He),tr),xt=scale(create$2,or,1/or[2]);if(xt[0]>0&&xt[0]<tt&&xt[1]>0&&xt[1]<We){let Er=fromValues$1(xt[0],xt[1],1),_r=transformMat3(create$2(),Er,invert(create$4(),tr)),Sr=distortPoint(_r,st);xt=transformMat3(create$2(),fromValues$1(...Sr,1),tr),_e[Je]=[xt[0],xt[1]],u&&($.predict={uv:[xt[0],xt[1]],position:{left:xt[0]*100/tt,top:xt[1]*100/We},distance:Math.hypot(xt[0]-tt/2,xt[1]-We/2)})}else u&&($.predict=void 0)}),{predicts:_e}}function predictOptimize(e,n,l){let{images:u,cameras:d}=e,{observations:p}=n,y={};d.forEach(Ue=>y[Ue.camera_id]=Ue);let o={},j=[],Re=new Map;p.forEach(Ue=>Re.set(Ue.id,Ue.uv)),u.forEach(Ue=>{if(!Re.has(Ue.img_id)){Ue.observation=void 0;return}Ue.observation={id:Ue.img_id,uv:Re.get(Ue.img_id)},j.push(Ue)});let _e=[],$=[];j.forEach(Ue=>{let Qe=Ue.projection_matrix,He=y[Ue.camera_id].camera_params,tr=undistortPoint(Ue.observation.uv,He),or=fromValues$3(Qe[0],Qe[4],Qe[8],Qe[1],Qe[5],Qe[9],Qe[2],Qe[6],Qe[10]),xt=fromValues$1(Qe[3],Qe[7],Qe[11]),Er=fromValues$3(He[0],0,0,0,He[1],0,He[2],He[3],1),_r=invert(create$4(),Er),Sr=transformMat3(create$2(),tr,_r);_e.push([or[0]-or[2]*Sr[0],or[3]-or[5]*Sr[0],or[6]-or[8]*Sr[0]]),_e.push([or[1]-or[2]*Sr[1],or[4]-or[5]*Sr[1],or[7]-or[8]*Sr[1]]),$.push(xt[2]*Sr[0]-xt[0],xt[2]*Sr[1]-xt[1])});let Je=matrix(_e),Ve=matrix($),Ze=transpose(Je),Fe=multiply(multiply(inv(multiply(Ze,Je)),Ze),Ve),st=fromValues$1(Fe.get([0]),Fe.get([1]),Fe.get([2])),tt=0,We=[];return u.forEach(Ue=>{let{img_id:Qe,camera_id:He,projection_matrix:tr,image_rect:or}=Ue,xt=y[He].camera_params,{width:Er,height:_r}=or,Sr=tr,hr=fromValues$3(Sr[0],Sr[4],Sr[8],Sr[1],Sr[5],Sr[9],Sr[2],Sr[6],Sr[10]),Kr=fromValues$1(Sr[3],Sr[7],Sr[11]),Lr=fromValues$3(xt[0],0,0,0,xt[1],0,xt[2],xt[3],1),Sa=add$4(create$2(),transformMat3(create$2(),st,hr),Kr),br=transformMat3(create$2(),fromValues$1(Sa[0]/Sa[2],Sa[1]/Sa[2],1),Lr);if(br[0]>0&&br[0]<Er&&br[1]>0&&br[1]<_r){let Pa=fromValues$1(...br,1),la=transformMat3(create$2(),Pa,invert(create$4(),Lr)),ya=distortPoint(la,xt);if(br=transformMat3(create$2(),fromValues$1(...ya,1),Lr),Ue.observation){l&&(Ue.predict={uv:Ue.observation.uv,position:{left:Ue.observation.uv[0]*100/Er,top:Ue.observation.uv[1]*100/_r},distance:Math.hypot(Ue.observation.uv[0]-Er/2,Ue.observation.uv[1]-_r/2)});let Rn=Ue.observation.uv;We.push(Math.sqrt((br[0]-Rn[0])*(br[0]-Rn[0])+(br[1]-Rn[1])*(br[1]-Rn[1])))}else o[Qe]=[br[0],br[1]],l&&(Ue.predict={uv:[br[0],br[1]],position:{left:br[0]*100/Er,top:br[1]*100/_r},distance:Math.hypot(br[0]-Er/2,br[1]-_r/2)})}else l&&(Ue.predict=void 0)}),tt=sum(We)/We.length,{predicts:o,residual_rmse:tt}}function undistortPoint(e,n){let l=fromValues$3(n[0],0,0,0,n[1],0,n[2],n[3],1),u=transformMat3(create$2(),fromValues$1(...e,1),invert(create$4(),l)),d=100,p=1e-10,y=fromValues(u[0],u[1]),o=subtract(create$1(),distortPoint(y,n),y),j=subtract(create$1(),add$3(create$1(),y,o),u);for(;Math.abs(j[0])+Math.abs(j[1])>p&&d-- >0;)y=subtract(create$1(),u,o),o=subtract(create$1(),distortPoint(y,n),y),j=subtract(create$1(),add$3(create$1(),y,o),u);return transformMat3(create$2(),fromValues$1(...y,1),l)}function distortPoint(e,n){let l=[e[0],e[1]],u=l[0]*l[0]+l[1]*l[1],d=Math.pow(u,2),p=Math.pow(u,3),y=[l[0]*(1+n[4]*u+n[5]*d+n[6]*p)+2*n[7]*l[0]*l[1]+n[8]*(u+2*l[0]*l[0]),l[1]*(1+n[4]*u+n[5]*d+n[6]*p)+2*n[8]*l[0]*l[1]+n[7]*(u+2*l[1]*l[1])];return fromValues(...y)}var ieee754$1={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ieee754$1.read=function(e,n,l,u,d){var p,y,o=d*8-u-1,j=(1<<o)-1,Re=j>>1,_e=-7,$=l?d-1:0,Je=l?-1:1,Ve=e[n+$];for($+=Je,p=Ve&(1<<-_e)-1,Ve>>=-_e,_e+=o;_e>0;p=p*256+e[n+$],$+=Je,_e-=8);for(y=p&(1<<-_e)-1,p>>=-_e,_e+=u;_e>0;y=y*256+e[n+$],$+=Je,_e-=8);if(p===0)p=1-Re;else{if(p===j)return y?NaN:(Ve?-1:1)*(1/0);y=y+Math.pow(2,u),p=p-Re}return(Ve?-1:1)*y*Math.pow(2,p-u)};ieee754$1.write=function(e,n,l,u,d,p){var y,o,j,Re=p*8-d-1,_e=(1<<Re)-1,$=_e>>1,Je=d===23?Math.pow(2,-24)-Math.pow(2,-77):0,Ve=u?0:p-1,Ze=u?1:-1,Fe=n<0||n===0&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(o=isNaN(n)?1:0,y=_e):(y=Math.floor(Math.log(n)/Math.LN2),n*(j=Math.pow(2,-y))<1&&(y--,j*=2),y+$>=1?n+=Je/j:n+=Je*Math.pow(2,1-$),n*j>=2&&(y++,j/=2),y+$>=_e?(o=0,y=_e):y+$>=1?(o=(n*j-1)*Math.pow(2,d),y=y+$):(o=n*Math.pow(2,$-1)*Math.pow(2,d),y=0));d>=8;e[l+Ve]=o&255,Ve+=Ze,o/=256,d-=8);for(y=y<<d|o,Re+=d;Re>0;e[l+Ve]=y&255,Ve+=Ze,y/=256,Re-=8);e[l+Ve-Ze]|=Fe*128};var pbf=Pbf,ieee754=ieee754$1;function Pbf(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}Pbf.Varint=0;Pbf.Fixed64=1;Pbf.Bytes=2;Pbf.Fixed32=5;var SHIFT_LEFT_32=(1<<16)*(1<<16),SHIFT_RIGHT_32=1/SHIFT_LEFT_32,TEXT_DECODER_MIN_LENGTH=12,utf8TextDecoder=typeof TextDecoder=="undefined"?null:new TextDecoder("utf8");Pbf.prototype={destroy:function(){this.buf=null},readFields:function(e,n,l){for(l=l||this.length;this.pos<l;){var u=this.readVarint(),d=u>>3,p=this.pos;this.type=u&7,e(d,n,this),this.pos===p&&this.skip(u)}return n},readMessage:function(e,n){return this.readFields(e,n,this.readVarint()+this.pos)},readFixed32:function(){var e=readUInt32(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=readInt32(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=readUInt32(this.buf,this.pos)+readUInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,e},readSFixed64:function(){var e=readUInt32(this.buf,this.pos)+readInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,e},readFloat:function(){var e=ieee754.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=ieee754.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var n=this.buf,l,u;return u=n[this.pos++],l=u&127,u<128||(u=n[this.pos++],l|=(u&127)<<7,u<128)||(u=n[this.pos++],l|=(u&127)<<14,u<128)||(u=n[this.pos++],l|=(u&127)<<21,u<128)?l:(u=n[this.pos],l|=(u&15)<<28,readVarintRemainder(l,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,n=this.pos;return this.pos=e,e-n>=TEXT_DECODER_MIN_LENGTH&&utf8TextDecoder?readUtf8TextDecoder(this.buf,n,e):readUtf8(this.buf,n,e)},readBytes:function(){var e=this.readVarint()+this.pos,n=this.buf.subarray(this.pos,e);return this.pos=e,n},readPackedVarint:function(e,n){if(this.type!==Pbf.Bytes)return e.push(this.readVarint(n));var l=readPackedEnd(this);for(e=e||[];this.pos<l;)e.push(this.readVarint(n));return e},readPackedSVarint:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSVarint());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readBoolean());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFloat());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readDouble());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFixed32());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSFixed32());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFixed64());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSFixed64());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSFixed64());return e},skip:function(e){var n=e&7;if(n===Pbf.Varint)for(;this.buf[this.pos++]>127;);else if(n===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(n===Pbf.Fixed32)this.pos+=4;else if(n===Pbf.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+n)},writeTag:function(e,n){this.writeVarint(e<<3|n)},realloc:function(e){for(var n=this.length||16;n<this.pos+e;)n*=2;if(n!==this.length){var l=new Uint8Array(n);l.set(this.buf),this.buf=l,this.length=n}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),writeInt32(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),writeInt32(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),writeInt32(this.buf,e&-1,this.pos),writeInt32(this.buf,Math.floor(e*SHIFT_RIGHT_32),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),writeInt32(this.buf,e&-1,this.pos),writeInt32(this.buf,Math.floor(e*SHIFT_RIGHT_32),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){writeBigVarint(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var n=this.pos;this.pos=writeUtf8(this.buf,e,this.pos);var l=this.pos-n;l>=128&&makeRoomForExtraLength(n,l,this),this.pos=n-1,this.writeVarint(l),this.pos+=l},writeFloat:function(e){this.realloc(4),ieee754.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),ieee754.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var n=e.length;this.writeVarint(n),this.realloc(n);for(var l=0;l<n;l++)this.buf[this.pos++]=e[l]},writeRawMessage:function(e,n){this.pos++;var l=this.pos;e(n,this);var u=this.pos-l;u>=128&&makeRoomForExtraLength(l,u,this),this.pos=l-1,this.writeVarint(u),this.pos+=u},writeMessage:function(e,n,l){this.writeTag(e,Pbf.Bytes),this.writeRawMessage(n,l)},writePackedVarint:function(e,n){n.length&&this.writeMessage(e,writePackedVarint,n)},writePackedSVarint:function(e,n){n.length&&this.writeMessage(e,writePackedSVarint,n)},writePackedBoolean:function(e,n){n.length&&this.writeMessage(e,writePackedBoolean,n)},writePackedFloat:function(e,n){n.length&&this.writeMessage(e,writePackedFloat,n)},writePackedDouble:function(e,n){n.length&&this.writeMessage(e,writePackedDouble,n)},writePackedFixed32:function(e,n){n.length&&this.writeMessage(e,writePackedFixed32,n)},writePackedSFixed32:function(e,n){n.length&&this.writeMessage(e,writePackedSFixed32,n)},writePackedFixed64:function(e,n){n.length&&this.writeMessage(e,writePackedFixed64,n)},writePackedSFixed64:function(e,n){n.length&&this.writeMessage(e,writePackedSFixed64,n)},writeBytesField:function(e,n){this.writeTag(e,Pbf.Bytes),this.writeBytes(n)},writeFixed32Field:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeSFixed64(n)},writeVarintField:function(e,n){this.writeTag(e,Pbf.Varint),this.writeVarint(n)},writeSVarintField:function(e,n){this.writeTag(e,Pbf.Varint),this.writeSVarint(n)},writeStringField:function(e,n){this.writeTag(e,Pbf.Bytes),this.writeString(n)},writeFloatField:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeFloat(n)},writeDoubleField:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeDouble(n)},writeBooleanField:function(e,n){this.writeVarintField(e,Boolean(n))}};function readVarintRemainder(e,n,l){var u=l.buf,d,p;if(p=u[l.pos++],d=(p&112)>>4,p<128||(p=u[l.pos++],d|=(p&127)<<3,p<128)||(p=u[l.pos++],d|=(p&127)<<10,p<128)||(p=u[l.pos++],d|=(p&127)<<17,p<128)||(p=u[l.pos++],d|=(p&127)<<24,p<128)||(p=u[l.pos++],d|=(p&1)<<31,p<128))return toNum(e,d,n);throw new Error("Expected varint not more than 10 bytes")}function readPackedEnd(e){return e.type===Pbf.Bytes?e.readVarint()+e.pos:e.pos+1}function toNum(e,n,l){return l?n*4294967296+(e>>>0):(n>>>0)*4294967296+(e>>>0)}function writeBigVarint(e,n){var l,u;if(e>=0?(l=e%4294967296|0,u=e/4294967296|0):(l=~(-e%4294967296),u=~(-e/4294967296),l^4294967295?l=l+1|0:(l=0,u=u+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");n.realloc(10),writeBigVarintLow(l,u,n),writeBigVarintHigh(u,n)}function writeBigVarintLow(e,n,l){l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos]=e&127}function writeBigVarintHigh(e,n){var l=(e&7)<<4;n.buf[n.pos++]|=l|((e>>>=3)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127)))))}function makeRoomForExtraLength(e,n,l){var u=n<=16383?1:n<=2097151?2:n<=268435455?3:Math.floor(Math.log(n)/(Math.LN2*7));l.realloc(u);for(var d=l.pos-1;d>=e;d--)l.buf[d+u]=l.buf[d]}function writePackedVarint(e,n){for(var l=0;l<e.length;l++)n.writeVarint(e[l])}function writePackedSVarint(e,n){for(var l=0;l<e.length;l++)n.writeSVarint(e[l])}function writePackedFloat(e,n){for(var l=0;l<e.length;l++)n.writeFloat(e[l])}function writePackedDouble(e,n){for(var l=0;l<e.length;l++)n.writeDouble(e[l])}function writePackedBoolean(e,n){for(var l=0;l<e.length;l++)n.writeBoolean(e[l])}function writePackedFixed32(e,n){for(var l=0;l<e.length;l++)n.writeFixed32(e[l])}function writePackedSFixed32(e,n){for(var l=0;l<e.length;l++)n.writeSFixed32(e[l])}function writePackedFixed64(e,n){for(var l=0;l<e.length;l++)n.writeFixed64(e[l])}function writePackedSFixed64(e,n){for(var l=0;l<e.length;l++)n.writeSFixed64(e[l])}function readUInt32(e,n){return(e[n]|e[n+1]<<8|e[n+2]<<16)+e[n+3]*16777216}function writeInt32(e,n,l){e[l]=n,e[l+1]=n>>>8,e[l+2]=n>>>16,e[l+3]=n>>>24}function readInt32(e,n){return(e[n]|e[n+1]<<8|e[n+2]<<16)+(e[n+3]<<24)}function readUtf8(e,n,l){for(var u="",d=n;d<l;){var p=e[d],y=null,o=p>239?4:p>223?3:p>191?2:1;if(d+o>l)break;var j,Re,_e;o===1?p<128&&(y=p):o===2?(j=e[d+1],(j&192)===128&&(y=(p&31)<<6|j&63,y<=127&&(y=null))):o===3?(j=e[d+1],Re=e[d+2],(j&192)===128&&(Re&192)===128&&(y=(p&15)<<12|(j&63)<<6|Re&63,(y<=2047||y>=55296&&y<=57343)&&(y=null))):o===4&&(j=e[d+1],Re=e[d+2],_e=e[d+3],(j&192)===128&&(Re&192)===128&&(_e&192)===128&&(y=(p&15)<<18|(j&63)<<12|(Re&63)<<6|_e&63,(y<=65535||y>=1114112)&&(y=null))),y===null?(y=65533,o=1):y>65535&&(y-=65536,u+=String.fromCharCode(y>>>10&1023|55296),y=56320|y&1023),u+=String.fromCharCode(y),d+=o}return u}function readUtf8TextDecoder(e,n,l){return utf8TextDecoder.decode(e.subarray(n,l))}function writeUtf8(e,n,l){for(var u=0,d,p;u<n.length;u++){if(d=n.charCodeAt(u),d>55295&&d<57344)if(p)if(d<56320){e[l++]=239,e[l++]=191,e[l++]=189,p=d;continue}else d=p-55296<<10|d-56320|65536,p=null;else{d>56319||u+1===n.length?(e[l++]=239,e[l++]=191,e[l++]=189):p=d;continue}else p&&(e[l++]=239,e[l++]=191,e[l++]=189,p=null);d<128?e[l++]=d:(d<2048?e[l++]=d>>6|192:(d<65536?e[l++]=d>>12|224:(e[l++]=d>>18|240,e[l++]=d>>12&63|128),e[l++]=d>>6&63|128),e[l++]=d&63|128)}return l}const proto_10=`
|
|
495
495
|
syntax = "proto2";
|
|
496
496
|
package mipmap.engine.message;
|
|
497
497
|
|
|
@@ -77144,7 +77144,9 @@ function predictObservations(e, n, l, u) {
|
|
|
77144
77144
|
function predictBeforeAT(e, n, l, u) {
|
|
77145
77145
|
let { images: d, cameras: p, coordinateSystem: y } = e;
|
|
77146
77146
|
if (y.type === 1)
|
|
77147
|
-
return {
|
|
77147
|
+
return u && d.forEach(($) => {
|
|
77148
|
+
$.predict = void 0;
|
|
77149
|
+
}), {
|
|
77148
77150
|
predicts: {}
|
|
77149
77151
|
};
|
|
77150
77152
|
let o = {};
|
package/dist/catchUtil.min.js
CHANGED
|
@@ -491,7 +491,7 @@ Example:
|
|
|
491
491
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
492
492
|
**/(function(e,n){(function(l){var u=2e3,d={s:1,n:0,d:1};function p(tt,We){if(isNaN(tt=parseInt(tt,10)))throw Fe();return tt*We}function y(tt,We){if(We===0)throw Ze();var Ue=Object.create(Ve.prototype);Ue.s=tt<0?-1:1,tt=tt<0?-tt:tt;var Qe=Je(tt,We);return Ue.n=tt/Qe,Ue.d=We/Qe,Ue}function o(tt){for(var We={},Ue=tt,Qe=2,He=4;He<=Ue;){for(;Ue%Qe===0;)Ue/=Qe,We[Qe]=(We[Qe]||0)+1;He+=1+2*Qe++}return Ue!==tt?Ue>1&&(We[Ue]=(We[Ue]||0)+1):We[tt]=(We[tt]||0)+1,We}var j=function(tt,We){var Ue=0,Qe=1,He=1,tr=0,or=0,xt=0,Er=1,_r=1,Sr=0,hr=1,Kr=1,Lr=1,Sa=1e7,br;if(tt!=null)if(We!==void 0){if(Ue=tt,Qe=We,He=Ue*Qe,Ue%1!==0||Qe%1!==0)throw st()}else switch(typeof tt){case"object":{if("d"in tt&&"n"in tt)Ue=tt.n,Qe=tt.d,"s"in tt&&(Ue*=tt.s);else if(0 in tt)Ue=tt[0],1 in tt&&(Qe=tt[1]);else throw Fe();He=Ue*Qe;break}case"number":{if(tt<0&&(He=tt,tt=-tt),tt%1===0)Ue=tt;else if(tt>0){for(tt>=1&&(_r=Math.pow(10,Math.floor(1+Math.log(tt)/Math.LN10)),tt/=_r);hr<=Sa&&Lr<=Sa;)if(br=(Sr+Kr)/(hr+Lr),tt===br){hr+Lr<=Sa?(Ue=Sr+Kr,Qe=hr+Lr):Lr>hr?(Ue=Kr,Qe=Lr):(Ue=Sr,Qe=hr);break}else tt>br?(Sr+=Kr,hr+=Lr):(Kr+=Sr,Lr+=hr),hr>Sa?(Ue=Kr,Qe=Lr):(Ue=Sr,Qe=hr);Ue*=_r}else(isNaN(tt)||isNaN(We))&&(Qe=Ue=NaN);break}case"string":{if(hr=tt.match(/\d+|./g),hr===null)throw Fe();if(hr[Sr]==="-"?(He=-1,Sr++):hr[Sr]==="+"&&Sr++,hr.length===Sr+1?or=p(hr[Sr++],He):hr[Sr+1]==="."||hr[Sr]==="."?(hr[Sr]!=="."&&(tr=p(hr[Sr++],He)),Sr++,(Sr+1===hr.length||hr[Sr+1]==="("&&hr[Sr+3]===")"||hr[Sr+1]==="'"&&hr[Sr+3]==="'")&&(or=p(hr[Sr],He),Er=Math.pow(10,hr[Sr].length),Sr++),(hr[Sr]==="("&&hr[Sr+2]===")"||hr[Sr]==="'"&&hr[Sr+2]==="'")&&(xt=p(hr[Sr+1],He),_r=Math.pow(10,hr[Sr+1].length)-1,Sr+=3)):hr[Sr+1]==="/"||hr[Sr+1]===":"?(or=p(hr[Sr],He),Er=p(hr[Sr+2],1),Sr+=3):hr[Sr+3]==="/"&&hr[Sr+1]===" "&&(tr=p(hr[Sr],He),or=p(hr[Sr+2],He),Er=p(hr[Sr+4],1),Sr+=5),hr.length<=Sr){Qe=Er*_r,He=Ue=xt+Qe*tr+_r*or;break}}default:throw Fe()}if(Qe===0)throw Ze();d.s=He<0?-1:1,d.n=Math.abs(Ue),d.d=Math.abs(Qe)};function Re(tt,We,Ue){for(var Qe=1;We>0;tt=tt*tt%Ue,We>>=1)We&1&&(Qe=Qe*tt%Ue);return Qe}function _e(tt,We){for(;We%2===0;We/=2);for(;We%5===0;We/=5);if(We===1)return 0;for(var Ue=10%We,Qe=1;Ue!==1;Qe++)if(Ue=Ue*10%We,Qe>u)return 0;return Qe}function $(tt,We,Ue){for(var Qe=1,He=Re(10,Ue,We),tr=0;tr<300;tr++){if(Qe===He)return tr;Qe=Qe*10%We,He=He*10%We}return 0}function Je(tt,We){if(!tt)return We;if(!We)return tt;for(;;){if(tt%=We,!tt)return We;if(We%=tt,!We)return tt}}function Ve(tt,We){if(j(tt,We),this instanceof Ve)tt=Je(d.d,d.n),this.s=d.s,this.n=d.n/tt,this.d=d.d/tt;else return y(d.s*d.n,d.d)}var Ze=function(){return new Error("Division by Zero")},Fe=function(){return new Error("Invalid argument")},st=function(){return new Error("Parameters must be integer")};Ve.prototype={s:1,n:0,d:1,abs:function(){return y(this.n,this.d)},neg:function(){return y(-this.s*this.n,this.d)},add:function(tt,We){return j(tt,We),y(this.s*this.n*d.d+d.s*this.d*d.n,this.d*d.d)},sub:function(tt,We){return j(tt,We),y(this.s*this.n*d.d-d.s*this.d*d.n,this.d*d.d)},mul:function(tt,We){return j(tt,We),y(this.s*d.s*this.n*d.n,this.d*d.d)},div:function(tt,We){return j(tt,We),y(this.s*d.s*this.n*d.d,this.d*d.n)},clone:function(){return y(this.s*this.n,this.d)},mod:function(tt,We){if(isNaN(this.n)||isNaN(this.d))return new Ve(NaN);if(tt===void 0)return y(this.s*this.n%this.d,1);if(j(tt,We),d.n===0&&this.d===0)throw Ze();return y(this.s*(d.d*this.n)%(d.n*this.d),d.d*this.d)},gcd:function(tt,We){return j(tt,We),y(Je(d.n,this.n)*Je(d.d,this.d),d.d*this.d)},lcm:function(tt,We){return j(tt,We),d.n===0&&this.n===0?y(0,1):y(d.n*this.n,Je(d.n,this.n)*Je(d.d,this.d))},ceil:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new Ve(NaN):y(Math.ceil(tt*this.s*this.n/this.d),tt)},floor:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new Ve(NaN):y(Math.floor(tt*this.s*this.n/this.d),tt)},round:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new Ve(NaN):y(Math.round(tt*this.s*this.n/this.d),tt)},inverse:function(){return y(this.s*this.d,this.n)},pow:function(tt,We){if(j(tt,We),d.d===1)return d.s<0?y(Math.pow(this.s*this.d,d.n),Math.pow(this.n,d.n)):y(Math.pow(this.s*this.n,d.n),Math.pow(this.d,d.n));if(this.s<0)return null;var Ue=o(this.n),Qe=o(this.d),He=1,tr=1;for(var or in Ue)if(or!=="1"){if(or==="0"){He=0;break}if(Ue[or]*=d.n,Ue[or]%d.d===0)Ue[or]/=d.d;else return null;He*=Math.pow(or,Ue[or])}for(var or in Qe)if(or!=="1"){if(Qe[or]*=d.n,Qe[or]%d.d===0)Qe[or]/=d.d;else return null;tr*=Math.pow(or,Qe[or])}return d.s<0?y(tr,He):y(He,tr)},equals:function(tt,We){return j(tt,We),this.s*this.n*d.d===d.s*d.n*this.d},compare:function(tt,We){j(tt,We);var Ue=this.s*this.n*d.d-d.s*d.n*this.d;return(0<Ue)-(Ue<0)},simplify:function(tt){if(isNaN(this.n)||isNaN(this.d))return this;tt=tt||.001;for(var We=this.abs(),Ue=We.toContinued(),Qe=1;Qe<Ue.length;Qe++){for(var He=y(Ue[Qe-1],1),tr=Qe-2;tr>=0;tr--)He=He.inverse().add(Ue[tr]);if(Math.abs(He.sub(We).valueOf())<tt)return He.mul(this.s)}return this},divisible:function(tt,We){return j(tt,We),!(!(d.n*this.d)||this.n*d.d%(d.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(tt){var We,Ue="",Qe=this.n,He=this.d;return this.s<0&&(Ue+="-"),He===1?Ue+=Qe:(tt&&(We=Math.floor(Qe/He))>0&&(Ue+=We,Ue+=" ",Qe%=He),Ue+=Qe,Ue+="/",Ue+=He),Ue},toLatex:function(tt){var We,Ue="",Qe=this.n,He=this.d;return this.s<0&&(Ue+="-"),He===1?Ue+=Qe:(tt&&(We=Math.floor(Qe/He))>0&&(Ue+=We,Qe%=He),Ue+="\\frac{",Ue+=Qe,Ue+="}{",Ue+=He,Ue+="}"),Ue},toContinued:function(){var tt,We=this.n,Ue=this.d,Qe=[];if(isNaN(We)||isNaN(Ue))return Qe;do Qe.push(Math.floor(We/Ue)),tt=We%Ue,We=Ue,Ue=tt;while(We!==1);return Qe},toString:function(tt){var We=this.n,Ue=this.d;if(isNaN(We)||isNaN(Ue))return"NaN";tt=tt||15;var Qe=_e(We,Ue),He=$(We,Ue,Qe),tr=this.s<0?"-":"";if(tr+=We/Ue|0,We%=Ue,We*=10,We&&(tr+="."),Qe){for(var or=He;or--;)tr+=We/Ue|0,We%=Ue,We*=10;tr+="(";for(var or=Qe;or--;)tr+=We/Ue|0,We%=Ue,We*=10;tr+=")"}else for(var or=tt;We&&or--;)tr+=We/Ue|0,We%=Ue,We*=10;return tr}},Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.default=Ve,Ve.Fraction=Ve,e.exports=Ve})()})(fraction$1);const Fraction$1=getDefaultExportFromCjs(fraction$1.exports);var name$B="Fraction",dependencies$A=[],createFractionClass=factory(name$B,dependencies$A,()=>(Object.defineProperty(Fraction$1,"name",{value:"Fraction"}),Fraction$1.prototype.constructor=Fraction$1,Fraction$1.prototype.type="Fraction",Fraction$1.prototype.isFraction=!0,Fraction$1.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},Fraction$1.fromJSON=function(e){return new Fraction$1(e)},Fraction$1),{isClass:!0}),name$A="Matrix",dependencies$z=[],createMatrixClass=factory(name$A,dependencies$z,()=>{function e(){if(!(this instanceof e))throw new SyntaxError("Constructor must be called with the new operator")}return e.prototype.type="Matrix",e.prototype.isMatrix=!0,e.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},e.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},e.prototype.create=function(n,l){throw new Error("Cannot invoke create on a Matrix interface")},e.prototype.subset=function(n,l,u){throw new Error("Cannot invoke subset on a Matrix interface")},e.prototype.get=function(n){throw new Error("Cannot invoke get on a Matrix interface")},e.prototype.set=function(n,l,u){throw new Error("Cannot invoke set on a Matrix interface")},e.prototype.resize=function(n,l){throw new Error("Cannot invoke resize on a Matrix interface")},e.prototype.reshape=function(n,l){throw new Error("Cannot invoke reshape on a Matrix interface")},e.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},e.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},e.prototype.map=function(n,l){throw new Error("Cannot invoke map on a Matrix interface")},e.prototype.forEach=function(n){throw new Error("Cannot invoke forEach on a Matrix interface")},e.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},e.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},e.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},e.prototype.format=function(n){throw new Error("Cannot invoke format on a Matrix interface")},e.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},e},{isClass:!0});function maxArgumentCount(e){return Object.keys(e.signatures||{}).reduce(function(n,l){var u=(l.match(/,/g)||[]).length+1;return Math.max(n,u)},-1)}var name$z="DenseMatrix",dependencies$y=["Matrix"],createDenseMatrixClass=factory(name$z,dependencies$y,e=>{var{Matrix:n}=e;function l(_e,$){if(!(this instanceof l))throw new SyntaxError("Constructor must be called with the new operator");if($&&!isString($))throw new Error("Invalid datatype: "+$);if(isMatrix(_e))_e.type==="DenseMatrix"?(this._data=clone$2(_e._data),this._size=clone$2(_e._size),this._datatype=$||_e._datatype):(this._data=_e.toArray(),this._size=_e.size(),this._datatype=$||_e._datatype);else if(_e&&isArray(_e.data)&&isArray(_e.size))this._data=_e.data,this._size=_e.size,validate(this._data,this._size),this._datatype=$||_e.datatype;else if(isArray(_e))this._data=Re(_e),this._size=arraySize(this._data),validate(this._data,this._size),this._datatype=$;else{if(_e)throw new TypeError("Unsupported type of data ("+typeOf(_e)+")");this._data=[],this._size=[0],this._datatype=$}}l.prototype=new n,l.prototype.createDenseMatrix=function(_e,$){return new l(_e,$)},Object.defineProperty(l,"name",{value:"DenseMatrix"}),l.prototype.constructor=l,l.prototype.type="DenseMatrix",l.prototype.isDenseMatrix=!0,l.prototype.getDataType=function(){return getArrayDataType(this._data,typeOf)},l.prototype.storage=function(){return"dense"},l.prototype.datatype=function(){return this._datatype},l.prototype.create=function(_e,$){return new l(_e,$)},l.prototype.subset=function(_e,$,Je){switch(arguments.length){case 1:return u(this,_e);case 2:case 3:return p(this,_e,$,Je);default:throw new SyntaxError("Wrong number of arguments")}},l.prototype.get=function(_e){if(!isArray(_e))throw new TypeError("Array expected");if(_e.length!==this._size.length)throw new DimensionError(_e.length,this._size.length);for(var $=0;$<_e.length;$++)validateIndex(_e[$],this._size[$]);for(var Je=this._data,Ve=0,Ze=_e.length;Ve<Ze;Ve++){var Fe=_e[Ve];validateIndex(Fe,Je.length),Je=Je[Fe]}return Je},l.prototype.set=function(_e,$,Je){if(!isArray(_e))throw new TypeError("Array expected");if(_e.length<this._size.length)throw new DimensionError(_e.length,this._size.length,"<");var Ve,Ze,Fe,st=_e.map(function(We){return We+1});j(this,st,Je);var tt=this._data;for(Ve=0,Ze=_e.length-1;Ve<Ze;Ve++)Fe=_e[Ve],validateIndex(Fe,tt.length),tt=tt[Fe];return Fe=_e[_e.length-1],validateIndex(Fe,tt.length),tt[Fe]=$,this};function u(_e,$){if(!isIndex($))throw new TypeError("Invalid index");var Je=$.isScalar();if(Je)return _e.get($.min());var Ve=$.size();if(Ve.length!==_e._size.length)throw new DimensionError(Ve.length,_e._size.length);for(var Ze=$.min(),Fe=$.max(),st=0,tt=_e._size.length;st<tt;st++)validateIndex(Ze[st],_e._size[st]),validateIndex(Fe[st],_e._size[st]);return new l(d(_e._data,$,Ve.length,0),_e._datatype)}function d(_e,$,Je,Ve){var Ze=Ve===Je-1,Fe=$.dimension(Ve);return Ze?Fe.map(function(st){return validateIndex(st,_e.length),_e[st]}).valueOf():Fe.map(function(st){validateIndex(st,_e.length);var tt=_e[st];return d(tt,$,Je,Ve+1)}).valueOf()}function p(_e,$,Je,Ve){if(!$||$.isIndex!==!0)throw new TypeError("Invalid index");var Ze=$.size(),Fe=$.isScalar(),st;if(isMatrix(Je)?(st=Je.size(),Je=Je.valueOf()):st=arraySize(Je),Fe){if(st.length!==0)throw new TypeError("Scalar expected");_e.set($.min(),Je,Ve)}else{if(!deepStrictEqual(st,Ze))try{st.length===0?Je=broadcastTo([Je],Ze):Je=broadcastTo(Je,Ze),st=arraySize(Je)}catch(tr){}if(Ze.length<_e._size.length)throw new DimensionError(Ze.length,_e._size.length,"<");if(st.length<Ze.length){for(var tt=0,We=0;Ze[tt]===1&&st[tt]===1;)tt++;for(;Ze[tt]===1;)We++,tt++;Je=unsqueeze(Je,Ze.length,We,st)}if(!deepStrictEqual(Ze,st))throw new DimensionError(Ze,st,">");var Ue=$.max().map(function(tr){return tr+1});j(_e,Ue,Ve);var Qe=Ze.length,He=0;y(_e._data,$,Je,Qe,He)}return _e}function y(_e,$,Je,Ve,Ze){var Fe=Ze===Ve-1,st=$.dimension(Ze);Fe?st.forEach(function(tt,We){validateIndex(tt),_e[tt]=Je[We[0]]}):st.forEach(function(tt,We){validateIndex(tt),y(_e[tt],$,Je[We[0]],Ve,Ze+1)})}l.prototype.resize=function(_e,$,Je){if(!isCollection(_e))throw new TypeError("Array or Matrix expected");var Ve=_e.valueOf().map(Fe=>Array.isArray(Fe)&&Fe.length===1?Fe[0]:Fe),Ze=Je?this.clone():this;return o(Ze,Ve,$)};function o(_e,$,Je){if($.length===0){for(var Ve=_e._data;isArray(Ve);)Ve=Ve[0];return Ve}return _e._size=$.slice(0),_e._data=resize(_e._data,_e._size,Je),_e}l.prototype.reshape=function(_e,$){var Je=$?this.clone():this;Je._data=reshape(Je._data,_e);var Ve=Je._size.reduce((Ze,Fe)=>Ze*Fe);return Je._size=processSizesWildcard(_e,Ve),Je};function j(_e,$,Je){for(var Ve=_e._size.slice(0),Ze=!1;Ve.length<$.length;)Ve.push(0),Ze=!0;for(var Fe=0,st=$.length;Fe<st;Fe++)$[Fe]>Ve[Fe]&&(Ve[Fe]=$[Fe],Ze=!0);Ze&&o(_e,Ve,Je)}l.prototype.clone=function(){var _e=new l({data:clone$2(this._data),size:clone$2(this._size),datatype:this._datatype});return _e},l.prototype.size=function(){return this._size.slice(0)},l.prototype.map=function(_e){var $=this,Je=maxArgumentCount(_e),Ve=function st(tt,We){return isArray(tt)?tt.map(function(Ue,Qe){return st(Ue,We.concat(Qe))}):Je===1?_e(tt):Je===2?_e(tt,We):_e(tt,We,$)},Ze=Ve(this._data,[]),Fe=this._datatype!==void 0?getArrayDataType(Ze,typeOf):void 0;return new l(Ze,Fe)},l.prototype.forEach=function(_e){var $=this,Je=function Ve(Ze,Fe){isArray(Ze)?Ze.forEach(function(st,tt){Ve(st,Fe.concat(tt))}):_e(Ze,Fe,$)};Je(this._data,[])},l.prototype[Symbol.iterator]=function*(){var _e=function*$(Je,Ve){if(isArray(Je))for(var Ze=0;Ze<Je.length;Ze++)yield*$(Je[Ze],Ve.concat(Ze));else yield{value:Je,index:Ve}};yield*_e(this._data,[])},l.prototype.rows=function(){var _e=[],$=this.size();if($.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var Je=this._data;for(var Ve of Je)_e.push(new l([Ve],this._datatype));return _e},l.prototype.columns=function(){var _e=this,$=[],Je=this.size();if(Je.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var Ve=this._data,Ze=function(tt){var We=Ve.map(Ue=>[Ue[tt]]);$.push(new l(We,_e._datatype))},Fe=0;Fe<Je[1];Fe++)Ze(Fe);return $},l.prototype.toArray=function(){return clone$2(this._data)},l.prototype.valueOf=function(){return this._data},l.prototype.format=function(_e){return format(this._data,_e)},l.prototype.toString=function(){return format(this._data)},l.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},l.prototype.diagonal=function(_e){if(_e){if(isBigNumber(_e)&&(_e=_e.toNumber()),!isNumber(_e)||!isInteger$1(_e))throw new TypeError("The parameter k must be an integer number")}else _e=0;for(var $=_e>0?_e:0,Je=_e<0?-_e:0,Ve=this._size[0],Ze=this._size[1],Fe=Math.min(Ve-Je,Ze-$),st=[],tt=0;tt<Fe;tt++)st[tt]=this._data[tt+Je][tt+$];return new l({data:st,size:[Fe],datatype:this._datatype})},l.diagonal=function(_e,$,Je,Ve){if(!isArray(_e))throw new TypeError("Array expected, size parameter");if(_e.length!==2)throw new Error("Only two dimensions matrix are supported");if(_e=_e.map(function(or){if(isBigNumber(or)&&(or=or.toNumber()),!isNumber(or)||!isInteger$1(or)||or<1)throw new Error("Size values must be positive integers");return or}),Je){if(isBigNumber(Je)&&(Je=Je.toNumber()),!isNumber(Je)||!isInteger$1(Je))throw new TypeError("The parameter k must be an integer number")}else Je=0;var Ze=Je>0?Je:0,Fe=Je<0?-Je:0,st=_e[0],tt=_e[1],We=Math.min(st-Fe,tt-Ze),Ue;if(isArray($)){if($.length!==We)throw new Error("Invalid value array length");Ue=function(xt){return $[xt]}}else if(isMatrix($)){var Qe=$.size();if(Qe.length!==1||Qe[0]!==We)throw new Error("Invalid matrix length");Ue=function(xt){return $.get([xt])}}else Ue=function(){return $};Ve||(Ve=isBigNumber(Ue(0))?Ue(0).mul(0):0);var He=[];if(_e.length>0){He=resize(He,_e,Ve);for(var tr=0;tr<We;tr++)He[tr+Fe][tr+Ze]=Ue(tr)}return new l({data:He,size:[st,tt]})},l.fromJSON=function(_e){return new l(_e)},l.prototype.swapRows=function(_e,$){if(!isNumber(_e)||!isInteger$1(_e)||!isNumber($)||!isInteger$1($))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return validateIndex(_e,this._size[0]),validateIndex($,this._size[0]),l._swapRows(_e,$,this._data),this},l._swapRows=function(_e,$,Je){var Ve=Je[_e];Je[_e]=Je[$],Je[$]=Ve};function Re(_e){return isMatrix(_e)?Re(_e.valueOf()):isArray(_e)?_e.map(Re):_e}return l},{isClass:!0});function _switch(e){var n=e.length,l=e[0].length,u,d,p=[];for(d=0;d<l;d++){var y=[];for(u=0;u<n;u++)y.push(e[u][d]);p.push(y)}return p}function containsCollections(e){for(var n=0;n<e.length;n++)if(isCollection(e[n]))return!0;return!1}function deepForEach(e,n){isMatrix(e)&&(e=e.valueOf());for(var l=0,u=e.length;l<u;l++){var d=e[l];Array.isArray(d)?deepForEach(d,n):n(d)}}function deepMap(e,n,l){return e&&typeof e.map=="function"?e.map(function(u){return deepMap(u,n)}):n(e)}function reduce(e,n,l){var u=Array.isArray(e)?arraySize(e):e.size();if(n<0||n>=u.length)throw new IndexError(n,u.length);return isMatrix(e)?e.create(_reduce(e.valueOf(),n,l)):_reduce(e,n,l)}function _reduce(e,n,l){var u,d,p,y;if(n<=0)if(Array.isArray(e[0])){for(y=_switch(e),d=[],u=0;u<y.length;u++)d[u]=_reduce(y[u],n-1,l);return d}else{for(p=e[0],u=1;u<e.length;u++)p=l(p,e[u]);return p}else{for(d=[],u=0;u<e.length;u++)d[u]=_reduce(e[u],n-1,l);return d}}var name$y="isInteger",dependencies$x=["typed"],createIsInteger=factory(name$y,dependencies$x,e=>{var{typed:n}=e;return n(name$y,{number:isInteger$1,BigNumber:function(u){return u.isInt()},Fraction:function(u){return u.d===1&&isFinite(u.n)},"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),n1$1="number",n2="number, number";function absNumber(e){return Math.abs(e)}absNumber.signature=n1$1;function addNumber(e,n){return e+n}addNumber.signature=n2;function subtractNumber(e,n){return e-n}subtractNumber.signature=n2;function multiplyNumber(e,n){return e*n}multiplyNumber.signature=n2;function unaryMinusNumber(e){return-e}unaryMinusNumber.signature=n1$1;var n1="number";function isZeroNumber(e){return e===0}isZeroNumber.signature=n1;var name$x="isZero",dependencies$w=["typed"],createIsZero=factory(name$x,dependencies$w,e=>{var{typed:n}=e;return n(name$x,{number:isZeroNumber,BigNumber:function(u){return u.isZero()},Complex:function(u){return u.re===0&&u.im===0},Fraction:function(u){return u.d===1&&u.n===0},Unit:n.referToSelf(l=>u=>n.find(l,u.valueType())(u.value)),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})});function nearlyEqual(e,n,l){if(l==null)return e.eq(n);if(e.eq(n))return!0;if(e.isNaN()||n.isNaN())return!1;if(e.isFinite()&&n.isFinite()){var u=e.minus(n).abs();if(u.isZero())return!0;var d=e.constructor.max(e.abs(),n.abs());return u.lte(d.times(l))}return!1}function complexEquals(e,n,l){return nearlyEqual$1(e.re,n.re,l)&&nearlyEqual$1(e.im,n.im,l)}var createCompareUnits=factory("compareUnits",["typed"],e=>{var{typed:n}=e;return{"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(!u.equalBase(d))throw new Error("Cannot compare units with different base");return n.find(l,[u.valueType(),d.valueType()])(u.value,d.value)})}}),name$w="equalScalar",dependencies$v=["typed","config"],createEqualScalar=factory(name$w,dependencies$v,e=>{var{typed:n,config:l}=e,u=createCompareUnits({typed:n});return n(name$w,{"boolean, boolean":function(p,y){return p===y},"number, number":function(p,y){return nearlyEqual$1(p,y,l.epsilon)},"BigNumber, BigNumber":function(p,y){return p.eq(y)||nearlyEqual(p,y,l.epsilon)},"Fraction, Fraction":function(p,y){return p.equals(y)},"Complex, Complex":function(p,y){return complexEquals(p,y,l.epsilon)}},u)});factory(name$w,["typed","config"],e=>{var{typed:n,config:l}=e;return n(name$w,{"number, number":function(d,p){return nearlyEqual$1(d,p,l.epsilon)}})});var name$v="SparseMatrix",dependencies$u=["typed","equalScalar","Matrix"],createSparseMatrixClass=factory(name$v,dependencies$u,e=>{var{typed:n,equalScalar:l,Matrix:u}=e;function d(Fe,st){if(!(this instanceof d))throw new SyntaxError("Constructor must be called with the new operator");if(st&&!isString(st))throw new Error("Invalid datatype: "+st);if(isMatrix(Fe))p(this,Fe,st);else if(Fe&&isArray(Fe.index)&&isArray(Fe.ptr)&&isArray(Fe.size))this._values=Fe.values,this._index=Fe.index,this._ptr=Fe.ptr,this._size=Fe.size,this._datatype=st||Fe.datatype;else if(isArray(Fe))y(this,Fe,st);else{if(Fe)throw new TypeError("Unsupported type of data ("+typeOf(Fe)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=st}}function p(Fe,st,tt){st.type==="SparseMatrix"?(Fe._values=st._values?clone$2(st._values):void 0,Fe._index=clone$2(st._index),Fe._ptr=clone$2(st._ptr),Fe._size=clone$2(st._size),Fe._datatype=tt||st._datatype):y(Fe,st.valueOf(),tt||st._datatype)}function y(Fe,st,tt){Fe._values=[],Fe._index=[],Fe._ptr=[],Fe._datatype=tt;var We=st.length,Ue=0,Qe=l,He=0;if(isString(tt)&&(Qe=n.find(l,[tt,tt])||l,He=n.convert(0,tt)),We>0){var tr=0;do{Fe._ptr.push(Fe._index.length);for(var or=0;or<We;or++){var xt=st[or];if(isArray(xt)){if(tr===0&&Ue<xt.length&&(Ue=xt.length),tr<xt.length){var Er=xt[tr];Qe(Er,He)||(Fe._values.push(Er),Fe._index.push(or))}}else tr===0&&Ue<1&&(Ue=1),Qe(xt,He)||(Fe._values.push(xt),Fe._index.push(or))}tr++}while(tr<Ue)}Fe._ptr.push(Fe._index.length),Fe._size=[We,Ue]}d.prototype=new u,d.prototype.createSparseMatrix=function(Fe,st){return new d(Fe,st)},Object.defineProperty(d,"name",{value:"SparseMatrix"}),d.prototype.constructor=d,d.prototype.type="SparseMatrix",d.prototype.isSparseMatrix=!0,d.prototype.getDataType=function(){return getArrayDataType(this._values,typeOf)},d.prototype.storage=function(){return"sparse"},d.prototype.datatype=function(){return this._datatype},d.prototype.create=function(Fe,st){return new d(Fe,st)},d.prototype.density=function(){var Fe=this._size[0],st=this._size[1];return Fe!==0&&st!==0?this._index.length/(Fe*st):0},d.prototype.subset=function(Fe,st,tt){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return o(this,Fe);case 2:case 3:return j(this,Fe,st,tt);default:throw new SyntaxError("Wrong number of arguments")}};function o(Fe,st){if(!isIndex(st))throw new TypeError("Invalid index");var tt=st.isScalar();if(tt)return Fe.get(st.min());var We=st.size();if(We.length!==Fe._size.length)throw new DimensionError(We.length,Fe._size.length);var Ue,Qe,He,tr,or=st.min(),xt=st.max();for(Ue=0,Qe=Fe._size.length;Ue<Qe;Ue++)validateIndex(or[Ue],Fe._size[Ue]),validateIndex(xt[Ue],Fe._size[Ue]);var Er=Fe._values,_r=Fe._index,Sr=Fe._ptr,hr=st.dimension(0),Kr=st.dimension(1),Lr=[],Sa=[];hr.forEach(function(ya,Rn){Sa[ya]=Rn[0],Lr[ya]=!0});var br=Er?[]:void 0,Pa=[],la=[];return Kr.forEach(function(ya){for(la.push(Pa.length),He=Sr[ya],tr=Sr[ya+1];He<tr;He++)Ue=_r[He],Lr[Ue]===!0&&(Pa.push(Sa[Ue]),br&&br.push(Er[He]))}),la.push(Pa.length),new d({values:br,index:Pa,ptr:la,size:We,datatype:Fe._datatype})}function j(Fe,st,tt,We){if(!st||st.isIndex!==!0)throw new TypeError("Invalid index");var Ue=st.size(),Qe=st.isScalar(),He;if(isMatrix(tt)?(He=tt.size(),tt=tt.toArray()):He=arraySize(tt),Qe){if(He.length!==0)throw new TypeError("Scalar expected");Fe.set(st.min(),tt,We)}else{if(Ue.length!==1&&Ue.length!==2)throw new DimensionError(Ue.length,Fe._size.length,"<");if(He.length<Ue.length){for(var tr=0,or=0;Ue[tr]===1&&He[tr]===1;)tr++;for(;Ue[tr]===1;)or++,tr++;tt=unsqueeze(tt,Ue.length,or,He)}if(!deepStrictEqual(Ue,He))throw new DimensionError(Ue,He,">");if(Ue.length===1){var xt=st.dimension(0);xt.forEach(function(Sr,hr){validateIndex(Sr),Fe.set([Sr,0],tt[hr[0]],We)})}else{var Er=st.dimension(0),_r=st.dimension(1);Er.forEach(function(Sr,hr){validateIndex(Sr),_r.forEach(function(Kr,Lr){validateIndex(Kr),Fe.set([Sr,Kr],tt[hr[0]][Lr[0]],We)})})}}return Fe}d.prototype.get=function(Fe){if(!isArray(Fe))throw new TypeError("Array expected");if(Fe.length!==this._size.length)throw new DimensionError(Fe.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var st=Fe[0],tt=Fe[1];validateIndex(st,this._size[0]),validateIndex(tt,this._size[1]);var We=Re(st,this._ptr[tt],this._ptr[tt+1],this._index);return We<this._ptr[tt+1]&&this._index[We]===st?this._values[We]:0},d.prototype.set=function(Fe,st,tt){if(!isArray(Fe))throw new TypeError("Array expected");if(Fe.length!==this._size.length)throw new DimensionError(Fe.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var We=Fe[0],Ue=Fe[1],Qe=this._size[0],He=this._size[1],tr=l,or=0;isString(this._datatype)&&(tr=n.find(l,[this._datatype,this._datatype])||l,or=n.convert(0,this._datatype)),(We>Qe-1||Ue>He-1)&&(Je(this,Math.max(We+1,Qe),Math.max(Ue+1,He),tt),Qe=this._size[0],He=this._size[1]),validateIndex(We,Qe),validateIndex(Ue,He);var xt=Re(We,this._ptr[Ue],this._ptr[Ue+1],this._index);return xt<this._ptr[Ue+1]&&this._index[xt]===We?tr(st,or)?_e(xt,Ue,this._values,this._index,this._ptr):this._values[xt]=st:tr(st,or)||$(xt,We,Ue,st,this._values,this._index,this._ptr),this};function Re(Fe,st,tt,We){if(tt-st===0)return tt;for(var Ue=st;Ue<tt;Ue++)if(We[Ue]===Fe)return Ue;return st}function _e(Fe,st,tt,We,Ue){tt.splice(Fe,1),We.splice(Fe,1);for(var Qe=st+1;Qe<Ue.length;Qe++)Ue[Qe]--}function $(Fe,st,tt,We,Ue,Qe,He){Ue.splice(Fe,0,We),Qe.splice(Fe,0,st);for(var tr=tt+1;tr<He.length;tr++)He[tr]++}d.prototype.resize=function(Fe,st,tt){if(!isCollection(Fe))throw new TypeError("Array or Matrix expected");var We=Fe.valueOf().map(Qe=>Array.isArray(Qe)&&Qe.length===1?Qe[0]:Qe);if(We.length!==2)throw new Error("Only two dimensions matrix are supported");We.forEach(function(Qe){if(!isNumber(Qe)||!isInteger$1(Qe)||Qe<0)throw new TypeError("Invalid size, must contain positive integers (size: "+format(We)+")")});var Ue=tt?this.clone():this;return Je(Ue,We[0],We[1],st)};function Je(Fe,st,tt,We){var Ue=We||0,Qe=l,He=0;isString(Fe._datatype)&&(Qe=n.find(l,[Fe._datatype,Fe._datatype])||l,He=n.convert(0,Fe._datatype),Ue=n.convert(Ue,Fe._datatype));var tr=!Qe(Ue,He),or=Fe._size[0],xt=Fe._size[1],Er,_r,Sr;if(tt>xt){for(_r=xt;_r<tt;_r++)if(Fe._ptr[_r]=Fe._values.length,tr)for(Er=0;Er<or;Er++)Fe._values.push(Ue),Fe._index.push(Er);Fe._ptr[tt]=Fe._values.length}else tt<xt&&(Fe._ptr.splice(tt+1,xt-tt),Fe._values.splice(Fe._ptr[tt],Fe._values.length),Fe._index.splice(Fe._ptr[tt],Fe._index.length));if(xt=tt,st>or){if(tr){var hr=0;for(_r=0;_r<xt;_r++){Fe._ptr[_r]=Fe._ptr[_r]+hr,Sr=Fe._ptr[_r+1]+hr;var Kr=0;for(Er=or;Er<st;Er++,Kr++)Fe._values.splice(Sr+Kr,0,Ue),Fe._index.splice(Sr+Kr,0,Er),hr++}Fe._ptr[xt]=Fe._values.length}}else if(st<or){var Lr=0;for(_r=0;_r<xt;_r++){Fe._ptr[_r]=Fe._ptr[_r]-Lr;var Sa=Fe._ptr[_r],br=Fe._ptr[_r+1]-Lr;for(Sr=Sa;Sr<br;Sr++)Er=Fe._index[Sr],Er>st-1&&(Fe._values.splice(Sr,1),Fe._index.splice(Sr,1),Lr++)}Fe._ptr[_r]=Fe._values.length}return Fe._size[0]=st,Fe._size[1]=tt,Fe}d.prototype.reshape=function(Fe,st){if(!isArray(Fe))throw new TypeError("Array expected");if(Fe.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");Fe.forEach(function(ya){if(!isNumber(ya)||!isInteger$1(ya)||ya<=-2||ya===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+format(Fe)+")")});var tt=this._size[0]*this._size[1];Fe=processSizesWildcard(Fe,tt);var We=Fe[0]*Fe[1];if(tt!==We)throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var Ue=st?this.clone():this;if(this._size[0]===Fe[0]&&this._size[1]===Fe[1])return Ue;for(var Qe=[],He=0;He<Ue._ptr.length;He++)for(var tr=0;tr<Ue._ptr[He+1]-Ue._ptr[He];tr++)Qe.push(He);for(var or=Ue._values.slice(),xt=Ue._index.slice(),Er=0;Er<Ue._index.length;Er++){var _r=xt[Er],Sr=Qe[Er],hr=_r*Ue._size[1]+Sr;Qe[Er]=hr%Fe[1],xt[Er]=Math.floor(hr/Fe[1])}Ue._values.length=0,Ue._index.length=0,Ue._ptr.length=Fe[1]+1,Ue._size=Fe.slice();for(var Kr=0;Kr<Ue._ptr.length;Kr++)Ue._ptr[Kr]=0;for(var Lr=0;Lr<or.length;Lr++){var Sa=xt[Lr],br=Qe[Lr],Pa=or[Lr],la=Re(Sa,Ue._ptr[br],Ue._ptr[br+1],Ue._index);$(la,Sa,br,Pa,Ue._values,Ue._index,Ue._ptr)}return Ue},d.prototype.clone=function(){var Fe=new d({values:this._values?clone$2(this._values):void 0,index:clone$2(this._index),ptr:clone$2(this._ptr),size:clone$2(this._size),datatype:this._datatype});return Fe},d.prototype.size=function(){return this._size.slice(0)},d.prototype.map=function(Fe,st){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var tt=this,We=this._size[0],Ue=this._size[1],Qe=maxArgumentCount(Fe),He=function(or,xt,Er){return Qe===1?Fe(or):Qe===2?Fe(or,[xt,Er]):Fe(or,[xt,Er],tt)};return Ve(this,0,We-1,0,Ue-1,He,st)};function Ve(Fe,st,tt,We,Ue,Qe,He){var tr=[],or=[],xt=[],Er=l,_r=0;isString(Fe._datatype)&&(Er=n.find(l,[Fe._datatype,Fe._datatype])||l,_r=n.convert(0,Fe._datatype));for(var Sr=function(_n,Ti,gi){_n=Qe(_n,Ti,gi),Er(_n,_r)||(tr.push(_n),or.push(Ti))},hr=We;hr<=Ue;hr++){xt.push(tr.length);var Kr=Fe._ptr[hr],Lr=Fe._ptr[hr+1];if(He)for(var Sa=Kr;Sa<Lr;Sa++){var br=Fe._index[Sa];br>=st&&br<=tt&&Sr(Fe._values[Sa],br-st,hr-We)}else{for(var Pa={},la=Kr;la<Lr;la++){var ya=Fe._index[la];Pa[ya]=Fe._values[la]}for(var Rn=st;Rn<=tt;Rn++){var mn=Rn in Pa?Pa[Rn]:0;Sr(mn,Rn-st,hr-We)}}}return xt.push(tr.length),new d({values:tr,index:or,ptr:xt,size:[tt-st+1,Ue-We+1]})}d.prototype.forEach=function(Fe,st){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var tt=this,We=this._size[0],Ue=this._size[1],Qe=0;Qe<Ue;Qe++){var He=this._ptr[Qe],tr=this._ptr[Qe+1];if(st)for(var or=He;or<tr;or++){var xt=this._index[or];Fe(this._values[or],[xt,Qe],tt)}else{for(var Er={},_r=He;_r<tr;_r++){var Sr=this._index[_r];Er[Sr]=this._values[_r]}for(var hr=0;hr<We;hr++){var Kr=hr in Er?Er[hr]:0;Fe(Kr,[hr,Qe],tt)}}}},d.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var Fe=this._size[1],st=0;st<Fe;st++)for(var tt=this._ptr[st],We=this._ptr[st+1],Ue=tt;Ue<We;Ue++){var Qe=this._index[Ue];yield{value:this._values[Ue],index:[Qe,st]}}},d.prototype.toArray=function(){return Ze(this._values,this._index,this._ptr,this._size,!0)},d.prototype.valueOf=function(){return Ze(this._values,this._index,this._ptr,this._size,!1)};function Ze(Fe,st,tt,We,Ue){var Qe=We[0],He=We[1],tr=[],or,xt;for(or=0;or<Qe;or++)for(tr[or]=[],xt=0;xt<He;xt++)tr[or][xt]=0;for(xt=0;xt<He;xt++)for(var Er=tt[xt],_r=tt[xt+1],Sr=Er;Sr<_r;Sr++)or=st[Sr],tr[or][xt]=Fe?Ue?clone$2(Fe[Sr]):Fe[Sr]:1;return tr}return d.prototype.format=function(Fe){for(var st=this._size[0],tt=this._size[1],We=this.density(),Ue="Sparse Matrix ["+format(st,Fe)+" x "+format(tt,Fe)+"] density: "+format(We,Fe)+`
|
|
493
493
|
`,Qe=0;Qe<tt;Qe++)for(var He=this._ptr[Qe],tr=this._ptr[Qe+1],or=He;or<tr;or++){var xt=this._index[or];Ue+=`
|
|
494
|
-
(`+format(xt,Fe)+", "+format(Qe,Fe)+") ==> "+(this._values?format(this._values[or],Fe):"X")}return Ue},d.prototype.toString=function(){return format(this.toArray())},d.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},d.prototype.diagonal=function(Fe){if(Fe){if(isBigNumber(Fe)&&(Fe=Fe.toNumber()),!isNumber(Fe)||!isInteger$1(Fe))throw new TypeError("The parameter k must be an integer number")}else Fe=0;var st=Fe>0?Fe:0,tt=Fe<0?-Fe:0,We=this._size[0],Ue=this._size[1],Qe=Math.min(We-tt,Ue-st),He=[],tr=[],or=[];or[0]=0;for(var xt=st;xt<Ue&&He.length<Qe;xt++)for(var Er=this._ptr[xt],_r=this._ptr[xt+1],Sr=Er;Sr<_r;Sr++){var hr=this._index[Sr];if(hr===xt-st+tt){He.push(this._values[Sr]),tr[He.length-1]=hr-tt;break}}return or.push(He.length),new d({values:He,index:tr,ptr:or,size:[Qe,1]})},d.fromJSON=function(Fe){return new d(Fe)},d.diagonal=function(Fe,st,tt,We,Ue){if(!isArray(Fe))throw new TypeError("Array expected, size parameter");if(Fe.length!==2)throw new Error("Only two dimensions matrix are supported");if(Fe=Fe.map(function(ya){if(isBigNumber(ya)&&(ya=ya.toNumber()),!isNumber(ya)||!isInteger$1(ya)||ya<1)throw new Error("Size values must be positive integers");return ya}),tt){if(isBigNumber(tt)&&(tt=tt.toNumber()),!isNumber(tt)||!isInteger$1(tt))throw new TypeError("The parameter k must be an integer number")}else tt=0;var Qe=l,He=0;isString(Ue)&&(Qe=n.find(l,[Ue,Ue])||l,He=n.convert(0,Ue));var tr=tt>0?tt:0,or=tt<0?-tt:0,xt=Fe[0],Er=Fe[1],_r=Math.min(xt-or,Er-tr),Sr;if(isArray(st)){if(st.length!==_r)throw new Error("Invalid value array length");Sr=function(Rn){return st[Rn]}}else if(isMatrix(st)){var hr=st.size();if(hr.length!==1||hr[0]!==_r)throw new Error("Invalid matrix length");Sr=function(Rn){return st.get([Rn])}}else Sr=function(){return st};for(var Kr=[],Lr=[],Sa=[],br=0;br<Er;br++){Sa.push(Kr.length);var Pa=br-tr;if(Pa>=0&&Pa<_r){var la=Sr(Pa);Qe(la,He)||(Lr.push(Pa+or),Kr.push(la))}}return Sa.push(Kr.length),new d({values:Kr,index:Lr,ptr:Sa,size:[xt,Er]})},d.prototype.swapRows=function(Fe,st){if(!isNumber(Fe)||!isInteger$1(Fe)||!isNumber(st)||!isInteger$1(st))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return validateIndex(Fe,this._size[0]),validateIndex(st,this._size[0]),d._swapRows(Fe,st,this._size[1],this._values,this._index,this._ptr),this},d._forEachRow=function(Fe,st,tt,We,Ue){for(var Qe=We[Fe],He=We[Fe+1],tr=Qe;tr<He;tr++)Ue(tt[tr],st[tr])},d._swapRows=function(Fe,st,tt,We,Ue,Qe){for(var He=0;He<tt;He++){var tr=Qe[He],or=Qe[He+1],xt=Re(Fe,tr,or,Ue),Er=Re(st,tr,or,Ue);if(xt<or&&Er<or&&Ue[xt]===Fe&&Ue[Er]===st){if(We){var _r=We[xt];We[xt]=We[Er],We[Er]=_r}continue}if(xt<or&&Ue[xt]===Fe&&(Er>=or||Ue[Er]!==st)){var Sr=We?We[xt]:void 0;Ue.splice(Er,0,st),We&&We.splice(Er,0,Sr),Ue.splice(Er<=xt?xt+1:xt,1),We&&We.splice(Er<=xt?xt+1:xt,1);continue}if(Er<or&&Ue[Er]===st&&(xt>=or||Ue[xt]!==Fe)){var hr=We?We[Er]:void 0;Ue.splice(xt,0,Fe),We&&We.splice(xt,0,hr),Ue.splice(xt<=Er?Er+1:Er,1),We&&We.splice(xt<=Er?Er+1:Er,1)}}},d},{isClass:!0}),name$u="number",dependencies$t=["typed"];function getNonDecimalNumberParts(e){var n=e.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(n){var l={"0b":2,"0o":8,"0x":16}[n[1]],u=n[2],d=n[3];return{input:e,radix:l,integerPart:u,fractionalPart:d}}else return null}function makeNumberFromNonDecimalParts(e){for(var n=parseInt(e.integerPart,e.radix),l=0,u=0;u<e.fractionalPart.length;u++){var d=parseInt(e.fractionalPart[u],e.radix);l+=d/Math.pow(e.radix,u+1)}var p=n+l;if(isNaN(p))throw new SyntaxError('String "'+e.input+'" is not a valid number');return p}var createNumber=factory(name$u,dependencies$t,e=>{var{typed:n}=e,l=n("number",{"":function(){return 0},number:function(d){return d},string:function(d){if(d==="NaN")return NaN;var p=getNonDecimalNumberParts(d);if(p)return makeNumberFromNonDecimalParts(p);var y=0,o=d.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);o&&(y=Number(o[2]),d=o[1]);var j=Number(d);if(isNaN(j))throw new SyntaxError('String "'+d+'" is not a valid number');if(o){if(j>b0(2,y)-1)throw new SyntaxError('String "'.concat(d,'" is out of range'));j>=b0(2,y-1)&&(j=j-b0(2,y))}return j},BigNumber:function(d){return d.toNumber()},Fraction:function(d){return d.valueOf()},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),null:function(d){return 0},"Unit, string | Unit":function(d,p){return d.toNumber(p)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))});return l.fromJSON=function(u){return parseFloat(u.value)},l}),name$t="bignumber",dependencies$s=["typed","BigNumber"],createBignumber=factory(name$t,dependencies$s,e=>{var{typed:n,BigNumber:l}=e;return n("bignumber",{"":function(){return new l(0)},number:function(d){return new l(d+"")},string:function(d){var p=d.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(p){var y=p[2],o=l(p[1]),j=new l(2).pow(Number(y));if(o.gt(j.sub(1)))throw new SyntaxError('String "'.concat(d,'" is out of range'));var Re=new l(2).pow(Number(y)-1);return o.gte(Re)?o.sub(j):o}return new l(d)},BigNumber:function(d){return d},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),Fraction:function(d){return new l(d.n).div(d.d).times(d.s)},null:function(d){return new l(0)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))})}),name$s="fraction",dependencies$r=["typed","Fraction"],createFraction=factory(name$s,dependencies$r,e=>{var{typed:n,Fraction:l}=e;return n("fraction",{number:function(d){if(!isFinite(d)||isNaN(d))throw new Error(d+" cannot be represented as a fraction");return new l(d)},string:function(d){return new l(d)},"number, number":function(d,p){return new l(d,p)},null:function(d){return new l(0)},BigNumber:function(d){return new l(d.toString())},Fraction:function(d){return d},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),Object:function(d){return new l(d)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))})}),name$r="matrix",dependencies$q=["typed","Matrix","DenseMatrix","SparseMatrix"],createMatrix=factory(name$r,dependencies$q,e=>{var{typed:n,Matrix:l,DenseMatrix:u,SparseMatrix:d}=e;return n(name$r,{"":function(){return p([])},string:function(o){return p([],o)},"string, string":function(o,j){return p([],o,j)},Array:function(o){return p(o)},Matrix:function(o){return p(o,o.storage())},"Array | Matrix, string":p,"Array | Matrix, string, string":p});function p(y,o,j){if(o==="dense"||o==="default"||o===void 0)return new u(y,j);if(o==="sparse")return new d(y,j);throw new TypeError("Unknown matrix type "+JSON.stringify(o)+".")}}),name$q="unaryMinus",dependencies$p=["typed"],createUnaryMinus=factory(name$q,dependencies$p,e=>{var{typed:n}=e;return n(name$q,{number:unaryMinusNumber,"Complex | BigNumber | Fraction":l=>l.neg(),Unit:n.referToSelf(l=>u=>{var d=u.clone();return d.value=n.find(l,d.valueType())(u.value),d}),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$p="abs",dependencies$o=["typed"],createAbs=factory(name$p,dependencies$o,e=>{var{typed:n}=e;return n(name$p,{number:absNumber,"Complex | BigNumber | Fraction | Unit":l=>l.abs(),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$o="addScalar",dependencies$n=["typed"],createAddScalar=factory(name$o,dependencies$n,e=>{var{typed:n}=e;return n(name$o,{"number, number":addNumber,"Complex, Complex":function(u,d){return u.add(d)},"BigNumber, BigNumber":function(u,d){return u.plus(d)},"Fraction, Fraction":function(u,d){return u.add(d)},"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(u.value===null||u.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(d.value===null||d.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!u.equalBase(d))throw new Error("Units do not match");var p=u.clone();return p.value=n.find(l,[p.valueType(),d.valueType()])(p.value,d.value),p.fixPrefix=!1,p})})}),name$n="subtractScalar",dependencies$m=["typed"],createSubtractScalar=factory(name$n,dependencies$m,e=>{var{typed:n}=e;return n(name$n,{"number, number":subtractNumber,"Complex, Complex":function(u,d){return u.sub(d)},"BigNumber, BigNumber":function(u,d){return u.minus(d)},"Fraction, Fraction":function(u,d){return u.sub(d)},"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(u.value===null||u.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(d.value===null||d.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!u.equalBase(d))throw new Error("Units do not match");var p=u.clone();return p.value=n.find(l,[p.valueType(),d.valueType()])(p.value,d.value),p.fixPrefix=!1,p})})}),name$m="matAlgo11xS0s",dependencies$l=["typed","equalScalar"],createMatAlgo11xS0s=factory(name$m,dependencies$l,e=>{var{typed:n,equalScalar:l}=e;return function(d,p,y,o){var j=d._values,Re=d._index,_e=d._ptr,$=d._size,Je=d._datatype;if(!j)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Ve=$[0],Ze=$[1],Fe,st=l,tt=0,We=y;typeof Je=="string"&&(Fe=Je,st=n.find(l,[Fe,Fe]),tt=n.convert(0,Fe),p=n.convert(p,Fe),We=n.find(y,[Fe,Fe]));for(var Ue=[],Qe=[],He=[],tr=0;tr<Ze;tr++){He[tr]=Qe.length;for(var or=_e[tr],xt=_e[tr+1],Er=or;Er<xt;Er++){var _r=Re[Er],Sr=o?We(p,j[Er]):We(j[Er],p);st(Sr,tt)||(Qe.push(_r),Ue.push(Sr))}}return He[Ze]=Qe.length,d.createSparseMatrix({values:Ue,index:Qe,ptr:He,size:[Ve,Ze],datatype:Fe})}}),name$l="matAlgo14xDs",dependencies$k=["typed"],createMatAlgo14xDs=factory(name$l,dependencies$k,e=>{var{typed:n}=e;return function(d,p,y,o){var j=d._data,Re=d._size,_e=d._datatype,$,Je=y;typeof _e=="string"&&($=_e,p=n.convert(p,$),Je=n.find(y,[$,$]));var Ve=Re.length>0?l(Je,0,Re,Re[0],j,p,o):[];return d.createDenseMatrix({data:Ve,size:clone$2(Re),datatype:$})};function l(u,d,p,y,o,j,Re){var _e=[];if(d===p.length-1)for(var $=0;$<y;$++)_e[$]=Re?u(j,o[$]):u(o[$],j);else for(var Je=0;Je<y;Je++)_e[Je]=l(u,d+1,p,p[d+1],o[Je],j,Re);return _e}}),name$k="matAlgo13xDD",dependencies$j=["typed"],createMatAlgo13xDD=factory(name$k,dependencies$j,e=>{var{typed:n}=e;return function(d,p,y){var o=d._data,j=d._size,Re=d._datatype,_e=p._data,$=p._size,Je=p._datatype,Ve=[];if(j.length!==$.length)throw new DimensionError(j.length,$.length);for(var Ze=0;Ze<j.length;Ze++){if(j[Ze]!==$[Ze])throw new RangeError("Dimension mismatch. Matrix A ("+j+") must match Matrix B ("+$+")");Ve[Ze]=j[Ze]}var Fe,st=y;typeof Re=="string"&&Re===Je&&(Fe=Re,st=n.find(y,[Fe,Fe]));var tt=Ve.length>0?l(st,0,Ve,Ve[0],o,_e):[];return d.createDenseMatrix({data:tt,size:Ve,datatype:Fe})};function l(u,d,p,y,o,j){var Re=[];if(d===p.length-1)for(var _e=0;_e<y;_e++)Re[_e]=u(o[_e],j[_e]);else for(var $=0;$<y;$++)Re[$]=l(u,d+1,p,p[d+1],o[$],j[$]);return Re}}),name$j="broadcast",dependancies=["concat"],createBroadcast=factory(name$j,dependancies,e=>{var{concat:n}=e;return function(d,p){var y=Math.max(d._size.length,p._size.length);if(d._size.length===p._size.length&&d._size.every((Ze,Fe)=>Ze===p._size[Fe]))return[d,p];for(var o=l(d._size,y,0),j=l(p._size,y,0),Re=[],_e=0;_e<y;_e++)Re[_e]=Math.max(o[_e],j[_e]);checkBroadcastingRules(o,Re),checkBroadcastingRules(j,Re);var $=d.clone(),Je=p.clone();$._size.length<y?$.reshape(l($._size,y,1)):Je._size.length<y&&Je.reshape(l(Je._size,y,1));for(var Ve=0;Ve<y;Ve++)$._size[Ve]<Re[Ve]&&($=u($,Re[Ve],Ve)),Je._size[Ve]<Re[Ve]&&(Je=u(Je,Re[Ve],Ve));return[$,Je]};function l(d,p,y){return[...Array(p-d.length).fill(y),...d]}function u(d,p,y){return n(...Array(p).fill(d),y)}}),name$i="matrixAlgorithmSuite",dependencies$i=["typed","matrix","concat"],createMatrixAlgorithmSuite=factory(name$i,dependencies$i,e=>{var{typed:n,matrix:l,concat:u}=e,d=createMatAlgo13xDD({typed:n}),p=createMatAlgo14xDs({typed:n}),y=createBroadcast({concat:u});return function(j){var Re=j.elop,_e=j.SD||j.DS,$;Re?($={"DenseMatrix, DenseMatrix":(Fe,st)=>d(...y(Fe,st),Re),"Array, Array":(Fe,st)=>d(...y(l(Fe),l(st)),Re).valueOf(),"Array, DenseMatrix":(Fe,st)=>d(...y(l(Fe),st),Re),"DenseMatrix, Array":(Fe,st)=>d(...y(Fe,l(st)),Re)},j.SS&&($["SparseMatrix, SparseMatrix"]=(Fe,st)=>j.SS(...y(Fe,st),Re,!1)),j.DS&&($["DenseMatrix, SparseMatrix"]=(Fe,st)=>j.DS(...y(Fe,st),Re,!1),$["Array, SparseMatrix"]=(Fe,st)=>j.DS(...y(l(Fe),st),Re,!1)),_e&&($["SparseMatrix, DenseMatrix"]=(Fe,st)=>_e(...y(st,Fe),Re,!0),$["SparseMatrix, Array"]=(Fe,st)=>_e(...y(l(st),Fe),Re,!0))):($={"DenseMatrix, DenseMatrix":n.referToSelf(Fe=>(st,tt)=>d(...y(st,tt),Fe)),"Array, Array":n.referToSelf(Fe=>(st,tt)=>d(...y(l(st),l(tt)),Fe).valueOf()),"Array, DenseMatrix":n.referToSelf(Fe=>(st,tt)=>d(...y(l(st),tt),Fe)),"DenseMatrix, Array":n.referToSelf(Fe=>(st,tt)=>d(...y(st,l(tt)),Fe))},j.SS&&($["SparseMatrix, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.SS(...y(st,tt),Fe,!1))),j.DS&&($["DenseMatrix, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.DS(...y(st,tt),Fe,!1)),$["Array, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.DS(...y(l(st),tt),Fe,!1))),_e&&($["SparseMatrix, DenseMatrix"]=n.referToSelf(Fe=>(st,tt)=>_e(...y(tt,st),Fe,!0)),$["SparseMatrix, Array"]=n.referToSelf(Fe=>(st,tt)=>_e(...y(l(tt),st),Fe,!0))));var Je=j.scalar||"any",Ve=j.Ds||j.Ss;Ve&&(Re?($["DenseMatrix,"+Je]=(Fe,st)=>p(Fe,st,Re,!1),$[Je+", DenseMatrix"]=(Fe,st)=>p(st,Fe,Re,!0),$["Array,"+Je]=(Fe,st)=>p(l(Fe),st,Re,!1).valueOf(),$[Je+", Array"]=(Fe,st)=>p(l(st),Fe,Re,!0).valueOf()):($["DenseMatrix,"+Je]=n.referToSelf(Fe=>(st,tt)=>p(st,tt,Fe,!1)),$[Je+", DenseMatrix"]=n.referToSelf(Fe=>(st,tt)=>p(tt,st,Fe,!0)),$["Array,"+Je]=n.referToSelf(Fe=>(st,tt)=>p(l(st),tt,Fe,!1).valueOf()),$[Je+", Array"]=n.referToSelf(Fe=>(st,tt)=>p(l(tt),st,Fe,!0).valueOf())));var Ze=j.sS!==void 0?j.sS:j.Ss;return Re?(j.Ss&&($["SparseMatrix,"+Je]=(Fe,st)=>j.Ss(Fe,st,Re,!1)),Ze&&($[Je+", SparseMatrix"]=(Fe,st)=>Ze(st,Fe,Re,!0))):(j.Ss&&($["SparseMatrix,"+Je]=n.referToSelf(Fe=>(st,tt)=>j.Ss(st,tt,Fe,!1))),Ze&&($[Je+", SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>Ze(tt,st,Fe,!0)))),Re&&Re.signatures&&extend($,Re.signatures),$}}),name$h="matAlgo01xDSid",dependencies$h=["typed"],createMatAlgo01xDSid=factory(name$h,dependencies$h,e=>{var{typed:n}=e;return function(u,d,p,y){var o=u._data,j=u._size,Re=u._datatype,_e=d._values,$=d._index,Je=d._ptr,Ve=d._size,Ze=d._datatype;if(j.length!==Ve.length)throw new DimensionError(j.length,Ve.length);if(j[0]!==Ve[0]||j[1]!==Ve[1])throw new RangeError("Dimension mismatch. Matrix A ("+j+") must match Matrix B ("+Ve+")");if(!_e)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var Fe=j[0],st=j[1],tt=typeof Re=="string"&&Re===Ze?Re:void 0,We=tt?n.find(p,[tt,tt]):p,Ue,Qe,He=[];for(Ue=0;Ue<Fe;Ue++)He[Ue]=[];var tr=[],or=[];for(Qe=0;Qe<st;Qe++){for(var xt=Qe+1,Er=Je[Qe],_r=Je[Qe+1],Sr=Er;Sr<_r;Sr++)Ue=$[Sr],tr[Ue]=y?We(_e[Sr],o[Ue][Qe]):We(o[Ue][Qe],_e[Sr]),or[Ue]=xt;for(Ue=0;Ue<Fe;Ue++)or[Ue]===xt?He[Ue][Qe]=tr[Ue]:He[Ue][Qe]=o[Ue][Qe]}return u.createDenseMatrix({data:He,size:[Fe,st],datatype:tt})}}),name$g="matAlgo04xSidSid",dependencies$g=["typed","equalScalar"],createMatAlgo04xSidSid=factory(name$g,dependencies$g,e=>{var{typed:n,equalScalar:l}=e;return function(d,p,y){var o=d._values,j=d._index,Re=d._ptr,_e=d._size,$=d._datatype,Je=p._values,Ve=p._index,Ze=p._ptr,Fe=p._size,st=p._datatype;if(_e.length!==Fe.length)throw new DimensionError(_e.length,Fe.length);if(_e[0]!==Fe[0]||_e[1]!==Fe[1])throw new RangeError("Dimension mismatch. Matrix A ("+_e+") must match Matrix B ("+Fe+")");var tt=_e[0],We=_e[1],Ue,Qe=l,He=0,tr=y;typeof $=="string"&&$===st&&(Ue=$,Qe=n.find(l,[Ue,Ue]),He=n.convert(0,Ue),tr=n.find(y,[Ue,Ue]));var or=o&&Je?[]:void 0,xt=[],Er=[],_r=o&&Je?[]:void 0,Sr=o&&Je?[]:void 0,hr=[],Kr=[],Lr,Sa,br,Pa,la;for(Sa=0;Sa<We;Sa++){Er[Sa]=xt.length;var ya=Sa+1;for(Pa=Re[Sa],la=Re[Sa+1],br=Pa;br<la;br++)Lr=j[br],xt.push(Lr),hr[Lr]=ya,_r&&(_r[Lr]=o[br]);for(Pa=Ze[Sa],la=Ze[Sa+1],br=Pa;br<la;br++)if(Lr=Ve[br],hr[Lr]===ya){if(_r){var Rn=tr(_r[Lr],Je[br]);Qe(Rn,He)?hr[Lr]=null:_r[Lr]=Rn}}else xt.push(Lr),Kr[Lr]=ya,Sr&&(Sr[Lr]=Je[br]);if(_r&&Sr)for(br=Er[Sa];br<xt.length;)Lr=xt[br],hr[Lr]===ya?(or[br]=_r[Lr],br++):Kr[Lr]===ya?(or[br]=Sr[Lr],br++):xt.splice(br,1)}return Er[We]=xt.length,d.createSparseMatrix({values:or,index:xt,ptr:Er,size:[tt,We],datatype:Ue})}}),name$f="matAlgo10xSids",dependencies$f=["typed","DenseMatrix"],createMatAlgo10xSids=factory(name$f,dependencies$f,e=>{var{typed:n,DenseMatrix:l}=e;return function(d,p,y,o){var j=d._values,Re=d._index,_e=d._ptr,$=d._size,Je=d._datatype;if(!j)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Ve=$[0],Ze=$[1],Fe,st=y;typeof Je=="string"&&(Fe=Je,p=n.convert(p,Fe),st=n.find(y,[Fe,Fe]));for(var tt=[],We=[],Ue=[],Qe=0;Qe<Ze;Qe++){for(var He=Qe+1,tr=_e[Qe],or=_e[Qe+1],xt=tr;xt<or;xt++){var Er=Re[xt];We[Er]=j[xt],Ue[Er]=He}for(var _r=0;_r<Ve;_r++)Qe===0&&(tt[_r]=[]),Ue[_r]===He?tt[_r][Qe]=o?st(p,We[_r]):st(We[_r],p):tt[_r][Qe]=p}return new l({data:tt,size:[Ve,Ze],datatype:Fe})}}),name$e="multiplyScalar",dependencies$e=["typed"],createMultiplyScalar=factory(name$e,dependencies$e,e=>{var{typed:n}=e;return n("multiplyScalar",{"number, number":multiplyNumber,"Complex, Complex":function(u,d){return u.mul(d)},"BigNumber, BigNumber":function(u,d){return u.times(d)},"Fraction, Fraction":function(u,d){return u.mul(d)},"number | Fraction | BigNumber | Complex, Unit":(l,u)=>u.multiply(l),"Unit, number | Fraction | BigNumber | Complex | Unit":(l,u)=>l.multiply(u)})}),name$d="multiply",dependencies$d=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],createMultiply=factory(name$d,dependencies$d,e=>{var{typed:n,matrix:l,addScalar:u,multiplyScalar:d,equalScalar:p,dot:y}=e,o=createMatAlgo11xS0s({typed:n,equalScalar:p}),j=createMatAlgo14xDs({typed:n});function Re(He,tr){switch(He.length){case 1:switch(tr.length){case 1:if(He[0]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(He[0]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+He[0]+") must match Matrix rows ("+tr[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+tr.length+" dimensions)")}break;case 2:switch(tr.length){case 1:if(He[1]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+He[1]+") must match Vector length ("+tr[0]+")");break;case 2:if(He[1]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+He[1]+") must match Matrix B rows ("+tr[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+tr.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+He.length+" dimensions)")}}function _e(He,tr,or){if(or===0)throw new Error("Cannot multiply two empty vectors");return y(He,tr)}function $(He,tr){if(tr.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return Je(He,tr)}function Je(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._size,hr=tr._datatype,Kr=xt[0],Lr=Sr[1],Sa,br=u,Pa=d;Er&&hr&&Er===hr&&typeof Er=="string"&&(Sa=Er,br=n.find(u,[Sa,Sa]),Pa=n.find(d,[Sa,Sa]));for(var la=[],ya=0;ya<Lr;ya++){for(var Rn=Pa(or[0],_r[0][ya]),mn=1;mn<Kr;mn++)Rn=br(Rn,Pa(or[mn],_r[mn][ya]));la[ya]=Rn}return He.createDenseMatrix({data:la,size:[Lr],datatype:Sa})}var Ve=n("_multiplyMatrixVector",{"DenseMatrix, any":Fe,"SparseMatrix, any":We}),Ze=n("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":st,"DenseMatrix, SparseMatrix":tt,"SparseMatrix, DenseMatrix":Ue,"SparseMatrix, SparseMatrix":Qe});function Fe(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._datatype,hr=xt[0],Kr=xt[1],Lr,Sa=u,br=d;Er&&Sr&&Er===Sr&&typeof Er=="string"&&(Lr=Er,Sa=n.find(u,[Lr,Lr]),br=n.find(d,[Lr,Lr]));for(var Pa=[],la=0;la<hr;la++){for(var ya=or[la],Rn=br(ya[0],_r[0]),mn=1;mn<Kr;mn++)Rn=Sa(Rn,br(ya[mn],_r[mn]));Pa[la]=Rn}return He.createDenseMatrix({data:Pa,size:[hr],datatype:Lr})}function st(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._size,hr=tr._datatype,Kr=xt[0],Lr=xt[1],Sa=Sr[1],br,Pa=u,la=d;Er&&hr&&Er===hr&&typeof Er=="string"&&(br=Er,Pa=n.find(u,[br,br]),la=n.find(d,[br,br]));for(var ya=[],Rn=0;Rn<Kr;Rn++){var mn=or[Rn];ya[Rn]=[];for(var Fa=0;Fa<Sa;Fa++){for(var _n=la(mn[0],_r[0][Fa]),Ti=1;Ti<Lr;Ti++)_n=Pa(_n,la(mn[Ti],_r[Ti][Fa]));ya[Rn][Fa]=_n}}return He.createDenseMatrix({data:ya,size:[Kr,Sa],datatype:br})}function tt(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._values,Sr=tr._index,hr=tr._ptr,Kr=tr._size,Lr=tr._datatype;if(!_r)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var Sa=xt[0],br=Kr[1],Pa,la=u,ya=d,Rn=p,mn=0;Er&&Lr&&Er===Lr&&typeof Er=="string"&&(Pa=Er,la=n.find(u,[Pa,Pa]),ya=n.find(d,[Pa,Pa]),Rn=n.find(p,[Pa,Pa]),mn=n.convert(0,Pa));for(var Fa=[],_n=[],Ti=[],gi=tr.createSparseMatrix({values:Fa,index:_n,ptr:Ti,size:[Sa,br],datatype:Pa}),jn=0;jn<br;jn++){Ti[jn]=_n.length;var Qn=hr[jn],tn=hr[jn+1];if(tn>Qn)for(var Xn=0,ti=0;ti<Sa;ti++){for(var l0=ti+1,Pi=void 0,di=Qn;di<tn;di++){var ui=Sr[di];Xn!==l0?(Pi=ya(or[ti][ui],_r[di]),Xn=l0):Pi=la(Pi,ya(or[ti][ui],_r[di]))}Xn===l0&&!Rn(Pi,mn)&&(_n.push(ti),Fa.push(Pi))}}return Ti[br]=_n.length,gi}function We(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype;if(!or)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var Sr=tr._data,hr=tr._datatype,Kr=He._size[0],Lr=tr._size[0],Sa=[],br=[],Pa=[],la,ya=u,Rn=d,mn=p,Fa=0;_r&&hr&&_r===hr&&typeof _r=="string"&&(la=_r,ya=n.find(u,[la,la]),Rn=n.find(d,[la,la]),mn=n.find(p,[la,la]),Fa=n.convert(0,la));var _n=[],Ti=[];Pa[0]=0;for(var gi=0;gi<Lr;gi++){var jn=Sr[gi];if(!mn(jn,Fa))for(var Qn=Er[gi],tn=Er[gi+1],Xn=Qn;Xn<tn;Xn++){var ti=xt[Xn];Ti[ti]?_n[ti]=ya(_n[ti],Rn(jn,or[Xn])):(Ti[ti]=!0,br.push(ti),_n[ti]=Rn(jn,or[Xn]))}}for(var l0=br.length,Pi=0;Pi<l0;Pi++){var di=br[Pi];Sa[Pi]=_n[di]}return Pa[1]=br.length,He.createSparseMatrix({values:Sa,index:br,ptr:Pa,size:[Kr,1],datatype:la})}function Ue(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype;if(!or)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var Sr=tr._data,hr=tr._datatype,Kr=He._size[0],Lr=tr._size[0],Sa=tr._size[1],br,Pa=u,la=d,ya=p,Rn=0;_r&&hr&&_r===hr&&typeof _r=="string"&&(br=_r,Pa=n.find(u,[br,br]),la=n.find(d,[br,br]),ya=n.find(p,[br,br]),Rn=n.convert(0,br));for(var mn=[],Fa=[],_n=[],Ti=He.createSparseMatrix({values:mn,index:Fa,ptr:_n,size:[Kr,Sa],datatype:br}),gi=[],jn=[],Qn=0;Qn<Sa;Qn++){_n[Qn]=Fa.length;for(var tn=Qn+1,Xn=0;Xn<Lr;Xn++){var ti=Sr[Xn][Qn];if(!ya(ti,Rn))for(var l0=Er[Xn],Pi=Er[Xn+1],di=l0;di<Pi;di++){var ui=xt[di];jn[ui]!==tn?(jn[ui]=tn,Fa.push(ui),gi[ui]=la(ti,or[di])):gi[ui]=Pa(gi[ui],la(ti,or[di]))}}for(var Zi=_n[Qn],$i=Fa.length,n0=Zi;n0<$i;n0++){var fi=Fa[n0];mn[n0]=gi[fi]}}return _n[Sa]=Fa.length,Ti}function Qe(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype,Sr=tr._values,hr=tr._index,Kr=tr._ptr,Lr=tr._datatype,Sa=He._size[0],br=tr._size[1],Pa=or&&Sr,la,ya=u,Rn=d;_r&&Lr&&_r===Lr&&typeof _r=="string"&&(la=_r,ya=n.find(u,[la,la]),Rn=n.find(d,[la,la]));for(var mn=Pa?[]:void 0,Fa=[],_n=[],Ti=He.createSparseMatrix({values:mn,index:Fa,ptr:_n,size:[Sa,br],datatype:la}),gi=Pa?[]:void 0,jn=[],Qn,tn,Xn,ti,l0,Pi,di,ui,Zi=0;Zi<br;Zi++){_n[Zi]=Fa.length;var $i=Zi+1;for(l0=Kr[Zi],Pi=Kr[Zi+1],ti=l0;ti<Pi;ti++)if(ui=hr[ti],Pa)for(tn=Er[ui],Xn=Er[ui+1],Qn=tn;Qn<Xn;Qn++)di=xt[Qn],jn[di]!==$i?(jn[di]=$i,Fa.push(di),gi[di]=Rn(Sr[ti],or[Qn])):gi[di]=ya(gi[di],Rn(Sr[ti],or[Qn]));else for(tn=Er[ui],Xn=Er[ui+1],Qn=tn;Qn<Xn;Qn++)di=xt[Qn],jn[di]!==$i&&(jn[di]=$i,Fa.push(di));if(Pa)for(var n0=_n[Zi],fi=Fa.length,ri=n0;ri<fi;ri++){var Oi=Fa[ri];mn[ri]=gi[Oi]}}return _n[br]=Fa.length,Ti}return n(name$d,d,{"Array, Array":n.referTo("Matrix, Matrix",He=>(tr,or)=>{Re(arraySize(tr),arraySize(or));var xt=He(l(tr),l(or));return isMatrix(xt)?xt.valueOf():xt}),"Matrix, Matrix":function(tr,or){var xt=tr.size(),Er=or.size();return Re(xt,Er),xt.length===1?Er.length===1?_e(tr,or,xt[0]):$(tr,or):Er.length===1?Ve(tr,or):Ze(tr,or)},"Matrix, Array":n.referTo("Matrix,Matrix",He=>(tr,or)=>He(tr,l(or))),"Array, Matrix":n.referToSelf(He=>(tr,or)=>He(l(tr,or.storage()),or)),"SparseMatrix, any":function(tr,or){return o(tr,or,d,!1)},"DenseMatrix, any":function(tr,or){return j(tr,or,d,!1)},"any, SparseMatrix":function(tr,or){return o(or,tr,d,!0)},"any, DenseMatrix":function(tr,or){return j(or,tr,d,!0)},"Array, any":function(tr,or){return j(l(tr),or,d,!1).valueOf()},"any, Array":function(tr,or){return j(l(or),tr,d,!0).valueOf()},"any, any":d,"any, any, ...any":n.referToSelf(He=>(tr,or,xt)=>{for(var Er=He(tr,or),_r=0;_r<xt.length;_r++)Er=He(Er,xt[_r]);return Er})})}),name$c="conj",dependencies$c=["typed"],createConj=factory(name$c,dependencies$c,e=>{var{typed:n}=e;return n(name$c,{"number | BigNumber | Fraction":l=>l,Complex:l=>l.conjugate(),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$b="concat",dependencies$b=["typed","matrix","isInteger"],createConcat=factory(name$b,dependencies$b,e=>{var{typed:n,matrix:l,isInteger:u}=e;return n(name$b,{"...Array | Matrix | number | BigNumber":function(p){var y,o=p.length,j=-1,Re,_e=!1,$=[];for(y=0;y<o;y++){var Je=p[y];if(isMatrix(Je)&&(_e=!0),isNumber(Je)||isBigNumber(Je)){if(y!==o-1)throw new Error("Dimension must be specified as last argument");if(Re=j,j=Je.valueOf(),!u(j))throw new TypeError("Integer number expected for dimension");if(j<0||y>0&&j>Re)throw new IndexError(j,Re+1)}else{var Ve=clone$2(Je).valueOf(),Ze=arraySize(Ve);if($[y]=Ve,Re=j,j=Ze.length-1,y>0&&j!==Re)throw new DimensionError(Re+1,j+1)}}if($.length===0)throw new SyntaxError("At least one matrix expected");for(var Fe=$.shift();$.length;)Fe=concat$1(Fe,$.shift(),j);return _e?l(Fe):Fe},"...string":function(p){return p.join("")}})}),name$a="identity",dependencies$a=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],createIdentity=factory(name$a,dependencies$a,e=>{var{typed:n,config:l,matrix:u,BigNumber:d,DenseMatrix:p,SparseMatrix:y}=e;return n(name$a,{"":function(){return l.matrix==="Matrix"?u([]):[]},string:function(_e){return u(_e)},"number | BigNumber":function(_e){return j(_e,_e,l.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(_e,$){return j(_e,_e,$)},"number | BigNumber, number | BigNumber":function(_e,$){return j(_e,$,l.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(_e,$,Je){return j(_e,$,Je)},Array:function(_e){return o(_e)},"Array, string":function(_e,$){return o(_e,$)},Matrix:function(_e){return o(_e.valueOf(),_e.storage())},"Matrix, string":function(_e,$){return o(_e.valueOf(),$)}});function o(Re,_e){switch(Re.length){case 0:return _e?u(_e):[];case 1:return j(Re[0],Re[0],_e);case 2:return j(Re[0],Re[1],_e);default:throw new Error("Vector containing two values expected")}}function j(Re,_e,$){var Je=isBigNumber(Re)||isBigNumber(_e)?d:null;if(isBigNumber(Re)&&(Re=Re.toNumber()),isBigNumber(_e)&&(_e=_e.toNumber()),!isInteger$1(Re)||Re<1)throw new Error("Parameters in function identity must be positive integers");if(!isInteger$1(_e)||_e<1)throw new Error("Parameters in function identity must be positive integers");var Ve=Je?new d(1):1,Ze=Je?new Je(0):0,Fe=[Re,_e];if($){if($==="sparse")return y.diagonal(Fe,Ve,0,Ze);if($==="dense")return p.diagonal(Fe,Ve,0,Ze);throw new TypeError('Unknown matrix type "'.concat($,'"'))}for(var st=resize([],Fe,Ze),tt=Re<_e?Re:_e,We=0;We<tt;We++)st[We][We]=Ve;return st}});function noBignumber(){throw new Error('No "bignumber" implementation available')}function noFraction(){throw new Error('No "fraction" implementation available')}function noMatrix(){throw new Error('No "matrix" implementation available')}var name$9="size",dependencies$9=["typed","config","?matrix"],createSize=factory(name$9,dependencies$9,e=>{var{typed:n,config:l,matrix:u}=e;return n(name$9,{Matrix:function(p){return p.create(p.size())},Array:arraySize,string:function(p){return l.matrix==="Array"?[p.length]:u([p.length])},"number | Complex | BigNumber | Unit | boolean | null":function(p){return l.matrix==="Array"?[]:u?u([]):noMatrix()}})}),name$8="transpose",dependencies$8=["typed","matrix"],createTranspose=factory(name$8,dependencies$8,e=>{var{typed:n,matrix:l}=e;return n(name$8,{Array:y=>u(l(y)).valueOf(),Matrix:u,any:clone$2});function u(y){var o=y.size(),j;switch(o.length){case 1:j=y.clone();break;case 2:{var Re=o[0],_e=o[1];if(_e===0)throw new RangeError("Cannot transpose a 2D matrix with no columns (size: "+format(o)+")");switch(y.storage()){case"dense":j=d(y,Re,_e);break;case"sparse":j=p(y,Re,_e);break}}break;default:throw new RangeError("Matrix must be a vector or two dimensional (size: "+format(o)+")")}return j}function d(y,o,j){for(var Re=y._data,_e=[],$,Je=0;Je<j;Je++){$=_e[Je]=[];for(var Ve=0;Ve<o;Ve++)$[Ve]=clone$2(Re[Ve][Je])}return y.createDenseMatrix({data:_e,size:[j,o],datatype:y._datatype})}function p(y,o,j){for(var Re=y._values,_e=y._index,$=y._ptr,Je=Re?[]:void 0,Ve=[],Ze=[],Fe=[],st=0;st<o;st++)Fe[st]=0;var tt,We,Ue;for(tt=0,We=_e.length;tt<We;tt++)Fe[_e[tt]]++;for(var Qe=0,He=0;He<o;He++)Ze.push(Qe),Qe+=Fe[He],Fe[He]=Ze[He];for(Ze.push(Qe),Ue=0;Ue<j;Ue++)for(var tr=$[Ue],or=$[Ue+1],xt=tr;xt<or;xt++){var Er=Fe[_e[xt]]++;Ve[Er]=Ue,Re&&(Je[Er]=clone$2(Re[xt]))}return y.createSparseMatrix({values:Je,index:Ve,ptr:Ze,size:[j,o],datatype:y._datatype})}});function improveErrorMessage(e,n,l){var u;return String(e).indexOf("Unexpected type")!==-1?(u=arguments.length>2?" (type: "+typeOf(l)+", value: "+JSON.stringify(l)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+n+", unexpected type of argument"+u)):String(e).indexOf("complex numbers")!==-1?(u=arguments.length>2?" (type: "+typeOf(l)+", value: "+JSON.stringify(l)+")":"",new TypeError("Cannot calculate "+n+", no ordering relation is defined for complex numbers"+u)):e}var name$7="numeric",dependencies$7=["number","?bignumber","?fraction"],createNumeric=factory(name$7,dependencies$7,e=>{var{number:n,bignumber:l,fraction:u}=e,d={string:!0,number:!0,BigNumber:!0,Fraction:!0},p={number:y=>n(y),BigNumber:l?y=>l(y):noBignumber,Fraction:u?y=>u(y):noFraction};return function(o){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",Re=arguments.length>2?arguments[2]:void 0;if(Re!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var _e=typeOf(o);if(!(_e in d))throw new TypeError("Cannot convert "+o+' of type "'+_e+'"; valid input types are '+Object.keys(d).join(", "));if(!(j in p))throw new TypeError("Cannot convert "+o+' to type "'+j+'"; valid output types are '+Object.keys(p).join(", "));return j===_e?o:p[j](o)}}),name$6="divideScalar",dependencies$6=["typed","numeric"],createDivideScalar=factory(name$6,dependencies$6,e=>{var{typed:n,numeric:l}=e;return n(name$6,{"number, number":function(d,p){return d/p},"Complex, Complex":function(d,p){return d.div(p)},"BigNumber, BigNumber":function(d,p){return d.div(p)},"Fraction, Fraction":function(d,p){return d.div(p)},"Unit, number | Complex | Fraction | BigNumber | Unit":(u,d)=>u.divide(d),"number | Fraction | Complex | BigNumber, Unit":(u,d)=>d.divideInto(u)})}),name$5="add",dependencies$5=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],createAdd=factory(name$5,dependencies$5,e=>{var{typed:n,matrix:l,addScalar:u,equalScalar:d,DenseMatrix:p,SparseMatrix:y,concat:o}=e,j=createMatAlgo01xDSid({typed:n}),Re=createMatAlgo04xSidSid({typed:n,equalScalar:d}),_e=createMatAlgo10xSids({typed:n,DenseMatrix:p}),$=createMatrixAlgorithmSuite({typed:n,matrix:l,concat:o});return n(name$5,{"any, any":u,"any, any, ...any":n.referToSelf(Je=>(Ve,Ze,Fe)=>{for(var st=Je(Ve,Ze),tt=0;tt<Fe.length;tt++)st=Je(st,Fe[tt]);return st})},$({elop:u,DS:j,SS:Re,Ss:_e}))}),name$4="dot",dependencies$4=["typed","addScalar","multiplyScalar","conj","size"],createDot=factory(name$4,dependencies$4,e=>{var{typed:n,addScalar:l,multiplyScalar:u,conj:d,size:p}=e;return n(name$4,{"Array | DenseMatrix, Array | DenseMatrix":o,"SparseMatrix, SparseMatrix":j});function y(_e,$){var Je=Re(_e),Ve=Re($),Ze,Fe;if(Je.length===1)Ze=Je[0];else if(Je.length===2&&Je[1]===1)Ze=Je[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+Je.join(", ")+")");if(Ve.length===1)Fe=Ve[0];else if(Ve.length===2&&Ve[1]===1)Fe=Ve[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+Ve.join(", ")+")");if(Ze!==Fe)throw new RangeError("Vectors must have equal length ("+Ze+" != "+Fe+")");if(Ze===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return Ze}function o(_e,$){var Je=y(_e,$),Ve=isMatrix(_e)?_e._data:_e,Ze=isMatrix(_e)?_e._datatype:void 0,Fe=isMatrix($)?$._data:$,st=isMatrix($)?$._datatype:void 0,tt=Re(_e).length===2,We=Re($).length===2,Ue=l,Qe=u;if(Ze&&st&&Ze===st&&typeof Ze=="string"){var He=Ze;Ue=n.find(l,[He,He]),Qe=n.find(u,[He,He])}if(!tt&&!We){for(var tr=Qe(d(Ve[0]),Fe[0]),or=1;or<Je;or++)tr=Ue(tr,Qe(d(Ve[or]),Fe[or]));return tr}if(!tt&&We){for(var xt=Qe(d(Ve[0]),Fe[0][0]),Er=1;Er<Je;Er++)xt=Ue(xt,Qe(d(Ve[Er]),Fe[Er][0]));return xt}if(tt&&!We){for(var _r=Qe(d(Ve[0][0]),Fe[0]),Sr=1;Sr<Je;Sr++)_r=Ue(_r,Qe(d(Ve[Sr][0]),Fe[Sr]));return _r}if(tt&&We){for(var hr=Qe(d(Ve[0][0]),Fe[0][0]),Kr=1;Kr<Je;Kr++)hr=Ue(hr,Qe(d(Ve[Kr][0]),Fe[Kr][0]));return hr}}function j(_e,$){y(_e,$);for(var Je=_e._index,Ve=_e._values,Ze=$._index,Fe=$._values,st=0,tt=l,We=u,Ue=0,Qe=0;Ue<Je.length&&Qe<Ze.length;){var He=Je[Ue],tr=Ze[Qe];if(He<tr){Ue++;continue}if(He>tr){Qe++;continue}He===tr&&(st=tt(st,We(Ve[Ue],Fe[Qe])),Ue++,Qe++)}return st}function Re(_e){return isMatrix(_e)?_e.size():p(_e)}}),name$3="det",dependencies$3=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],createDet=factory(name$3,dependencies$3,e=>{var{typed:n,matrix:l,subtractScalar:u,multiply:d,divideScalar:p,isZero:y,unaryMinus:o}=e;return n(name$3,{any:function(_e){return clone$2(_e)},"Array | Matrix":function(_e){var $;switch(isMatrix(_e)?$=_e.size():Array.isArray(_e)?(_e=l(_e),$=_e.size()):$=[],$.length){case 0:return clone$2(_e);case 1:if($[0]===1)return clone$2(_e.valueOf()[0]);if($[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+format($)+")");case 2:{var Je=$[0],Ve=$[1];if(Je===Ve)return j(_e.clone().valueOf(),Je);if(Ve===0)return 1;throw new RangeError("Matrix must be square (size: "+format($)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+format($)+")")}}});function j(Re,_e,$){if(_e===1)return clone$2(Re[0][0]);if(_e===2)return u(d(Re[0][0],Re[1][1]),d(Re[1][0],Re[0][1]));for(var Je=!1,Ve=new Array(_e).fill(0).map((or,xt)=>xt),Ze=0;Ze<_e;Ze++){var Fe=Ve[Ze];if(y(Re[Fe][Ze])){var st=void 0;for(st=Ze+1;st<_e;st++)if(!y(Re[Ve[st]][Ze])){Fe=Ve[st],Ve[st]=Ve[Ze],Ve[Ze]=Fe,Je=!Je;break}if(st===_e)return Re[Fe][Ze]}for(var tt=Re[Fe][Ze],We=Ze===0?1:Re[Ve[Ze-1]][Ze-1],Ue=Ze+1;Ue<_e;Ue++)for(var Qe=Ve[Ue],He=Ze+1;He<_e;He++)Re[Qe][He]=p(u(d(Re[Qe][He],tt),d(Re[Qe][Ze],Re[Fe][He])),We)}var tr=Re[Ve[_e-1]][_e-1];return Je?o(tr):tr}}),name$2="inv",dependencies$2=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],createInv=factory(name$2,dependencies$2,e=>{var{typed:n,matrix:l,divideScalar:u,addScalar:d,multiply:p,unaryMinus:y,det:o,identity:j,abs:Re}=e;return n(name$2,{"Array | Matrix":function(Je){var Ve=isMatrix(Je)?Je.size():arraySize(Je);switch(Ve.length){case 1:if(Ve[0]===1)return isMatrix(Je)?l([u(1,Je.valueOf()[0])]):[u(1,Je[0])];throw new RangeError("Matrix must be square (size: "+format(Ve)+")");case 2:{var Ze=Ve[0],Fe=Ve[1];if(Ze===Fe)return isMatrix(Je)?l(_e(Je.valueOf(),Ze,Fe),Je.storage()):_e(Je,Ze,Fe);throw new RangeError("Matrix must be square (size: "+format(Ve)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+format(Ve)+")")}},any:function(Je){return u(1,Je)}});function _e($,Je,Ve){var Ze,Fe,st,tt,We;if(Je===1){if(tt=$[0][0],tt===0)throw Error("Cannot calculate inverse, determinant is zero");return[[u(1,tt)]]}else if(Je===2){var Ue=o($);if(Ue===0)throw Error("Cannot calculate inverse, determinant is zero");return[[u($[1][1],Ue),u(y($[0][1]),Ue)],[u(y($[1][0]),Ue),u($[0][0],Ue)]]}else{var Qe=$.concat();for(Ze=0;Ze<Je;Ze++)Qe[Ze]=Qe[Ze].concat();for(var He=j(Je).valueOf(),tr=0;tr<Ve;tr++){var or=Re(Qe[tr][tr]),xt=tr;for(Ze=tr+1;Ze<Je;)Re(Qe[Ze][tr])>or&&(or=Re(Qe[Ze][tr]),xt=Ze),Ze++;if(or===0)throw Error("Cannot calculate inverse, determinant is zero");Ze=xt,Ze!==tr&&(We=Qe[tr],Qe[tr]=Qe[Ze],Qe[Ze]=We,We=He[tr],He[tr]=He[Ze],He[Ze]=We);var Er=Qe[tr],_r=He[tr];for(Ze=0;Ze<Je;Ze++){var Sr=Qe[Ze],hr=He[Ze];if(Ze!==tr){if(Sr[tr]!==0){for(st=u(y(Sr[tr]),Er[tr]),Fe=tr;Fe<Ve;Fe++)Sr[Fe]=d(Sr[Fe],p(st,Er[Fe]));for(Fe=0;Fe<Ve;Fe++)hr[Fe]=d(hr[Fe],p(st,_r[Fe]))}}else{for(st=Er[tr],Fe=tr;Fe<Ve;Fe++)Sr[Fe]=u(Sr[Fe],st);for(Fe=0;Fe<Ve;Fe++)hr[Fe]=u(hr[Fe],st)}}}return He}}}),name$1="sum",dependencies$1=["typed","config","add","numeric"],createSum=factory(name$1,dependencies$1,e=>{var{typed:n,config:l,add:u,numeric:d}=e;return n(name$1,{"Array | Matrix":p,"Array | Matrix, number | BigNumber":y,"...":function(j){if(containsCollections(j))throw new TypeError("Scalar values expected in function sum");return p(j)}});function p(o){var j;return deepForEach(o,function(Re){try{j=j===void 0?Re:u(j,Re)}catch(_e){throw improveErrorMessage(_e,"sum",Re)}}),j===void 0&&(j=d(0,l.number)),typeof j=="string"&&(j=d(j,l.number)),j}function y(o,j){try{var Re=reduce(o,j,u);return Re}catch(_e){throw improveErrorMessage(_e,"sum")}}}),BigNumber=createBigNumberClass({config:config$1}),Complex=createComplexClass({}),Fraction=createFractionClass({}),Matrix=createMatrixClass({}),DenseMatrix=createDenseMatrixClass({Matrix}),typed=createTyped({BigNumber,Complex,DenseMatrix,Fraction}),abs=createAbs({typed}),addScalar=createAddScalar({typed}),bignumber=createBignumber({BigNumber,typed}),conj=createConj({typed}),equalScalar=createEqualScalar({config:config$1,typed}),isInteger=createIsInteger({typed}),isZero=createIsZero({typed}),multiplyScalar=createMultiplyScalar({typed}),number=createNumber({typed}),SparseMatrix=createSparseMatrixClass({Matrix,equalScalar,typed}),subtractScalar=createSubtractScalar({typed}),unaryMinus=createUnaryMinus({typed}),fraction=createFraction({Fraction,typed}),matrix=createMatrix({DenseMatrix,Matrix,SparseMatrix,typed}),numeric=createNumeric({bignumber,fraction,number}),size=createSize({matrix,config:config$1,typed}),transpose=createTranspose({matrix,typed}),concat=createConcat({isInteger,matrix,typed}),divideScalar=createDivideScalar({numeric,typed}),identity=createIdentity({BigNumber,DenseMatrix,SparseMatrix,config:config$1,matrix,typed}),add=createAdd({DenseMatrix,SparseMatrix,addScalar,concat,equalScalar,matrix,typed}),dot=createDot({addScalar,conj,multiplyScalar,size,typed}),multiply=createMultiply({addScalar,dot,equalScalar,matrix,multiplyScalar,typed}),sum=createSum({add,config:config$1,numeric,typed}),det=createDet({divideScalar,isZero,matrix,multiply,subtractScalar,typed,unaryMinus}),inv=createInv({abs,addScalar,det,divideScalar,identity,matrix,multiply,typed,unaryMinus});function predictObservations(e,n,l,u){let{observations:d}=n;return d.length>1?predictOptimize(e,n,u):predictBeforeAT(e,n,l,u)}function predictBeforeAT(e,n,l,u){let{images:d,cameras:p,coordinateSystem:y}=e;if(y.type===1)return{predicts:{}};let o={};p.forEach($=>o[$.camera_id]=$);let{coordinate:j}=n,Re=fromValues$1(0,0,0);if(l.type===1)Re=fromValues$1(j[1],j[1],j[2]);else{let $=transformCoordinateToLngLat(j,l),Je=y.origin_point,Ve=satellite_geo_calc.coordinateTransfer.lla_to_enu({lon:$[0],lat:$[1],alt:$[2]||0},{lon:Je[0],lat:Je[1],alt:Je[2]});Re=fromValues$1(Ve.x,Ve.y,Ve.z)}let _e={};return d.forEach($=>{let{img_id:Je,camera_id:Ve,projection_matrix:Ze,image_rect:Fe}=$,st=o[Ve].camera_params,{width:tt,height:We}=Fe,Ue=Ze,Qe=fromValues$3(Ue[0],Ue[4],Ue[8],Ue[1],Ue[5],Ue[9],Ue[2],Ue[6],Ue[10]),He=fromValues$1(Ue[3],Ue[7],Ue[11]),tr=fromValues$3(st[0],0,0,0,st[1],0,st[2],st[3],1),or=transformMat3(create$2(),add$4(create$2(),transformMat3(create$2(),Re,Qe),He),tr),xt=scale(create$2,or,1/or[2]);if(xt[0]>0&&xt[0]<tt&&xt[1]>0&&xt[1]<We){let Er=fromValues$1(xt[0],xt[1],1),_r=transformMat3(create$2(),Er,invert(create$4(),tr)),Sr=distortPoint(_r,st);xt=transformMat3(create$2(),fromValues$1(...Sr,1),tr),_e[Je]=[xt[0],xt[1]],u&&($.predict={uv:[xt[0],xt[1]],position:{left:xt[0]*100/tt,top:xt[1]*100/We},distance:Math.hypot(xt[0]-tt/2,xt[1]-We/2)})}else u&&($.predict=void 0)}),{predicts:_e}}function predictOptimize(e,n,l){let{images:u,cameras:d}=e,{observations:p}=n,y={};d.forEach(Ue=>y[Ue.camera_id]=Ue);let o={},j=[],Re=new Map;p.forEach(Ue=>Re.set(Ue.id,Ue.uv)),u.forEach(Ue=>{if(!Re.has(Ue.img_id)){Ue.observation=void 0;return}Ue.observation={id:Ue.img_id,uv:Re.get(Ue.img_id)},j.push(Ue)});let _e=[],$=[];j.forEach(Ue=>{let Qe=Ue.projection_matrix,He=y[Ue.camera_id].camera_params,tr=undistortPoint(Ue.observation.uv,He),or=fromValues$3(Qe[0],Qe[4],Qe[8],Qe[1],Qe[5],Qe[9],Qe[2],Qe[6],Qe[10]),xt=fromValues$1(Qe[3],Qe[7],Qe[11]),Er=fromValues$3(He[0],0,0,0,He[1],0,He[2],He[3],1),_r=invert(create$4(),Er),Sr=transformMat3(create$2(),tr,_r);_e.push([or[0]-or[2]*Sr[0],or[3]-or[5]*Sr[0],or[6]-or[8]*Sr[0]]),_e.push([or[1]-or[2]*Sr[1],or[4]-or[5]*Sr[1],or[7]-or[8]*Sr[1]]),$.push(xt[2]*Sr[0]-xt[0],xt[2]*Sr[1]-xt[1])});let Je=matrix(_e),Ve=matrix($),Ze=transpose(Je),Fe=multiply(multiply(inv(multiply(Ze,Je)),Ze),Ve),st=fromValues$1(Fe.get([0]),Fe.get([1]),Fe.get([2])),tt=0,We=[];return u.forEach(Ue=>{let{img_id:Qe,camera_id:He,projection_matrix:tr,image_rect:or}=Ue,xt=y[He].camera_params,{width:Er,height:_r}=or,Sr=tr,hr=fromValues$3(Sr[0],Sr[4],Sr[8],Sr[1],Sr[5],Sr[9],Sr[2],Sr[6],Sr[10]),Kr=fromValues$1(Sr[3],Sr[7],Sr[11]),Lr=fromValues$3(xt[0],0,0,0,xt[1],0,xt[2],xt[3],1),Sa=add$4(create$2(),transformMat3(create$2(),st,hr),Kr),br=transformMat3(create$2(),fromValues$1(Sa[0]/Sa[2],Sa[1]/Sa[2],1),Lr);if(br[0]>0&&br[0]<Er&&br[1]>0&&br[1]<_r){let Pa=fromValues$1(...br,1),la=transformMat3(create$2(),Pa,invert(create$4(),Lr)),ya=distortPoint(la,xt);if(br=transformMat3(create$2(),fromValues$1(...ya,1),Lr),Ue.observation){l&&(Ue.predict={uv:Ue.observation.uv,position:{left:Ue.observation.uv[0]*100/Er,top:Ue.observation.uv[1]*100/_r},distance:Math.hypot(Ue.observation.uv[0]-Er/2,Ue.observation.uv[1]-_r/2)});let Rn=Ue.observation.uv;We.push(Math.sqrt((br[0]-Rn[0])*(br[0]-Rn[0])+(br[1]-Rn[1])*(br[1]-Rn[1])))}else o[Qe]=[br[0],br[1]],l&&(Ue.predict={uv:[br[0],br[1]],position:{left:br[0]*100/Er,top:br[1]*100/_r},distance:Math.hypot(br[0]-Er/2,br[1]-_r/2)})}else l&&(Ue.predict=void 0)}),tt=sum(We)/We.length,{predicts:o,residual_rmse:tt}}function undistortPoint(e,n){let l=fromValues$3(n[0],0,0,0,n[1],0,n[2],n[3],1),u=transformMat3(create$2(),fromValues$1(...e,1),invert(create$4(),l)),d=100,p=1e-10,y=fromValues(u[0],u[1]),o=subtract(create$1(),distortPoint(y,n),y),j=subtract(create$1(),add$3(create$1(),y,o),u);for(;Math.abs(j[0])+Math.abs(j[1])>p&&d-- >0;)y=subtract(create$1(),u,o),o=subtract(create$1(),distortPoint(y,n),y),j=subtract(create$1(),add$3(create$1(),y,o),u);return transformMat3(create$2(),fromValues$1(...y,1),l)}function distortPoint(e,n){let l=[e[0],e[1]],u=l[0]*l[0]+l[1]*l[1],d=Math.pow(u,2),p=Math.pow(u,3),y=[l[0]*(1+n[4]*u+n[5]*d+n[6]*p)+2*n[7]*l[0]*l[1]+n[8]*(u+2*l[0]*l[0]),l[1]*(1+n[4]*u+n[5]*d+n[6]*p)+2*n[8]*l[0]*l[1]+n[7]*(u+2*l[1]*l[1])];return fromValues(...y)}var ieee754$1={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ieee754$1.read=function(e,n,l,u,d){var p,y,o=d*8-u-1,j=(1<<o)-1,Re=j>>1,_e=-7,$=l?d-1:0,Je=l?-1:1,Ve=e[n+$];for($+=Je,p=Ve&(1<<-_e)-1,Ve>>=-_e,_e+=o;_e>0;p=p*256+e[n+$],$+=Je,_e-=8);for(y=p&(1<<-_e)-1,p>>=-_e,_e+=u;_e>0;y=y*256+e[n+$],$+=Je,_e-=8);if(p===0)p=1-Re;else{if(p===j)return y?NaN:(Ve?-1:1)*(1/0);y=y+Math.pow(2,u),p=p-Re}return(Ve?-1:1)*y*Math.pow(2,p-u)},ieee754$1.write=function(e,n,l,u,d,p){var y,o,j,Re=p*8-d-1,_e=(1<<Re)-1,$=_e>>1,Je=d===23?Math.pow(2,-24)-Math.pow(2,-77):0,Ve=u?0:p-1,Ze=u?1:-1,Fe=n<0||n===0&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(o=isNaN(n)?1:0,y=_e):(y=Math.floor(Math.log(n)/Math.LN2),n*(j=Math.pow(2,-y))<1&&(y--,j*=2),y+$>=1?n+=Je/j:n+=Je*Math.pow(2,1-$),n*j>=2&&(y++,j/=2),y+$>=_e?(o=0,y=_e):y+$>=1?(o=(n*j-1)*Math.pow(2,d),y=y+$):(o=n*Math.pow(2,$-1)*Math.pow(2,d),y=0));d>=8;e[l+Ve]=o&255,Ve+=Ze,o/=256,d-=8);for(y=y<<d|o,Re+=d;Re>0;e[l+Ve]=y&255,Ve+=Ze,y/=256,Re-=8);e[l+Ve-Ze]|=Fe*128};var pbf=Pbf,ieee754=ieee754$1;function Pbf(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}Pbf.Varint=0,Pbf.Fixed64=1,Pbf.Bytes=2,Pbf.Fixed32=5;var SHIFT_LEFT_32=(1<<16)*(1<<16),SHIFT_RIGHT_32=1/SHIFT_LEFT_32,TEXT_DECODER_MIN_LENGTH=12,utf8TextDecoder=typeof TextDecoder=="undefined"?null:new TextDecoder("utf8");Pbf.prototype={destroy:function(){this.buf=null},readFields:function(e,n,l){for(l=l||this.length;this.pos<l;){var u=this.readVarint(),d=u>>3,p=this.pos;this.type=u&7,e(d,n,this),this.pos===p&&this.skip(u)}return n},readMessage:function(e,n){return this.readFields(e,n,this.readVarint()+this.pos)},readFixed32:function(){var e=readUInt32(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=readInt32(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=readUInt32(this.buf,this.pos)+readUInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,e},readSFixed64:function(){var e=readUInt32(this.buf,this.pos)+readInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,e},readFloat:function(){var e=ieee754.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=ieee754.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var n=this.buf,l,u;return u=n[this.pos++],l=u&127,u<128||(u=n[this.pos++],l|=(u&127)<<7,u<128)||(u=n[this.pos++],l|=(u&127)<<14,u<128)||(u=n[this.pos++],l|=(u&127)<<21,u<128)?l:(u=n[this.pos],l|=(u&15)<<28,readVarintRemainder(l,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,n=this.pos;return this.pos=e,e-n>=TEXT_DECODER_MIN_LENGTH&&utf8TextDecoder?readUtf8TextDecoder(this.buf,n,e):readUtf8(this.buf,n,e)},readBytes:function(){var e=this.readVarint()+this.pos,n=this.buf.subarray(this.pos,e);return this.pos=e,n},readPackedVarint:function(e,n){if(this.type!==Pbf.Bytes)return e.push(this.readVarint(n));var l=readPackedEnd(this);for(e=e||[];this.pos<l;)e.push(this.readVarint(n));return e},readPackedSVarint:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSVarint());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readBoolean());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFloat());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readDouble());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFixed32());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSFixed32());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFixed64());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSFixed64());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSFixed64());return e},skip:function(e){var n=e&7;if(n===Pbf.Varint)for(;this.buf[this.pos++]>127;);else if(n===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(n===Pbf.Fixed32)this.pos+=4;else if(n===Pbf.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+n)},writeTag:function(e,n){this.writeVarint(e<<3|n)},realloc:function(e){for(var n=this.length||16;n<this.pos+e;)n*=2;if(n!==this.length){var l=new Uint8Array(n);l.set(this.buf),this.buf=l,this.length=n}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),writeInt32(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),writeInt32(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),writeInt32(this.buf,e&-1,this.pos),writeInt32(this.buf,Math.floor(e*SHIFT_RIGHT_32),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),writeInt32(this.buf,e&-1,this.pos),writeInt32(this.buf,Math.floor(e*SHIFT_RIGHT_32),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){writeBigVarint(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var n=this.pos;this.pos=writeUtf8(this.buf,e,this.pos);var l=this.pos-n;l>=128&&makeRoomForExtraLength(n,l,this),this.pos=n-1,this.writeVarint(l),this.pos+=l},writeFloat:function(e){this.realloc(4),ieee754.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),ieee754.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var n=e.length;this.writeVarint(n),this.realloc(n);for(var l=0;l<n;l++)this.buf[this.pos++]=e[l]},writeRawMessage:function(e,n){this.pos++;var l=this.pos;e(n,this);var u=this.pos-l;u>=128&&makeRoomForExtraLength(l,u,this),this.pos=l-1,this.writeVarint(u),this.pos+=u},writeMessage:function(e,n,l){this.writeTag(e,Pbf.Bytes),this.writeRawMessage(n,l)},writePackedVarint:function(e,n){n.length&&this.writeMessage(e,writePackedVarint,n)},writePackedSVarint:function(e,n){n.length&&this.writeMessage(e,writePackedSVarint,n)},writePackedBoolean:function(e,n){n.length&&this.writeMessage(e,writePackedBoolean,n)},writePackedFloat:function(e,n){n.length&&this.writeMessage(e,writePackedFloat,n)},writePackedDouble:function(e,n){n.length&&this.writeMessage(e,writePackedDouble,n)},writePackedFixed32:function(e,n){n.length&&this.writeMessage(e,writePackedFixed32,n)},writePackedSFixed32:function(e,n){n.length&&this.writeMessage(e,writePackedSFixed32,n)},writePackedFixed64:function(e,n){n.length&&this.writeMessage(e,writePackedFixed64,n)},writePackedSFixed64:function(e,n){n.length&&this.writeMessage(e,writePackedSFixed64,n)},writeBytesField:function(e,n){this.writeTag(e,Pbf.Bytes),this.writeBytes(n)},writeFixed32Field:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeSFixed64(n)},writeVarintField:function(e,n){this.writeTag(e,Pbf.Varint),this.writeVarint(n)},writeSVarintField:function(e,n){this.writeTag(e,Pbf.Varint),this.writeSVarint(n)},writeStringField:function(e,n){this.writeTag(e,Pbf.Bytes),this.writeString(n)},writeFloatField:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeFloat(n)},writeDoubleField:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeDouble(n)},writeBooleanField:function(e,n){this.writeVarintField(e,Boolean(n))}};function readVarintRemainder(e,n,l){var u=l.buf,d,p;if(p=u[l.pos++],d=(p&112)>>4,p<128||(p=u[l.pos++],d|=(p&127)<<3,p<128)||(p=u[l.pos++],d|=(p&127)<<10,p<128)||(p=u[l.pos++],d|=(p&127)<<17,p<128)||(p=u[l.pos++],d|=(p&127)<<24,p<128)||(p=u[l.pos++],d|=(p&1)<<31,p<128))return toNum(e,d,n);throw new Error("Expected varint not more than 10 bytes")}function readPackedEnd(e){return e.type===Pbf.Bytes?e.readVarint()+e.pos:e.pos+1}function toNum(e,n,l){return l?n*4294967296+(e>>>0):(n>>>0)*4294967296+(e>>>0)}function writeBigVarint(e,n){var l,u;if(e>=0?(l=e%4294967296|0,u=e/4294967296|0):(l=~(-e%4294967296),u=~(-e/4294967296),l^4294967295?l=l+1|0:(l=0,u=u+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");n.realloc(10),writeBigVarintLow(l,u,n),writeBigVarintHigh(u,n)}function writeBigVarintLow(e,n,l){l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos]=e&127}function writeBigVarintHigh(e,n){var l=(e&7)<<4;n.buf[n.pos++]|=l|((e>>>=3)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127)))))}function makeRoomForExtraLength(e,n,l){var u=n<=16383?1:n<=2097151?2:n<=268435455?3:Math.floor(Math.log(n)/(Math.LN2*7));l.realloc(u);for(var d=l.pos-1;d>=e;d--)l.buf[d+u]=l.buf[d]}function writePackedVarint(e,n){for(var l=0;l<e.length;l++)n.writeVarint(e[l])}function writePackedSVarint(e,n){for(var l=0;l<e.length;l++)n.writeSVarint(e[l])}function writePackedFloat(e,n){for(var l=0;l<e.length;l++)n.writeFloat(e[l])}function writePackedDouble(e,n){for(var l=0;l<e.length;l++)n.writeDouble(e[l])}function writePackedBoolean(e,n){for(var l=0;l<e.length;l++)n.writeBoolean(e[l])}function writePackedFixed32(e,n){for(var l=0;l<e.length;l++)n.writeFixed32(e[l])}function writePackedSFixed32(e,n){for(var l=0;l<e.length;l++)n.writeSFixed32(e[l])}function writePackedFixed64(e,n){for(var l=0;l<e.length;l++)n.writeFixed64(e[l])}function writePackedSFixed64(e,n){for(var l=0;l<e.length;l++)n.writeSFixed64(e[l])}function readUInt32(e,n){return(e[n]|e[n+1]<<8|e[n+2]<<16)+e[n+3]*16777216}function writeInt32(e,n,l){e[l]=n,e[l+1]=n>>>8,e[l+2]=n>>>16,e[l+3]=n>>>24}function readInt32(e,n){return(e[n]|e[n+1]<<8|e[n+2]<<16)+(e[n+3]<<24)}function readUtf8(e,n,l){for(var u="",d=n;d<l;){var p=e[d],y=null,o=p>239?4:p>223?3:p>191?2:1;if(d+o>l)break;var j,Re,_e;o===1?p<128&&(y=p):o===2?(j=e[d+1],(j&192)===128&&(y=(p&31)<<6|j&63,y<=127&&(y=null))):o===3?(j=e[d+1],Re=e[d+2],(j&192)===128&&(Re&192)===128&&(y=(p&15)<<12|(j&63)<<6|Re&63,(y<=2047||y>=55296&&y<=57343)&&(y=null))):o===4&&(j=e[d+1],Re=e[d+2],_e=e[d+3],(j&192)===128&&(Re&192)===128&&(_e&192)===128&&(y=(p&15)<<18|(j&63)<<12|(Re&63)<<6|_e&63,(y<=65535||y>=1114112)&&(y=null))),y===null?(y=65533,o=1):y>65535&&(y-=65536,u+=String.fromCharCode(y>>>10&1023|55296),y=56320|y&1023),u+=String.fromCharCode(y),d+=o}return u}function readUtf8TextDecoder(e,n,l){return utf8TextDecoder.decode(e.subarray(n,l))}function writeUtf8(e,n,l){for(var u=0,d,p;u<n.length;u++){if(d=n.charCodeAt(u),d>55295&&d<57344)if(p)if(d<56320){e[l++]=239,e[l++]=191,e[l++]=189,p=d;continue}else d=p-55296<<10|d-56320|65536,p=null;else{d>56319||u+1===n.length?(e[l++]=239,e[l++]=191,e[l++]=189):p=d;continue}else p&&(e[l++]=239,e[l++]=191,e[l++]=189,p=null);d<128?e[l++]=d:(d<2048?e[l++]=d>>6|192:(d<65536?e[l++]=d>>12|224:(e[l++]=d>>18|240,e[l++]=d>>12&63|128),e[l++]=d>>6&63|128),e[l++]=d&63|128)}return l}const proto_10=`
|
|
494
|
+
(`+format(xt,Fe)+", "+format(Qe,Fe)+") ==> "+(this._values?format(this._values[or],Fe):"X")}return Ue},d.prototype.toString=function(){return format(this.toArray())},d.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},d.prototype.diagonal=function(Fe){if(Fe){if(isBigNumber(Fe)&&(Fe=Fe.toNumber()),!isNumber(Fe)||!isInteger$1(Fe))throw new TypeError("The parameter k must be an integer number")}else Fe=0;var st=Fe>0?Fe:0,tt=Fe<0?-Fe:0,We=this._size[0],Ue=this._size[1],Qe=Math.min(We-tt,Ue-st),He=[],tr=[],or=[];or[0]=0;for(var xt=st;xt<Ue&&He.length<Qe;xt++)for(var Er=this._ptr[xt],_r=this._ptr[xt+1],Sr=Er;Sr<_r;Sr++){var hr=this._index[Sr];if(hr===xt-st+tt){He.push(this._values[Sr]),tr[He.length-1]=hr-tt;break}}return or.push(He.length),new d({values:He,index:tr,ptr:or,size:[Qe,1]})},d.fromJSON=function(Fe){return new d(Fe)},d.diagonal=function(Fe,st,tt,We,Ue){if(!isArray(Fe))throw new TypeError("Array expected, size parameter");if(Fe.length!==2)throw new Error("Only two dimensions matrix are supported");if(Fe=Fe.map(function(ya){if(isBigNumber(ya)&&(ya=ya.toNumber()),!isNumber(ya)||!isInteger$1(ya)||ya<1)throw new Error("Size values must be positive integers");return ya}),tt){if(isBigNumber(tt)&&(tt=tt.toNumber()),!isNumber(tt)||!isInteger$1(tt))throw new TypeError("The parameter k must be an integer number")}else tt=0;var Qe=l,He=0;isString(Ue)&&(Qe=n.find(l,[Ue,Ue])||l,He=n.convert(0,Ue));var tr=tt>0?tt:0,or=tt<0?-tt:0,xt=Fe[0],Er=Fe[1],_r=Math.min(xt-or,Er-tr),Sr;if(isArray(st)){if(st.length!==_r)throw new Error("Invalid value array length");Sr=function(Rn){return st[Rn]}}else if(isMatrix(st)){var hr=st.size();if(hr.length!==1||hr[0]!==_r)throw new Error("Invalid matrix length");Sr=function(Rn){return st.get([Rn])}}else Sr=function(){return st};for(var Kr=[],Lr=[],Sa=[],br=0;br<Er;br++){Sa.push(Kr.length);var Pa=br-tr;if(Pa>=0&&Pa<_r){var la=Sr(Pa);Qe(la,He)||(Lr.push(Pa+or),Kr.push(la))}}return Sa.push(Kr.length),new d({values:Kr,index:Lr,ptr:Sa,size:[xt,Er]})},d.prototype.swapRows=function(Fe,st){if(!isNumber(Fe)||!isInteger$1(Fe)||!isNumber(st)||!isInteger$1(st))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return validateIndex(Fe,this._size[0]),validateIndex(st,this._size[0]),d._swapRows(Fe,st,this._size[1],this._values,this._index,this._ptr),this},d._forEachRow=function(Fe,st,tt,We,Ue){for(var Qe=We[Fe],He=We[Fe+1],tr=Qe;tr<He;tr++)Ue(tt[tr],st[tr])},d._swapRows=function(Fe,st,tt,We,Ue,Qe){for(var He=0;He<tt;He++){var tr=Qe[He],or=Qe[He+1],xt=Re(Fe,tr,or,Ue),Er=Re(st,tr,or,Ue);if(xt<or&&Er<or&&Ue[xt]===Fe&&Ue[Er]===st){if(We){var _r=We[xt];We[xt]=We[Er],We[Er]=_r}continue}if(xt<or&&Ue[xt]===Fe&&(Er>=or||Ue[Er]!==st)){var Sr=We?We[xt]:void 0;Ue.splice(Er,0,st),We&&We.splice(Er,0,Sr),Ue.splice(Er<=xt?xt+1:xt,1),We&&We.splice(Er<=xt?xt+1:xt,1);continue}if(Er<or&&Ue[Er]===st&&(xt>=or||Ue[xt]!==Fe)){var hr=We?We[Er]:void 0;Ue.splice(xt,0,Fe),We&&We.splice(xt,0,hr),Ue.splice(xt<=Er?Er+1:Er,1),We&&We.splice(xt<=Er?Er+1:Er,1)}}},d},{isClass:!0}),name$u="number",dependencies$t=["typed"];function getNonDecimalNumberParts(e){var n=e.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(n){var l={"0b":2,"0o":8,"0x":16}[n[1]],u=n[2],d=n[3];return{input:e,radix:l,integerPart:u,fractionalPart:d}}else return null}function makeNumberFromNonDecimalParts(e){for(var n=parseInt(e.integerPart,e.radix),l=0,u=0;u<e.fractionalPart.length;u++){var d=parseInt(e.fractionalPart[u],e.radix);l+=d/Math.pow(e.radix,u+1)}var p=n+l;if(isNaN(p))throw new SyntaxError('String "'+e.input+'" is not a valid number');return p}var createNumber=factory(name$u,dependencies$t,e=>{var{typed:n}=e,l=n("number",{"":function(){return 0},number:function(d){return d},string:function(d){if(d==="NaN")return NaN;var p=getNonDecimalNumberParts(d);if(p)return makeNumberFromNonDecimalParts(p);var y=0,o=d.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);o&&(y=Number(o[2]),d=o[1]);var j=Number(d);if(isNaN(j))throw new SyntaxError('String "'+d+'" is not a valid number');if(o){if(j>b0(2,y)-1)throw new SyntaxError('String "'.concat(d,'" is out of range'));j>=b0(2,y-1)&&(j=j-b0(2,y))}return j},BigNumber:function(d){return d.toNumber()},Fraction:function(d){return d.valueOf()},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),null:function(d){return 0},"Unit, string | Unit":function(d,p){return d.toNumber(p)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))});return l.fromJSON=function(u){return parseFloat(u.value)},l}),name$t="bignumber",dependencies$s=["typed","BigNumber"],createBignumber=factory(name$t,dependencies$s,e=>{var{typed:n,BigNumber:l}=e;return n("bignumber",{"":function(){return new l(0)},number:function(d){return new l(d+"")},string:function(d){var p=d.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(p){var y=p[2],o=l(p[1]),j=new l(2).pow(Number(y));if(o.gt(j.sub(1)))throw new SyntaxError('String "'.concat(d,'" is out of range'));var Re=new l(2).pow(Number(y)-1);return o.gte(Re)?o.sub(j):o}return new l(d)},BigNumber:function(d){return d},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),Fraction:function(d){return new l(d.n).div(d.d).times(d.s)},null:function(d){return new l(0)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))})}),name$s="fraction",dependencies$r=["typed","Fraction"],createFraction=factory(name$s,dependencies$r,e=>{var{typed:n,Fraction:l}=e;return n("fraction",{number:function(d){if(!isFinite(d)||isNaN(d))throw new Error(d+" cannot be represented as a fraction");return new l(d)},string:function(d){return new l(d)},"number, number":function(d,p){return new l(d,p)},null:function(d){return new l(0)},BigNumber:function(d){return new l(d.toString())},Fraction:function(d){return d},Unit:n.referToSelf(u=>d=>{var p=d.clone();return p.value=u(d.value),p}),Object:function(d){return new l(d)},"Array | Matrix":n.referToSelf(u=>d=>deepMap(d,u))})}),name$r="matrix",dependencies$q=["typed","Matrix","DenseMatrix","SparseMatrix"],createMatrix=factory(name$r,dependencies$q,e=>{var{typed:n,Matrix:l,DenseMatrix:u,SparseMatrix:d}=e;return n(name$r,{"":function(){return p([])},string:function(o){return p([],o)},"string, string":function(o,j){return p([],o,j)},Array:function(o){return p(o)},Matrix:function(o){return p(o,o.storage())},"Array | Matrix, string":p,"Array | Matrix, string, string":p});function p(y,o,j){if(o==="dense"||o==="default"||o===void 0)return new u(y,j);if(o==="sparse")return new d(y,j);throw new TypeError("Unknown matrix type "+JSON.stringify(o)+".")}}),name$q="unaryMinus",dependencies$p=["typed"],createUnaryMinus=factory(name$q,dependencies$p,e=>{var{typed:n}=e;return n(name$q,{number:unaryMinusNumber,"Complex | BigNumber | Fraction":l=>l.neg(),Unit:n.referToSelf(l=>u=>{var d=u.clone();return d.value=n.find(l,d.valueType())(u.value),d}),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$p="abs",dependencies$o=["typed"],createAbs=factory(name$p,dependencies$o,e=>{var{typed:n}=e;return n(name$p,{number:absNumber,"Complex | BigNumber | Fraction | Unit":l=>l.abs(),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$o="addScalar",dependencies$n=["typed"],createAddScalar=factory(name$o,dependencies$n,e=>{var{typed:n}=e;return n(name$o,{"number, number":addNumber,"Complex, Complex":function(u,d){return u.add(d)},"BigNumber, BigNumber":function(u,d){return u.plus(d)},"Fraction, Fraction":function(u,d){return u.add(d)},"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(u.value===null||u.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(d.value===null||d.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!u.equalBase(d))throw new Error("Units do not match");var p=u.clone();return p.value=n.find(l,[p.valueType(),d.valueType()])(p.value,d.value),p.fixPrefix=!1,p})})}),name$n="subtractScalar",dependencies$m=["typed"],createSubtractScalar=factory(name$n,dependencies$m,e=>{var{typed:n}=e;return n(name$n,{"number, number":subtractNumber,"Complex, Complex":function(u,d){return u.sub(d)},"BigNumber, BigNumber":function(u,d){return u.minus(d)},"Fraction, Fraction":function(u,d){return u.sub(d)},"Unit, Unit":n.referToSelf(l=>(u,d)=>{if(u.value===null||u.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(d.value===null||d.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!u.equalBase(d))throw new Error("Units do not match");var p=u.clone();return p.value=n.find(l,[p.valueType(),d.valueType()])(p.value,d.value),p.fixPrefix=!1,p})})}),name$m="matAlgo11xS0s",dependencies$l=["typed","equalScalar"],createMatAlgo11xS0s=factory(name$m,dependencies$l,e=>{var{typed:n,equalScalar:l}=e;return function(d,p,y,o){var j=d._values,Re=d._index,_e=d._ptr,$=d._size,Je=d._datatype;if(!j)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Ve=$[0],Ze=$[1],Fe,st=l,tt=0,We=y;typeof Je=="string"&&(Fe=Je,st=n.find(l,[Fe,Fe]),tt=n.convert(0,Fe),p=n.convert(p,Fe),We=n.find(y,[Fe,Fe]));for(var Ue=[],Qe=[],He=[],tr=0;tr<Ze;tr++){He[tr]=Qe.length;for(var or=_e[tr],xt=_e[tr+1],Er=or;Er<xt;Er++){var _r=Re[Er],Sr=o?We(p,j[Er]):We(j[Er],p);st(Sr,tt)||(Qe.push(_r),Ue.push(Sr))}}return He[Ze]=Qe.length,d.createSparseMatrix({values:Ue,index:Qe,ptr:He,size:[Ve,Ze],datatype:Fe})}}),name$l="matAlgo14xDs",dependencies$k=["typed"],createMatAlgo14xDs=factory(name$l,dependencies$k,e=>{var{typed:n}=e;return function(d,p,y,o){var j=d._data,Re=d._size,_e=d._datatype,$,Je=y;typeof _e=="string"&&($=_e,p=n.convert(p,$),Je=n.find(y,[$,$]));var Ve=Re.length>0?l(Je,0,Re,Re[0],j,p,o):[];return d.createDenseMatrix({data:Ve,size:clone$2(Re),datatype:$})};function l(u,d,p,y,o,j,Re){var _e=[];if(d===p.length-1)for(var $=0;$<y;$++)_e[$]=Re?u(j,o[$]):u(o[$],j);else for(var Je=0;Je<y;Je++)_e[Je]=l(u,d+1,p,p[d+1],o[Je],j,Re);return _e}}),name$k="matAlgo13xDD",dependencies$j=["typed"],createMatAlgo13xDD=factory(name$k,dependencies$j,e=>{var{typed:n}=e;return function(d,p,y){var o=d._data,j=d._size,Re=d._datatype,_e=p._data,$=p._size,Je=p._datatype,Ve=[];if(j.length!==$.length)throw new DimensionError(j.length,$.length);for(var Ze=0;Ze<j.length;Ze++){if(j[Ze]!==$[Ze])throw new RangeError("Dimension mismatch. Matrix A ("+j+") must match Matrix B ("+$+")");Ve[Ze]=j[Ze]}var Fe,st=y;typeof Re=="string"&&Re===Je&&(Fe=Re,st=n.find(y,[Fe,Fe]));var tt=Ve.length>0?l(st,0,Ve,Ve[0],o,_e):[];return d.createDenseMatrix({data:tt,size:Ve,datatype:Fe})};function l(u,d,p,y,o,j){var Re=[];if(d===p.length-1)for(var _e=0;_e<y;_e++)Re[_e]=u(o[_e],j[_e]);else for(var $=0;$<y;$++)Re[$]=l(u,d+1,p,p[d+1],o[$],j[$]);return Re}}),name$j="broadcast",dependancies=["concat"],createBroadcast=factory(name$j,dependancies,e=>{var{concat:n}=e;return function(d,p){var y=Math.max(d._size.length,p._size.length);if(d._size.length===p._size.length&&d._size.every((Ze,Fe)=>Ze===p._size[Fe]))return[d,p];for(var o=l(d._size,y,0),j=l(p._size,y,0),Re=[],_e=0;_e<y;_e++)Re[_e]=Math.max(o[_e],j[_e]);checkBroadcastingRules(o,Re),checkBroadcastingRules(j,Re);var $=d.clone(),Je=p.clone();$._size.length<y?$.reshape(l($._size,y,1)):Je._size.length<y&&Je.reshape(l(Je._size,y,1));for(var Ve=0;Ve<y;Ve++)$._size[Ve]<Re[Ve]&&($=u($,Re[Ve],Ve)),Je._size[Ve]<Re[Ve]&&(Je=u(Je,Re[Ve],Ve));return[$,Je]};function l(d,p,y){return[...Array(p-d.length).fill(y),...d]}function u(d,p,y){return n(...Array(p).fill(d),y)}}),name$i="matrixAlgorithmSuite",dependencies$i=["typed","matrix","concat"],createMatrixAlgorithmSuite=factory(name$i,dependencies$i,e=>{var{typed:n,matrix:l,concat:u}=e,d=createMatAlgo13xDD({typed:n}),p=createMatAlgo14xDs({typed:n}),y=createBroadcast({concat:u});return function(j){var Re=j.elop,_e=j.SD||j.DS,$;Re?($={"DenseMatrix, DenseMatrix":(Fe,st)=>d(...y(Fe,st),Re),"Array, Array":(Fe,st)=>d(...y(l(Fe),l(st)),Re).valueOf(),"Array, DenseMatrix":(Fe,st)=>d(...y(l(Fe),st),Re),"DenseMatrix, Array":(Fe,st)=>d(...y(Fe,l(st)),Re)},j.SS&&($["SparseMatrix, SparseMatrix"]=(Fe,st)=>j.SS(...y(Fe,st),Re,!1)),j.DS&&($["DenseMatrix, SparseMatrix"]=(Fe,st)=>j.DS(...y(Fe,st),Re,!1),$["Array, SparseMatrix"]=(Fe,st)=>j.DS(...y(l(Fe),st),Re,!1)),_e&&($["SparseMatrix, DenseMatrix"]=(Fe,st)=>_e(...y(st,Fe),Re,!0),$["SparseMatrix, Array"]=(Fe,st)=>_e(...y(l(st),Fe),Re,!0))):($={"DenseMatrix, DenseMatrix":n.referToSelf(Fe=>(st,tt)=>d(...y(st,tt),Fe)),"Array, Array":n.referToSelf(Fe=>(st,tt)=>d(...y(l(st),l(tt)),Fe).valueOf()),"Array, DenseMatrix":n.referToSelf(Fe=>(st,tt)=>d(...y(l(st),tt),Fe)),"DenseMatrix, Array":n.referToSelf(Fe=>(st,tt)=>d(...y(st,l(tt)),Fe))},j.SS&&($["SparseMatrix, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.SS(...y(st,tt),Fe,!1))),j.DS&&($["DenseMatrix, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.DS(...y(st,tt),Fe,!1)),$["Array, SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>j.DS(...y(l(st),tt),Fe,!1))),_e&&($["SparseMatrix, DenseMatrix"]=n.referToSelf(Fe=>(st,tt)=>_e(...y(tt,st),Fe,!0)),$["SparseMatrix, Array"]=n.referToSelf(Fe=>(st,tt)=>_e(...y(l(tt),st),Fe,!0))));var Je=j.scalar||"any",Ve=j.Ds||j.Ss;Ve&&(Re?($["DenseMatrix,"+Je]=(Fe,st)=>p(Fe,st,Re,!1),$[Je+", DenseMatrix"]=(Fe,st)=>p(st,Fe,Re,!0),$["Array,"+Je]=(Fe,st)=>p(l(Fe),st,Re,!1).valueOf(),$[Je+", Array"]=(Fe,st)=>p(l(st),Fe,Re,!0).valueOf()):($["DenseMatrix,"+Je]=n.referToSelf(Fe=>(st,tt)=>p(st,tt,Fe,!1)),$[Je+", DenseMatrix"]=n.referToSelf(Fe=>(st,tt)=>p(tt,st,Fe,!0)),$["Array,"+Je]=n.referToSelf(Fe=>(st,tt)=>p(l(st),tt,Fe,!1).valueOf()),$[Je+", Array"]=n.referToSelf(Fe=>(st,tt)=>p(l(tt),st,Fe,!0).valueOf())));var Ze=j.sS!==void 0?j.sS:j.Ss;return Re?(j.Ss&&($["SparseMatrix,"+Je]=(Fe,st)=>j.Ss(Fe,st,Re,!1)),Ze&&($[Je+", SparseMatrix"]=(Fe,st)=>Ze(st,Fe,Re,!0))):(j.Ss&&($["SparseMatrix,"+Je]=n.referToSelf(Fe=>(st,tt)=>j.Ss(st,tt,Fe,!1))),Ze&&($[Je+", SparseMatrix"]=n.referToSelf(Fe=>(st,tt)=>Ze(tt,st,Fe,!0)))),Re&&Re.signatures&&extend($,Re.signatures),$}}),name$h="matAlgo01xDSid",dependencies$h=["typed"],createMatAlgo01xDSid=factory(name$h,dependencies$h,e=>{var{typed:n}=e;return function(u,d,p,y){var o=u._data,j=u._size,Re=u._datatype,_e=d._values,$=d._index,Je=d._ptr,Ve=d._size,Ze=d._datatype;if(j.length!==Ve.length)throw new DimensionError(j.length,Ve.length);if(j[0]!==Ve[0]||j[1]!==Ve[1])throw new RangeError("Dimension mismatch. Matrix A ("+j+") must match Matrix B ("+Ve+")");if(!_e)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var Fe=j[0],st=j[1],tt=typeof Re=="string"&&Re===Ze?Re:void 0,We=tt?n.find(p,[tt,tt]):p,Ue,Qe,He=[];for(Ue=0;Ue<Fe;Ue++)He[Ue]=[];var tr=[],or=[];for(Qe=0;Qe<st;Qe++){for(var xt=Qe+1,Er=Je[Qe],_r=Je[Qe+1],Sr=Er;Sr<_r;Sr++)Ue=$[Sr],tr[Ue]=y?We(_e[Sr],o[Ue][Qe]):We(o[Ue][Qe],_e[Sr]),or[Ue]=xt;for(Ue=0;Ue<Fe;Ue++)or[Ue]===xt?He[Ue][Qe]=tr[Ue]:He[Ue][Qe]=o[Ue][Qe]}return u.createDenseMatrix({data:He,size:[Fe,st],datatype:tt})}}),name$g="matAlgo04xSidSid",dependencies$g=["typed","equalScalar"],createMatAlgo04xSidSid=factory(name$g,dependencies$g,e=>{var{typed:n,equalScalar:l}=e;return function(d,p,y){var o=d._values,j=d._index,Re=d._ptr,_e=d._size,$=d._datatype,Je=p._values,Ve=p._index,Ze=p._ptr,Fe=p._size,st=p._datatype;if(_e.length!==Fe.length)throw new DimensionError(_e.length,Fe.length);if(_e[0]!==Fe[0]||_e[1]!==Fe[1])throw new RangeError("Dimension mismatch. Matrix A ("+_e+") must match Matrix B ("+Fe+")");var tt=_e[0],We=_e[1],Ue,Qe=l,He=0,tr=y;typeof $=="string"&&$===st&&(Ue=$,Qe=n.find(l,[Ue,Ue]),He=n.convert(0,Ue),tr=n.find(y,[Ue,Ue]));var or=o&&Je?[]:void 0,xt=[],Er=[],_r=o&&Je?[]:void 0,Sr=o&&Je?[]:void 0,hr=[],Kr=[],Lr,Sa,br,Pa,la;for(Sa=0;Sa<We;Sa++){Er[Sa]=xt.length;var ya=Sa+1;for(Pa=Re[Sa],la=Re[Sa+1],br=Pa;br<la;br++)Lr=j[br],xt.push(Lr),hr[Lr]=ya,_r&&(_r[Lr]=o[br]);for(Pa=Ze[Sa],la=Ze[Sa+1],br=Pa;br<la;br++)if(Lr=Ve[br],hr[Lr]===ya){if(_r){var Rn=tr(_r[Lr],Je[br]);Qe(Rn,He)?hr[Lr]=null:_r[Lr]=Rn}}else xt.push(Lr),Kr[Lr]=ya,Sr&&(Sr[Lr]=Je[br]);if(_r&&Sr)for(br=Er[Sa];br<xt.length;)Lr=xt[br],hr[Lr]===ya?(or[br]=_r[Lr],br++):Kr[Lr]===ya?(or[br]=Sr[Lr],br++):xt.splice(br,1)}return Er[We]=xt.length,d.createSparseMatrix({values:or,index:xt,ptr:Er,size:[tt,We],datatype:Ue})}}),name$f="matAlgo10xSids",dependencies$f=["typed","DenseMatrix"],createMatAlgo10xSids=factory(name$f,dependencies$f,e=>{var{typed:n,DenseMatrix:l}=e;return function(d,p,y,o){var j=d._values,Re=d._index,_e=d._ptr,$=d._size,Je=d._datatype;if(!j)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Ve=$[0],Ze=$[1],Fe,st=y;typeof Je=="string"&&(Fe=Je,p=n.convert(p,Fe),st=n.find(y,[Fe,Fe]));for(var tt=[],We=[],Ue=[],Qe=0;Qe<Ze;Qe++){for(var He=Qe+1,tr=_e[Qe],or=_e[Qe+1],xt=tr;xt<or;xt++){var Er=Re[xt];We[Er]=j[xt],Ue[Er]=He}for(var _r=0;_r<Ve;_r++)Qe===0&&(tt[_r]=[]),Ue[_r]===He?tt[_r][Qe]=o?st(p,We[_r]):st(We[_r],p):tt[_r][Qe]=p}return new l({data:tt,size:[Ve,Ze],datatype:Fe})}}),name$e="multiplyScalar",dependencies$e=["typed"],createMultiplyScalar=factory(name$e,dependencies$e,e=>{var{typed:n}=e;return n("multiplyScalar",{"number, number":multiplyNumber,"Complex, Complex":function(u,d){return u.mul(d)},"BigNumber, BigNumber":function(u,d){return u.times(d)},"Fraction, Fraction":function(u,d){return u.mul(d)},"number | Fraction | BigNumber | Complex, Unit":(l,u)=>u.multiply(l),"Unit, number | Fraction | BigNumber | Complex | Unit":(l,u)=>l.multiply(u)})}),name$d="multiply",dependencies$d=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],createMultiply=factory(name$d,dependencies$d,e=>{var{typed:n,matrix:l,addScalar:u,multiplyScalar:d,equalScalar:p,dot:y}=e,o=createMatAlgo11xS0s({typed:n,equalScalar:p}),j=createMatAlgo14xDs({typed:n});function Re(He,tr){switch(He.length){case 1:switch(tr.length){case 1:if(He[0]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(He[0]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+He[0]+") must match Matrix rows ("+tr[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+tr.length+" dimensions)")}break;case 2:switch(tr.length){case 1:if(He[1]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+He[1]+") must match Vector length ("+tr[0]+")");break;case 2:if(He[1]!==tr[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+He[1]+") must match Matrix B rows ("+tr[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+tr.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+He.length+" dimensions)")}}function _e(He,tr,or){if(or===0)throw new Error("Cannot multiply two empty vectors");return y(He,tr)}function $(He,tr){if(tr.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return Je(He,tr)}function Je(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._size,hr=tr._datatype,Kr=xt[0],Lr=Sr[1],Sa,br=u,Pa=d;Er&&hr&&Er===hr&&typeof Er=="string"&&(Sa=Er,br=n.find(u,[Sa,Sa]),Pa=n.find(d,[Sa,Sa]));for(var la=[],ya=0;ya<Lr;ya++){for(var Rn=Pa(or[0],_r[0][ya]),mn=1;mn<Kr;mn++)Rn=br(Rn,Pa(or[mn],_r[mn][ya]));la[ya]=Rn}return He.createDenseMatrix({data:la,size:[Lr],datatype:Sa})}var Ve=n("_multiplyMatrixVector",{"DenseMatrix, any":Fe,"SparseMatrix, any":We}),Ze=n("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":st,"DenseMatrix, SparseMatrix":tt,"SparseMatrix, DenseMatrix":Ue,"SparseMatrix, SparseMatrix":Qe});function Fe(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._datatype,hr=xt[0],Kr=xt[1],Lr,Sa=u,br=d;Er&&Sr&&Er===Sr&&typeof Er=="string"&&(Lr=Er,Sa=n.find(u,[Lr,Lr]),br=n.find(d,[Lr,Lr]));for(var Pa=[],la=0;la<hr;la++){for(var ya=or[la],Rn=br(ya[0],_r[0]),mn=1;mn<Kr;mn++)Rn=Sa(Rn,br(ya[mn],_r[mn]));Pa[la]=Rn}return He.createDenseMatrix({data:Pa,size:[hr],datatype:Lr})}function st(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._data,Sr=tr._size,hr=tr._datatype,Kr=xt[0],Lr=xt[1],Sa=Sr[1],br,Pa=u,la=d;Er&&hr&&Er===hr&&typeof Er=="string"&&(br=Er,Pa=n.find(u,[br,br]),la=n.find(d,[br,br]));for(var ya=[],Rn=0;Rn<Kr;Rn++){var mn=or[Rn];ya[Rn]=[];for(var Fa=0;Fa<Sa;Fa++){for(var _n=la(mn[0],_r[0][Fa]),Ti=1;Ti<Lr;Ti++)_n=Pa(_n,la(mn[Ti],_r[Ti][Fa]));ya[Rn][Fa]=_n}}return He.createDenseMatrix({data:ya,size:[Kr,Sa],datatype:br})}function tt(He,tr){var or=He._data,xt=He._size,Er=He._datatype,_r=tr._values,Sr=tr._index,hr=tr._ptr,Kr=tr._size,Lr=tr._datatype;if(!_r)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var Sa=xt[0],br=Kr[1],Pa,la=u,ya=d,Rn=p,mn=0;Er&&Lr&&Er===Lr&&typeof Er=="string"&&(Pa=Er,la=n.find(u,[Pa,Pa]),ya=n.find(d,[Pa,Pa]),Rn=n.find(p,[Pa,Pa]),mn=n.convert(0,Pa));for(var Fa=[],_n=[],Ti=[],gi=tr.createSparseMatrix({values:Fa,index:_n,ptr:Ti,size:[Sa,br],datatype:Pa}),jn=0;jn<br;jn++){Ti[jn]=_n.length;var Qn=hr[jn],tn=hr[jn+1];if(tn>Qn)for(var Xn=0,ti=0;ti<Sa;ti++){for(var l0=ti+1,Pi=void 0,di=Qn;di<tn;di++){var ui=Sr[di];Xn!==l0?(Pi=ya(or[ti][ui],_r[di]),Xn=l0):Pi=la(Pi,ya(or[ti][ui],_r[di]))}Xn===l0&&!Rn(Pi,mn)&&(_n.push(ti),Fa.push(Pi))}}return Ti[br]=_n.length,gi}function We(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype;if(!or)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var Sr=tr._data,hr=tr._datatype,Kr=He._size[0],Lr=tr._size[0],Sa=[],br=[],Pa=[],la,ya=u,Rn=d,mn=p,Fa=0;_r&&hr&&_r===hr&&typeof _r=="string"&&(la=_r,ya=n.find(u,[la,la]),Rn=n.find(d,[la,la]),mn=n.find(p,[la,la]),Fa=n.convert(0,la));var _n=[],Ti=[];Pa[0]=0;for(var gi=0;gi<Lr;gi++){var jn=Sr[gi];if(!mn(jn,Fa))for(var Qn=Er[gi],tn=Er[gi+1],Xn=Qn;Xn<tn;Xn++){var ti=xt[Xn];Ti[ti]?_n[ti]=ya(_n[ti],Rn(jn,or[Xn])):(Ti[ti]=!0,br.push(ti),_n[ti]=Rn(jn,or[Xn]))}}for(var l0=br.length,Pi=0;Pi<l0;Pi++){var di=br[Pi];Sa[Pi]=_n[di]}return Pa[1]=br.length,He.createSparseMatrix({values:Sa,index:br,ptr:Pa,size:[Kr,1],datatype:la})}function Ue(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype;if(!or)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var Sr=tr._data,hr=tr._datatype,Kr=He._size[0],Lr=tr._size[0],Sa=tr._size[1],br,Pa=u,la=d,ya=p,Rn=0;_r&&hr&&_r===hr&&typeof _r=="string"&&(br=_r,Pa=n.find(u,[br,br]),la=n.find(d,[br,br]),ya=n.find(p,[br,br]),Rn=n.convert(0,br));for(var mn=[],Fa=[],_n=[],Ti=He.createSparseMatrix({values:mn,index:Fa,ptr:_n,size:[Kr,Sa],datatype:br}),gi=[],jn=[],Qn=0;Qn<Sa;Qn++){_n[Qn]=Fa.length;for(var tn=Qn+1,Xn=0;Xn<Lr;Xn++){var ti=Sr[Xn][Qn];if(!ya(ti,Rn))for(var l0=Er[Xn],Pi=Er[Xn+1],di=l0;di<Pi;di++){var ui=xt[di];jn[ui]!==tn?(jn[ui]=tn,Fa.push(ui),gi[ui]=la(ti,or[di])):gi[ui]=Pa(gi[ui],la(ti,or[di]))}}for(var Zi=_n[Qn],$i=Fa.length,n0=Zi;n0<$i;n0++){var fi=Fa[n0];mn[n0]=gi[fi]}}return _n[Sa]=Fa.length,Ti}function Qe(He,tr){var or=He._values,xt=He._index,Er=He._ptr,_r=He._datatype,Sr=tr._values,hr=tr._index,Kr=tr._ptr,Lr=tr._datatype,Sa=He._size[0],br=tr._size[1],Pa=or&&Sr,la,ya=u,Rn=d;_r&&Lr&&_r===Lr&&typeof _r=="string"&&(la=_r,ya=n.find(u,[la,la]),Rn=n.find(d,[la,la]));for(var mn=Pa?[]:void 0,Fa=[],_n=[],Ti=He.createSparseMatrix({values:mn,index:Fa,ptr:_n,size:[Sa,br],datatype:la}),gi=Pa?[]:void 0,jn=[],Qn,tn,Xn,ti,l0,Pi,di,ui,Zi=0;Zi<br;Zi++){_n[Zi]=Fa.length;var $i=Zi+1;for(l0=Kr[Zi],Pi=Kr[Zi+1],ti=l0;ti<Pi;ti++)if(ui=hr[ti],Pa)for(tn=Er[ui],Xn=Er[ui+1],Qn=tn;Qn<Xn;Qn++)di=xt[Qn],jn[di]!==$i?(jn[di]=$i,Fa.push(di),gi[di]=Rn(Sr[ti],or[Qn])):gi[di]=ya(gi[di],Rn(Sr[ti],or[Qn]));else for(tn=Er[ui],Xn=Er[ui+1],Qn=tn;Qn<Xn;Qn++)di=xt[Qn],jn[di]!==$i&&(jn[di]=$i,Fa.push(di));if(Pa)for(var n0=_n[Zi],fi=Fa.length,ri=n0;ri<fi;ri++){var Oi=Fa[ri];mn[ri]=gi[Oi]}}return _n[br]=Fa.length,Ti}return n(name$d,d,{"Array, Array":n.referTo("Matrix, Matrix",He=>(tr,or)=>{Re(arraySize(tr),arraySize(or));var xt=He(l(tr),l(or));return isMatrix(xt)?xt.valueOf():xt}),"Matrix, Matrix":function(tr,or){var xt=tr.size(),Er=or.size();return Re(xt,Er),xt.length===1?Er.length===1?_e(tr,or,xt[0]):$(tr,or):Er.length===1?Ve(tr,or):Ze(tr,or)},"Matrix, Array":n.referTo("Matrix,Matrix",He=>(tr,or)=>He(tr,l(or))),"Array, Matrix":n.referToSelf(He=>(tr,or)=>He(l(tr,or.storage()),or)),"SparseMatrix, any":function(tr,or){return o(tr,or,d,!1)},"DenseMatrix, any":function(tr,or){return j(tr,or,d,!1)},"any, SparseMatrix":function(tr,or){return o(or,tr,d,!0)},"any, DenseMatrix":function(tr,or){return j(or,tr,d,!0)},"Array, any":function(tr,or){return j(l(tr),or,d,!1).valueOf()},"any, Array":function(tr,or){return j(l(or),tr,d,!0).valueOf()},"any, any":d,"any, any, ...any":n.referToSelf(He=>(tr,or,xt)=>{for(var Er=He(tr,or),_r=0;_r<xt.length;_r++)Er=He(Er,xt[_r]);return Er})})}),name$c="conj",dependencies$c=["typed"],createConj=factory(name$c,dependencies$c,e=>{var{typed:n}=e;return n(name$c,{"number | BigNumber | Fraction":l=>l,Complex:l=>l.conjugate(),"Array | Matrix":n.referToSelf(l=>u=>deepMap(u,l))})}),name$b="concat",dependencies$b=["typed","matrix","isInteger"],createConcat=factory(name$b,dependencies$b,e=>{var{typed:n,matrix:l,isInteger:u}=e;return n(name$b,{"...Array | Matrix | number | BigNumber":function(p){var y,o=p.length,j=-1,Re,_e=!1,$=[];for(y=0;y<o;y++){var Je=p[y];if(isMatrix(Je)&&(_e=!0),isNumber(Je)||isBigNumber(Je)){if(y!==o-1)throw new Error("Dimension must be specified as last argument");if(Re=j,j=Je.valueOf(),!u(j))throw new TypeError("Integer number expected for dimension");if(j<0||y>0&&j>Re)throw new IndexError(j,Re+1)}else{var Ve=clone$2(Je).valueOf(),Ze=arraySize(Ve);if($[y]=Ve,Re=j,j=Ze.length-1,y>0&&j!==Re)throw new DimensionError(Re+1,j+1)}}if($.length===0)throw new SyntaxError("At least one matrix expected");for(var Fe=$.shift();$.length;)Fe=concat$1(Fe,$.shift(),j);return _e?l(Fe):Fe},"...string":function(p){return p.join("")}})}),name$a="identity",dependencies$a=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],createIdentity=factory(name$a,dependencies$a,e=>{var{typed:n,config:l,matrix:u,BigNumber:d,DenseMatrix:p,SparseMatrix:y}=e;return n(name$a,{"":function(){return l.matrix==="Matrix"?u([]):[]},string:function(_e){return u(_e)},"number | BigNumber":function(_e){return j(_e,_e,l.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(_e,$){return j(_e,_e,$)},"number | BigNumber, number | BigNumber":function(_e,$){return j(_e,$,l.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(_e,$,Je){return j(_e,$,Je)},Array:function(_e){return o(_e)},"Array, string":function(_e,$){return o(_e,$)},Matrix:function(_e){return o(_e.valueOf(),_e.storage())},"Matrix, string":function(_e,$){return o(_e.valueOf(),$)}});function o(Re,_e){switch(Re.length){case 0:return _e?u(_e):[];case 1:return j(Re[0],Re[0],_e);case 2:return j(Re[0],Re[1],_e);default:throw new Error("Vector containing two values expected")}}function j(Re,_e,$){var Je=isBigNumber(Re)||isBigNumber(_e)?d:null;if(isBigNumber(Re)&&(Re=Re.toNumber()),isBigNumber(_e)&&(_e=_e.toNumber()),!isInteger$1(Re)||Re<1)throw new Error("Parameters in function identity must be positive integers");if(!isInteger$1(_e)||_e<1)throw new Error("Parameters in function identity must be positive integers");var Ve=Je?new d(1):1,Ze=Je?new Je(0):0,Fe=[Re,_e];if($){if($==="sparse")return y.diagonal(Fe,Ve,0,Ze);if($==="dense")return p.diagonal(Fe,Ve,0,Ze);throw new TypeError('Unknown matrix type "'.concat($,'"'))}for(var st=resize([],Fe,Ze),tt=Re<_e?Re:_e,We=0;We<tt;We++)st[We][We]=Ve;return st}});function noBignumber(){throw new Error('No "bignumber" implementation available')}function noFraction(){throw new Error('No "fraction" implementation available')}function noMatrix(){throw new Error('No "matrix" implementation available')}var name$9="size",dependencies$9=["typed","config","?matrix"],createSize=factory(name$9,dependencies$9,e=>{var{typed:n,config:l,matrix:u}=e;return n(name$9,{Matrix:function(p){return p.create(p.size())},Array:arraySize,string:function(p){return l.matrix==="Array"?[p.length]:u([p.length])},"number | Complex | BigNumber | Unit | boolean | null":function(p){return l.matrix==="Array"?[]:u?u([]):noMatrix()}})}),name$8="transpose",dependencies$8=["typed","matrix"],createTranspose=factory(name$8,dependencies$8,e=>{var{typed:n,matrix:l}=e;return n(name$8,{Array:y=>u(l(y)).valueOf(),Matrix:u,any:clone$2});function u(y){var o=y.size(),j;switch(o.length){case 1:j=y.clone();break;case 2:{var Re=o[0],_e=o[1];if(_e===0)throw new RangeError("Cannot transpose a 2D matrix with no columns (size: "+format(o)+")");switch(y.storage()){case"dense":j=d(y,Re,_e);break;case"sparse":j=p(y,Re,_e);break}}break;default:throw new RangeError("Matrix must be a vector or two dimensional (size: "+format(o)+")")}return j}function d(y,o,j){for(var Re=y._data,_e=[],$,Je=0;Je<j;Je++){$=_e[Je]=[];for(var Ve=0;Ve<o;Ve++)$[Ve]=clone$2(Re[Ve][Je])}return y.createDenseMatrix({data:_e,size:[j,o],datatype:y._datatype})}function p(y,o,j){for(var Re=y._values,_e=y._index,$=y._ptr,Je=Re?[]:void 0,Ve=[],Ze=[],Fe=[],st=0;st<o;st++)Fe[st]=0;var tt,We,Ue;for(tt=0,We=_e.length;tt<We;tt++)Fe[_e[tt]]++;for(var Qe=0,He=0;He<o;He++)Ze.push(Qe),Qe+=Fe[He],Fe[He]=Ze[He];for(Ze.push(Qe),Ue=0;Ue<j;Ue++)for(var tr=$[Ue],or=$[Ue+1],xt=tr;xt<or;xt++){var Er=Fe[_e[xt]]++;Ve[Er]=Ue,Re&&(Je[Er]=clone$2(Re[xt]))}return y.createSparseMatrix({values:Je,index:Ve,ptr:Ze,size:[j,o],datatype:y._datatype})}});function improveErrorMessage(e,n,l){var u;return String(e).indexOf("Unexpected type")!==-1?(u=arguments.length>2?" (type: "+typeOf(l)+", value: "+JSON.stringify(l)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+n+", unexpected type of argument"+u)):String(e).indexOf("complex numbers")!==-1?(u=arguments.length>2?" (type: "+typeOf(l)+", value: "+JSON.stringify(l)+")":"",new TypeError("Cannot calculate "+n+", no ordering relation is defined for complex numbers"+u)):e}var name$7="numeric",dependencies$7=["number","?bignumber","?fraction"],createNumeric=factory(name$7,dependencies$7,e=>{var{number:n,bignumber:l,fraction:u}=e,d={string:!0,number:!0,BigNumber:!0,Fraction:!0},p={number:y=>n(y),BigNumber:l?y=>l(y):noBignumber,Fraction:u?y=>u(y):noFraction};return function(o){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",Re=arguments.length>2?arguments[2]:void 0;if(Re!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var _e=typeOf(o);if(!(_e in d))throw new TypeError("Cannot convert "+o+' of type "'+_e+'"; valid input types are '+Object.keys(d).join(", "));if(!(j in p))throw new TypeError("Cannot convert "+o+' to type "'+j+'"; valid output types are '+Object.keys(p).join(", "));return j===_e?o:p[j](o)}}),name$6="divideScalar",dependencies$6=["typed","numeric"],createDivideScalar=factory(name$6,dependencies$6,e=>{var{typed:n,numeric:l}=e;return n(name$6,{"number, number":function(d,p){return d/p},"Complex, Complex":function(d,p){return d.div(p)},"BigNumber, BigNumber":function(d,p){return d.div(p)},"Fraction, Fraction":function(d,p){return d.div(p)},"Unit, number | Complex | Fraction | BigNumber | Unit":(u,d)=>u.divide(d),"number | Fraction | Complex | BigNumber, Unit":(u,d)=>d.divideInto(u)})}),name$5="add",dependencies$5=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],createAdd=factory(name$5,dependencies$5,e=>{var{typed:n,matrix:l,addScalar:u,equalScalar:d,DenseMatrix:p,SparseMatrix:y,concat:o}=e,j=createMatAlgo01xDSid({typed:n}),Re=createMatAlgo04xSidSid({typed:n,equalScalar:d}),_e=createMatAlgo10xSids({typed:n,DenseMatrix:p}),$=createMatrixAlgorithmSuite({typed:n,matrix:l,concat:o});return n(name$5,{"any, any":u,"any, any, ...any":n.referToSelf(Je=>(Ve,Ze,Fe)=>{for(var st=Je(Ve,Ze),tt=0;tt<Fe.length;tt++)st=Je(st,Fe[tt]);return st})},$({elop:u,DS:j,SS:Re,Ss:_e}))}),name$4="dot",dependencies$4=["typed","addScalar","multiplyScalar","conj","size"],createDot=factory(name$4,dependencies$4,e=>{var{typed:n,addScalar:l,multiplyScalar:u,conj:d,size:p}=e;return n(name$4,{"Array | DenseMatrix, Array | DenseMatrix":o,"SparseMatrix, SparseMatrix":j});function y(_e,$){var Je=Re(_e),Ve=Re($),Ze,Fe;if(Je.length===1)Ze=Je[0];else if(Je.length===2&&Je[1]===1)Ze=Je[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+Je.join(", ")+")");if(Ve.length===1)Fe=Ve[0];else if(Ve.length===2&&Ve[1]===1)Fe=Ve[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+Ve.join(", ")+")");if(Ze!==Fe)throw new RangeError("Vectors must have equal length ("+Ze+" != "+Fe+")");if(Ze===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return Ze}function o(_e,$){var Je=y(_e,$),Ve=isMatrix(_e)?_e._data:_e,Ze=isMatrix(_e)?_e._datatype:void 0,Fe=isMatrix($)?$._data:$,st=isMatrix($)?$._datatype:void 0,tt=Re(_e).length===2,We=Re($).length===2,Ue=l,Qe=u;if(Ze&&st&&Ze===st&&typeof Ze=="string"){var He=Ze;Ue=n.find(l,[He,He]),Qe=n.find(u,[He,He])}if(!tt&&!We){for(var tr=Qe(d(Ve[0]),Fe[0]),or=1;or<Je;or++)tr=Ue(tr,Qe(d(Ve[or]),Fe[or]));return tr}if(!tt&&We){for(var xt=Qe(d(Ve[0]),Fe[0][0]),Er=1;Er<Je;Er++)xt=Ue(xt,Qe(d(Ve[Er]),Fe[Er][0]));return xt}if(tt&&!We){for(var _r=Qe(d(Ve[0][0]),Fe[0]),Sr=1;Sr<Je;Sr++)_r=Ue(_r,Qe(d(Ve[Sr][0]),Fe[Sr]));return _r}if(tt&&We){for(var hr=Qe(d(Ve[0][0]),Fe[0][0]),Kr=1;Kr<Je;Kr++)hr=Ue(hr,Qe(d(Ve[Kr][0]),Fe[Kr][0]));return hr}}function j(_e,$){y(_e,$);for(var Je=_e._index,Ve=_e._values,Ze=$._index,Fe=$._values,st=0,tt=l,We=u,Ue=0,Qe=0;Ue<Je.length&&Qe<Ze.length;){var He=Je[Ue],tr=Ze[Qe];if(He<tr){Ue++;continue}if(He>tr){Qe++;continue}He===tr&&(st=tt(st,We(Ve[Ue],Fe[Qe])),Ue++,Qe++)}return st}function Re(_e){return isMatrix(_e)?_e.size():p(_e)}}),name$3="det",dependencies$3=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],createDet=factory(name$3,dependencies$3,e=>{var{typed:n,matrix:l,subtractScalar:u,multiply:d,divideScalar:p,isZero:y,unaryMinus:o}=e;return n(name$3,{any:function(_e){return clone$2(_e)},"Array | Matrix":function(_e){var $;switch(isMatrix(_e)?$=_e.size():Array.isArray(_e)?(_e=l(_e),$=_e.size()):$=[],$.length){case 0:return clone$2(_e);case 1:if($[0]===1)return clone$2(_e.valueOf()[0]);if($[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+format($)+")");case 2:{var Je=$[0],Ve=$[1];if(Je===Ve)return j(_e.clone().valueOf(),Je);if(Ve===0)return 1;throw new RangeError("Matrix must be square (size: "+format($)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+format($)+")")}}});function j(Re,_e,$){if(_e===1)return clone$2(Re[0][0]);if(_e===2)return u(d(Re[0][0],Re[1][1]),d(Re[1][0],Re[0][1]));for(var Je=!1,Ve=new Array(_e).fill(0).map((or,xt)=>xt),Ze=0;Ze<_e;Ze++){var Fe=Ve[Ze];if(y(Re[Fe][Ze])){var st=void 0;for(st=Ze+1;st<_e;st++)if(!y(Re[Ve[st]][Ze])){Fe=Ve[st],Ve[st]=Ve[Ze],Ve[Ze]=Fe,Je=!Je;break}if(st===_e)return Re[Fe][Ze]}for(var tt=Re[Fe][Ze],We=Ze===0?1:Re[Ve[Ze-1]][Ze-1],Ue=Ze+1;Ue<_e;Ue++)for(var Qe=Ve[Ue],He=Ze+1;He<_e;He++)Re[Qe][He]=p(u(d(Re[Qe][He],tt),d(Re[Qe][Ze],Re[Fe][He])),We)}var tr=Re[Ve[_e-1]][_e-1];return Je?o(tr):tr}}),name$2="inv",dependencies$2=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],createInv=factory(name$2,dependencies$2,e=>{var{typed:n,matrix:l,divideScalar:u,addScalar:d,multiply:p,unaryMinus:y,det:o,identity:j,abs:Re}=e;return n(name$2,{"Array | Matrix":function(Je){var Ve=isMatrix(Je)?Je.size():arraySize(Je);switch(Ve.length){case 1:if(Ve[0]===1)return isMatrix(Je)?l([u(1,Je.valueOf()[0])]):[u(1,Je[0])];throw new RangeError("Matrix must be square (size: "+format(Ve)+")");case 2:{var Ze=Ve[0],Fe=Ve[1];if(Ze===Fe)return isMatrix(Je)?l(_e(Je.valueOf(),Ze,Fe),Je.storage()):_e(Je,Ze,Fe);throw new RangeError("Matrix must be square (size: "+format(Ve)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+format(Ve)+")")}},any:function(Je){return u(1,Je)}});function _e($,Je,Ve){var Ze,Fe,st,tt,We;if(Je===1){if(tt=$[0][0],tt===0)throw Error("Cannot calculate inverse, determinant is zero");return[[u(1,tt)]]}else if(Je===2){var Ue=o($);if(Ue===0)throw Error("Cannot calculate inverse, determinant is zero");return[[u($[1][1],Ue),u(y($[0][1]),Ue)],[u(y($[1][0]),Ue),u($[0][0],Ue)]]}else{var Qe=$.concat();for(Ze=0;Ze<Je;Ze++)Qe[Ze]=Qe[Ze].concat();for(var He=j(Je).valueOf(),tr=0;tr<Ve;tr++){var or=Re(Qe[tr][tr]),xt=tr;for(Ze=tr+1;Ze<Je;)Re(Qe[Ze][tr])>or&&(or=Re(Qe[Ze][tr]),xt=Ze),Ze++;if(or===0)throw Error("Cannot calculate inverse, determinant is zero");Ze=xt,Ze!==tr&&(We=Qe[tr],Qe[tr]=Qe[Ze],Qe[Ze]=We,We=He[tr],He[tr]=He[Ze],He[Ze]=We);var Er=Qe[tr],_r=He[tr];for(Ze=0;Ze<Je;Ze++){var Sr=Qe[Ze],hr=He[Ze];if(Ze!==tr){if(Sr[tr]!==0){for(st=u(y(Sr[tr]),Er[tr]),Fe=tr;Fe<Ve;Fe++)Sr[Fe]=d(Sr[Fe],p(st,Er[Fe]));for(Fe=0;Fe<Ve;Fe++)hr[Fe]=d(hr[Fe],p(st,_r[Fe]))}}else{for(st=Er[tr],Fe=tr;Fe<Ve;Fe++)Sr[Fe]=u(Sr[Fe],st);for(Fe=0;Fe<Ve;Fe++)hr[Fe]=u(hr[Fe],st)}}}return He}}}),name$1="sum",dependencies$1=["typed","config","add","numeric"],createSum=factory(name$1,dependencies$1,e=>{var{typed:n,config:l,add:u,numeric:d}=e;return n(name$1,{"Array | Matrix":p,"Array | Matrix, number | BigNumber":y,"...":function(j){if(containsCollections(j))throw new TypeError("Scalar values expected in function sum");return p(j)}});function p(o){var j;return deepForEach(o,function(Re){try{j=j===void 0?Re:u(j,Re)}catch(_e){throw improveErrorMessage(_e,"sum",Re)}}),j===void 0&&(j=d(0,l.number)),typeof j=="string"&&(j=d(j,l.number)),j}function y(o,j){try{var Re=reduce(o,j,u);return Re}catch(_e){throw improveErrorMessage(_e,"sum")}}}),BigNumber=createBigNumberClass({config:config$1}),Complex=createComplexClass({}),Fraction=createFractionClass({}),Matrix=createMatrixClass({}),DenseMatrix=createDenseMatrixClass({Matrix}),typed=createTyped({BigNumber,Complex,DenseMatrix,Fraction}),abs=createAbs({typed}),addScalar=createAddScalar({typed}),bignumber=createBignumber({BigNumber,typed}),conj=createConj({typed}),equalScalar=createEqualScalar({config:config$1,typed}),isInteger=createIsInteger({typed}),isZero=createIsZero({typed}),multiplyScalar=createMultiplyScalar({typed}),number=createNumber({typed}),SparseMatrix=createSparseMatrixClass({Matrix,equalScalar,typed}),subtractScalar=createSubtractScalar({typed}),unaryMinus=createUnaryMinus({typed}),fraction=createFraction({Fraction,typed}),matrix=createMatrix({DenseMatrix,Matrix,SparseMatrix,typed}),numeric=createNumeric({bignumber,fraction,number}),size=createSize({matrix,config:config$1,typed}),transpose=createTranspose({matrix,typed}),concat=createConcat({isInteger,matrix,typed}),divideScalar=createDivideScalar({numeric,typed}),identity=createIdentity({BigNumber,DenseMatrix,SparseMatrix,config:config$1,matrix,typed}),add=createAdd({DenseMatrix,SparseMatrix,addScalar,concat,equalScalar,matrix,typed}),dot=createDot({addScalar,conj,multiplyScalar,size,typed}),multiply=createMultiply({addScalar,dot,equalScalar,matrix,multiplyScalar,typed}),sum=createSum({add,config:config$1,numeric,typed}),det=createDet({divideScalar,isZero,matrix,multiply,subtractScalar,typed,unaryMinus}),inv=createInv({abs,addScalar,det,divideScalar,identity,matrix,multiply,typed,unaryMinus});function predictObservations(e,n,l,u){let{observations:d}=n;return d.length>1?predictOptimize(e,n,u):predictBeforeAT(e,n,l,u)}function predictBeforeAT(e,n,l,u){let{images:d,cameras:p,coordinateSystem:y}=e;if(y.type===1)return u&&d.forEach($=>{$.predict=void 0}),{predicts:{}};let o={};p.forEach($=>o[$.camera_id]=$);let{coordinate:j}=n,Re=fromValues$1(0,0,0);if(l.type===1)Re=fromValues$1(j[1],j[1],j[2]);else{let $=transformCoordinateToLngLat(j,l),Je=y.origin_point,Ve=satellite_geo_calc.coordinateTransfer.lla_to_enu({lon:$[0],lat:$[1],alt:$[2]||0},{lon:Je[0],lat:Je[1],alt:Je[2]});Re=fromValues$1(Ve.x,Ve.y,Ve.z)}let _e={};return d.forEach($=>{let{img_id:Je,camera_id:Ve,projection_matrix:Ze,image_rect:Fe}=$,st=o[Ve].camera_params,{width:tt,height:We}=Fe,Ue=Ze,Qe=fromValues$3(Ue[0],Ue[4],Ue[8],Ue[1],Ue[5],Ue[9],Ue[2],Ue[6],Ue[10]),He=fromValues$1(Ue[3],Ue[7],Ue[11]),tr=fromValues$3(st[0],0,0,0,st[1],0,st[2],st[3],1),or=transformMat3(create$2(),add$4(create$2(),transformMat3(create$2(),Re,Qe),He),tr),xt=scale(create$2,or,1/or[2]);if(xt[0]>0&&xt[0]<tt&&xt[1]>0&&xt[1]<We){let Er=fromValues$1(xt[0],xt[1],1),_r=transformMat3(create$2(),Er,invert(create$4(),tr)),Sr=distortPoint(_r,st);xt=transformMat3(create$2(),fromValues$1(...Sr,1),tr),_e[Je]=[xt[0],xt[1]],u&&($.predict={uv:[xt[0],xt[1]],position:{left:xt[0]*100/tt,top:xt[1]*100/We},distance:Math.hypot(xt[0]-tt/2,xt[1]-We/2)})}else u&&($.predict=void 0)}),{predicts:_e}}function predictOptimize(e,n,l){let{images:u,cameras:d}=e,{observations:p}=n,y={};d.forEach(Ue=>y[Ue.camera_id]=Ue);let o={},j=[],Re=new Map;p.forEach(Ue=>Re.set(Ue.id,Ue.uv)),u.forEach(Ue=>{if(!Re.has(Ue.img_id)){Ue.observation=void 0;return}Ue.observation={id:Ue.img_id,uv:Re.get(Ue.img_id)},j.push(Ue)});let _e=[],$=[];j.forEach(Ue=>{let Qe=Ue.projection_matrix,He=y[Ue.camera_id].camera_params,tr=undistortPoint(Ue.observation.uv,He),or=fromValues$3(Qe[0],Qe[4],Qe[8],Qe[1],Qe[5],Qe[9],Qe[2],Qe[6],Qe[10]),xt=fromValues$1(Qe[3],Qe[7],Qe[11]),Er=fromValues$3(He[0],0,0,0,He[1],0,He[2],He[3],1),_r=invert(create$4(),Er),Sr=transformMat3(create$2(),tr,_r);_e.push([or[0]-or[2]*Sr[0],or[3]-or[5]*Sr[0],or[6]-or[8]*Sr[0]]),_e.push([or[1]-or[2]*Sr[1],or[4]-or[5]*Sr[1],or[7]-or[8]*Sr[1]]),$.push(xt[2]*Sr[0]-xt[0],xt[2]*Sr[1]-xt[1])});let Je=matrix(_e),Ve=matrix($),Ze=transpose(Je),Fe=multiply(multiply(inv(multiply(Ze,Je)),Ze),Ve),st=fromValues$1(Fe.get([0]),Fe.get([1]),Fe.get([2])),tt=0,We=[];return u.forEach(Ue=>{let{img_id:Qe,camera_id:He,projection_matrix:tr,image_rect:or}=Ue,xt=y[He].camera_params,{width:Er,height:_r}=or,Sr=tr,hr=fromValues$3(Sr[0],Sr[4],Sr[8],Sr[1],Sr[5],Sr[9],Sr[2],Sr[6],Sr[10]),Kr=fromValues$1(Sr[3],Sr[7],Sr[11]),Lr=fromValues$3(xt[0],0,0,0,xt[1],0,xt[2],xt[3],1),Sa=add$4(create$2(),transformMat3(create$2(),st,hr),Kr),br=transformMat3(create$2(),fromValues$1(Sa[0]/Sa[2],Sa[1]/Sa[2],1),Lr);if(br[0]>0&&br[0]<Er&&br[1]>0&&br[1]<_r){let Pa=fromValues$1(...br,1),la=transformMat3(create$2(),Pa,invert(create$4(),Lr)),ya=distortPoint(la,xt);if(br=transformMat3(create$2(),fromValues$1(...ya,1),Lr),Ue.observation){l&&(Ue.predict={uv:Ue.observation.uv,position:{left:Ue.observation.uv[0]*100/Er,top:Ue.observation.uv[1]*100/_r},distance:Math.hypot(Ue.observation.uv[0]-Er/2,Ue.observation.uv[1]-_r/2)});let Rn=Ue.observation.uv;We.push(Math.sqrt((br[0]-Rn[0])*(br[0]-Rn[0])+(br[1]-Rn[1])*(br[1]-Rn[1])))}else o[Qe]=[br[0],br[1]],l&&(Ue.predict={uv:[br[0],br[1]],position:{left:br[0]*100/Er,top:br[1]*100/_r},distance:Math.hypot(br[0]-Er/2,br[1]-_r/2)})}else l&&(Ue.predict=void 0)}),tt=sum(We)/We.length,{predicts:o,residual_rmse:tt}}function undistortPoint(e,n){let l=fromValues$3(n[0],0,0,0,n[1],0,n[2],n[3],1),u=transformMat3(create$2(),fromValues$1(...e,1),invert(create$4(),l)),d=100,p=1e-10,y=fromValues(u[0],u[1]),o=subtract(create$1(),distortPoint(y,n),y),j=subtract(create$1(),add$3(create$1(),y,o),u);for(;Math.abs(j[0])+Math.abs(j[1])>p&&d-- >0;)y=subtract(create$1(),u,o),o=subtract(create$1(),distortPoint(y,n),y),j=subtract(create$1(),add$3(create$1(),y,o),u);return transformMat3(create$2(),fromValues$1(...y,1),l)}function distortPoint(e,n){let l=[e[0],e[1]],u=l[0]*l[0]+l[1]*l[1],d=Math.pow(u,2),p=Math.pow(u,3),y=[l[0]*(1+n[4]*u+n[5]*d+n[6]*p)+2*n[7]*l[0]*l[1]+n[8]*(u+2*l[0]*l[0]),l[1]*(1+n[4]*u+n[5]*d+n[6]*p)+2*n[8]*l[0]*l[1]+n[7]*(u+2*l[1]*l[1])];return fromValues(...y)}var ieee754$1={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ieee754$1.read=function(e,n,l,u,d){var p,y,o=d*8-u-1,j=(1<<o)-1,Re=j>>1,_e=-7,$=l?d-1:0,Je=l?-1:1,Ve=e[n+$];for($+=Je,p=Ve&(1<<-_e)-1,Ve>>=-_e,_e+=o;_e>0;p=p*256+e[n+$],$+=Je,_e-=8);for(y=p&(1<<-_e)-1,p>>=-_e,_e+=u;_e>0;y=y*256+e[n+$],$+=Je,_e-=8);if(p===0)p=1-Re;else{if(p===j)return y?NaN:(Ve?-1:1)*(1/0);y=y+Math.pow(2,u),p=p-Re}return(Ve?-1:1)*y*Math.pow(2,p-u)},ieee754$1.write=function(e,n,l,u,d,p){var y,o,j,Re=p*8-d-1,_e=(1<<Re)-1,$=_e>>1,Je=d===23?Math.pow(2,-24)-Math.pow(2,-77):0,Ve=u?0:p-1,Ze=u?1:-1,Fe=n<0||n===0&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(o=isNaN(n)?1:0,y=_e):(y=Math.floor(Math.log(n)/Math.LN2),n*(j=Math.pow(2,-y))<1&&(y--,j*=2),y+$>=1?n+=Je/j:n+=Je*Math.pow(2,1-$),n*j>=2&&(y++,j/=2),y+$>=_e?(o=0,y=_e):y+$>=1?(o=(n*j-1)*Math.pow(2,d),y=y+$):(o=n*Math.pow(2,$-1)*Math.pow(2,d),y=0));d>=8;e[l+Ve]=o&255,Ve+=Ze,o/=256,d-=8);for(y=y<<d|o,Re+=d;Re>0;e[l+Ve]=y&255,Ve+=Ze,y/=256,Re-=8);e[l+Ve-Ze]|=Fe*128};var pbf=Pbf,ieee754=ieee754$1;function Pbf(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}Pbf.Varint=0,Pbf.Fixed64=1,Pbf.Bytes=2,Pbf.Fixed32=5;var SHIFT_LEFT_32=(1<<16)*(1<<16),SHIFT_RIGHT_32=1/SHIFT_LEFT_32,TEXT_DECODER_MIN_LENGTH=12,utf8TextDecoder=typeof TextDecoder=="undefined"?null:new TextDecoder("utf8");Pbf.prototype={destroy:function(){this.buf=null},readFields:function(e,n,l){for(l=l||this.length;this.pos<l;){var u=this.readVarint(),d=u>>3,p=this.pos;this.type=u&7,e(d,n,this),this.pos===p&&this.skip(u)}return n},readMessage:function(e,n){return this.readFields(e,n,this.readVarint()+this.pos)},readFixed32:function(){var e=readUInt32(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=readInt32(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=readUInt32(this.buf,this.pos)+readUInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,e},readSFixed64:function(){var e=readUInt32(this.buf,this.pos)+readInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,e},readFloat:function(){var e=ieee754.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=ieee754.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var n=this.buf,l,u;return u=n[this.pos++],l=u&127,u<128||(u=n[this.pos++],l|=(u&127)<<7,u<128)||(u=n[this.pos++],l|=(u&127)<<14,u<128)||(u=n[this.pos++],l|=(u&127)<<21,u<128)?l:(u=n[this.pos],l|=(u&15)<<28,readVarintRemainder(l,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,n=this.pos;return this.pos=e,e-n>=TEXT_DECODER_MIN_LENGTH&&utf8TextDecoder?readUtf8TextDecoder(this.buf,n,e):readUtf8(this.buf,n,e)},readBytes:function(){var e=this.readVarint()+this.pos,n=this.buf.subarray(this.pos,e);return this.pos=e,n},readPackedVarint:function(e,n){if(this.type!==Pbf.Bytes)return e.push(this.readVarint(n));var l=readPackedEnd(this);for(e=e||[];this.pos<l;)e.push(this.readVarint(n));return e},readPackedSVarint:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSVarint());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readBoolean());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFloat());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readDouble());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFixed32());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSFixed32());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readFixed64());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==Pbf.Bytes)return e.push(this.readSFixed64());var n=readPackedEnd(this);for(e=e||[];this.pos<n;)e.push(this.readSFixed64());return e},skip:function(e){var n=e&7;if(n===Pbf.Varint)for(;this.buf[this.pos++]>127;);else if(n===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(n===Pbf.Fixed32)this.pos+=4;else if(n===Pbf.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+n)},writeTag:function(e,n){this.writeVarint(e<<3|n)},realloc:function(e){for(var n=this.length||16;n<this.pos+e;)n*=2;if(n!==this.length){var l=new Uint8Array(n);l.set(this.buf),this.buf=l,this.length=n}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),writeInt32(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),writeInt32(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),writeInt32(this.buf,e&-1,this.pos),writeInt32(this.buf,Math.floor(e*SHIFT_RIGHT_32),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),writeInt32(this.buf,e&-1,this.pos),writeInt32(this.buf,Math.floor(e*SHIFT_RIGHT_32),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){writeBigVarint(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var n=this.pos;this.pos=writeUtf8(this.buf,e,this.pos);var l=this.pos-n;l>=128&&makeRoomForExtraLength(n,l,this),this.pos=n-1,this.writeVarint(l),this.pos+=l},writeFloat:function(e){this.realloc(4),ieee754.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),ieee754.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var n=e.length;this.writeVarint(n),this.realloc(n);for(var l=0;l<n;l++)this.buf[this.pos++]=e[l]},writeRawMessage:function(e,n){this.pos++;var l=this.pos;e(n,this);var u=this.pos-l;u>=128&&makeRoomForExtraLength(l,u,this),this.pos=l-1,this.writeVarint(u),this.pos+=u},writeMessage:function(e,n,l){this.writeTag(e,Pbf.Bytes),this.writeRawMessage(n,l)},writePackedVarint:function(e,n){n.length&&this.writeMessage(e,writePackedVarint,n)},writePackedSVarint:function(e,n){n.length&&this.writeMessage(e,writePackedSVarint,n)},writePackedBoolean:function(e,n){n.length&&this.writeMessage(e,writePackedBoolean,n)},writePackedFloat:function(e,n){n.length&&this.writeMessage(e,writePackedFloat,n)},writePackedDouble:function(e,n){n.length&&this.writeMessage(e,writePackedDouble,n)},writePackedFixed32:function(e,n){n.length&&this.writeMessage(e,writePackedFixed32,n)},writePackedSFixed32:function(e,n){n.length&&this.writeMessage(e,writePackedSFixed32,n)},writePackedFixed64:function(e,n){n.length&&this.writeMessage(e,writePackedFixed64,n)},writePackedSFixed64:function(e,n){n.length&&this.writeMessage(e,writePackedSFixed64,n)},writeBytesField:function(e,n){this.writeTag(e,Pbf.Bytes),this.writeBytes(n)},writeFixed32Field:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeSFixed64(n)},writeVarintField:function(e,n){this.writeTag(e,Pbf.Varint),this.writeVarint(n)},writeSVarintField:function(e,n){this.writeTag(e,Pbf.Varint),this.writeSVarint(n)},writeStringField:function(e,n){this.writeTag(e,Pbf.Bytes),this.writeString(n)},writeFloatField:function(e,n){this.writeTag(e,Pbf.Fixed32),this.writeFloat(n)},writeDoubleField:function(e,n){this.writeTag(e,Pbf.Fixed64),this.writeDouble(n)},writeBooleanField:function(e,n){this.writeVarintField(e,Boolean(n))}};function readVarintRemainder(e,n,l){var u=l.buf,d,p;if(p=u[l.pos++],d=(p&112)>>4,p<128||(p=u[l.pos++],d|=(p&127)<<3,p<128)||(p=u[l.pos++],d|=(p&127)<<10,p<128)||(p=u[l.pos++],d|=(p&127)<<17,p<128)||(p=u[l.pos++],d|=(p&127)<<24,p<128)||(p=u[l.pos++],d|=(p&1)<<31,p<128))return toNum(e,d,n);throw new Error("Expected varint not more than 10 bytes")}function readPackedEnd(e){return e.type===Pbf.Bytes?e.readVarint()+e.pos:e.pos+1}function toNum(e,n,l){return l?n*4294967296+(e>>>0):(n>>>0)*4294967296+(e>>>0)}function writeBigVarint(e,n){var l,u;if(e>=0?(l=e%4294967296|0,u=e/4294967296|0):(l=~(-e%4294967296),u=~(-e/4294967296),l^4294967295?l=l+1|0:(l=0,u=u+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");n.realloc(10),writeBigVarintLow(l,u,n),writeBigVarintHigh(u,n)}function writeBigVarintLow(e,n,l){l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos++]=e&127|128,e>>>=7,l.buf[l.pos]=e&127}function writeBigVarintHigh(e,n){var l=(e&7)<<4;n.buf[n.pos++]|=l|((e>>>=3)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127|((e>>>=7)?128:0),e&&(n.buf[n.pos++]=e&127)))))}function makeRoomForExtraLength(e,n,l){var u=n<=16383?1:n<=2097151?2:n<=268435455?3:Math.floor(Math.log(n)/(Math.LN2*7));l.realloc(u);for(var d=l.pos-1;d>=e;d--)l.buf[d+u]=l.buf[d]}function writePackedVarint(e,n){for(var l=0;l<e.length;l++)n.writeVarint(e[l])}function writePackedSVarint(e,n){for(var l=0;l<e.length;l++)n.writeSVarint(e[l])}function writePackedFloat(e,n){for(var l=0;l<e.length;l++)n.writeFloat(e[l])}function writePackedDouble(e,n){for(var l=0;l<e.length;l++)n.writeDouble(e[l])}function writePackedBoolean(e,n){for(var l=0;l<e.length;l++)n.writeBoolean(e[l])}function writePackedFixed32(e,n){for(var l=0;l<e.length;l++)n.writeFixed32(e[l])}function writePackedSFixed32(e,n){for(var l=0;l<e.length;l++)n.writeSFixed32(e[l])}function writePackedFixed64(e,n){for(var l=0;l<e.length;l++)n.writeFixed64(e[l])}function writePackedSFixed64(e,n){for(var l=0;l<e.length;l++)n.writeSFixed64(e[l])}function readUInt32(e,n){return(e[n]|e[n+1]<<8|e[n+2]<<16)+e[n+3]*16777216}function writeInt32(e,n,l){e[l]=n,e[l+1]=n>>>8,e[l+2]=n>>>16,e[l+3]=n>>>24}function readInt32(e,n){return(e[n]|e[n+1]<<8|e[n+2]<<16)+(e[n+3]<<24)}function readUtf8(e,n,l){for(var u="",d=n;d<l;){var p=e[d],y=null,o=p>239?4:p>223?3:p>191?2:1;if(d+o>l)break;var j,Re,_e;o===1?p<128&&(y=p):o===2?(j=e[d+1],(j&192)===128&&(y=(p&31)<<6|j&63,y<=127&&(y=null))):o===3?(j=e[d+1],Re=e[d+2],(j&192)===128&&(Re&192)===128&&(y=(p&15)<<12|(j&63)<<6|Re&63,(y<=2047||y>=55296&&y<=57343)&&(y=null))):o===4&&(j=e[d+1],Re=e[d+2],_e=e[d+3],(j&192)===128&&(Re&192)===128&&(_e&192)===128&&(y=(p&15)<<18|(j&63)<<12|(Re&63)<<6|_e&63,(y<=65535||y>=1114112)&&(y=null))),y===null?(y=65533,o=1):y>65535&&(y-=65536,u+=String.fromCharCode(y>>>10&1023|55296),y=56320|y&1023),u+=String.fromCharCode(y),d+=o}return u}function readUtf8TextDecoder(e,n,l){return utf8TextDecoder.decode(e.subarray(n,l))}function writeUtf8(e,n,l){for(var u=0,d,p;u<n.length;u++){if(d=n.charCodeAt(u),d>55295&&d<57344)if(p)if(d<56320){e[l++]=239,e[l++]=191,e[l++]=189,p=d;continue}else d=p-55296<<10|d-56320|65536,p=null;else{d>56319||u+1===n.length?(e[l++]=239,e[l++]=191,e[l++]=189):p=d;continue}else p&&(e[l++]=239,e[l++]=191,e[l++]=189,p=null);d<128?e[l++]=d:(d<2048?e[l++]=d>>6|192:(d<65536?e[l++]=d>>12|224:(e[l++]=d>>18|240,e[l++]=d>>12&63|128),e[l++]=d>>6&63|128),e[l++]=d&63|128)}return l}const proto_10=`
|
|
495
495
|
syntax = "proto2";
|
|
496
496
|
package mipmap.engine.message;
|
|
497
497
|
|