UNPKG

bayes-server

Version:

Bayes Server JavaScript API

3 lines 33.2 kB
'use strict';var __values=this&&this['__values']||function(c){var d=typeof Symbol==='function'&&c[Symbol['iterator']],e=0x0;if(d)return d['call'](c);return{'next':function(){if(c&&e>=c['length'])c=void 0x0;return{'value':c&&c[e++],'done':!c};}};};var __read=this&&this['__read']||function(f,g){var h=typeof Symbol==='function'&&f[Symbol['iterator']];if(!h)return f;var i=h['call'](f),j,k=[],l;try{while((g===void 0x0||g-->0x0)&&!(j=i['next']())['done'])k['push'](j['value']);}catch(m){l={'error':m};}finally{try{if(j&&!j['done']&&(h=i['return']))h['call'](i);}finally{if(l)throw l['error'];}}return k;};var __spread=this&&this['__spread']||function(){for(var n=[],o=0x0;o<arguments['length'];o++)n=n['concat'](__read(arguments[o]));return n;};Object['defineProperty'](exports,'__esModule',{'value':!![]});// javascript-obfuscator:disable var core_1=require('./core');// javascript-obfuscator:enable var TypeScriptUtils=function(){function p(){}p['isWhiteSpace']=function(q){if(q=='\x20'||q>='09'&&q<='0d'||q=='a0'||q=='85'){return!![];}return![];};p['compareTo']=function(r,s){if(r<s)return-0x1;else if(r>s)return 0x1;else return 0x0;};p['copyFromIterator']=function(t,u){var v=0x0;try{for(var w=__values(t),x=w['next']();!x['done'];x=w['next']()){var y=x['value'];u[v]=y;v++;}}catch(z){A={'error':z};}finally{try{if(x&&!x['done']&&(B=w['return']))B['call'](w);}finally{if(A)throw A['error'];}}var A,B;};p['copyFromList']=function(C,D){var E=0x0;try{for(var F=__values(C),G=F['next']();!G['done'];G=F['next']()){var H=G['value'];D[E]=H;E++;}}catch(I){J={'error':I};}finally{try{if(G&&!G['done']&&(K=F['return']))K['call'](F);}finally{if(J)throw J['error'];}}var J,K;};p['isIList']=function(L){if(L===null)return![];return L['_2ad2e5f4b2884a52bf8bfc07ce8953d3']!==undefined;};p['isIDistribution']=function(M){if(M===null)return![];return M['_39d9d5f7317c4bb79bd3c1e43b2b4a43']!==undefined;};p['cloneArray2D']=function(N){var O=p['createArray2D'](N['length']);for(var P=0x0;P<N['length'];P++){var Q=N[P];O[P]=Q;if(Q!=null&&Q!=undefined){O[P]=p['createArray'](Q['length'],null);var R=O[P];for(var S=0x0;S<Q['length'];S++){R[S]=Q[S];}}}return O;};p['cloneArray3D']=function(T){var U=p['createArray3D'](T['length']);for(var V=0x0;V<T['length'];V++){var W=T[V];U[V]=W;if(W!=null&&W!=undefined){U[V]=p['createArray2D'](W['length']);var X=U[V];for(var Y=0x0;Y<W['length'];Y++){var Z=W[Y];X[Y]=Z;if(Z!=null&&Z!=undefined){X[Y]=p['createArray'](Z['length'],null);var a0=X[Y];for(var a1=0x0;a1<Z['length'];a1++){a0[a1]=Z[a1];}}}}}return U;};p['arrayClear']=function(a2,a3,a4){var a5=a3+a4;for(var a6=a3;a6<a5;a6++){a2[a6]=null;}};p['arrayCopy3']=function(a7,a8,a9){for(var aa=0x0;aa<a9;aa++){a8[aa]=a7[aa];}};p['arrayCopy5']=function(ab,ac,ad,ae,af){for(var ag=0x0;ag<af;ag++){ad[ae+ag]=ab[ac+ag];}};p['isInfinity']=function(ah){return ah===Number['POSITIVE_INFINITY']||ah===Number['NEGATIVE_INFINITY'];};p['isNegativeInfinity']=function(ai){return ai===Number['NEGATIVE_INFINITY'];};p['isPositiveInfinity']=function(aj){return aj===Number['POSITIVE_INFINITY'];};p['pushList']=function(ak,al){for(var am=0x0;am<al['length'];am++){ak['push'](al[am]);}};p['sealed']=function(an){Object['seal'](an);Object['seal'](an['prototype']);};p['memberwiseClone']=function(ao,ap){Object['assign'](ap,ao);};p['createArray2D']=function(aq){var ar=[];for(var as=aq-0x1;as>=0x0;as--){ar[as]=null;}return ar;};p['createArray3D']=function(at){var au=[];for(var av=at-0x1;av>=0x0;av--){au[av]=null;}return au;};p['isNullOrEmpty']=function(aw){if(aw==null)return!![];if(aw===undefined)return!![];if(aw['length']===0x0)return!![];return![];};p['createArray']=function(ax,ay){var az=new Array(ax);if(az['length']!=ax)throw new Error('Unexpected\x20error\x20in\x20createArray');for(var aA=0x0;aA<az['length'];aA++){az[aA]=ay;}if(az['length']!=ax)throw new Error('Unexpected\x20error\x20in\x20createArray');return az;};return p;}();var Entropy=function(){function aB(){}aB['calculate']=function(aC,aD,aE){if(aE!==undefined){if(aC instanceof core_1['Table']){return this['_Calculate_autogen2'](aC,aD,aE);}else if(aC instanceof core_1['CLGaussian']){return this['_Calculate_autogen4'](aC,aD,aE);}else if(TypeScriptUtils['isIDistribution'](aC)){return this['_Calculate_autogen1'](aC,aD,aE);}else{throw new Error('Invalid\x20method\x20arguments.');}}else if(aD!==undefined){if(aC instanceof core_1['Table']){return this['_Calculate_autogen3'](aC,aD);}else if(aC instanceof core_1['CLGaussian']){return this['_Calculate_autogen5'](aC,aD);}else if(TypeScriptUtils['isIDistribution'](aC)){return this['_Calculate_autogen0'](aC,aD);}else{throw new Error('Invalid\x20method\x20arguments.');}}else if(aC!==undefined){throw new Error('Invalid\x20method\x20arguments.');}else{throw new Error('Invalid\x20method\x20arguments.');}};aB['_Calculate_autogen0']=function(aF,aG){return aB['calculate'](aF,null,aG);};aB['_Calculate_autogen1']=function(aH,aI,aJ){if(aH instanceof core_1['CLGaussian']){return aB['calculate'](aH,aI,aJ);}else{return aB['calculate'](aH['table'],aI,aJ);}};aB['_Calculate_autogen2']=function(aK,aL,aM){var aN=![];switch(aM){case LogarithmBase['Natural']:aN=![];break;case LogarithmBase['Two']:aN=!![];break;default:throw new Error('Logarithm\x20base\x20not\x20recognized');}return X_x_['q_x_'](aK,aL,aN);};aB['_Calculate_autogen3']=function(aO,aP){return aB['calculate'](aO,null,aP);};aB['_Calculate_autogen4']=function(aQ,aR,aS){var aT=![];switch(aS){case LogarithmBase['Natural']:aT=![];break;case LogarithmBase['Two']:aT=!![];break;default:throw new Error('Logarithm\x20base\x20not\x20recognized');}return Y_x_['s_x_'](aQ,aR,aT);};aB['_Calculate_autogen5']=function(aU,aV){return aB['calculate'](aU,null,aV);};return aB;}();exports['Entropy']=Entropy;var X_x_=function(){function aW(){}aW['q_x_']=function(aX,aY,aZ){var b0=aX instanceof core_1['CLGaussian']?aX:null;if(b0!=null){return Y_x_['s_x_'](b0,aY,aZ);}else{return aW['_r_x_'](aX,aY,aZ);}};aW['_r_x_']=function(b1,b2,b3){if(b1==null)throw new ReferenceError('joint');try{for(var b4=__values(b1['sortedVariables']),b5=b4['next']();!b5['done'];b5=b4['next']()){var b6=b5['value'];if(b6['headTail']!=core_1['HeadTail']['Head'])throw new Error('Entropy,\x20joint\x20entropy\x20&\x20conditional\x20entropy\x20require\x20the\x20joint\x20distribution\x20which\x20cannot\x20have\x20tail\x20variables.');}}catch(b7){bg={'error':b7};}finally{try{if(b5&&!b5['done']&&(bh=b4['return']))bh['call'](b4);}finally{if(bg)throw bg['error'];}}var b8=0x0;for(var b9=0x0;b9<b1['size'];b9++){b8+=b1['get'](b9);}var ba=0x0;for(var bb=0x0;bb<b1['size'];bb++){var bc=b1['get'](bb);if(bc!=0x0){var bd=bc/b8;if(b3){ba+=bd*Math['log'](bd)/Math['log'](0x2);}else{ba+=bd*Math['log'](bd);}}}ba=-ba;var be=0x0;if(b2!=null){if(b2['size']>0x0){var bf=new core_1['Table'](b2);bf['marginalize'](b1);be=aW['q_x_'](bf,null,b3);}}return ba-be;var bg,bh;};return aW;}();var Y_x_=function(){function bi(){}bi['s_x_']=function(bj,bk,bl){if(bj==null)throw new ReferenceError('joint');try{for(var bm=__values(bj['sortedVariables']),bn=bm['next']();!bn['done'];bn=bm['next']()){var bo=bn['value'];if(bo['headTail']!=core_1['HeadTail']['Head'])throw new Error('Entropy,\x20joint\x20entropy\x20&\x20conditional\x20entropy\x20require\x20the\x20joint\x20distribution\x20which\x20cannot\x20have\x20tail\x20variables.');}}catch(bp){bt={'error':bp};}finally{try{if(bn&&!bn['done']&&(bu=bm['return']))bu['call'](bm);}finally{if(bt)throw bt['error'];}}if(bj['sortedContinuousHead']['size']===0x0){return X_x_['q_x_'](bj['table'],bk,bl);}var bq=bi['_u_x_'](bj,bl);var br=0x0;if(bk!=null){if(bk['size']>0x0){var bs=new core_1['CLGaussian'](bk);bs['marginalize'](bj);br=bi['s_x_'](bs,null,bl);}}return bq-br;var bt,bu;};bi['_t_x_']=function(bv){if(bv['table']['size']===0x1)return 0x0;if(bv['sortedContinuousHead']['size']===0x0)throw new Error();if(bv['sortedContinuousTail']['size']>0x0)throw new Error();var bw=null;var bx=0x0;for(var by=0x0;by<bv['table']['size'];by++){var bz=bv['table']['get'](by);if(bz!=0x0){bw=by;bx++;}}if(bx===0x1){return bw;}else{return null;}};bi['_u_x_']=function(bA,bB){var bC=bi['_t_x_'](bA);if(!(bC!=null)){return Z_x_['rq_x_'](bA,bB);}var bD=0x0;var bE=new Outputs1();var bF=Xxx_x_['rrv_x_'](bA,bC,![],bE);var bG=bE['Out1'];var bH=0x0;if(!bG){if(!TypeScriptUtils['isNegativeInfinity'](bF)){throw new Error('Covariance\x20matrix\x20is\x20not\x20symmetric\x20positive\x20definite\x20(SPD)\x20and\x20log(determinant)\x20is\x20not\x20-Infinity');}}var bI=bA['sortedContinuousHead']['size'];var bJ=Math['pow'](0x2*Math['PI']*Math['E'],bI);bH=0.5*Math['log'](bJ*Math['exp'](bF));if(bB){bD=Yz_x_['vq_x_'](bH);}else{bD=bH;}return bD;};return bi;}();var Z_x_=function(){function bK(){}bK['_v_x_']=function(bL,bM){var bN=new Yy_x_();var bO=0x186a0;var bP=new Xz_x_(bL,bM);for(var bQ=0x0;bQ<bO;bQ++){var bR=bP['sv_x_']();if(!TypeScriptUtils['isNegativeInfinity'](bR)){bN['uu_x_'](bR,0x1);}}if(bN['Bb_x_']<Math['trunc'](bO/0x4)){throw new Error('Large\x20proportion\x20of\x20samples\x20were\x20inconsistent.');}return-bN['H_x_'];};bK['rq_x_']=function(bS,bT){if(bS==null)throw new ReferenceError();var bU=new core_1['Random'](0x0);var bV=bK['_v_x_'](bS,bU);if(bT){return Yz_x_['vq_x_'](bV);}else{return bV;}};return bK;}();var KullbackLeibler=function(){function bW(){}bW['divergence']=function(bX,bY,bZ){return Xx_x_['rr_x_'](bX,bY,bZ===LogarithmBase['Two']);};return bW;}();exports['KullbackLeibler']=KullbackLeibler;var Xx_x_=function(){function c0(){}c0['rr_x_']=function(c1,c2,c3){if(c1==null)throw new ReferenceError('priorQ');if(c2==null)throw new ReferenceError('posteriorP');c0['_ss_x_'](c1);c0['_ss_x_'](c2);c1=c0['_su_x_'](c1);c2=c0['_su_x_'](c2);if(!c0['_st_x_'](c1,c2)){throw new Error('The\x20variables\x20in\x20q\x20and\x20p\x20do\x20not\x20match');}c0['_rs_x_'](c1);c0['_rs_x_'](c2);var c4=null;if(c1 instanceof core_1['CLGaussian']&&c2 instanceof core_1['CLGaussian']){c4=c0['_sr_x_'](c1,c2);}else{if(c1 instanceof core_1['CLGaussian'])throw new Error();if(c2 instanceof core_1['CLGaussian'])throw new Error();c4=c0['_rt_x_'](c1['table'],c2['table']);}if(c3){return Yz_x_['vq_x_'](c4);}else{return c4;}};c0['_rs_x_']=function(c5){var c6=c5['table']['sum']();if(Math['abs'](c6-0x1)>0.000001)throw new Error('Discrete\x20distributions\x20must\x20be\x20normalized\x20(sum\x20to\x201).\x20\x20This\x20includes\x20continuous\x20distributions,\x20e.g.\x20a\x20CLGaussian\x20distribution\x20x\x20should\x20have\x20x.Table[0]\x20==\x201.');};c0['_rt_x_']=function(c7,c8){var c9=0x0;for(var ca=0x0;ca<c7['size'];ca++){var cb=c7['get'](ca);var cc=c8['get'](ca);if(cc===0x0)continue;if(cb===0x0){if(cc!=0x0){throw new core_1['NotInDomainError']('Posterior\x20value\x20P(i)\x20must\x20be\x20zero\x20if\x20the\x20prior\x20value\x20Q(i)\x20is\x20also\x20zero.\x20\x20P(i)\x20=\x20'+cc+',\x20Q(i)\x20=\x20'+cb);}}var cd=Math['log'](cc)-Math['log'](cb);c9+=cc*cd;}return c9;};c0['_ru_x_']=function(ce,cf){var cg=ce['sortedContinuousHead']['size'];var ch=TypeScriptUtils['createArray2D'](cg);for(var ci=0x0;ci<cg;ci++){ch[ci]=TypeScriptUtils['createArray'](cg,0x0);for(var cj=0x0;cj<cg;cj++){ch[ci][cj]=ce['getCovariance'](cf,ci,cj);}}return ch;};c0['_rv_x_']=function(ck,cl){var cm=ck['sortedContinuousHead']['size'];var cn=TypeScriptUtils['createArray2D'](cm);for(var co=0x0;co<cm;co++){cn[co]=TypeScriptUtils['createArray'](0x1,0x0);cn[co][0x0]=ck['getMean'](cl,co);}return cn;};c0['_sq_x_']=function(cp,cq){if(cp['sortedVariables']['size']!=cq['sortedVariables']['size'])throw new Error();if(cp['sortedContinuousHead']['size']!=cq['sortedContinuousHead']['size'])throw new Error();if(cp['sortedContinuousTail']['size']>0x0||cq['sortedContinuousTail']['size']>0x0)throw new Error();var cr=cp['sortedContinuousHead']['size'];for(var cs=0x0;cs<cp['table']['size'];cs++){if(cp['table']['get'](cs)!=cq['table']['get'](cs))return![];for(var ct=0x0;ct<cr;ct++){if(cp['getMean'](cs,ct)!=cq['getMean'](cs,ct))return![];if(cp['getVariance'](cs,ct)!=cq['getVariance'](cs,ct))return![];for(var cu=ct+0x1;cu<cr;cu++){if(cp['getCovariance'](cs,ct,cu)!=cq['getCovariance'](cs,ct,cu))return![];}}}return!![];};c0['_sr_x_']=function(cv,cw){if(cv['sortedContinuousHead']['size']===0x0)throw new Error();if(cv['sortedContinuousTail']['size']!=0x0)throw new Error();if(cv['table']['sortedVariables']['size']>0x0){throw new Error('KL\x20divergence\x20not\x20currently\x20supported\x20for\x20distributions\x20with\x20both\x20continuous\x20and\x20discrete\x20variables');}var cx=c0['_sq_x_'](cv,cw);if(cx){return 0x0;}var cy=cv['sortedContinuousHead']['size'];var cz=c0['_rv_x_'](cv,0x0);var cA=c0['_rv_x_'](cw,0x0);var cB=c0['_ru_x_'](cv,0x0);var cC=c0['_ru_x_'](cw,0x0);var cD=new Outputs2();var cE=Zw_x_['_vt_x_'](cB,cD);var cF=cD['Out1'];var cG=cD['Out2'];var cH=new Outputs2();var cI=Zw_x_['_vt_x_'](cC,cH);var cJ=cH['Out1'];var cK=cH['Out2'];if(!cF||!cJ){if(cx)throw new Error();return Number['POSITIVE_INFINITY'];}var cL=Zz_x_['rqs_x_'](cE,cC);var cM=0x0;for(var cN=0x0;cN<cy;cN++){cM+=cL[cN][cN];}var cO=Zz_x_['rqr_x_'](cz,cA);var cP=Zz_x_['rqq_x_'](cO);var cQ=Zz_x_['rqs_x_'](cP,cE);var cR=Zz_x_['rqs_x_'](cQ,cO);if(cR['length']!=0x1)throw new Error();if(cR[0x0]['length']!=0x1)throw new Error();var cS=Xxx_x_['rru_x_'](cG);var cT=Xxx_x_['rru_x_'](cK);var cU=cS-cT;return 0.5*(cM+cR[0x0][0x0]-cy+cU);};c0['_ss_x_']=function(cV){try{for(var cW=__values(cV['sortedVariables']),cX=cW['next']();!cX['done'];cX=cW['next']()){var cY=cX['value'];if(cY['isTail']()){throw new Error('Tail\x20(conditional)\x20variables\x20not\x20supported');}if(cY['variable']['kind']!=core_1['VariableKind']['Probability']){throw new Error('Kullback\x20Leibler\x20divergence\x20not\x20supported\x20for\x20decision\x20or\x20utility\x20nodes');}}}catch(cZ){d0={'error':cZ};}finally{try{if(cX&&!cX['done']&&(d1=cW['return']))d1['call'](cW);}finally{if(d0)throw d0['error'];}}var d0,d1;};c0['_st_x_']=function(d2,d3){if(d2['sortedVariables']['size']!=d3['sortedVariables']['size']){return![];}return d2['sortedVariables']['includesAll'](d3['sortedVariables'],![]);};c0['_su_x_']=function(d4){var d5=d4 instanceof core_1['CLGaussian']?d4:null;if(d5==null){return d4;}if(d5['sortedContinuousHead']['size']===0x0&&d5['sortedContinuousTail']['size']===0x0){return d5['table'];}return d4;};return c0;}();var LogarithmBase=function(){function d6(){}d6['Natural']=new d6();d6['Two']=new d6();return d6;}();exports['LogarithmBase']=LogarithmBase;var Xz_x_=function(){function d7(d8,d9){this['_B_x_']=null;this['_C_x_']=null;this['_D_x_']=null;this['_E_x_']=null;this['_F_x_']=null;this['_G_x_']=null;if(d8==null)throw new ReferenceError();var da=d8['table']['sum']();if(Math['abs'](da-0x1)>0.000001)throw new Error('Distribution\x20is\x20not\x20normalized.\x20\x20Table\x20does\x20not\x20sum\x20to\x201');this['_A_x_']=d9;this['_B_x_']=d8;this['_C_x_']=d8 instanceof core_1['CLGaussian']?d8:null;this['_D_x_']=TypeScriptUtils['createArray'](d8['table']['size'],null);this['_E_x_']=this['_C_x_']==null?null:TypeScriptUtils['createArray'](this['_C_x_']['sortedContinuousHead']['size'],0x0);this['_G_x_']=this['_E_x_']==null?null:TypeScriptUtils['createArray'](0x1,0x0);this['_F_x_']=this['_C_x_']==null?null:TypeScriptUtils['createArray3D'](this['_C_x_']['table']['size']);}d7['prototype']['sv_x_']=function(){var db=0x0;var dc=Xwz_x_['rrr_x_'](this['_B_x_']['table'],this['_A_x_']);var dd=this['_B_x_']['table']['get'](dc);db+=Math['log'](dd);if(this['_C_x_']!=null){var de=this['_D_x_'][dc];if(de==null){de=d7['_tr_x_'](this['_C_x_'],dc);this['_D_x_'][dc]=de;var df=new Outputs1();this['_F_x_'][dc]=d7['_tq_x_'](this['_C_x_'],dc,![],df);var dg=df['Out1'];if(!dg){}}Xwx_x_['rqv_x_'](de,0x0,this['_F_x_'][dc],this['_E_x_'],this['_A_x_']);de['instantiateHead'](this['_E_x_'],this['_G_x_']);db+=this['_G_x_'][0x0];}return db;};d7['_tq_x_']=function(dh,di,dj,dk){var dl=new Outputs1();var dm=Xxw_x_['_rrt_x_'](dh,di,dl);var dn=dl['Out1'];dk['Out1']=dn;if(dj){if(!dn){throw new Error('Invalid\x20Gaussian\x20distribution\x20row\x20['+di+'].\x20\x20The\x20covariance\x20matrix\x20is\x20not\x20Symmetric\x20Positive-Definite\x20(SPD).');}}return dm;};d7['_tr_x_']=function(dp,dq){if(dp['sortedContinuousTail']['size']>0x0)throw new Error();var dr=new core_1['CLGaussian'](dp['sortedContinuousHead']);dr['table']['set'](0x0,0x1);var ds=dp['sortedContinuousHead']['size'];for(var dt=0x0;dt<ds;dt++){dr['setMean'](0x0,dt,dp['getMean'](dq,dt));dr['setVariance'](0x0,dt,dp['getVariance'](dq,dt));for(var du=dt+0x1;du<ds;du++){dr['setCovariance'](0x0,dt,du,dp['getCovariance'](dq,dt,du));}}return dr;};return d7;}();var MutualInformation=function(){function dv(){}dv['calculate']=function(dw,dx,dy,dz,dA){if(dA!==undefined){if(dx instanceof core_1['VariableContext']&&dy instanceof core_1['VariableContext']){return this['_Calculate_autogen1'](dw,dx,dy,dz,dA);}else if(TypeScriptUtils['isIList'](dx)&&TypeScriptUtils['isIList'](dy)){return this['_Calculate_autogen2'](dw,dx,dy,dz,dA);}else{throw new Error('Invalid\x20method\x20arguments.');}}else if(dz!==undefined){return this['_Calculate_autogen0'](dw,dx,dy,dz);}else if(dy!==undefined){throw new Error('Invalid\x20method\x20arguments.');}else if(dx!==undefined){throw new Error('Invalid\x20method\x20arguments.');}else if(dw!==undefined){throw new Error('Invalid\x20method\x20arguments.');}else{throw new Error('Invalid\x20method\x20arguments.');}};dv['_Calculate_autogen0']=function(dB,dC,dD,dE){return dv['_ts_x_'](dB,new ArrayList([dC]),new ArrayList([dD]),null,dE);};dv['_Calculate_autogen1']=function(dF,dG,dH,dI,dJ){return dv['_ts_x_'](dF,new ArrayList([dG]),new ArrayList([dH]),dI,dJ);};dv['_Calculate_autogen2']=function(dK,dL,dM,dN,dO){return dv['_ts_x_'](dK,dL,dM,dN,dO);};dv['_ts_x_']=function(dP,dQ,dR,dS,dT){var dU=dT===LogarithmBase['Two'];return Yx_x_['tt_x_'](dP,dQ,dR,dS,dU);};return dv;}();exports['MutualInformation']=MutualInformation;var Yx_x_=function(){function dV(){}dV['tt_x_']=function(dW,dX,dY,dZ,e0){return dV['_tu_x_'](dW,dX,dY,dZ,e0);};dV['_tu_x_']=function(e1,e2,e3,e4,e5){var e6=e1 instanceof core_1['CLGaussian']?e1:null;var e7=0x0;if(e6!=null){e7=dV['_ut_x_'](e6,e2,e3,e4,e5);}else{e7=dV['_ur_x_'](e1,e2,e3,e4,e5);}return Math['max'](0x0,e7);};dV['tv_x_']=function(e8,e9,ea,eb){return dV['_tu_x_'](e8,new ArrayList([e9]),new ArrayList([ea]),null,eb);};dV['uq_x_']=function(ec,ed,ee,ef,eg){return dV['_tu_x_'](ec,new ArrayList([ed]),new ArrayList([ee]),ef,eg);};dV['_ur_x_']=function(eh,ei,ej,ek,el){dV['_us_x_'](eh,ei,ej,ek);if(ek!=null){if(ek['size']>0x0){var em=X_x_['q_x_'](eh,null,el);var en=null;var eo=null;var ep=null;{var eq=new List();eq['pushList'](ek);eq['pushList'](ei);var er=new core_1['Table'](eq);er['marginalize'](eh);en=X_x_['q_x_'](er,null,el);}{var es=new List();es['pushList'](ek);es['pushList'](ej);var et=new core_1['Table'](es);et['marginalize'](eh);eo=X_x_['q_x_'](et,null,el);}{var eu=new core_1['Table'](ek);eu['marginalize'](eh);ep=X_x_['q_x_'](eu,null,el);}return en+eo-em-ep;}}if(ek!=null&&ek['size']>0x0)throw new Error();var ev=new core_1['Table'](ei);ev['marginalize'](eh);var ew=new core_1['Table'](ej);ew['marginalize'](eh);var ex=X_x_['q_x_'](ev,null,el);var ey=X_x_['q_x_'](ew,null,el);var ez=X_x_['q_x_'](eh,null,el);return ex+ey-ez;};dV['_us_x_']=function(eA,eB,eC,eD){if(eA==null)throw new ReferenceError('joint');if(eB==null)throw new ReferenceError('x');if(eC==null)throw new ReferenceError('y');if(eB['size']===0x0){throw new Error('x\x20cannot\x20be\x20empty');}if(eC['size']===0x0){throw new Error('y\x20cannot\x20be\x20empty');}var eE=eD;try{for(var eF=__values(eA['sortedVariables']),eG=eF['next']();!eG['done'];eG=eF['next']()){var eH=eG['value'];if(eH['headTail']!=core_1['HeadTail']['Head'])throw new Error('Mutual\x20information\x20&\x20conditional\x20mutual\x20information\x20require\x20the\x20joint\x20distribution\x20which\x20cannot\x20have\x20tail\x20variables.');if(eH['variable']['kind']!=core_1['VariableKind']['Probability']){throw new Error('Mutual\x20information\x20not\x20supported\x20for\x20decision\x20or\x20utility\x20nodes');}}}catch(eI){eY={'error':eI};}finally{try{if(eG&&!eG['done']&&(eZ=eF['return']))eZ['call'](eF);}finally{if(eY)throw eY['error'];}}try{for(var eJ=__values(eB),eK=eJ['next']();!eK['done'];eK=eJ['next']()){var eL=eK['value'];var eM=eA['sortedVariables']['indexOf'](eL,![]);if(eM<0x0)throw new Error('x\x20was\x20not\x20found\x20in\x20joint');}}catch(eN){f0={'error':eN};}finally{try{if(eK&&!eK['done']&&(f1=eJ['return']))f1['call'](eJ);}finally{if(f0)throw f0['error'];}}try{for(var eO=__values(eC),eP=eO['next']();!eP['done'];eP=eO['next']()){var eQ=eP['value'];var eR=eA['sortedVariables']['indexOf'](eQ,![]);if(eR<0x0)throw new Error('y\x20was\x20not\x20found\x20in\x20joint');if(eB['includes'](eQ)){throw new Error('x\x20and\x20y\x20must\x20be\x20distinct');}}}catch(eS){f2={'error':eS};}finally{try{if(eP&&!eP['done']&&(f3=eO['return']))f3['call'](eO);}finally{if(f2)throw f2['error'];}}if(eE!=null){try{for(var eT=__values(eE),eU=eT['next']();!eU['done'];eU=eT['next']()){var eV=eU['value'];var eW=eA['sortedVariables']['indexOf'](eV,![]);if(eW<0x0)throw new Error('z\x20was\x20not\x20found\x20in\x20joint');if(eB['includes'](eV)||eC['includes'](eV)){throw new Error('x,\x20y\x20and\x20z\x20must\x20be\x20distinct');}}}catch(eX){f4={'error':eX};}finally{try{if(eU&&!eU['done']&&(f5=eT['return']))f5['call'](eT);}finally{if(f4)throw f4['error'];}}}var eY,eZ,f0,f1,f2,f3,f4,f5;};dV['_ut_x_']=function(f6,f7,f8,f9,fa){dV['_us_x_'](f6,f7,f8,f9);if(f9!=null){if(f9['size']>0x0){var fb=Y_x_['s_x_'](f6,null,fa);var fc=null;var fd=null;var fe=null;{var ff=new List();ff['pushList'](f9);ff['pushList'](f7);var fg=new core_1['CLGaussian'](ff);fg['marginalize'](f6);fc=Y_x_['s_x_'](fg,null,fa);}{var fh=new List();fh['pushList'](f9);fh['pushList'](f8);var fi=new core_1['CLGaussian'](fh);fi['marginalize'](f6);fd=Y_x_['s_x_'](fi,null,fa);}{var fj=new core_1['CLGaussian'](f9);fj['marginalize'](f6);fe=Y_x_['s_x_'](fj,null,fa);}return fc+fd-fb-fe;}}if(f9!=null&&f9['size']>0x0)throw new Error();var fk=new core_1['CLGaussian'](f7);fk['marginalize'](f6);var fl=new core_1['CLGaussian'](f8);fl['marginalize'](f6);var fm=Y_x_['s_x_'](fk,null,fa);if(TypeScriptUtils['isNegativeInfinity'](fm))return 0x0;var fn=Y_x_['s_x_'](fl,null,fa);if(TypeScriptUtils['isNegativeInfinity'](fn))return 0x0;var fo=Y_x_['s_x_'](f6,null,fa);var fp=fm+fn-fo;return fp;};return dV;}();var Yy_x_=function(){function fq(){this['H_x_']=null;this['Ba_x_']=null;this['Bb_x_']=0x0;}fq['prototype']['uu_x_']=function(fr,fs){if(fs===0x0)return;if(fs<0x0)throw new Error('Negative\x20weights\x20not\x20supported');if(!(this['H_x_']!=null)){this['H_x_']=fr;this['Ba_x_']=0x0;}else{var ft=this['Bb_x_']+fs;var fu=fs/ft;var fv=this['Bb_x_']/ft;var fw=fr-this['H_x_'];var fx=fw*fu;this['H_x_']=this['H_x_']+fu*fw;this['Ba_x_']=fv*(this['Ba_x_']+fx*fw);}this['Bb_x_']+=fs;};fq['prototype']['uv_x_']=function(fy,fz,fA){if(fA===0x0)return;if(!(this['H_x_']!=null)){this['H_x_']=fy;this['Ba_x_']=fz;this['Bb_x_']=fA;}else{var fB=this['Bb_x_']+fA;var fC=fA/fB;var fD=this['Bb_x_']/fB;var fE=fy-this['H_x_'];this['H_x_']=this['H_x_']+fC*fE;this['Ba_x_']=fD*(this['Ba_x_']+fC*fE*fE)+fC*fz;this['Bb_x_']=fB;}};return fq;}();var Yz_x_=function(){function fF(){}fF['vq_x_']=function(fG){return fG*fF['_Bc_x_'];};fF['_Bc_x_']=0x1/Math['log'](0x2);return fF;}();var Zw_x_=function(){function fH(){}fH['_vr_x_']=function(fI){var fJ=0x0;for(var fK=0x0;fK<fI['length'];fK++){fJ+=Math['log'](fI[fK][fK]);}fJ*=0x2;return fJ;};fH['_vs_x_']=function(fL,fM){var fN=fH['_vv_x_'](fL,fM);return fH['_vr_x_'](fN);};fH['_vt_x_']=function(fO,fP){var fQ=new Outputs1();fP['Out2']=fH['_vv_x_'](fO,fQ);fP['Out1']=fQ['Out1'];var fR=fP['Out2'];var fS=fR['length'];var fT=TypeScriptUtils['createArray2D'](fS);for(var fU=0x0;fU<fS;fU++){fT[fU]=TypeScriptUtils['createArray'](fS,0x0);fT[fU][fU]=0x1;}fH['_vu_x_'](fR,fT);return fT;};fH['_vu_x_']=function(fV,fW){var fX=fW['length'];for(var fY=0x0;fY<fX;fY++){var fZ=fW[fY];var g0=fV[fY];var g1=g0[fY];for(var g2=0x0;g2<fX;g2++){for(var g3=0x0;g3<fY;g3++){fZ[g2]-=fW[g3][g2]*g0[g3];}fZ[g2]/=g1;}}for(var g4=fX-0x1;g4>=0x0;g4--){var g5=fW[g4];var g6=fV[g4][g4];for(var g7=0x0;g7<fX;g7++){for(var g8=g4+0x1;g8<fX;g8++){g5[g7]-=fW[g8][g7]*fV[g8][g4];}g5[g7]/=g6;}}};fH['_vv_x_']=function(g9,ga){var gb=g9['length'];var gc=TypeScriptUtils['createArray2D'](gb);for(var gd=0x0;gd<gb;gd++){gc[gd]=TypeScriptUtils['createArray'](gd+0x1,0x0);}ga['Out1']=!![];for(var ge=0x0;ge<gb;ge++){var gf=gc[ge];var gg=g9[ge];var gh=0x0;for(var gi=0x0;gi<ge;gi++){var gj=gc[gi];var gk=0x0;for(var gl=0x0;gl<gi;gl++){gk+=gj[gl]*gf[gl];}gf[gi]=gk=(gg[gi]-gk)/gj[gi];gh+=gk*gk;}gh=g9[ge][ge]-gh;if(gh>0x0){gf[ge]=Math['sqrt'](gh);}else{ga['Out1']=![];gf[ge]=0x0;}}return gc;};return fH;}();var Outputs1=function(){function gm(){}return gm;}();var Outputs2=function(){function gn(){}return gn;}();var Zz_x_=function(){function go(){}go['rqq_x_']=function(gp){var gq=gp['length'];var gr=gp[0x0]['length'];var gs=TypeScriptUtils['createArray2D'](gr);for(var gt=0x0;gt<gr;gt++){gs[gt]=TypeScriptUtils['createArray'](gq,0x0);}for(var gu=0x0;gu<gq;gu++){for(var gv=0x0;gv<gr;gv++){gs[gv][gu]=gp[gu][gv];}}return gs;};go['rqr_x_']=function(gw,gx){var gy=gw['length'];var gz=gw[0x0]['length'];var gA=gx['length'];var gB=gx[0x0]['length'];if(gy!=gA)throw new Error();if(gz!=gB)throw new Error();var gC=TypeScriptUtils['createArray2D'](gy);for(var gD=0x0;gD<gy;gD++){gC[gD]=TypeScriptUtils['createArray'](gz,0x0);for(var gE=0x0;gE<gz;gE++){gC[gD][gE]=gw[gD][gE]-gx[gD][gE];}}return gC;};go['rqs_x_']=function(gF,gG){var gH=gF['length'];var gI=gF[0x0]['length'];var gJ=gG['length'];var gK=gG[0x0]['length'];if(gI!=gJ)throw new Error();var gL=TypeScriptUtils['createArray2D'](gH);for(var gM=0x0;gM<gH;gM++){gL[gM]=TypeScriptUtils['createArray'](gK,0x0);for(var gN=0x0;gN<gK;gN++){var gO=0x0;for(var gP=0x0;gP<gI;gP++){gO+=gF[gM][gP]*gG[gP][gN];}gL[gM][gN]=gO;}}return gL;};return go;}();var Xww_x_=function(){function gQ(){}gQ['rqt_x_']=function(gR,gS,gT){var gU=gQ['_rqu_x_'](gR['table']['sortedVariables'],gS['table']['sortedVariables'],gT);var gV=TypeScriptUtils['createArray'](gS['table']['sortedVariables']['size'],null);for(var gW=0x0;gW<gV['length'];gW++){gV[gW]=gS['table']['sortedVariables']['get'](gU[gW]);}var gX=new core_1['TableIterator'](gS['table'],gV);var gY=null;var gZ=null;var h0=gR instanceof core_1['CLGaussian']?gR:null;var h1=gS instanceof core_1['CLGaussian']?gS:null;if(h0!=null){gY=gQ['_rqu_x_'](h0['sortedContinuousHead'],h1['sortedContinuousHead'],gT);gZ=gQ['_rqu_x_'](h0['sortedContinuousTail'],h1['sortedContinuousTail'],gT);}for(var h2=0x0;h2<gR['table']['size'];h2++,gX['increment']()){var h3=gR['table']['get'](h2);gX['value']=h3;if(h0!=null){for(var h4=0x0;h4<gY['length'];h4++){var h5=gY[h4];h1['setMean'](h2,h5,h0['getMean'](h2,h4));for(var h6=h4;h6<gY['length'];h6++){var h7=gY[h6];h1['setCovariance'](h2,h5,h7,h0['getCovariance'](h2,h4,h6));}for(var h8=0x0;h8<gZ['length'];h8++){var h9=gZ[h8];h1['setWeight'](h2,h5,h9,h0['getWeight'](h2,h4,h8));}}}}};gQ['_rqu_x_']=function(ha,hb,hc){if(ha['size']!=hb['size']){throw new Error();}var hd=TypeScriptUtils['createArray'](ha['size'],0x0);for(var he=0x0;he<ha['size'];he++){var hf=ha['get'](he);var hg=hf['variable'];var hh=hc['get'](hg);hd[he]=hb['indexOf'](hh,hf['time']);}return hd;};return gQ;}();var Xwx_x_=function(){function hi(){}hi['rqv_x_']=function(hj,hk,hl,hm,hn){var ho=hj['sortedContinuousHead']['size'];for(var hp=0x0;hp<ho;hp++){hm[hp]=hj['getMean'](hk,hp);}var hq=Number['NaN'];var hr=![];for(var hs=0x0;hs<ho;hs++){var ht=0x0;if(hr){ht=hq;hr=![];}else{var hu=new Outputs2();Xwy_x_['rrq_x_'](hn,hu);ht=hu['Out1'];hq=hu['Out2'];hr=!![];}for(var hv=hs;hv<ho;hv++){hm[hv]+=ht*hl[hv][hs];}}return!![];};return hi;}();var Xwy_x_=function(){function hw(){}hw['rrq_x_']=function(hx,hy){var hz=0x0;var hA=0x0;var hB=0x0;while(!![]){hz=hx['nextDouble']()*0x2-0x1;hA=hx['nextDouble']()*0x2-0x1;hB=hz*hz+hA*hA;if(hB<=0x1&&hB>0x0){break;}}var hC=Math['log'](hB);if(TypeScriptUtils['isNegativeInfinity'](hC)){hy['Out1']=0x0;hy['Out2']=0x0;}else{var hD=Math['sqrt'](-0x2*hC/hB);hy['Out1']=hz*hD;hy['Out2']=hA*hD;}};return hw;}();var Xwz_x_=function(){function hE(){}hE['rrr_x_']=function(hF,hG){var hH=hG['nextDouble']();var hI=0x0;var hJ=0x0;var hK=hF['size'];for(var hL=0x0;hL<hK;hL++){hJ=hL;hI+=hF['get'](hL);if(hI>hH){break;}}return hJ;};hE['rrs_x_']=function(hM,hN){var hO=hN['nextDouble']();var hP=0x0;var hQ=0x0;var hR=hM['length'];for(var hS=0x0;hS<hR;hS++){hQ=hS;hP+=hM[hS];if(hP>hO){break;}}return hQ;};return hE;}();var Xxw_x_=function(){function hT(){}hT['_rrt_x_']=function(hU,hV,hW){var hX=hU['sortedContinuousHead']['size'];var hY=TypeScriptUtils['createArray2D'](hX);hW['Out1']=!![];for(var hZ=0x0;hZ<hX;hZ++){hY[hZ]=TypeScriptUtils['createArray'](hX,0x0);}for(var i0=0x0;i0<hX;i0++){var i1=hY[i0];var i2=0x0;for(var i3=0x0;i3<i0;i3++){var i4=hY[i3];var i5=0x0;for(var i6=0x0;i6<i3;i6++){i5+=i4[i6]*i1[i6];}i1[i3]=i5=(hU['getCovariance'](hV,i0,i3)-i5)/hY[i3][i3];i2=i2+i5*i5;}i2=hU['getCovariance'](hV,i0,i0)-i2;hW['Out1']=hW['Out1']&&i2>0x0;hY[i0][i0]=Math['sqrt'](Math['max'](i2,0x0));for(var i7=i0+0x1;i7<hX;i7++){hY[i0][i7]=0x0;}}return hY;};return hT;}();var Xxx_x_=function(){function i8(){}i8['rru_x_']=function(i9){return Zw_x_['_vr_x_'](i9);};i8['rrv_x_']=function(ia,ib,ic,id){if(ia['sortedContinuousTail']['size']>0x0)throw new Error();var ie=ia['sortedContinuousHead']['size'];var ig=TypeScriptUtils['createArray2D'](ie);for(var ih=0x0;ih<ie;ih++){ig[ih]=TypeScriptUtils['createArray'](ie,0x0);for(var ii=0x0;ii<ie;ii++){ig[ih][ii]=ia['getCovariance'](ib,ih,ii);}}var ij=new Outputs1();var ik=Zw_x_['_vs_x_'](ig,ij);var il=ij['Out1'];id['Out1']=il;if(ic){if(!il){throw new Error('Covariance\x20matrix\x20is\x20not\x20symmetric\x20positive\x20definite\x20(SPD)');}}return ik;};return i8;}();var List=function(){function im(io){this['_xs']=[];if(io!=undefined){(ip=this['_xs'])['push']['apply'](ip,__spread(io));}var ip;}im['prototype']['_2ad2e5f4b2884a52bf8bfc07ce8953d3']=function(){};;im['prototype']['sort']=function(iq){this['_xs']['sort'](iq);return this;};im['prototype'][Symbol['iterator']]=function(){return this['_xs'][Symbol['iterator']]();};Object['defineProperty'](im['prototype'],'size',{'get':function(){return this['_xs']['length'];},'enumerable':!![],'configurable':!![]});im['prototype']['get']=function(ir){return this['_xs'][ir];};im['prototype']['set']=function(is,it){this['_xs'][is]=it;};im['prototype']['toArray']=function(){return this['_xs']['slice']();};im['prototype']['removeAt']=function(iu){var iv=this['_xs'][iu];this['_xs']['splice'](iu,0x1);return iv;};im['prototype']['remove']=function(iw){var ix=this['indexOf'](iw);if(ix<0x0)return![];this['_xs']['splice'](ix,0x1);return!![];};im['prototype']['insert']=function(iy,iz){this['_xs']['splice'](iy,0x0,iz);};im['prototype']['clear']=function(){this['_xs']['length']=0x0;};im['prototype']['includes']=function(iA){return this['indexOf'](iA)>=0x0;};im['prototype']['indexOf']=function(iB){var iC=0x0;for(var iD=iC;iD<this['_xs']['length'];iD++){if(this['_xs'][iD]===iB){return iD;}}return-0x1;};im['prototype']['pushList']=function(iE){try{for(var iF=__values(iE),iG=iF['next']();!iG['done'];iG=iF['next']()){var iH=iG['value'];this['_xs']['push'](iH);}}catch(iI){iJ={'error':iI};}finally{try{if(iG&&!iG['done']&&(iK=iF['return']))iK['call'](iF);}finally{if(iJ)throw iJ['error'];}}return this['_xs']['length'];var iJ,iK;};im['prototype']['push']=function(){var iL=[];for(var iM=0x0;iM<arguments['length'];iM++){iL[iM]=arguments[iM];}return(iN=this['_xs'])['push']['apply'](iN,__spread(iL));var iN;};return im;}();var ArrayList=function(){function iO(iP){this['_xs']=null;if(iP==null)throw new ReferenceError('Array\x20cannot\x20be\x20null');this['_xs']=iP;}iO['prototype']['_2ad2e5f4b2884a52bf8bfc07ce8953d3']=function(){};Object['defineProperty'](iO['prototype'],'size',{'get':function(){return this['_xs']['length'];},'enumerable':!![],'configurable':!![]});iO['prototype']['clear']=function(){this['_xs']['length']=0x0;};iO['prototype']['get']=function(iQ){return this['_xs'][iQ];};iO['prototype']['set']=function(iR,iS){this['_xs'][iR]=iS;};iO['prototype'][Symbol['iterator']]=function(){return this['_xs'][Symbol['iterator']]();};iO['prototype']['insert']=function(iT,iU){this['_xs']['splice'](iT,0x0,iU);};iO['prototype']['remove']=function(iV){var iW=this['indexOf'](iV);if(iW<0x0)return![];this['_xs']['splice'](iW,0x1);return!![];};iO['prototype']['removeAt']=function(iX){var iY=this['_xs'][iX];this['_xs']['splice'](iX,0x1);return iY;};iO['prototype']['push']=function(){var iZ=[];for(var j0=0x0;j0<arguments['length'];j0++){iZ[j0]=arguments[j0];}try{for(var j1=__values(iZ),j2=j1['next']();!j2['done'];j2=j1['next']()){var j3=j2['value'];this['_xs']['push'](j3);}}catch(j4){j5={'error':j4};}finally{try{if(j2&&!j2['done']&&(j6=j1['return']))j6['call'](j1);}finally{if(j5)throw j5['error'];}}return this['_xs']['length'];var j5,j6;};iO['prototype']['indexOf']=function(j7){var j8=0x0;for(var j9=j8;j9<this['_xs']['length'];j9++){if(this['_xs'][j9]===j7){return j9;}}return-0x1;};iO['prototype']['includes']=function(ja){return this['indexOf'](ja)>=0x0;};return iO;}();