@datagrok/eda 1.3.4 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/111.js +1 -1
- package/dist/111.js.map +1 -1
- package/dist/128.js +1 -1
- package/dist/128.js.map +1 -1
- package/dist/153.js +1 -1
- package/dist/153.js.map +1 -1
- package/dist/23.js +1 -1
- package/dist/23.js.map +1 -1
- package/dist/234.js +1 -1
- package/dist/234.js.map +1 -1
- package/dist/242.js +1 -1
- package/dist/242.js.map +1 -1
- package/dist/260.js +1 -1
- package/dist/260.js.map +1 -1
- package/dist/33.js +1 -1
- package/dist/33.js.map +1 -1
- package/dist/348.js +1 -1
- package/dist/348.js.map +1 -1
- package/dist/377.js +1 -1
- package/dist/377.js.map +1 -1
- package/dist/412.js +1 -1
- package/dist/412.js.map +1 -1
- package/dist/415.js +1 -1
- package/dist/415.js.map +1 -1
- package/dist/531.js +1 -1
- package/dist/531.js.map +1 -1
- package/dist/583.js +1 -1
- package/dist/583.js.map +1 -1
- package/dist/589.js +1 -1
- package/dist/589.js.map +1 -1
- package/dist/603.js +1 -1
- package/dist/603.js.map +1 -1
- package/dist/656.js +1 -1
- package/dist/656.js.map +1 -1
- package/dist/682.js +1 -1
- package/dist/682.js.map +1 -1
- package/dist/705.js +1 -1
- package/dist/705.js.map +1 -1
- package/dist/727.js +1 -1
- package/dist/727.js.map +1 -1
- package/dist/731.js +1 -1
- package/dist/731.js.map +1 -1
- package/dist/738.js +1 -1
- package/dist/738.js.map +1 -1
- package/dist/763.js +1 -1
- package/dist/763.js.map +1 -1
- package/dist/778.js +1 -1
- package/dist/778.js.map +1 -1
- package/dist/783.js +1 -1
- package/dist/783.js.map +1 -1
- package/dist/793.js +1 -1
- package/dist/793.js.map +1 -1
- package/dist/810.js +2 -0
- package/dist/810.js.map +1 -0
- package/dist/860.js +1 -1
- package/dist/860.js.map +1 -1
- package/dist/907.js +1 -1
- package/dist/907.js.map +1 -1
- package/dist/950.js +1 -1
- package/dist/950.js.map +1 -1
- package/dist/980.js +1 -1
- package/dist/980.js.map +1 -1
- package/dist/990.js +1 -1
- package/dist/990.js.map +1 -1
- package/dist/package-test.js +1 -1
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/package.json +6 -6
- package/src/package.ts +1 -1
- package/src/pls/pls-constants.ts +7 -7
- package/src/pls/pls-tools.ts +5 -13
- package/test-console-output-1.log +0 -343
- package/test-record-1.mp4 +0 -0
package/dist/package-test.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var eda_test;(()=>{var t={5540:(t,n,e)=>{"use strict";t=e.hmd(t);var r,o=(r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(t={}){var n,e,o=void 0!==t?t:{};o.ready=new Promise((function(t,r){n=t,e=r}));var i,s=Object.assign({},o),a="object"==typeof window,u="function"==typeof importScripts,c=("object"==typeof process&&"object"==typeof process.versions&&process.versions.node,"");(a||u)&&(u?c=self.location.href:"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),r&&(c=r),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(i=t=>{var n=new XMLHttpRequest;return n.open("GET",t,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)})),o.print||console.log.bind(console);var l,f,h=o.printErr||console.warn.bind(console);Object.assign(o,s),s=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(l=o.wasmBinary),o.noExitRuntime,"object"!=typeof WebAssembly&&x("no native wasm support detected");var m,d,p,g=!1;function y(){var t=f.buffer;o.HEAP8=m=new Int8Array(t),o.HEAP16=new Int16Array(t),o.HEAP32=new Int32Array(t),o.HEAPU8=d=new Uint8Array(t),o.HEAPU16=new Uint16Array(t),o.HEAPU32=p=new Uint32Array(t),o.HEAPF32=new Float32Array(t),o.HEAPF64=new Float64Array(t)}var v=[],w=[],E=[],A=0,C=null,_=null;function x(t){o.onAbort&&o.onAbort(t),h(t="Aborted("+t+")"),g=!0,t+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(t);throw e(n),n}var N,b;function S(t){return t.startsWith("data:application/octet-stream;base64,")}function T(t){try{if(t==N&&l)return new Uint8Array(l);if(i)return i(t);throw"both async and sync fetching of the wasm failed"}catch(t){x(t)}}function I(t,n,e){return function(t){return l||!a&&!u||"function"!=typeof fetch?Promise.resolve().then((function(){return T(t)})):fetch(t,{credentials:"same-origin"}).then((function(n){if(!n.ok)throw"failed to load wasm binary file at '"+t+"'";return n.arrayBuffer()})).catch((function(){return T(t)}))}(t).then((function(t){return WebAssembly.instantiate(t,n)})).then((function(t){return t})).then(e,(function(t){h("failed to asynchronously prepare wasm: "+t),x(t)}))}function M(t){for(;t.length>0;)t.shift()(o)}function O(t){this.excPtr=t,this.ptr=t-24,this.set_type=function(t){p[this.ptr+4>>2]=t},this.get_type=function(){return p[this.ptr+4>>2]},this.set_destructor=function(t){p[this.ptr+8>>2]=t},this.get_destructor=function(){return p[this.ptr+8>>2]},this.set_caught=function(t){t=t?1:0,m[this.ptr+12|0]=t},this.get_caught=function(){return 0!=m[this.ptr+12|0]},this.set_rethrown=function(t){t=t?1:0,m[this.ptr+13|0]=t},this.get_rethrown=function(){return 0!=m[this.ptr+13|0]},this.init=function(t,n){this.set_adjusted_ptr(0),this.set_type(t),this.set_destructor(n)},this.set_adjusted_ptr=function(t){p[this.ptr+16>>2]=t},this.get_adjusted_ptr=function(){return p[this.ptr+16>>2]},this.get_exception_ptr=function(){if(G(this.get_type()))return p[this.excPtr>>2];var t=this.get_adjusted_ptr();return 0!==t?t:this.excPtr}}function R(t){var n=f.buffer;try{return f.grow(t-n.byteLength+65535>>>16),y(),1}catch(t){}}function L(t){return o["_"+t]}S(N="wasmDbscan.wasm")||(b=N,N=o.locateFile?o.locateFile(b,c):c+b);var P="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function D(t,n,e,r,o){var i={string:t=>{var n=0;return null!=t&&0!==t&&(n=function(t){var n=function(t){for(var n=0,e=0;e<t.length;++e){var r=t.charCodeAt(e);r<=127?n++:r<=2047?n+=2:r>=55296&&r<=57343?(n+=4,++e):n+=3}return n}(t)+1,e=H(n);return function(t,n,e){!function(t,n,e,r){if(!(r>0))return 0;for(var o=e+r-1,i=0;i<t.length;++i){var s=t.charCodeAt(i);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&t.charCodeAt(++i)),s<=127){if(e>=o)break;n[e++]=s}else if(s<=2047){if(e+1>=o)break;n[e++]=192|s>>6,n[e++]=128|63&s}else if(s<=65535){if(e+2>=o)break;n[e++]=224|s>>12,n[e++]=128|s>>6&63,n[e++]=128|63&s}else{if(e+3>=o)break;n[e++]=240|s>>18,n[e++]=128|s>>12&63,n[e++]=128|s>>6&63,n[e++]=128|63&s}}n[e]=0}(t,d,n,e)}(t,e,n),e}(t)),n},array:t=>{var n,e,r=H(t.length);return n=t,e=r,m.set(n,e),r}},s=L(t),a=[],u=0;if(r)for(var c=0;c<r.length;c++){var l=i[e[c]];l?(0===u&&(u=B()),a[c]=l(r[c])):a[c]=r[c]}var f=s.apply(null,a);return function(t){return 0!==u&&k(u),function(t){return"string"===n?(e=t)?function(t,n,e){for(var r=n+e,o=n;t[o]&&!(o>=r);)++o;if(o-n>16&&t.buffer&&P)return P.decode(t.subarray(n,o));for(var i="";n<o;){var s=t[n++];if(128&s){var a=63&t[n++];if(192!=(224&s)){var u=63&t[n++];if((s=224==(240&s)?(15&s)<<12|a<<6|u:(7&s)<<18|a<<12|u<<6|63&t[n++])<65536)i+=String.fromCharCode(s);else{var c=s-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&s)<<6|a)}else i+=String.fromCharCode(s)}return i}(d,e,r):"":"boolean"===n?Boolean(t):t;var e,r}(t)}(f)}var F,U={__cxa_throw:function(t,n,e){throw new O(t).init(n,e),t},abort:function(){x("")},emscripten_memcpy_big:function(t,n,e){d.copyWithin(t,n,n+e)},emscripten_resize_heap:function(t){var n,e=d.length,r=2147483648;if((t>>>=0)>r)return!1;for(var o=1;o<=4;o*=2){var i=e*(1+.2/o);if(i=Math.min(i,t+100663296),R(Math.min(r,(n=Math.max(t,i))+(65536-n%65536)%65536)))return!0}return!1}},B=(function(){var t,n,r,i,s={env:U,wasi_snapshot_preview1:U};function a(t,n){var e,r=t.exports;return o.asm=r,f=o.asm.memory,y(),o.asm.__indirect_function_table,e=o.asm.__wasm_call_ctors,w.unshift(e),function(){if(A--,o.monitorRunDependencies&&o.monitorRunDependencies(A),0==A&&(null!==C&&(clearInterval(C),C=null),_)){var t=_;_=null,t()}}(),r}if(A++,o.monitorRunDependencies&&o.monitorRunDependencies(A),o.instantiateWasm)try{return o.instantiateWasm(s,a)}catch(t){h("Module.instantiateWasm callback failed with error: "+t),e(t)}(t=l,n=N,r=s,i=function(t){a(t.instance)},t||"function"!=typeof WebAssembly.instantiateStreaming||S(n)||"function"!=typeof fetch?I(n,r,i):fetch(n,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,r).then(i,(function(t){return h("wasm streaming compile failed: "+t),h("falling back to ArrayBuffer instantiation"),I(n,r,i)}))}))).catch(e)}(),o._dbscan=function(){return(o._dbscan=o.asm.dbscan).apply(null,arguments)},o._malloc=function(){return(o._malloc=o.asm.malloc).apply(null,arguments)},o._free=function(){return(o._free=o.asm.free).apply(null,arguments)},function(){return(B=o.asm.stackSave).apply(null,arguments)}),k=function(){return(k=o.asm.stackRestore).apply(null,arguments)},H=function(){return(H=o.asm.stackAlloc).apply(null,arguments)},G=function(){return(G=o.asm.__cxa_is_pointer_type).apply(null,arguments)};function V(){function t(){F||(F=!0,o.calledRun=!0,g||(M(w),n(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)t=o.postRun.shift(),E.unshift(t);var t;M(E)}()))}A>0||(function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)t=o.preRun.shift(),v.unshift(t);var t;M(v)}(),A>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t()))}if(o.ccall=D,o.cwrap=function(t,n,e,r){var o=!e||e.every((t=>"number"===t||"boolean"===t));return"string"!==n&&o&&!r?L(t):function(){return D(t,n,e,arguments)}},_=function t(){F||V(),F||(_=t)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return V(),t.ready});"object"==typeof exports?t.exports=o:"function"==typeof define&&e.amdO?define([],(function(){return o})):"object"==typeof exports&&(exports.exportCppDbscanLib=o)},9982:function(t,n,e){var r;!function(){var n={};!function(t){"use strict";t.__esModule=!0,t.digestLength=32,t.blockSize=64;var n=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function e(t,e,r,o,i){for(var s,a,u,c,l,f,h,m,d,p,g,y,v;i>=64;){for(s=e[0],a=e[1],u=e[2],c=e[3],l=e[4],f=e[5],h=e[6],m=e[7],p=0;p<16;p++)g=o+4*p,t[p]=(255&r[g])<<24|(255&r[g+1])<<16|(255&r[g+2])<<8|255&r[g+3];for(p=16;p<64;p++)y=((d=t[p-2])>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,v=((d=t[p-15])>>>7|d<<25)^(d>>>18|d<<14)^d>>>3,t[p]=(y+t[p-7]|0)+(v+t[p-16]|0);for(p=0;p<64;p++)y=(((l>>>6|l<<26)^(l>>>11|l<<21)^(l>>>25|l<<7))+(l&f^~l&h)|0)+(m+(n[p]+t[p]|0)|0)|0,v=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&a^s&u^a&u)|0,m=h,h=f,f=l,l=c+y|0,c=u,u=a,a=s,s=y+v|0;e[0]+=s,e[1]+=a,e[2]+=u,e[3]+=c,e[4]+=l,e[5]+=f,e[6]+=h,e[7]+=m,o+=64,i-=64}return o}var r=function(){function n(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return n.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},n.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},n.prototype.update=function(t,n){if(void 0===n&&(n=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var r=0;if(this.bytesHashed+=n,this.bufferLength>0){for(;this.bufferLength<64&&n>0;)this.buffer[this.bufferLength++]=t[r++],n--;64===this.bufferLength&&(e(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(n>=64&&(r=e(this.temp,this.state,t,r,n),n%=64);n>0;)this.buffer[this.bufferLength++]=t[r++],n--;return this},n.prototype.finish=function(t){if(!this.finished){var n=this.bytesHashed,r=this.bufferLength,o=n/536870912|0,i=n<<3,s=n%64<56?64:128;this.buffer[r]=128;for(var a=r+1;a<s-8;a++)this.buffer[a]=0;this.buffer[s-8]=o>>>24&255,this.buffer[s-7]=o>>>16&255,this.buffer[s-6]=o>>>8&255,this.buffer[s-5]=o>>>0&255,this.buffer[s-4]=i>>>24&255,this.buffer[s-3]=i>>>16&255,this.buffer[s-2]=i>>>8&255,this.buffer[s-1]=i>>>0&255,e(this.temp,this.state,this.buffer,0,s),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},n.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},n.prototype._saveState=function(t){for(var n=0;n<this.state.length;n++)t[n]=this.state[n]},n.prototype._restoreState=function(t,n){for(var e=0;e<this.state.length;e++)this.state[e]=t[e];this.bytesHashed=n,this.finished=!1,this.bufferLength=0},n}();t.Hash=r;var o=function(){function t(t){this.inner=new r,this.outer=new r,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var n=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new r).update(t).finish(n).clean();else for(var e=0;e<t.length;e++)n[e]=t[e];for(e=0;e<n.length;e++)n[e]^=54;for(this.inner.update(n),e=0;e<n.length;e++)n[e]^=106;for(this.outer.update(n),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),e=0;e<n.length;e++)n[e]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function i(t){var n=(new r).update(t),e=n.digest();return n.clean(),e}function s(t,n){var e=new o(t).update(n),r=e.digest();return e.clean(),r}function a(t,n,e,r){var o=r[0];if(0===o)throw new Error("hkdf: cannot expand more");n.reset(),o>1&&n.update(t),e&&n.update(e),n.update(r),n.finish(t),r[0]++}t.HMAC=o,t.hash=i,t.default=i,t.hmac=s;var u=new Uint8Array(t.digestLength);t.hkdf=function(t,n,e,r){void 0===n&&(n=u),void 0===r&&(r=32);for(var i=new Uint8Array([1]),c=s(n,t),l=new o(c),f=new Uint8Array(l.digestLength),h=f.length,m=new Uint8Array(r),d=0;d<r;d++)h===f.length&&(a(f,l,e,i),h=0),m[d]=f[h++];return l.clean(),f.fill(0),i.fill(0),m},t.pbkdf2=function(t,n,e,r){for(var i=new o(t),s=i.digestLength,a=new Uint8Array(4),u=new Uint8Array(s),c=new Uint8Array(s),l=new Uint8Array(r),f=0;f*s<r;f++){var h=f+1;a[0]=h>>>24&255,a[1]=h>>>16&255,a[2]=h>>>8&255,a[3]=h>>>0&255,i.reset(),i.update(n),i.update(a),i.finish(c);for(var m=0;m<s;m++)u[m]=c[m];for(m=2;m<=e;m++){i.reset(),i.update(c).finish(c);for(var d=0;d<s;d++)u[d]^=c[d]}for(m=0;m<s&&f*s+m<r;m++)l[f*s+m]=u[m]}for(f=0;f<s;f++)u[f]=c[f]=0;for(f=0;f<4;f++)a[f]=0;return i.clean(),l}}(n);var o=n.default;for(var i in n)o[i]=n[i];"object"==typeof t.exports?t.exports=o:void 0===(r=function(){return o}.call(n,e,n,t))||(t.exports=r)}()},944:(t,n)=>{"use strict";n.Vb=void 0,n.Vb=function(t,n,e){var r=function(t,n,e){if(0===t.length||0===n.length)return 0;if(e&&!e.caseSensitive&&(t=t.toUpperCase(),n=n.toUpperCase()),t===n)return 1;for(var r=0,o=t.length,i=n.length,s=Math.floor(Math.max(o,i)/2)-1,a=new Array(o),u=new Array(i),c=0;c<o;c++)for(var l=Math.max(0,c-s);l<=Math.min(i,c+s+1);l++)if(!a[c]&&!u[l]&&t[c]===n[l]){++r,a[c]=u[l]=!0;break}if(0===r)return 0;var f=0,h=0;for(c=0;c<o;c++)if(a[c]){for(;!u[h];)h++;t.charAt(c)!==n.charAt(h++)&&f++}return(r/o+r/i+(r-(f/=2))/r)/3}(t,n,e),o=0;if(r>.7){for(var i=Math.min(t.length,n.length),s=0;t[s]===n[s]&&s<4&&s<i;)++o,s++;r+=.1*o*(1-r)}return r}},6572:function(t){var n;t.exports=(n=function(t,n){var e=Array.prototype.concat,r=Array.prototype.slice,o=Object.prototype.toString;function i(n,e){var r=n>e?n:e;return t.pow(10,17-~~(t.log(r>0?r:-r)*t.LOG10E))}var s=Array.isArray||function(t){return"[object Array]"===o.call(t)};function a(t){return"[object Function]"===o.call(t)}function u(t){return"number"==typeof t&&t-t==0}function c(){return new c._init(arguments)}function l(){return 0}function f(){return 1}function h(t,n){return t===n?1:0}c.fn=c.prototype,c._init=function(t){if(s(t[0]))if(s(t[0][0])){a(t[1])&&(t[0]=c.map(t[0],t[1]));for(var n=0;n<t[0].length;n++)this[n]=t[0][n];this.length=t[0].length}else this[0]=a(t[1])?c.map(t[0],t[1]):t[0],this.length=1;else if(u(t[0]))this[0]=c.seq.apply(null,t),this.length=1;else{if(t[0]instanceof c)return c(t[0].toArray());this[0]=[],this.length=1}return this},c._init.prototype=c.prototype,c._init.constructor=c,c.utils={calcRdx:i,isArray:s,isFunction:a,isNumber:u,toVector:function(t){return e.apply([],t)}},c._random_fn=t.random,c.setRandom=function(t){if("function"!=typeof t)throw new TypeError("fn is not a function");c._random_fn=t},c.extend=function(t){var n,e;if(1===arguments.length){for(e in t)c[e]=t[e];return this}for(n=1;n<arguments.length;n++)for(e in arguments[n])t[e]=arguments[n][e];return t},c.rows=function(t){return t.length||1},c.cols=function(t){return t[0].length||1},c.dimensions=function(t){return{rows:c.rows(t),cols:c.cols(t)}},c.row=function(t,n){return s(n)?n.map((function(n){return c.row(t,n)})):t[n]},c.rowa=function(t,n){return c.row(t,n)},c.col=function(t,n){if(s(n)){var e=c.arange(t.length).map((function(){return new Array(n.length)}));return n.forEach((function(n,r){c.arange(t.length).forEach((function(o){e[o][r]=t[o][n]}))})),e}for(var r=new Array(t.length),o=0;o<t.length;o++)r[o]=[t[o][n]];return r},c.cola=function(t,n){return c.col(t,n).map((function(t){return t[0]}))},c.diag=function(t){for(var n=c.rows(t),e=new Array(n),r=0;r<n;r++)e[r]=[t[r][r]];return e},c.antidiag=function(t){for(var n=c.rows(t)-1,e=new Array(n),r=0;n>=0;n--,r++)e[r]=[t[r][n]];return e},c.transpose=function(t){var n,e,r,o,i,a=[];for(s(t[0])||(t=[t]),e=t.length,r=t[0].length,i=0;i<r;i++){for(n=new Array(e),o=0;o<e;o++)n[o]=t[o][i];a.push(n)}return 1===a.length?a[0]:a},c.map=function(t,n,e){var r,o,i,a,u;for(s(t[0])||(t=[t]),o=t.length,i=t[0].length,a=e?t:new Array(o),r=0;r<o;r++)for(a[r]||(a[r]=new Array(i)),u=0;u<i;u++)a[r][u]=n(t[r][u],r,u);return 1===a.length?a[0]:a},c.cumreduce=function(t,n,e){var r,o,i,a,u;for(s(t[0])||(t=[t]),o=t.length,i=t[0].length,a=e?t:new Array(o),r=0;r<o;r++)for(a[r]||(a[r]=new Array(i)),i>0&&(a[r][0]=t[r][0]),u=1;u<i;u++)a[r][u]=n(a[r][u-1],t[r][u]);return 1===a.length?a[0]:a},c.alter=function(t,n){return c.map(t,n,!0)},c.create=function(t,n,e){var r,o,i=new Array(t);for(a(n)&&(e=n,n=t),r=0;r<t;r++)for(i[r]=new Array(n),o=0;o<n;o++)i[r][o]=e(r,o);return i},c.zeros=function(t,n){return u(n)||(n=t),c.create(t,n,l)},c.ones=function(t,n){return u(n)||(n=t),c.create(t,n,f)},c.rand=function(t,n){return u(n)||(n=t),c.create(t,n,c._random_fn)},c.identity=function(t,n){return u(n)||(n=t),c.create(t,n,h)},c.symmetric=function(t){var n,e,r=t.length;if(t.length!==t[0].length)return!1;for(n=0;n<r;n++)for(e=0;e<r;e++)if(t[e][n]!==t[n][e])return!1;return!0},c.clear=function(t){return c.alter(t,l)},c.seq=function(t,n,e,r){a(r)||(r=!1);var o,s=[],u=i(t,n),c=(n*u-t*u)/((e-1)*u),l=t;for(o=0;l<=n&&o<e;l=(t*u+c*u*++o)/u)s.push(r?r(l,o):l);return s},c.arange=function(t,e,r){var o,i=[];if(r=r||1,e===n&&(e=t,t=0),t===e||0===r)return[];if(t<e&&r<0)return[];if(t>e&&r>0)return[];if(r>0)for(o=t;o<e;o+=r)i.push(o);else for(o=t;o>e;o+=r)i.push(o);return i},c.slice=function(){function t(t,e,r,o){var i,s=[],a=t.length;if(e===n&&r===n&&o===n)return c.copy(t);if(o=o||1,(e=(e=e||0)>=0?e:a+e)===(r=(r=r||t.length)>=0?r:a+r)||0===o)return[];if(e<r&&o<0)return[];if(e>r&&o>0)return[];if(o>0)for(i=e;i<r;i+=o)s.push(t[i]);else for(i=e;i>r;i+=o)s.push(t[i]);return s}return function(n,e){var r,o;return u((e=e||{}).row)?u(e.col)?n[e.row][e.col]:t(c.rowa(n,e.row),(r=e.col||{}).start,r.end,r.step):u(e.col)?t(c.cola(n,e.col),(o=e.row||{}).start,o.end,o.step):(o=e.row||{},r=e.col||{},t(n,o.start,o.end,o.step).map((function(n){return t(n,r.start,r.end,r.step)})))}}(),c.sliceAssign=function(e,r,o){var i,s;if(u(r.row)){if(u(r.col))return e[r.row][r.col]=o;r.col=r.col||{},r.col.start=r.col.start||0,r.col.end=r.col.end||e[0].length,r.col.step=r.col.step||1,i=c.arange(r.col.start,t.min(e.length,r.col.end),r.col.step);var a=r.row;return i.forEach((function(t,n){e[a][t]=o[n]})),e}if(u(r.col)){r.row=r.row||{},r.row.start=r.row.start||0,r.row.end=r.row.end||e.length,r.row.step=r.row.step||1,s=c.arange(r.row.start,t.min(e[0].length,r.row.end),r.row.step);var l=r.col;return s.forEach((function(t,n){e[t][l]=o[n]})),e}return o[0].length===n&&(o=[o]),r.row.start=r.row.start||0,r.row.end=r.row.end||e.length,r.row.step=r.row.step||1,r.col.start=r.col.start||0,r.col.end=r.col.end||e[0].length,r.col.step=r.col.step||1,s=c.arange(r.row.start,t.min(e.length,r.row.end),r.row.step),i=c.arange(r.col.start,t.min(e[0].length,r.col.end),r.col.step),s.forEach((function(t,n){i.forEach((function(r,i){e[t][r]=o[n][i]}))})),e},c.diagonal=function(t){var n=c.zeros(t.length,t.length);return t.forEach((function(t,e){n[e][e]=t})),n},c.copy=function(t){return t.map((function(t){return u(t)?t:t.map((function(t){return t}))}))};var m=c.prototype;return m.length=0,m.push=Array.prototype.push,m.sort=Array.prototype.sort,m.splice=Array.prototype.splice,m.slice=Array.prototype.slice,m.toArray=function(){return this.length>1?r.call(this):r.call(this)[0]},m.map=function(t,n){return c(c.map(this,t,n))},m.cumreduce=function(t,n){return c(c.cumreduce(this,t,n))},m.alter=function(t){return c.alter(this,t),this},function(t){for(var n=0;n<t.length;n++)!function(t){m[t]=function(n){var e,r=this;return n?(setTimeout((function(){n.call(r,m[t].call(r))})),this):(e=c[t](this),s(e)?c(e):e)}}(t[n])}("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")),function(t){for(var n=0;n<t.length;n++)!function(t){m[t]=function(n,e){var r=this;return e?(setTimeout((function(){e.call(r,m[t].call(r,n))})),this):c(c[t](this,n))}}(t[n])}("row col".split(" ")),function(t){for(var n=0;n<t.length;n++)!function(t){m[t]=function(){return c(c[t].apply(null,arguments))}}(t[n])}("create zeros ones rand identity".split(" ")),c}(Math),function(t,n){var e=t.utils.isFunction;function r(t,n){return t-n}function o(t,e,r){return n.max(e,n.min(t,r))}t.sum=function(t){for(var n=0,e=t.length;--e>=0;)n+=t[e];return n},t.sumsqrd=function(t){for(var n=0,e=t.length;--e>=0;)n+=t[e]*t[e];return n},t.sumsqerr=function(n){for(var e,r=t.mean(n),o=0,i=n.length;--i>=0;)o+=(e=n[i]-r)*e;return o},t.sumrow=function(t){for(var n=0,e=t.length;--e>=0;)n+=t[e];return n},t.product=function(t){for(var n=1,e=t.length;--e>=0;)n*=t[e];return n},t.min=function(t){for(var n=t[0],e=0;++e<t.length;)t[e]<n&&(n=t[e]);return n},t.max=function(t){for(var n=t[0],e=0;++e<t.length;)t[e]>n&&(n=t[e]);return n},t.unique=function(t){for(var n={},e=[],r=0;r<t.length;r++)n[t[r]]||(n[t[r]]=!0,e.push(t[r]));return e},t.mean=function(n){return t.sum(n)/n.length},t.meansqerr=function(n){return t.sumsqerr(n)/n.length},t.geomean=function(e){var r=e.map(n.log),o=t.mean(r);return n.exp(o)},t.median=function(t){var n=t.length,e=t.slice().sort(r);return 1&n?e[n/2|0]:(e[n/2-1]+e[n/2])/2},t.cumsum=function(n){return t.cumreduce(n,(function(t,n){return t+n}))},t.cumprod=function(n){return t.cumreduce(n,(function(t,n){return t*n}))},t.diff=function(t){var n,e=[],r=t.length;for(n=1;n<r;n++)e.push(t[n]-t[n-1]);return e},t.rank=function(t){var n,e=[],o={};for(n=0;n<t.length;n++)o[u=t[n]]?o[u]++:(o[u]=1,e.push(u));var i=e.sort(r),s={},a=1;for(n=0;n<i.length;n++){var u,c=o[u=i[n]],l=(a+(a+c-1))/2;s[u]=l,a+=c}return t.map((function(t){return s[t]}))},t.mode=function(t){var n,e=t.length,o=t.slice().sort(r),i=1,s=0,a=0,u=[];for(n=0;n<e;n++)o[n]===o[n+1]?i++:(i>s?(u=[o[n]],s=i,a=0):i===s&&(u.push(o[n]),a++),i=1);return 0===a?u[0]:u},t.range=function(n){return t.max(n)-t.min(n)},t.variance=function(n,e){return t.sumsqerr(n)/(n.length-(e?1:0))},t.pooledvariance=function(n){return n.reduce((function(n,e){return n+t.sumsqerr(e)}),0)/(n.reduce((function(t,n){return t+n.length}),0)-n.length)},t.deviation=function(n){for(var e=t.mean(n),r=n.length,o=new Array(r),i=0;i<r;i++)o[i]=n[i]-e;return o},t.stdev=function(e,r){return n.sqrt(t.variance(e,r))},t.pooledstdev=function(e){return n.sqrt(t.pooledvariance(e))},t.meandev=function(e){for(var r=t.mean(e),o=[],i=e.length-1;i>=0;i--)o.push(n.abs(e[i]-r));return t.mean(o)},t.meddev=function(e){for(var r=t.median(e),o=[],i=e.length-1;i>=0;i--)o.push(n.abs(e[i]-r));return t.median(o)},t.coeffvar=function(n){return t.stdev(n)/t.mean(n)},t.quartiles=function(t){var e=t.length,o=t.slice().sort(r);return[o[n.round(e/4)-1],o[n.round(e/2)-1],o[n.round(3*e/4)-1]]},t.quantiles=function(t,e,i,s){var a,u,c,l,f,h=t.slice().sort(r),m=[e.length],d=t.length;for(void 0===i&&(i=3/8),void 0===s&&(s=3/8),a=0;a<e.length;a++)c=d*(u=e[a])+(i+u*(1-i-s)),l=n.floor(o(c,1,d-1)),f=o(c-l,0,1),m[a]=(1-f)*h[l-1]+f*h[l];return m},t.percentile=function(t,n,e){var o=t.slice().sort(r),i=n*(o.length+(e?1:-1))+(e?0:1),s=parseInt(i),a=i-s;return s+1<o.length?o[s-1]+a*(o[s]-o[s-1]):o[s-1]},t.percentileOfScore=function(t,n,e){var r,o,i=0,s=t.length,a=!1;for("strict"===e&&(a=!0),o=0;o<s;o++)r=t[o],(a&&r<n||!a&&r<=n)&&i++;return i/s},t.histogram=function(e,r){r=r||4;var o,i=t.min(e),s=(t.max(e)-i)/r,a=e.length,u=[];for(o=0;o<r;o++)u[o]=0;for(o=0;o<a;o++)u[n.min(n.floor((e[o]-i)/s),r-1)]+=1;return u},t.covariance=function(n,e){var r,o=t.mean(n),i=t.mean(e),s=n.length,a=new Array(s);for(r=0;r<s;r++)a[r]=(n[r]-o)*(e[r]-i);return t.sum(a)/(s-1)},t.corrcoeff=function(n,e){return t.covariance(n,e)/t.stdev(n,1)/t.stdev(e,1)},t.spearmancoeff=function(n,e){return n=t.rank(n),e=t.rank(e),t.corrcoeff(n,e)},t.stanMoment=function(e,r){for(var o=t.mean(e),i=t.stdev(e),s=e.length,a=0,u=0;u<s;u++)a+=n.pow((e[u]-o)/i,r);return a/e.length},t.skewness=function(n){return t.stanMoment(n,3)},t.kurtosis=function(n){return t.stanMoment(n,4)-3};var i=t.prototype;!function(n){for(var r=0;r<n.length;r++)!function(n){i[n]=function(r,o){var s=[],a=0,u=this;if(e(r)&&(o=r,r=!1),o)return setTimeout((function(){o.call(u,i[n].call(u,r))})),this;if(this.length>1){for(u=!0===r?this:this.transpose();a<u.length;a++)s[a]=t[n](u[a]);return s}return t[n](this[0],r)}}(n[r])}("cumsum cumprod".split(" ")),function(n){for(var r=0;r<n.length;r++)!function(n){i[n]=function(r,o){var s=[],a=0,u=this;if(e(r)&&(o=r,r=!1),o)return setTimeout((function(){o.call(u,i[n].call(u,r))})),this;if(this.length>1){for("sumrow"!==n&&(u=!0===r?this:this.transpose());a<u.length;a++)s[a]=t[n](u[a]);return!0===r?t[n](t.utils.toVector(s)):s}return t[n](this[0],r)}}(n[r])}("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")),function(n){for(var r=0;r<n.length;r++)!function(n){i[n]=function(){var r,o=[],s=0,a=this,u=Array.prototype.slice.call(arguments);if(e(u[u.length-1])){r=u[u.length-1];var c=u.slice(0,u.length-1);return setTimeout((function(){r.call(a,i[n].apply(a,c))})),this}r=void 0;var l=function(e){return t[n].apply(a,[e].concat(u))};if(this.length>1){for(a=a.transpose();s<a.length;s++)o[s]=l(a[s]);return o}return l(this[0])}}(n[r])}("quantiles percentileOfScore".split(" "))}(n,Math),function(t,n){t.gammaln=function(t){var e,r,o,i=0,s=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18],a=1.000000000190015;for(o=(r=e=t)+5.5,o-=(e+.5)*n.log(o);i<6;i++)a+=s[i]/++r;return n.log(2.5066282746310007*a/e)-o},t.loggam=function(t){var e,r,o,i,s,a,u,c=[.08333333333333333,-.002777777777777778,.0007936507936507937,-.0005952380952380952,.0008417508417508418,-.001917526917526918,.00641025641025641,-.02955065359477124,.1796443723688307,-1.3924322169059];if(e=t,u=0,1==t||2==t)return 0;for(t<=7&&(e=t+(u=n.floor(7-t))),r=1/(e*e),o=2*n.PI,s=c[9],a=8;a>=0;a--)s*=r,s+=c[a];if(i=s/e+.5*n.log(o)+(e-.5)*n.log(e)-e,t<=7)for(a=1;a<=u;a++)i-=n.log(e-1),e-=1;return i},t.gammafn=function(t){var e,r,o,i,s=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],a=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],u=!1,c=0,l=0,f=0,h=t;if(t>171.6243769536076)return 1/0;if(h<=0){if(!(i=h%1+36e-17))return 1/0;u=(1&h?-1:1)*n.PI/n.sin(n.PI*i),h=1-h}for(o=h,r=h<1?h++:(h-=c=(0|h)-1)-1,e=0;e<8;++e)f=(f+s[e])*r,l=l*r+a[e];if(i=f/l+1,o<h)i/=o;else if(o>h)for(e=0;e<c;++e)i*=h,h++;return u&&(i=u/i),i},t.gammap=function(n,e){return t.lowRegGamma(n,e)*t.gammafn(n)},t.lowRegGamma=function(e,r){var o,i=t.gammaln(e),s=e,a=1/e,u=a,c=r+1-e,l=1/1e-30,f=1/c,h=f,m=1,d=-~(8.5*n.log(e>=1?e:1/e)+.4*e+17);if(r<0||e<=0)return NaN;if(r<e+1){for(;m<=d;m++)a+=u*=r/++s;return a*n.exp(-r+e*n.log(r)-i)}for(;m<=d;m++)h*=(f=1/(f=(o=-m*(m-e))*f+(c+=2)))*(l=c+o/l);return 1-h*n.exp(-r+e*n.log(r)-i)},t.factorialln=function(n){return n<0?NaN:t.gammaln(n+1)},t.factorial=function(n){return n<0?NaN:t.gammafn(n+1)},t.combination=function(e,r){return e>170||r>170?n.exp(t.combinationln(e,r)):t.factorial(e)/t.factorial(r)/t.factorial(e-r)},t.combinationln=function(n,e){return t.factorialln(n)-t.factorialln(e)-t.factorialln(n-e)},t.permutation=function(n,e){return t.factorial(n)/t.factorial(n-e)},t.betafn=function(e,r){if(!(e<=0||r<=0))return e+r>170?n.exp(t.betaln(e,r)):t.gammafn(e)*t.gammafn(r)/t.gammafn(e+r)},t.betaln=function(n,e){return t.gammaln(n)+t.gammaln(e)-t.gammaln(n+e)},t.betacf=function(t,e,r){var o,i,s,a,u=1e-30,c=1,l=e+r,f=e+1,h=e-1,m=1,d=1-l*t/f;for(n.abs(d)<u&&(d=u),a=d=1/d;c<=100&&(d=1+(i=c*(r-c)*t/((h+(o=2*c))*(e+o)))*d,n.abs(d)<u&&(d=u),m=1+i/m,n.abs(m)<u&&(m=u),a*=(d=1/d)*m,d=1+(i=-(e+c)*(l+c)*t/((e+o)*(f+o)))*d,n.abs(d)<u&&(d=u),m=1+i/m,n.abs(m)<u&&(m=u),a*=s=(d=1/d)*m,!(n.abs(s-1)<3e-7));c++);return a},t.gammapinv=function(e,r){var o,i,s,a,u,c,l=0,f=r-1,h=t.gammaln(r);if(e>=1)return n.max(100,r+100*n.sqrt(r));if(e<=0)return 0;for(r>1?(u=n.log(f),c=n.exp(f*(u-1)-h),a=e<.5?e:1-e,o=(2.30753+.27061*(i=n.sqrt(-2*n.log(a))))/(1+i*(.99229+.04481*i))-i,e<.5&&(o=-o),o=n.max(.001,r*n.pow(1-1/(9*r)-o/(3*n.sqrt(r)),3))):o=e<(i=1-r*(.253+.12*r))?n.pow(e/i,1/r):1-n.log(1-(e-i)/(1-i));l<12;l++){if(o<=0)return 0;if((o-=i=(s=(t.lowRegGamma(r,o)-e)/(i=r>1?c*n.exp(-(o-f)+f*(n.log(o)-u)):n.exp(-o+f*n.log(o)-h)))/(1-.5*n.min(1,s*((r-1)/o-1))))<=0&&(o=.5*(o+i)),n.abs(i)<1e-8*o)break}return o},t.erf=function(t){var e,r,o,i,s=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,1.5626441722e-8,-8.5238095915e-8,6.529054439e-9,5.059343495e-9,-9.91364156e-10,-2.27365122e-10,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18],a=s.length-1,u=!1,c=0,l=0;for(t<0&&(t=-t,u=!0),r=4*(e=2/(2+t))-2;a>0;a--)o=c,c=r*c-l+s[a],l=o;return i=e*n.exp(-t*t+.5*(s[0]+r*c)-l),u?i-1:1-i},t.erfc=function(n){return 1-t.erf(n)},t.erfcinv=function(e){var r,o,i,s,a=0;if(e>=2)return-100;if(e<=0)return 100;for(s=e<1?e:2-e,r=-.70711*((2.30753+.27061*(i=n.sqrt(-2*n.log(s/2))))/(1+i*(.99229+.04481*i))-i);a<2;a++)r+=(o=t.erfc(r)-s)/(1.1283791670955126*n.exp(-r*r)-r*o);return e<1?r:-r},t.ibetainv=function(e,r,o){var i,s,a,u,c,l,f,h,m,d,p=r-1,g=o-1,y=0;if(e<=0)return 0;if(e>=1)return 1;for(r>=1&&o>=1?(a=e<.5?e:1-e,l=(2.30753+.27061*(u=n.sqrt(-2*n.log(a))))/(1+u*(.99229+.04481*u))-u,e<.5&&(l=-l),f=(l*l-3)/6,h=2/(1/(2*r-1)+1/(2*o-1)),m=l*n.sqrt(f+h)/h-(1/(2*o-1)-1/(2*r-1))*(f+5/6-2/(3*h)),l=r/(r+o*n.exp(2*m))):(i=n.log(r/(r+o)),s=n.log(o/(r+o)),l=e<(u=n.exp(r*i)/r)/(m=u+(c=n.exp(o*s)/o))?n.pow(r*m*e,1/r):1-n.pow(o*m*(1-e),1/o)),d=-t.gammaln(r)-t.gammaln(o)+t.gammaln(r+o);y<10;y++){if(0===l||1===l)return l;if((l-=u=(c=(t.ibeta(l,r,o)-e)/(u=n.exp(p*n.log(l)+g*n.log(1-l)+d)))/(1-.5*n.min(1,c*(p/l-g/(1-l)))))<=0&&(l=.5*(l+u)),l>=1&&(l=.5*(l+u+1)),n.abs(u)<1e-8*l&&y>0)break}return l},t.ibeta=function(e,r,o){var i=0===e||1===e?0:n.exp(t.gammaln(r+o)-t.gammaln(r)-t.gammaln(o)+r*n.log(e)+o*n.log(1-e));return!(e<0||e>1)&&(e<(r+1)/(r+o+2)?i*t.betacf(e,r,o)/r:1-i*t.betacf(1-e,o,r)/o)},t.randn=function(e,r){var o,i,s,a,u;if(r||(r=e),e)return t.create(e,r,(function(){return t.randn()}));do{o=t._random_fn(),i=1.7156*(t._random_fn()-.5),u=(s=o-.449871)*s+(a=n.abs(i)+.386595)*(.196*a-.25472*s)}while(u>.27597&&(u>.27846||i*i>-4*n.log(o)*o*o));return i/o},t.randg=function(e,r,o){var i,s,a,u,c,l,f=e;if(o||(o=r),e||(e=1),r)return(l=t.zeros(r,o)).alter((function(){return t.randg(e)})),l;e<1&&(e+=1),i=e-1/3,s=1/n.sqrt(9*i);do{do{u=1+s*(c=t.randn())}while(u<=0);u*=u*u,a=t._random_fn()}while(a>1-.331*n.pow(c,4)&&n.log(a)>.5*c*c+i*(1-u+n.log(u)));if(e==f)return i*u;do{a=t._random_fn()}while(0===a);return n.pow(a,1/f)*i*u},function(n){for(var e=0;e<n.length;e++)!function(n){t.fn[n]=function(){return t(t.map(this,(function(e){return t[n](e)})))}}(n[e])}("gammaln gammafn factorial factorialln".split(" ")),function(n){for(var e=0;e<n.length;e++)!function(n){t.fn[n]=function(){return t(t[n].apply(null,arguments))}}(n[e])}("randn".split(" "))}(n,Math),function(t,n){function e(t,e,r,o){for(var i,s=0,a=1,u=1,c=1,l=0,f=0;n.abs((u-f)/u)>o;)f=u,a=c+(i=-(e+l)*(e+r+l)*t/(e+2*l)/(e+2*l+1))*a,u=(s=u+i*s)+(i=(l+=1)*(r-l)*t/(e+2*l-1)/(e+2*l))*u,s/=c=a+i*c,a/=c,u/=c,c=1;return u/e}function r(e,r,o){var i=[.9815606342467192,.9041172563704749,.7699026741943047,.5873179542866175,.3678314989981802,.1252334085114689],s=[.04717533638651183,.10693932599531843,.16007832854334622,.20316742672306592,.2334925365383548,.24914704581340277],a=.5*e;if(a>=8)return 1;var u,c=2*t.normal.cdf(a,0,1,1,0)-1;c=c>=n.exp(-50/o)?n.pow(c,o):0;for(var l=a,f=(8-a)/(u=e>3?2:3),h=l+f,m=0,d=o-1,p=1;p<=u;p++){for(var g=0,y=.5*(h+l),v=.5*(h-l),w=1;w<=12;w++){var E,A=y+v*(6<w?i[(E=12-w+1)-1]:-i[(E=w)-1]),C=A*A;if(C>60)break;var _=2*t.normal.cdf(A,0,1,1,0)*.5-2*t.normal.cdf(A,e,1,1,0)*.5;_>=n.exp(-30/d)&&(g+=_=s[E-1]*n.exp(-.5*C)*n.pow(_,d))}m+=g*=2*v*o/n.sqrt(2*n.PI),l=h,h+=f}return(c+=m)<=n.exp(-30/r)?0:(c=n.pow(c,r))>=1?1:c}!function(n){for(var e=0;e<n.length;e++)!function(n){t[n]=function t(n,e,r){return this instanceof t?(this._a=n,this._b=e,this._c=r,this):new t(n,e,r)},t.fn[n]=function(e,r,o){var i=t[n](e,r,o);return i.data=this,i},t[n].prototype.sample=function(e){var r=this._a,o=this._b,i=this._c;return e?t.alter(e,(function(){return t[n].sample(r,o,i)})):t[n].sample(r,o,i)},function(e){for(var r=0;r<e.length;r++)!function(e){t[n].prototype[e]=function(r){var o=this._a,i=this._b,s=this._c;return r||0===r||(r=this.data),"number"!=typeof r?t.fn.map.call(r,(function(r){return t[n][e](r,o,i,s)})):t[n][e](r,o,i,s)}}(e[r])}("pdf cdf inv".split(" ")),function(e){for(var r=0;r<e.length;r++)!function(e){t[n].prototype[e]=function(){return t[n][e](this._a,this._b,this._c)}}(e[r])}("mean median mode variance".split(" "))}(n[e])}("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")),t.extend(t.beta,{pdf:function(e,r,o){return e>1||e<0?0:1==r&&1==o?1:r<512&&o<512?n.pow(e,r-1)*n.pow(1-e,o-1)/t.betafn(r,o):n.exp((r-1)*n.log(e)+(o-1)*n.log(1-e)-t.betaln(r,o))},cdf:function(n,e,r){return n>1||n<0?1*(n>1):t.ibeta(n,e,r)},inv:function(n,e,r){return t.ibetainv(n,e,r)},mean:function(t,n){return t/(t+n)},median:function(n,e){return t.ibetainv(.5,n,e)},mode:function(t,n){return(t-1)/(t+n-2)},sample:function(n,e){var r=t.randg(n);return r/(r+t.randg(e))},variance:function(t,e){return t*e/(n.pow(t+e,2)*(t+e+1))}}),t.extend(t.centralF,{pdf:function(e,r,o){var i;return e<0?0:r<=2?0===e&&r<2?1/0:0===e&&2===r?1:1/t.betafn(r/2,o/2)*n.pow(r/o,r/2)*n.pow(e,r/2-1)*n.pow(1+r/o*e,-(r+o)/2):(i=r*e/(o+e*r),r*(o/(o+e*r))/2*t.binomial.pdf((r-2)/2,(r+o-2)/2,i))},cdf:function(n,e,r){return n<0?0:t.ibeta(e*n/(e*n+r),e/2,r/2)},inv:function(n,e,r){return r/(e*(1/t.ibetainv(n,e/2,r/2)-1))},mean:function(t,n){return n>2?n/(n-2):void 0},mode:function(t,n){return t>2?n*(t-2)/(t*(n+2)):void 0},sample:function(n,e){return 2*t.randg(n/2)/n/(2*t.randg(e/2)/e)},variance:function(t,n){if(!(n<=4))return 2*n*n*(t+n-2)/(t*(n-2)*(n-2)*(n-4))}}),t.extend(t.cauchy,{pdf:function(t,e,r){return r<0?0:r/(n.pow(t-e,2)+n.pow(r,2))/n.PI},cdf:function(t,e,r){return n.atan((t-e)/r)/n.PI+.5},inv:function(t,e,r){return e+r*n.tan(n.PI*(t-.5))},median:function(t){return t},mode:function(t){return t},sample:function(e,r){return t.randn()*n.sqrt(1/(2*t.randg(.5)))*r+e}}),t.extend(t.chisquare,{pdf:function(e,r){return e<0?0:0===e&&2===r?.5:n.exp((r/2-1)*n.log(e)-e/2-r/2*n.log(2)-t.gammaln(r/2))},cdf:function(n,e){return n<0?0:t.lowRegGamma(e/2,n/2)},inv:function(n,e){return 2*t.gammapinv(n,.5*e)},mean:function(t){return t},median:function(t){return t*n.pow(1-2/(9*t),3)},mode:function(t){return t-2>0?t-2:0},sample:function(n){return 2*t.randg(n/2)},variance:function(t){return 2*t}}),t.extend(t.exponential,{pdf:function(t,e){return t<0?0:e*n.exp(-e*t)},cdf:function(t,e){return t<0?0:1-n.exp(-e*t)},inv:function(t,e){return-n.log(1-t)/e},mean:function(t){return 1/t},median:function(t){return 1/t*n.log(2)},mode:function(){return 0},sample:function(e){return-1/e*n.log(t._random_fn())},variance:function(t){return n.pow(t,-2)}}),t.extend(t.gamma,{pdf:function(e,r,o){return e<0?0:0===e&&1===r?1/o:n.exp((r-1)*n.log(e)-e/o-t.gammaln(r)-r*n.log(o))},cdf:function(n,e,r){return n<0?0:t.lowRegGamma(e,n/r)},inv:function(n,e,r){return t.gammapinv(n,e)*r},mean:function(t,n){return t*n},mode:function(t,n){if(t>1)return(t-1)*n},sample:function(n,e){return t.randg(n)*e},variance:function(t,n){return t*n*n}}),t.extend(t.invgamma,{pdf:function(e,r,o){return e<=0?0:n.exp(-(r+1)*n.log(e)-o/e-t.gammaln(r)+r*n.log(o))},cdf:function(n,e,r){return n<=0?0:1-t.lowRegGamma(e,r/n)},inv:function(n,e,r){return r/t.gammapinv(1-n,e)},mean:function(t,n){return t>1?n/(t-1):void 0},mode:function(t,n){return n/(t+1)},sample:function(n,e){return e/t.randg(n)},variance:function(t,n){if(!(t<=2))return n*n/((t-1)*(t-1)*(t-2))}}),t.extend(t.kumaraswamy,{pdf:function(t,e,r){return 0===t&&1===e?r:1===t&&1===r?e:n.exp(n.log(e)+n.log(r)+(e-1)*n.log(t)+(r-1)*n.log(1-n.pow(t,e)))},cdf:function(t,e,r){return t<0?0:t>1?1:1-n.pow(1-n.pow(t,e),r)},inv:function(t,e,r){return n.pow(1-n.pow(1-t,1/r),1/e)},mean:function(n,e){return e*t.gammafn(1+1/n)*t.gammafn(e)/t.gammafn(1+1/n+e)},median:function(t,e){return n.pow(1-n.pow(2,-1/e),1/t)},mode:function(t,e){if(t>=1&&e>=1&&1!==t&&1!==e)return n.pow((t-1)/(t*e-1),1/t)},variance:function(){throw new Error("variance not yet implemented")}}),t.extend(t.lognormal,{pdf:function(t,e,r){return t<=0?0:n.exp(-n.log(t)-.5*n.log(2*n.PI)-n.log(r)-n.pow(n.log(t)-e,2)/(2*r*r))},cdf:function(e,r,o){return e<0?0:.5+.5*t.erf((n.log(e)-r)/n.sqrt(2*o*o))},inv:function(e,r,o){return n.exp(-1.4142135623730951*o*t.erfcinv(2*e)+r)},mean:function(t,e){return n.exp(t+e*e/2)},median:function(t){return n.exp(t)},mode:function(t,e){return n.exp(t-e*e)},sample:function(e,r){return n.exp(t.randn()*r+e)},variance:function(t,e){return(n.exp(e*e)-1)*n.exp(2*t+e*e)}}),t.extend(t.noncentralt,{pdf:function(e,r,o){return n.abs(o)<1e-14?t.studentt.pdf(e,r):n.abs(e)<1e-14?n.exp(t.gammaln((r+1)/2)-o*o/2-.5*n.log(n.PI*r)-t.gammaln(r/2)):r/e*(t.noncentralt.cdf(e*n.sqrt(1+2/r),r+2,o)-t.noncentralt.cdf(e,r,o))},cdf:function(e,r,o){var i=1e-14;if(n.abs(o)<i)return t.studentt.cdf(e,r);var s=!1;e<0&&(s=!0,o=-o);for(var a=t.normal.cdf(-o,0,1),u=i+1,c=u,l=e*e/(e*e+r),f=0,h=n.exp(-o*o/2),m=n.exp(-o*o/2-.5*n.log(2)-t.gammaln(1.5))*o;f<200||c>i||u>i;)c=u,f>0&&(h*=o*o/(2*f),m*=o*o/(2*(f+.5))),a+=.5*(u=h*t.beta.cdf(l,f+.5,r/2)+m*t.beta.cdf(l,f+1,r/2)),f++;return s?1-a:a}}),t.extend(t.normal,{pdf:function(t,e,r){return n.exp(-.5*n.log(2*n.PI)-n.log(r)-n.pow(t-e,2)/(2*r*r))},cdf:function(e,r,o){return.5*(1+t.erf((e-r)/n.sqrt(2*o*o)))},inv:function(n,e,r){return-1.4142135623730951*r*t.erfcinv(2*n)+e},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},sample:function(n,e){return t.randn()*e+n},variance:function(t,n){return n*n}}),t.extend(t.pareto,{pdf:function(t,e,r){return t<e?0:r*n.pow(e,r)/n.pow(t,r+1)},cdf:function(t,e,r){return t<e?0:1-n.pow(e/t,r)},inv:function(t,e,r){return e/n.pow(1-t,1/r)},mean:function(t,e){if(!(e<=1))return e*n.pow(t,e)/(e-1)},median:function(t,e){return t*(e*n.SQRT2)},mode:function(t){return t},variance:function(t,e){if(!(e<=2))return t*t*e/(n.pow(e-1,2)*(e-2))}}),t.extend(t.studentt,{pdf:function(e,r){return r=r>1e100?1e100:r,1/(n.sqrt(r)*t.betafn(.5,r/2))*n.pow(1+e*e/r,-(r+1)/2)},cdf:function(e,r){var o=r/2;return t.ibeta((e+n.sqrt(e*e+r))/(2*n.sqrt(e*e+r)),o,o)},inv:function(e,r){var o=t.ibetainv(2*n.min(e,1-e),.5*r,.5);return o=n.sqrt(r*(1-o)/o),e>.5?o:-o},mean:function(t){return t>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(e){return t.randn()*n.sqrt(e/(2*t.randg(e/2)))},variance:function(t){return t>2?t/(t-2):t>1?1/0:void 0}}),t.extend(t.weibull,{pdf:function(t,e,r){return t<0||e<0||r<0?0:r/e*n.pow(t/e,r-1)*n.exp(-n.pow(t/e,r))},cdf:function(t,e,r){return t<0?0:1-n.exp(-n.pow(t/e,r))},inv:function(t,e,r){return e*n.pow(-n.log(1-t),1/r)},mean:function(n,e){return n*t.gammafn(1+1/e)},median:function(t,e){return t*n.pow(n.log(2),1/e)},mode:function(t,e){return e<=1?0:t*n.pow((e-1)/e,1/e)},sample:function(e,r){return e*n.pow(-n.log(t._random_fn()),1/r)},variance:function(e,r){return e*e*t.gammafn(1+2/r)-n.pow(t.weibull.mean(e,r),2)}}),t.extend(t.uniform,{pdf:function(t,n,e){return t<n||t>e?0:1/(e-n)},cdf:function(t,n,e){return t<n?0:t<e?(t-n)/(e-n):1},inv:function(t,n,e){return n+t*(e-n)},mean:function(t,n){return.5*(t+n)},median:function(n,e){return t.mean(n,e)},mode:function(){throw new Error("mode is not yet implemented")},sample:function(n,e){return n/2+e/2+(e/2-n/2)*(2*t._random_fn()-1)},variance:function(t,e){return n.pow(e-t,2)/12}}),t.extend(t.binomial,{pdf:function(e,r,o){return 0===o||1===o?r*o===e?1:0:t.combination(r,e)*n.pow(o,e)*n.pow(1-o,r-e)},cdf:function(r,o,i){var s,a=1e-10;if(r<0)return 0;if(r>=o)return 1;if(i<0||i>1||o<=0)return NaN;var u=i,c=(r=n.floor(r))+1,l=o-r,f=c+l,h=n.exp(t.gammaln(f)-t.gammaln(l)-t.gammaln(c)+c*n.log(u)+l*n.log(1-u));return s=u<(c+1)/(f+2)?h*e(u,c,l,a):1-h*e(1-u,l,c,a),n.round(1/a*(1-s))/(1/a)}}),t.extend(t.negbin,{pdf:function(e,r,o){return e===e>>>0&&(e<0?0:t.combination(e+r-1,r-1)*n.pow(1-o,e)*n.pow(o,r))},cdf:function(n,e,r){var o=0,i=0;if(n<0)return 0;for(;i<=n;i++)o+=t.negbin.pdf(i,e,r);return o}}),t.extend(t.hypgeom,{pdf:function(e,r,o,i){if(e!=e|0)return!1;if(e<0||e<o-(r-i))return 0;if(e>i||e>o)return 0;if(2*o>r)return 2*i>r?t.hypgeom.pdf(r-o-i+e,r,r-o,r-i):t.hypgeom.pdf(i-e,r,r-o,i);if(2*i>r)return t.hypgeom.pdf(o-e,r,o,r-i);if(o<i)return t.hypgeom.pdf(e,r,i,o);for(var s=1,a=0,u=0;u<e;u++){for(;s>1&&a<i;)s*=1-o/(r-a),a++;s*=(i-u)*(o-u)/((u+1)*(r-o-i+u+1))}for(;a<i;a++)s*=1-o/(r-a);return n.min(1,n.max(0,s))},cdf:function(e,r,o,i){if(e<0||e<o-(r-i))return 0;if(e>=i||e>=o)return 1;if(2*o>r)return 2*i>r?t.hypgeom.cdf(r-o-i+e,r,r-o,r-i):1-t.hypgeom.cdf(i-e-1,r,r-o,i);if(2*i>r)return 1-t.hypgeom.cdf(o-e-1,r,o,r-i);if(o<i)return t.hypgeom.cdf(e,r,i,o);for(var s=1,a=1,u=0,c=0;c<e;c++){for(;s>1&&u<i;){var l=1-o/(r-u);a*=l,s*=l,u++}s+=a*=(i-c)*(o-c)/((c+1)*(r-o-i+c+1))}for(;u<i;u++)s*=1-o/(r-u);return n.min(1,n.max(0,s))}}),t.extend(t.poisson,{pdf:function(e,r){return r<0||e%1!=0||e<0?0:n.pow(r,e)*n.exp(-r)/t.factorial(e)},cdf:function(n,e){var r=[],o=0;if(n<0)return 0;for(;o<=n;o++)r.push(t.poisson.pdf(o,e));return t.sum(r)},mean:function(t){return t},variance:function(t){return t},sampleSmall:function(e){var r=1,o=0,i=n.exp(-e);do{o++,r*=t._random_fn()}while(r>i);return o-1},sampleLarge:function(e){var r,o,i,s,a,u,c,l,f,h,m=e;for(s=n.sqrt(m),a=n.log(m),u=.02483*(c=.931+2.53*s)-.059,l=1.1239+1.1328/(c-3.4),f=.9277-3.6224/(c-2);;){if(o=n.random()-.5,i=n.random(),h=.5-n.abs(o),r=n.floor((2*u/h+c)*o+m+.43),h>=.07&&i<=f)return r;if(!(r<0||h<.013&&i>h)&&n.log(i)+n.log(l)-n.log(u/(h*h)+c)<=r*a-m-t.loggam(r+1))return r}},sample:function(t){return t<10?this.sampleSmall(t):this.sampleLarge(t)}}),t.extend(t.triangular,{pdf:function(t,n,e,r){return e<=n||r<n||r>e?NaN:t<n||t>e?0:t<r?2*(t-n)/((e-n)*(r-n)):t===r?2/(e-n):2*(e-t)/((e-n)*(e-r))},cdf:function(t,e,r,o){return r<=e||o<e||o>r?NaN:t<=e?0:t>=r?1:t<=o?n.pow(t-e,2)/((r-e)*(o-e)):1-n.pow(r-t,2)/((r-e)*(r-o))},inv:function(t,e,r,o){return r<=e||o<e||o>r?NaN:t<=(o-e)/(r-e)?e+(r-e)*n.sqrt(t*((o-e)/(r-e))):e+(r-e)*(1-n.sqrt((1-t)*(1-(o-e)/(r-e))))},mean:function(t,n,e){return(t+n+e)/3},median:function(t,e,r){return r<=(t+e)/2?e-n.sqrt((e-t)*(e-r))/n.sqrt(2):r>(t+e)/2?t+n.sqrt((e-t)*(r-t))/n.sqrt(2):void 0},mode:function(t,n,e){return e},sample:function(e,r,o){var i=t._random_fn();return i<(o-e)/(r-e)?e+n.sqrt(i*(r-e)*(o-e)):r-n.sqrt((1-i)*(r-e)*(r-o))},variance:function(t,n,e){return(t*t+n*n+e*e-t*n-t*e-n*e)/18}}),t.extend(t.arcsine,{pdf:function(t,e,r){return r<=e?NaN:t<=e||t>=r?0:2/n.PI*n.pow(n.pow(r-e,2)-n.pow(2*t-e-r,2),-.5)},cdf:function(t,e,r){return t<e?0:t<r?2/n.PI*n.asin(n.sqrt((t-e)/(r-e))):1},inv:function(t,e,r){return e+(.5-.5*n.cos(n.PI*t))*(r-e)},mean:function(t,n){return n<=t?NaN:(t+n)/2},median:function(t,n){return n<=t?NaN:(t+n)/2},mode:function(){throw new Error("mode is not yet implemented")},sample:function(e,r){return(e+r)/2+(r-e)/2*n.sin(2*n.PI*t.uniform.sample(0,1))},variance:function(t,e){return e<=t?NaN:n.pow(e-t,2)/8}}),t.extend(t.laplace,{pdf:function(t,e,r){return r<=0?0:n.exp(-n.abs(t-e)/r)/(2*r)},cdf:function(t,e,r){return r<=0?0:t<e?.5*n.exp((t-e)/r):1-.5*n.exp(-(t-e)/r)},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},variance:function(t,n){return 2*n*n},sample:function(e,r){var o,i=t._random_fn()-.5;return e-r*((o=i)/n.abs(o))*n.log(1-2*n.abs(i))}}),t.extend(t.tukey,{cdf:function(e,o,i){var s=o,a=[.9894009349916499,.9445750230732326,.8656312023878318,.755404408355003,.6178762444026438,.45801677765722737,.2816035507792589,.09501250983763744],u=[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685];if(e<=0)return 0;if(i<2||s<2)return NaN;if(!Number.isFinite(e))return 1;if(i>25e3)return r(e,1,s);var c,l=.5*i,f=l*n.log(i)-i*n.log(2)-t.gammaln(l),h=l-1,m=.25*i;c=i<=100?1:i<=800?.5:i<=5e3?.25:.125,f+=n.log(c);for(var d=0,p=1;p<=50;p++){for(var g=0,y=(2*p-1)*c,v=1;v<=16;v++){var w,E;8<v?(w=v-8-1,E=f+h*n.log(y+a[w]*c)-(a[w]*c+y)*m):(w=v-1,E=f+h*n.log(y-a[w]*c)+(a[w]*c-y)*m),E>=-30&&(g+=r(8<v?e*n.sqrt(.5*(a[w]*c+y)):e*n.sqrt(.5*(-a[w]*c+y)),1,s)*u[w]*n.exp(E))}if(p*c>=1&&g<=1e-14)break;d+=g}if(g>1e-14)throw new Error("tukey.cdf failed to converge");return d>1&&(d=1),d},inv:function(e,r,o){if(o<2||r<2)return NaN;if(e<0||e>1)return NaN;if(0===e)return 0;if(1===e)return 1/0;var i,s=function(t,e,r){var o=.5-.5*t,i=n.sqrt(n.log(1/(o*o))),s=i+((((-453642210148e-16*i-.204231210125)*i-.342242088547)*i-1)*i+.322232421088)/((((.0038560700634*i+.10353775285)*i+.531103462366)*i+.588581570495)*i+.099348462606);r<120&&(s+=(s*s*s+s)/r/4);var a=.8832-.2368*s;return r<120&&(a+=-1.214/r+1.208*s/r),s*(a*n.log(e-1)+1.4142)}(e,r,o),a=t.tukey.cdf(s,r,o)-e;i=a>0?n.max(0,s-1):s+1;for(var u,c=t.tukey.cdf(i,r,o)-e,l=1;l<50;l++)if(u=i-c*(i-s)/(c-a),a=c,s=i,u<0&&(u=0,c=-e),c=t.tukey.cdf(u,r,o)-e,i=u,n.abs(i-s)<1e-4)return u;throw new Error("tukey.inv failed to converge")}})}(n,Math),function(t,n){var e,r,o=Array.prototype.push,i=t.utils.isArray;function s(n){return i(n)||n instanceof t}t.extend({add:function(n,e){return s(e)?(s(e[0])||(e=[e]),t.map(n,(function(t,n,r){return t+e[n][r]}))):t.map(n,(function(t){return t+e}))},subtract:function(n,e){return s(e)?(s(e[0])||(e=[e]),t.map(n,(function(t,n,r){return t-e[n][r]||0}))):t.map(n,(function(t){return t-e}))},divide:function(n,e){return s(e)?(s(e[0])||(e=[e]),t.multiply(n,t.inv(e))):t.map(n,(function(t){return t/e}))},multiply:function(n,e){var r,o,i,a,u,c,l,f;if(void 0===n.length&&void 0===e.length)return n*e;if(u=n.length,c=n[0].length,l=t.zeros(u,i=s(e)?e[0].length:c),f=0,s(e)){for(;f<i;f++)for(r=0;r<u;r++){for(a=0,o=0;o<c;o++)a+=n[r][o]*e[o][f];l[r][f]=a}return 1===u&&1===f?l[0][0]:l}return t.map(n,(function(t){return t*e}))},outer:function(n,e){return t.multiply(n.map((function(t){return[t]})),[e])},dot:function(n,e){s(n[0])||(n=[n]),s(e[0])||(e=[e]);for(var r,o,i=1===n[0].length&&1!==n.length?t.transpose(n):n,a=1===e[0].length&&1!==e.length?t.transpose(e):e,u=[],c=0,l=i.length,f=i[0].length;c<l;c++){for(u[c]=[],r=0,o=0;o<f;o++)r+=i[c][o]*a[c][o];u[c]=r}return 1===u.length?u[0]:u},pow:function(e,r){return t.map(e,(function(t){return n.pow(t,r)}))},exp:function(e){return t.map(e,(function(t){return n.exp(t)}))},log:function(e){return t.map(e,(function(t){return n.log(t)}))},abs:function(e){return t.map(e,(function(t){return n.abs(t)}))},norm:function(t,e){var r=0,o=0;for(isNaN(e)&&(e=2),s(t[0])&&(t=t[0]);o<t.length;o++)r+=n.pow(n.abs(t[o]),e);return n.pow(r,1/e)},angle:function(e,r){return n.acos(t.dot(e,r)/(t.norm(e)*t.norm(r)))},aug:function(t,n){var e,r=[];for(e=0;e<t.length;e++)r.push(t[e].slice());for(e=0;e<r.length;e++)o.apply(r[e],n[e]);return r},inv:function(n){for(var e,r=n.length,o=n[0].length,i=t.identity(r,o),s=t.gauss_jordan(n,i),a=[],u=0;u<r;u++)for(a[u]=[],e=o;e<s[0].length;e++)a[u][e-o]=s[u][e];return a},det:function t(n){if(2===n.length)return n[0][0]*n[1][1]-n[0][1]*n[1][0];for(var e=0,r=0;r<n.length;r++){for(var o=[],i=1;i<n.length;i++){o[i-1]=[];for(var s=0;s<n.length;s++)s<r?o[i-1][s]=n[i][s]:s>r&&(o[i-1][s-1]=n[i][s])}var a=r%2?-1:1;e+=t(o)*n[0][r]*a}return e},gauss_elimination:function(e,r){var o,i,s,a,u=0,c=0,l=e.length,f=e[0].length,h=1,m=0,d=[];for(o=(e=t.aug(e,r))[0].length,u=0;u<l;u++){for(i=e[u][u],c=u,a=u+1;a<f;a++)i<n.abs(e[a][u])&&(i=e[a][u],c=a);if(c!=u)for(a=0;a<o;a++)s=e[u][a],e[u][a]=e[c][a],e[c][a]=s;for(c=u+1;c<l;c++)for(h=e[c][u]/e[u][u],a=u;a<o;a++)e[c][a]=e[c][a]-h*e[u][a]}for(u=l-1;u>=0;u--){for(m=0,c=u+1;c<=l-1;c++)m+=d[c]*e[u][c];d[u]=(e[u][o-1]-m)/e[u][u]}return d},gauss_jordan:function(e,r){var o,i,s,a=t.aug(e,r),u=a.length,c=a[0].length,l=0;for(i=0;i<u;i++){var f=i;for(s=i+1;s<u;s++)n.abs(a[s][i])>n.abs(a[f][i])&&(f=s);var h=a[i];for(a[i]=a[f],a[f]=h,s=i+1;s<u;s++)for(l=a[s][i]/a[i][i],o=i;o<c;o++)a[s][o]-=a[i][o]*l}for(i=u-1;i>=0;i--){for(l=a[i][i],s=0;s<i;s++)for(o=c-1;o>i-1;o--)a[s][o]-=a[i][o]*a[s][i]/l;for(a[i][i]/=l,o=u;o<c;o++)a[i][o]/=l}return a},triaUpSolve:function(n,e){var r,o=n[0].length,i=t.zeros(1,o)[0],s=!1;return null!=e[0].length&&(e=e.map((function(t){return t[0]})),s=!0),t.arange(o-1,-1,-1).forEach((function(s){r=t.arange(s+1,o).map((function(t){return i[t]*n[s][t]})),i[s]=(e[s]-t.sum(r))/n[s][s]})),s?i.map((function(t){return[t]})):i},triaLowSolve:function(n,e){var r,o=n[0].length,i=t.zeros(1,o)[0],s=!1;return null!=e[0].length&&(e=e.map((function(t){return t[0]})),s=!0),t.arange(o).forEach((function(o){r=t.arange(o).map((function(t){return n[o][t]*i[t]})),i[o]=(e[o]-t.sum(r))/n[o][o]})),s?i.map((function(t){return[t]})):i},lu:function(n){var e,r=n.length,o=t.identity(r),i=t.zeros(n.length,n[0].length);return t.arange(r).forEach((function(t){i[0][t]=n[0][t]})),t.arange(1,r).forEach((function(s){t.arange(s).forEach((function(r){e=t.arange(r).map((function(t){return o[s][t]*i[t][r]})),o[s][r]=(n[s][r]-t.sum(e))/i[r][r]})),t.arange(s,r).forEach((function(r){e=t.arange(s).map((function(t){return o[s][t]*i[t][r]})),i[s][r]=n[e.length][r]-t.sum(e)}))})),[o,i]},cholesky:function(e){var r,o=e.length,i=t.zeros(e.length,e[0].length);return t.arange(o).forEach((function(s){r=t.arange(s).map((function(t){return n.pow(i[s][t],2)})),i[s][s]=n.sqrt(e[s][s]-t.sum(r)),t.arange(s+1,o).forEach((function(n){r=t.arange(s).map((function(t){return i[s][t]*i[n][t]})),i[n][s]=(e[s][n]-t.sum(r))/i[s][s]}))})),i},gauss_jacobi:function(e,r,o,i){for(var s,a,u,c,l=0,f=0,h=e.length,m=[],d=[],p=[];l<h;l++)for(m[l]=[],d[l]=[],p[l]=[],f=0;f<h;f++)l>f?(m[l][f]=e[l][f],d[l][f]=p[l][f]=0):l<f?(d[l][f]=e[l][f],m[l][f]=p[l][f]=0):(p[l][f]=e[l][f],m[l][f]=d[l][f]=0);for(u=t.multiply(t.multiply(t.inv(p),t.add(m,d)),-1),a=t.multiply(t.inv(p),r),s=o,c=t.add(t.multiply(u,o),a),l=2;n.abs(t.norm(t.subtract(c,s)))>i;)s=c,c=t.add(t.multiply(u,s),a),l++;return c},gauss_seidel:function(e,r,o,i){for(var s,a,u,c,l,f=0,h=e.length,m=[],d=[],p=[];f<h;f++)for(m[f]=[],d[f]=[],p[f]=[],s=0;s<h;s++)f>s?(m[f][s]=e[f][s],d[f][s]=p[f][s]=0):f<s?(d[f][s]=e[f][s],m[f][s]=p[f][s]=0):(p[f][s]=e[f][s],m[f][s]=d[f][s]=0);for(c=t.multiply(t.multiply(t.inv(t.add(p,m)),d),-1),u=t.multiply(t.inv(t.add(p,m)),r),a=o,l=t.add(t.multiply(c,o),u),f=2;n.abs(t.norm(t.subtract(l,a)))>i;)a=l,l=t.add(t.multiply(c,a),u),f+=1;return l},SOR:function(e,r,o,i,s){for(var a,u,c,l,f,h=0,m=e.length,d=[],p=[],g=[];h<m;h++)for(d[h]=[],p[h]=[],g[h]=[],a=0;a<m;a++)h>a?(d[h][a]=e[h][a],p[h][a]=g[h][a]=0):h<a?(p[h][a]=e[h][a],d[h][a]=g[h][a]=0):(g[h][a]=e[h][a],d[h][a]=p[h][a]=0);for(l=t.multiply(t.inv(t.add(g,t.multiply(d,s))),t.subtract(t.multiply(g,1-s),t.multiply(p,s))),c=t.multiply(t.multiply(t.inv(t.add(g,t.multiply(d,s))),r),s),u=o,f=t.add(t.multiply(l,o),c),h=2;n.abs(t.norm(t.subtract(f,u)))>i;)u=f,f=t.add(t.multiply(l,u),c),h++;return f},householder:function(e){for(var r,o,i,s,a=e.length,u=e[0].length,c=0,l=[],f=[];c<a-1;c++){for(r=0,s=c+1;s<u;s++)r+=e[s][c]*e[s][c];for(r=(e[c+1][c]>0?-1:1)*n.sqrt(r),o=n.sqrt((r*r-e[c+1][c]*r)/2),(l=t.zeros(a,1))[c+1][0]=(e[c+1][c]-r)/(2*o),i=c+2;i<a;i++)l[i][0]=e[i][c]/(2*o);f=t.subtract(t.identity(a,u),t.multiply(t.multiply(l,t.transpose(l)),2)),e=t.multiply(f,t.multiply(e,f))}return e},QR:(e=t.sum,r=t.arange,function(o){var i,s,a,u=o.length,c=o[0].length,l=t.zeros(c,c);for(o=t.copy(o),s=0;s<c;s++){for(l[s][s]=n.sqrt(e(r(u).map((function(t){return o[t][s]*o[t][s]})))),i=0;i<u;i++)o[i][s]=o[i][s]/l[s][s];for(a=s+1;a<c;a++)for(l[s][a]=e(r(u).map((function(t){return o[t][s]*o[t][a]}))),i=0;i<u;i++)o[i][a]=o[i][a]-o[i][s]*l[s][a]}return[o,l]}),lstsq:function(n,e){var r=!1;void 0===e[0].length&&(e=e.map((function(t){return[t]})),r=!0);var o=t.QR(n),i=o[0],s=o[1],a=n[0].length,u=t.slice(i,{col:{end:a}}),c=function(n){var e=(n=t.copy(n)).length,r=t.identity(e);return t.arange(e-1,-1,-1).forEach((function(e){t.sliceAssign(r,{row:e},t.divide(t.slice(r,{row:e}),n[e][e])),t.sliceAssign(n,{row:e},t.divide(t.slice(n,{row:e}),n[e][e])),t.arange(e).forEach((function(o){var i=t.multiply(n[o][e],-1),s=t.slice(n,{row:o}),a=t.multiply(t.slice(n,{row:e}),i);t.sliceAssign(n,{row:o},t.add(s,a));var u=t.slice(r,{row:o}),c=t.multiply(t.slice(r,{row:e}),i);t.sliceAssign(r,{row:o},t.add(u,c))}))})),r}(t.slice(s,{row:{end:a}})),l=t.transpose(u);void 0===l[0].length&&(l=[l]);var f=t.multiply(t.multiply(c,l),e);return void 0===f.length&&(f=[[f]]),r?f.map((function(t){return t[0]})):f},jacobi:function(e){for(var r,o,i,s,a,u,c,l=1,f=e.length,h=t.identity(f,f),m=[];1===l;){for(a=e[0][1],i=0,s=1,r=0;r<f;r++)for(o=0;o<f;o++)r!=o&&a<n.abs(e[r][o])&&(a=n.abs(e[r][o]),i=r,s=o);for(u=e[i][i]===e[s][s]?e[i][s]>0?n.PI/4:-n.PI/4:n.atan(2*e[i][s]/(e[i][i]-e[s][s]))/2,(c=t.identity(f,f))[i][i]=n.cos(u),c[i][s]=-n.sin(u),c[s][i]=n.sin(u),c[s][s]=n.cos(u),h=t.multiply(h,c),e=t.multiply(t.multiply(t.inv(c),e),c),l=0,r=1;r<f;r++)for(o=1;o<f;o++)r!=o&&n.abs(e[r][o])>.001&&(l=1)}for(r=0;r<f;r++)m.push(e[r][r]);return[h,m]},rungekutta:function(t,n,e,r,o,i){var s,a,u;if(2===i)for(;r<=e;)o+=((s=n*t(r,o))+(a=n*t(r+n,o+s)))/2,r+=n;if(4===i)for(;r<=e;)o+=((s=n*t(r,o))+2*(a=n*t(r+n/2,o+s/2))+2*(u=n*t(r+n/2,o+a/2))+n*t(r+n,o+u))/6,r+=n;return o},romberg:function(t,e,r,o){for(var i,s,a,u,c,l=0,f=(r-e)/2,h=[],m=[],d=[];l<o/2;){for(c=t(e),a=e,u=0;a<=r;a+=f,u++)h[u]=a;for(i=h.length,a=1;a<i-1;a++)c+=(a%2!=0?4:2)*t(h[a]);c=f/3*(c+t(r)),d[l]=c,f/=2,l++}for(s=d.length,i=1;1!==s;){for(a=0;a<s-1;a++)m[a]=(n.pow(4,i)*d[a+1]-d[a])/(n.pow(4,i)-1);s=m.length,d=m,m=[],i++}return d},richardson:function(t,e,r,o){function i(t,n){for(var e,r=0,o=t.length;r<o;r++)t[r]===n&&(e=r);return e}for(var s,a,u,c,l,f=n.abs(r-t[i(t,r)+1]),h=0,m=[],d=[];o>=f;)s=i(t,r+o),a=i(t,r),m[h]=(e[s]-2*e[a]+e[2*a-s])/(o*o),o/=2,h++;for(c=m.length,u=1;1!=c;){for(l=0;l<c-1;l++)d[l]=(n.pow(4,u)*m[l+1]-m[l])/(n.pow(4,u)-1);c=d.length,m=d,d=[],u++}return m},simpson:function(t,n,e,r){for(var o,i=(e-n)/r,s=t(n),a=[],u=n,c=0,l=1;u<=e;u+=i,c++)a[c]=u;for(o=a.length;l<o-1;l++)s+=(l%2!=0?4:2)*t(a[l]);return i/3*(s+t(e))},hermite:function(t,n,e,r){for(var o,i=t.length,s=0,a=0,u=[],c=[],l=[],f=[];a<i;a++){for(u[a]=1,o=0;o<i;o++)a!=o&&(u[a]*=(r-t[o])/(t[a]-t[o]));for(c[a]=0,o=0;o<i;o++)a!=o&&(c[a]+=1/(t[a]-t[o]));l[a]=(1-2*(r-t[a])*c[a])*(u[a]*u[a]),f[a]=(r-t[a])*(u[a]*u[a]),s+=l[a]*n[a]+f[a]*e[a]}return s},lagrange:function(t,n,e){for(var r,o,i=0,s=0,a=t.length;s<a;s++){for(o=n[s],r=0;r<a;r++)s!=r&&(o*=(e-t[r])/(t[s]-t[r]));i+=o}return i},cubic_spline:function(n,e,r){for(var o,i,s=n.length,a=0,u=[],c=[],l=[],f=[],h=[],m=[];a<s-1;a++)f[a]=n[a+1]-n[a];for(l[0]=0,a=1;a<s-1;a++)l[a]=3/f[a]*(e[a+1]-e[a])-3/f[a-1]*(e[a]-e[a-1]);for(a=1;a<s-1;a++)u[a]=[],c[a]=[],u[a][a-1]=f[a-1],u[a][a]=2*(f[a-1]+f[a]),u[a][a+1]=f[a],c[a][0]=l[a];for(i=t.multiply(t.inv(u),c),o=0;o<s-1;o++)h[o]=(e[o+1]-e[o])/f[o]-f[o]*(i[o+1][0]+2*i[o][0])/3,m[o]=(i[o+1][0]-i[o][0])/(3*f[o]);for(o=0;o<s&&!(n[o]>r);o++);return e[o-=1]+(r-n[o])*h[o]+t.sq(r-n[o])*i[o]+(r-n[o])*t.sq(r-n[o])*m[o]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(n){var e,r,o,i,s,a=n.length,u=n[0].length,c=0,l=[],f=[],h=[],m=[],d=[],p=[],g=[];for(c=0;c<a;c++)l[c]=t.sum(n[c])/u;for(c=0;c<u;c++)for(d[c]=[],e=0;e<a;e++)d[c][e]=n[e][c]-l[e];for(d=t.transpose(d),c=0;c<a;c++)for(p[c]=[],e=0;e<a;e++)p[c][e]=t.dot([d[c]],[d[e]])/(u-1);for(s=(o=t.jacobi(p))[0],f=o[1],g=t.transpose(s),c=0;c<f.length;c++)for(e=c;e<f.length;e++)f[c]<f[e]&&(r=f[c],f[c]=f[e],f[e]=r,h=g[c],g[c]=g[e],g[e]=h);for(i=t.transpose(d),c=0;c<a;c++)for(m[c]=[],e=0;e<i.length;e++)m[c][e]=t.dot([g[c]],[i[e]]);return[n,f,g,m]}}),function(n){for(var e=0;e<n.length;e++)!function(n){t.fn[n]=function(e,r){var o=this;return r?(setTimeout((function(){r.call(o,t.fn[n].call(o,e))}),15),this):"number"==typeof t[n](this,e)?t[n](this,e):t(t[n](this,e))}}(n[e])}("add divide multiply subtract dot pow exp log abs norm angle".split(" "))}(n,Math),function(t,n){var e=[].slice,r=t.utils.isNumber,o=t.utils.isArray;function i(t,e,r,o){if(t>1||r>1||t<=0||r<=0)throw new Error("Proportions should be greater than 0 and less than 1");var i=(t*e+r*o)/(e+o);return(t-r)/n.sqrt(i*(1-i)*(1/e+1/o))}t.extend({zscore:function(){var n=e.call(arguments);return r(n[1])?(n[0]-n[1])/n[2]:(n[0]-t.mean(n[1]))/t.stdev(n[1],n[2])},ztest:function(){var r,i=e.call(arguments);return o(i[1])?(r=t.zscore(i[0],i[1],i[3]),1===i[2]?t.normal.cdf(-n.abs(r),0,1):2*t.normal.cdf(-n.abs(r),0,1)):i.length>2?(r=t.zscore(i[0],i[1],i[2]),1===i[3]?t.normal.cdf(-n.abs(r),0,1):2*t.normal.cdf(-n.abs(r),0,1)):(r=i[0],1===i[1]?t.normal.cdf(-n.abs(r),0,1):2*t.normal.cdf(-n.abs(r),0,1))}}),t.extend(t.fn,{zscore:function(t,n){return(t-this.mean())/this.stdev(n)},ztest:function(e,r,o){var i=n.abs(this.zscore(e,o));return 1===r?t.normal.cdf(-i,0,1):2*t.normal.cdf(-i,0,1)}}),t.extend({tscore:function(){var r=e.call(arguments);return 4===r.length?(r[0]-r[1])/(r[2]/n.sqrt(r[3])):(r[0]-t.mean(r[1]))/(t.stdev(r[1],!0)/n.sqrt(r[1].length))},ttest:function(){var o,i=e.call(arguments);return 5===i.length?(o=n.abs(t.tscore(i[0],i[1],i[2],i[3])),1===i[4]?t.studentt.cdf(-o,i[3]-1):2*t.studentt.cdf(-o,i[3]-1)):r(i[1])?(o=n.abs(i[0]),1==i[2]?t.studentt.cdf(-o,i[1]-1):2*t.studentt.cdf(-o,i[1]-1)):(o=n.abs(t.tscore(i[0],i[1])),1==i[2]?t.studentt.cdf(-o,i[1].length-1):2*t.studentt.cdf(-o,i[1].length-1))}}),t.extend(t.fn,{tscore:function(t){return(t-this.mean())/(this.stdev(!0)/n.sqrt(this.cols()))},ttest:function(e,r){return 1===r?1-t.studentt.cdf(n.abs(this.tscore(e)),this.cols()-1):2*t.studentt.cdf(-n.abs(this.tscore(e)),this.cols()-1)}}),t.extend({anovafscore:function(){var r,o,i,s,a,u,c,l,f=e.call(arguments);if(1===f.length){for(a=new Array(f[0].length),c=0;c<f[0].length;c++)a[c]=f[0][c];f=a}for(o=new Array,c=0;c<f.length;c++)o=o.concat(f[c]);for(i=t.mean(o),r=0,c=0;c<f.length;c++)r+=f[c].length*n.pow(t.mean(f[c])-i,2);for(r/=f.length-1,u=0,c=0;c<f.length;c++)for(s=t.mean(f[c]),l=0;l<f[c].length;l++)u+=n.pow(f[c][l]-s,2);return r/(u/(o.length-f.length))},anovaftest:function(){var n,o,i,s,a=e.call(arguments);if(r(a[0]))return 1-t.centralF.cdf(a[0],a[1],a[2]);var u=t.anovafscore(a);for(n=a.length-1,i=0,s=0;s<a.length;s++)i+=a[s].length;return o=i-n-1,1-t.centralF.cdf(u,n,o)},ftest:function(n,e,r){return 1-t.centralF.cdf(n,e,r)}}),t.extend(t.fn,{anovafscore:function(){return t.anovafscore(this.toArray())},anovaftes:function(){var n,e=0;for(n=0;n<this.length;n++)e+=this[n].length;return t.ftest(this.anovafscore(),this.length-1,e-this.length)}}),t.extend({qscore:function(){var o,i,s,a,u,c=e.call(arguments);return r(c[0])?(o=c[0],i=c[1],s=c[2],a=c[3],u=c[4]):(o=t.mean(c[0]),i=t.mean(c[1]),s=c[0].length,a=c[1].length,u=c[2]),n.abs(o-i)/(u*n.sqrt((1/s+1/a)/2))},qtest:function(){var n,r=e.call(arguments);3===r.length?(n=r[0],r=r.slice(1)):7===r.length?(n=t.qscore(r[0],r[1],r[2],r[3],r[4]),r=r.slice(5)):(n=t.qscore(r[0],r[1],r[2]),r=r.slice(3));var o=r[0],i=r[1];return 1-t.tukey.cdf(n,i,o-i)},tukeyhsd:function(n){for(var e=t.pooledstdev(n),r=n.map((function(n){return t.mean(n)})),o=n.reduce((function(t,n){return t+n.length}),0),i=[],s=0;s<n.length;++s)for(var a=s+1;a<n.length;++a){var u=t.qtest(r[s],r[a],n[s].length,n[a].length,e,o,n.length);i.push([[s,a],u])}return i}}),t.extend({normalci:function(){var r,o=e.call(arguments),i=new Array(2);return r=4===o.length?n.abs(t.normal.inv(o[1]/2,0,1)*o[2]/n.sqrt(o[3])):n.abs(t.normal.inv(o[1]/2,0,1)*t.stdev(o[2])/n.sqrt(o[2].length)),i[0]=o[0]-r,i[1]=o[0]+r,i},tci:function(){var r,o=e.call(arguments),i=new Array(2);return r=4===o.length?n.abs(t.studentt.inv(o[1]/2,o[3]-1)*o[2]/n.sqrt(o[3])):n.abs(t.studentt.inv(o[1]/2,o[2].length-1)*t.stdev(o[2],!0)/n.sqrt(o[2].length)),i[0]=o[0]-r,i[1]=o[0]+r,i},significant:function(t,n){return t<n}}),t.extend(t.fn,{normalci:function(n,e){return t.normalci(n,e,this.toArray())},tci:function(n,e){return t.tci(n,e,this.toArray())}}),t.extend(t.fn,{oneSidedDifferenceOfProportions:function(n,e,r,o){var s=i(n,e,r,o);return t.ztest(s,1)},twoSidedDifferenceOfProportions:function(n,e,r,o){var s=i(n,e,r,o);return t.ztest(s,2)}})}(n,Math),n.models=function(){function t(t,e){var r=t.length,o=e[0].length-1,i=r-o-1,s=n.lstsq(e,t),a=n.multiply(e,s.map((function(t){return[t]}))).map((function(t){return t[0]})),u=n.subtract(t,a),c=n.mean(t),l=n.sum(a.map((function(t){return Math.pow(t-c,2)}))),f=n.sum(t.map((function(t,n){return Math.pow(t-a[n],2)}))),h=l+f;return{exog:e,endog:t,nobs:r,df_model:o,df_resid:i,coef:s,predict:a,resid:u,ybar:c,SST:h,SSE:l,SSR:f,R2:l/h}}function e(e){var r,o,i=(r=e.exog,o=r[0].length,n.arange(o).map((function(e){var i=n.arange(o).filter((function(t){return t!==e}));return t(n.col(r,e).map((function(t){return t[0]})),n.col(r,i))}))),s=Math.sqrt(e.SSR/e.df_resid),a=i.map((function(t){var n=t.SST,e=t.R2;return s/Math.sqrt(n*(1-e))})),u=e.coef.map((function(t,n){return(t-0)/a[n]})),c=u.map((function(t){var r=n.studentt.cdf(t,e.df_resid);return 2*(r>.5?1-r:r)})),l=n.studentt.inv(.975,e.df_resid),f=e.coef.map((function(t,n){var e=l*a[n];return[t-e,t+e]}));return{se:a,t:u,p:c,sigmaHat:s,interval95:f}}return{ols:function(r,o){var i=t(r,o),s=e(i),a=function(t){var e,r,o,i=t.R2/t.df_model/((1-t.R2)/t.df_resid);return{F_statistic:i,pvalue:1-(e=i,r=t.df_model,o=t.df_resid,n.beta.cdf(e/(o/r+e),r/2,o/2))}}(i),u=1-(1-i.R2)*((i.nobs-1)/i.df_resid);return i.t=s,i.f=a,i.adjust_R2=u,i}}}(),n.extend({buildxmatrix:function(){for(var t=new Array(arguments.length),e=0;e<arguments.length;e++){t[e]=[1].concat(arguments[e])}return n(t)},builddxmatrix:function(){for(var t=new Array(arguments[0].length),e=0;e<arguments[0].length;e++){t[e]=[1].concat(arguments[0][e])}return n(t)},buildjxmatrix:function(t){for(var e=new Array(t.length),r=0;r<t.length;r++)e[r]=t[r];return n.builddxmatrix(e)},buildymatrix:function(t){return n(t).transpose()},buildjymatrix:function(t){return t.transpose()},matrixmult:function(t,e){var r,o,i,s,a;if(t.cols()==e.rows()){if(e.rows()>1){for(s=[],r=0;r<t.rows();r++)for(s[r]=[],o=0;o<e.cols();o++){for(a=0,i=0;i<t.cols();i++)a+=t.toArray()[r][i]*e.toArray()[i][o];s[r][o]=a}return n(s)}for(s=[],r=0;r<t.rows();r++)for(s[r]=[],o=0;o<e.cols();o++){for(a=0,i=0;i<t.cols();i++)a+=t.toArray()[r][i]*e.toArray()[o];s[r][o]=a}return n(s)}},regress:function(t,e){var r=n.xtranspxinv(t),o=t.transpose(),i=n.matrixmult(n(r),o);return n.matrixmult(i,e)},regresst:function(t,e,r){var o=n.regress(t,e),i={anova:{}},s=n.jMatYBar(t,o);i.yBar=s;var a=e.mean();i.anova.residuals=n.residuals(e,s),i.anova.ssr=n.ssr(s,a),i.anova.msr=i.anova.ssr/(t[0].length-1),i.anova.sse=n.sse(e,s),i.anova.mse=i.anova.sse/(e.length-(t[0].length-1)-1),i.anova.sst=n.sst(e,a),i.anova.mst=i.anova.sst/(e.length-1),i.anova.r2=1-i.anova.sse/i.anova.sst,i.anova.r2<0&&(i.anova.r2=0),i.anova.fratio=i.anova.msr/i.anova.mse,i.anova.pvalue=n.anovaftest(i.anova.fratio,t[0].length-1,e.length-(t[0].length-1)-1),i.anova.rmse=Math.sqrt(i.anova.mse),i.anova.r2adj=1-i.anova.mse/i.anova.mst,i.anova.r2adj<0&&(i.anova.r2adj=0),i.stats=new Array(t[0].length);for(var u,c,l,f=n.xtranspxinv(t),h=0;h<o.length;h++)u=Math.sqrt(i.anova.mse*Math.abs(f[h][h])),c=Math.abs(o[h]/u),l=n.ttest(c,e.length-t[0].length-1,r),i.stats[h]=[o[h],u,c,l];return i.regress=o,i},xtranspx:function(t){return n.matrixmult(t.transpose(),t)},xtranspxinv:function(t){var e=n.matrixmult(t.transpose(),t);return n.inv(e)},jMatYBar:function(t,e){var r=n.matrixmult(t,e);return new n(r)},residuals:function(t,e){return n.matrixsubtract(t,e)},ssr:function(t,n){for(var e=0,r=0;r<t.length;r++)e+=Math.pow(t[r]-n,2);return e},sse:function(t,n){for(var e=0,r=0;r<t.length;r++)e+=Math.pow(t[r]-n[r],2);return e},sst:function(t,n){for(var e=0,r=0;r<t.length;r++)e+=Math.pow(t[r]-n,2);return e},matrixsubtract:function(t,e){for(var r=new Array(t.length),o=0;o<t.length;o++){r[o]=new Array(t[o].length);for(var i=0;i<t[o].length;i++)r[o][i]=t[o][i]-e[o][i]}return n(r)}}),n.jStat=n,n)}},n={};function e(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}e.m=t,e.amdO={},e.d=(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.u=t=>t+".js",e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.hmd=t=>((t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t),e.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{var t;e.g.importScripts&&(t=e.g.location+"");var n=e.g.document;if(!t&&n&&(n.currentScript&&"SCRIPT"===n.currentScript.tagName.toUpperCase()&&(t=n.currentScript.src),!t)){var r=n.getElementsByTagName("script");if(r.length)for(var o=r.length-1;o>-1&&(!t||!/^http(s?):/.test(t));)t=r[o--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t})(),e.b=document.baseURI||self.location.href;var r={};(()=>{"use strict";e.r(r),e.d(r,{_package:()=>He,initAutoTests:()=>Ve,test:()=>Ge,tests:()=>h});const t=DG,n=grok;e(9982);const o=t.DataFrame.fromCsv('countries,fasta,smiles,molregno,LON,Zip Code,Street Address Line 1,ImageUrl,user_id,error_message,xray,flag,magnitude,CS-id,pdb_id,accel_a,time_offset,chart,fit,Questions,empty_number,empty_string\nBelgium,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C(=O)OCCCc1cccnc1)c2cccc(c2)C(=O)c3ccccc3,1480014,36.276729583740234,995042300,14016 ROUTE 31W,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,1,1,1QBS,1,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.497360340644872, 1.7058694986686864, 5.278052678195135, 0.16000320889028383],""points"":[{""x"":0.10000000149011612,""y"":2.374499797821045},{""x"":0.6000000238418579,""y"":2.6242473125457764},{""x"":1.100000023841858,""y"":2.367267608642578},{""x"":1.600000023841858,""y"":2.6723148822784424},{""x"":2.0999999046325684,""y"":2.6537344455718994},{""x"":2.5999999046325684,""y"":2.3651671409606934},{""x"":3.0999999046325684,""y"":2.5654284954071045},{""x"":3.5999999046325684,""y"":2.4160959720611572},{""x"":4.099999904632568,""y"":2.286726713180542},{""x"":4.599999904632568,""y"":2.5100042819976807},{""x"":5.099999904632568,""y"":1.6676985025405884},{""x"":5.599999904632568,""y"":0.680136501789093},{""x"":6.099999904632568,""y"":0.3391543924808502},{""x"":6.599999904632568,""y"":0.09038983285427094},{""x"":7.099999904632568,""y"":0.19802775979042053}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[7.525235855508179, 1.3186911876809984, 5.335672608564294, 0.7860743343958098],""points"":[{""x"":0.10000000149011612,""y"":7.988070487976074},{""x"":0.6000000238418579,""y"":7.018453121185303},{""x"":1.100000023841858,""y"":8.115279197692871},{""x"":1.600000023841858,""y"":7.486658096313477},{""x"":2.0999999046325684,""y"":7.396438121795654},{""x"":2.5999999046325684,""y"":7.477052211761475},{""x"":3.0999999046325684,""y"":6.913095474243164},{""x"":3.5999999046325684,""y"":8.01385498046875},{""x"":4.099999904632568,""y"":6.985900402069092},{""x"":4.599999904632568,""y"":6.970335960388184},{""x"":5.099999904632568,""y"":5.448817253112793},{""x"":5.599999904632568,""y"":2.5534818172454834},{""x"":6.099999904632568,""y"":1.893947958946228},{""x"":6.599999904632568,""y"":0.6340042352676392},{""x"":7.099999904632568,""y"":0.8403874039649963}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,100,abc\nBurundi,MDYKETLLMPKTDFPMRGGLPNKEPQIQEKW,COc1ccc2cc(ccc2c1)C(C)C(=O)Oc3ccc(C)cc3OC,1480015,36.276729583740234,995073444,80 STATE HIGHWAY 310,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,2,2,1ZP8,2,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.431460753103398, 2.1691498799246745, 5.266445597102774, 0.7825762827017926],""points"":[{""x"":0.10000000149011612,""y"":4.751083850860596},{""x"":0.6000000238418579,""y"":4.203000068664551},{""x"":1.100000023841858,""y"":4.415858745574951},{""x"":1.600000023841858,""y"":4.68414306640625},{""x"":2.0999999046325684,""y"":4.198400974273682},{""x"":2.5999999046325684,""y"":4.179222106933594},{""x"":3.0999999046325684,""y"":4.638473987579346},{""x"":3.5999999046325684,""y"":4.708553314208984},{""x"":4.099999904632568,""y"":4.291589260101318},{""x"":4.599999904632568,""y"":4.038082599639893},{""x"":5.099999904632568,""y"":3.4349939823150635},{""x"":5.599999904632568,""y"":1.2194708585739136},{""x"":6.099999904632568,""y"":1.1920831203460693},{""x"":6.599999904632568,""y"":0.5352635979652405},{""x"":7.099999904632568,""y"":0.3346920311450958}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.339458017970126, -1.0734184310171178, 4.746332950550934, 0.2482416857595658],""points"":[{""x"":0.10000000149011612,""y"":0.2139337658882141},{""x"":0.6000000238418579,""y"":0.4269562065601349},{""x"":1.100000023841858,""y"":0.2441573292016983},{""x"":1.600000023841858,""y"":0.146635964512825},{""x"":2.0999999046325684,""y"":0.08818462491035461},{""x"":2.5999999046325684,""y"":0.2560656666755676},{""x"":3.0999999046325684,""y"":0.42434045672416687},{""x"":3.5999999046325684,""y"":0.37111231684684753},{""x"":4.099999904632568,""y"":0.5581737160682678},{""x"":4.599999904632568,""y"":1.183590054512024},{""x"":5.099999904632568,""y"":1.5629843473434448},{""x"":5.599999904632568,""y"":2.3211288452148438},{""x"":6.099999904632568,""y"":2.229961633682251},{""x"":6.599999904632568,""y"":2.2560226917266846},{""x"":7.099999904632568,""y"":2.2142398357391357}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCameroon,MIEVFLFGIVLGLIPITLAGLFVTAYLQYRRGDQLDL,COc1ccc2cc(ccc2c1)C(C)C(=O)OCCCc3cccnc3,1480016,36.26095962524414,995153596,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,3,3,2BDJ,3,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.6760652578642325, 0.9046956320756703, 5.651408971856738, 0.07738846012184185],""points"":[{""x"":0.10000000149011612,""y"":4.32425594329834},{""x"":0.6000000238418579,""y"":4.668442249298096},{""x"":1.100000023841858,""y"":4.379785060882568},{""x"":1.600000023841858,""y"":5.0345139503479},{""x"":2.0999999046325684,""y"":4.878653526306152},{""x"":2.5999999046325684,""y"":4.3451313972473145},{""x"":3.0999999046325684,""y"":4.336992263793945},{""x"":3.5999999046325684,""y"":5.037430286407471},{""x"":4.099999904632568,""y"":5.0092692375183105},{""x"":4.599999904632568,""y"":4.151902675628662},{""x"":5.099999904632568,""y"":3.4066951274871826},{""x"":5.599999904632568,""y"":2.3732759952545166},{""x"":6.099999904632568,""y"":1.673728108406067},{""x"":6.599999904632568,""y"":0.48574790358543396},{""x"":7.099999904632568,""y"":0.2783052325248718}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.938395863010111, -1.4658480661392117, 5.462702751996584, 0.3473139023615039],""points"":[{""x"":0.10000000149011612,""y"":0.4941710829734802},{""x"":0.6000000238418579,""y"":0.15323974192142487},{""x"":1.100000023841858,""y"":0.46373432874679565},{""x"":1.600000023841858,""y"":0.3370431363582611},{""x"":2.0999999046325684,""y"":0.5179030299186707},{""x"":2.5999999046325684,""y"":0.27899765968322754},{""x"":3.0999999046325684,""y"":0.22075064480304718},{""x"":3.5999999046325684,""y"":0.5789918899536133},{""x"":4.099999904632568,""y"":0.21169911324977875},{""x"":4.599999904632568,""y"":0.27857646346092224},{""x"":5.099999904632568,""y"":1.0906332731246948},{""x"":5.599999904632568,""y"":1.8520300388336182},{""x"":6.099999904632568,""y"":2.7177059650421143},{""x"":6.599999904632568,""y"":2.8680918216705322},{""x"":7.099999904632568,""y"":3.2413077354431152}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCanada,MMELVLKTIIGPIVVGVVLRIVDKWLNKDK,CC(C(=O)NCCS)c1cccc(c1)C(=O)c2ccccc2,1480017,36.26095962524414,99515,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,4,4,1IAN,4,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[0.8597390975430008, 1.0957625732481946, 5.260537067987958, 0.07974187998177736],""points"":[{""x"":0.10000000149011612,""y"":0.8190152645111084},{""x"":0.6000000238418579,""y"":0.8421689867973328},{""x"":1.100000023841858,""y"":0.8740922212600708},{""x"":1.600000023841858,""y"":0.8924275040626526},{""x"":2.0999999046325684,""y"":0.8249067664146423},{""x"":2.5999999046325684,""y"":0.9327669143676758},{""x"":3.0999999046325684,""y"":0.8522974252700806},{""x"":3.5999999046325684,""y"":0.8174492716789246},{""x"":4.099999904632568,""y"":0.8394647240638733},{""x"":4.599999904632568,""y"":0.7139387726783752},{""x"":5.099999904632568,""y"":0.5561167597770691},{""x"":5.599999904632568,""y"":0.3276226818561554},{""x"":6.099999904632568,""y"":0.12479474395513535},{""x"":6.599999904632568,""y"":0.13006797432899475},{""x"":7.099999904632568,""y"":0.059702079743146896}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.760930219582546, 1.6591793293833013, 4.667155929720851, 0.7858109544121652],""points"":[{""x"":0.10000000149011612,""y"":6.156993389129639},{""x"":0.6000000238418579,""y"":5.236701965332031},{""x"":1.100000023841858,""y"":6.010560512542725},{""x"":1.600000023841858,""y"":5.495512962341309},{""x"":2.0999999046325684,""y"":6.087770462036133},{""x"":2.5999999046325684,""y"":5.79986572265625},{""x"":3.0999999046325684,""y"":5.597546577453613},{""x"":3.5999999046325684,""y"":5.520902156829834},{""x"":4.099999904632568,""y"":5.360654354095459},{""x"":4.599999904632568,""y"":3.5539746284484863},{""x"":5.099999904632568,""y"":1.577236294746399},{""x"":5.599999904632568,""y"":1.0001264810562134},{""x"":6.099999904632568,""y"":0.9305797815322876},{""x"":6.599999904632568,""y"":0.6033638715744019},{""x"":7.099999904632568,""y"":0.4203685522079468}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nColombia,MDRTDEVSNHTHDKPTLTWFEEIFEEYHSPFHN,FC(F)(F)c1ccc(OC2CCNCC2)cc1,1480029,36.3309440612793,995152050,1 COURT HOUSE SQUARE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,5,5,4UJ1,5,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[6.4995088314153655, 2.4270351004539914, 5.178659535348579, 0.625653346241577],""points"":[{""x"":0.10000000149011612,""y"":6.496231555938721},{""x"":0.6000000238418579,""y"":6.42543363571167},{""x"":1.100000023841858,""y"":7.040063858032227},{""x"":1.600000023841858,""y"":6.1115403175354},{""x"":2.0999999046325684,""y"":6.680728435516357},{""x"":2.5999999046325684,""y"":6.406774520874023},{""x"":3.0999999046325684,""y"":6.611269474029541},{""x"":3.5999999046325684,""y"":5.889094352722168},{""x"":4.099999904632568,""y"":6.75344705581665},{""x"":4.599999904632568,""y"":6.361435890197754},{""x"":5.099999904632568,""y"":4.1666975021362305},{""x"":5.599999904632568,""y"":1.172118902206421},{""x"":6.099999904632568,""y"":0.801048994064331},{""x"":6.599999904632568,""y"":0.4640021026134491},{""x"":7.099999904632568,""y"":0.0010357667924836278}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[1.4734381347446401, 1.1649805188074196, 4.82958608866421, 0.09500545496710007],""points"":[{""x"":0.10000000149011612,""y"":1.5279096364974976},{""x"":0.6000000238418579,""y"":1.3559974431991577},{""x"":1.100000023841858,""y"":1.5246378183364868},{""x"":1.600000023841858,""y"":1.5567657947540283},{""x"":2.0999999046325684,""y"":1.4114240407943726},{""x"":2.5999999046325684,""y"":1.4045010805130005},{""x"":3.0999999046325684,""y"":1.4769829511642456},{""x"":3.5999999046325684,""y"":1.4875500202178955},{""x"":4.099999904632568,""y"":1.2991987466812134},{""x"":4.599999904632568,""y"":0.922961413860321},{""x"":5.099999904632568,""y"":0.6520044803619385},{""x"":5.599999904632568,""y"":0.15350978076457977},{""x"":6.099999904632568,""y"":0.1078903079032898},{""x"":6.599999904632568,""y"":0.17276449501514435},{""x"":7.099999904632568,""y"":0.14066608250141144}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCosta Rica,MKSTKEEIQTIKTLLKDSRTAKYHKRLQIVL,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCCc3ccccc3,1480018,36.3309440612793,995084218,4041 SOUTHWESTERN BLVD,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,6,6,2BPW,6,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.4833641843311227, -1.8945978742090062, 4.671127708092568, 0.24159861311815153],""points"":[{""x"":0.10000000149011612,""y"":0.0969524160027504},{""x"":0.6000000238418579,""y"":0.028483040630817413},{""x"":1.100000023841858,""y"":0.22087176144123077},{""x"":1.600000023841858,""y"":0.0068915546871721745},{""x"":2.0999999046325684,""y"":0.4305879771709442},{""x"":2.5999999046325684,""y"":0.44774115085601807},{""x"":3.0999999046325684,""y"":0.45346319675445557},{""x"":3.5999999046325684,""y"":0.2370593100786209},{""x"":4.099999904632568,""y"":0.4657953977584839},{""x"":4.599999904632568,""y"":1.155200719833374},{""x"":5.099999904632568,""y"":2.2294070720672607},{""x"":5.599999904632568,""y"":2.4311530590057373},{""x"":6.099999904632568,""y"":2.33846116065979},{""x"":6.599999904632568,""y"":2.608201026916504},{""x"":7.099999904632568,""y"":2.8136143684387207}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.224573521642033, 1.4454033924198528, 5.6014197746076535, 0.2823216054197577],""points"":[{""x"":0.10000000149011612,""y"":4.95027494430542},{""x"":0.6000000238418579,""y"":5.1754679679870605},{""x"":1.100000023841858,""y"":5.276752948760986},{""x"":1.600000023841858,""y"":5.589294910430908},{""x"":2.0999999046325684,""y"":5.616994857788086},{""x"":2.5999999046325684,""y"":5.120813846588135},{""x"":3.0999999046325684,""y"":5.340766906738281},{""x"":3.5999999046325684,""y"":4.876471042633057},{""x"":4.099999904632568,""y"":4.94999361038208},{""x"":4.599999904632568,""y"":5.162564754486084},{""x"":5.099999904632568,""y"":4.399557590484619},{""x"":5.599999904632568,""y"":2.7977969646453857},{""x"":6.099999904632568,""y"":1.0229872465133667},{""x"":6.599999904632568,""y"":0.48275601863861084},{""x"":7.099999904632568,""y"":0.10408931970596313}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCuba,MHAILRYFIRRLFYHIFYKIYSLISKKHQSLPSDVRQF,COc1ccc2c(c1)c(CC(=O)N3CCCC3C(=O)Oc4ccc(C)cc4OC)c(C)n2C(=O)c5ccc(Cl)cc5,1480019,36.33115768432617,995081928,1227 US HIGHWAY 11,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,7,7,1QBS,7,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.320838679713925, -1.2421619987316728, 4.831325425225256, 0.3236011098403072],""points"":[{""x"":0.10000000149011612,""y"":0.3727470338344574},{""x"":0.6000000238418579,""y"":0.12365014106035233},{""x"":1.100000023841858,""y"":0.48422467708587646},{""x"":1.600000023841858,""y"":0.2264465093612671},{""x"":2.0999999046325684,""y"":0.16821794211864471},{""x"":2.5999999046325684,""y"":0.3879014551639557},{""x"":3.0999999046325684,""y"":0.5470244884490967},{""x"":3.5999999046325684,""y"":0.3419053554534912},{""x"":4.099999904632568,""y"":0.7655120491981506},{""x"":4.599999904632568,""y"":1.2346516847610474},{""x"":5.099999904632568,""y"":2.453336715698242},{""x"":5.599999904632568,""y"":2.9565491676330566},{""x"":6.099999904632568,""y"":3.335299491882324},{""x"":6.599999904632568,""y"":3.240290880203247},{""x"":7.099999904632568,""y"":3.1107218265533447}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.6401853521511094, 1.26211588875013, 5.399028074402744, 0.5089580830068091],""points"":[{""x"":0.10000000149011612,""y"":3.8585598468780518},{""x"":0.6000000238418579,""y"":3.6077206134796143},{""x"":1.100000023841858,""y"":3.855252265930176},{""x"":1.600000023841858,""y"":3.619039297103882},{""x"":2.0999999046325684,""y"":3.839388370513916},{""x"":2.5999999046325684,""y"":3.335283041000366},{""x"":3.0999999046325684,""y"":3.571141481399536},{""x"":3.5999999046325684,""y"":3.4155046939849854},{""x"":4.099999904632568,""y"":3.7316646575927734},{""x"":4.599999904632568,""y"":3.0680155754089355},{""x"":5.099999904632568,""y"":2.891066551208496},{""x"":5.599999904632568,""y"":1.6022753715515137},{""x"":6.099999904632568,""y"":0.7652576565742493},{""x"":6.599999904632568,""y"":0.6875326037406921},{""x"":7.099999904632568,""y"":0.5828871726989746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nItaly,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO[N+](=O)[O-],1480020,36.33115768432617,99502,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,8,8,1ZP8,8,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.293592105923809, 1.3781586549141835, 5.1025898038676605, 0.03493851245291291],""points"":[{""x"":0.10000000149011612,""y"":2.1287283897399902},{""x"":0.6000000238418579,""y"":2.267972230911255},{""x"":1.100000023841858,""y"":2.398442506790161},{""x"":1.600000023841858,""y"":2.5130622386932373},{""x"":2.0999999046325684,""y"":2.3255116939544678},{""x"":2.5999999046325684,""y"":2.127340793609619},{""x"":3.0999999046325684,""y"":2.47259783744812},{""x"":3.5999999046325684,""y"":2.131181478500366},{""x"":4.099999904632568,""y"":2.090421438217163},{""x"":4.599999904632568,""y"":2.02299165725708},{""x"":5.099999904632568,""y"":1.1105059385299683},{""x"":5.599999904632568,""y"":0.4494485855102539},{""x"":6.099999904632568,""y"":0.1375635862350464},{""x"":6.599999904632568,""y"":0.036351121962070465},{""x"":7.099999904632568,""y"":0.1619771122932434}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.953125499439879, 1.2528620255306528, 5.187637440149802, 0.3110348753260886],""points"":[{""x"":0.10000000149011612,""y"":5.6585283279418945},{""x"":0.6000000238418579,""y"":5.911152362823486},{""x"":1.100000023841858,""y"":5.924920082092285},{""x"":1.600000023841858,""y"":5.8469438552856445},{""x"":2.0999999046325684,""y"":5.929472923278809},{""x"":2.5999999046325684,""y"":6.190037727355957},{""x"":3.0999999046325684,""y"":6.236179828643799},{""x"":3.5999999046325684,""y"":6.141019344329834},{""x"":4.099999904632568,""y"":5.295210838317871},{""x"":4.599999904632568,""y"":5.265801906585693},{""x"":5.099999904632568,""y"":3.3722851276397705},{""x"":5.599999904632568,""y"":1.8299226760864258},{""x"":6.099999904632568,""y"":0.32690900564193726},{""x"":6.599999904632568,""y"":0.6274543404579163},{""x"":7.099999904632568,""y"":0.8441857099533081}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nRwanda,MPNSEPASLLELFNSIATQGELVRSLKAGNASK,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO,1480021,36.33137130737305,995037247,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,9,2BDJ,9,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.8209972202654474, 1.3779216716448506, 5.299882228439686, 0.06040645519069608],""points"":[{""x"":0.10000000149011612,""y"":3.7821109294891357},{""x"":0.6000000238418579,""y"":3.542433023452759},{""x"":1.100000023841858,""y"":3.7008674144744873},{""x"":1.600000023841858,""y"":3.717301607131958},{""x"":2.0999999046325684,""y"":4.024452209472656},{""x"":2.5999999046325684,""y"":4.013899326324463},{""x"":3.0999999046325684,""y"":3.945094347000122},{""x"":3.5999999046325684,""y"":3.866621971130371},{""x"":4.099999904632568,""y"":3.7461626529693604},{""x"":4.599999904632568,""y"":3.3454740047454834},{""x"":5.099999904632568,""y"":2.61944317817688},{""x"":5.599999904632568,""y"":0.999405026435852},{""x"":6.099999904632568,""y"":0.46259793639183044},{""x"":6.599999904632568,""y"":0.054134611040353775},{""x"":7.099999904632568,""y"":0.05711187422275543}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.6318079657726035, 1.8495493770000595, 5.391793312471116, 0.17060707587348442],""points"":[{""x"":0.10000000149011612,""y"":5.458079814910889},{""x"":0.6000000238418579,""y"":5.554427146911621},{""x"":1.100000023841858,""y"":5.799983024597168},{""x"":1.600000023841858,""y"":5.364140033721924},{""x"":2.0999999046325684,""y"":5.864485740661621},{""x"":2.5999999046325684,""y"":5.4509806632995605},{""x"":3.0999999046325684,""y"":5.702574729919434},{""x"":3.5999999046325684,""y"":5.7314534187316895},{""x"":4.099999904632568,""y"":5.5123443603515625},{""x"":4.599999904632568,""y"":5.724395751953125},{""x"":5.099999904632568,""y"":4.354506969451904},{""x"":5.599999904632568,""y"":1.7307666540145874},{""x"":6.099999904632568,""y"":0.6305936574935913},{""x"":6.599999904632568,""y"":0.035183437168598175},{""x"":7.099999904632568,""y"":0.7575169205665588}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nSwitzerland,IRVVGRYLIEVWKAAGMDMDKVLFLWSSDEI,CN1CCC(CC1)Oc2ccc(cc2)C(F)(F)F,1480028,36.33137130737305,99504,92-11 179TH PLACE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,10,1IAN,10,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[1.1190255865097471, 2.3163895161544437, 5.4968866182279195, 0.2035204047289052],""points"":[{""x"":0.10000000149011612,""y"":1.1057683229446411},{""x"":0.6000000238418579,""y"":1.1019697189331055},{""x"":1.100000023841858,""y"":1.0818607807159424},{""x"":1.600000023841858,""y"":1.062997817993164},{""x"":2.0999999046325684,""y"":1.046447515487671},{""x"":2.5999999046325684,""y"":1.1217249631881714},{""x"":3.0999999046325684,""y"":1.2166996002197266},{""x"":3.5999999046325684,""y"":1.215477705001831},{""x"":4.099999904632568,""y"":1.0581893920898438},{""x"":4.599999904632568,""y"":1.1747995615005493},{""x"":5.099999904632568,""y"":1.0181127786636353},{""x"":5.599999904632568,""y"":0.5344523191452026},{""x"":6.099999904632568,""y"":0.2569526433944702},{""x"":6.599999904632568,""y"":0.1912207305431366},{""x"":7.099999904632568,""y"":0.15060538053512573}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.1038581025805785, 2.0032224204185245, 5.087602825989163, 0.13277988512492753],""points"":[{""x"":0.10000000149011612,""y"":3.0498509407043457},{""x"":0.6000000238418579,""y"":2.805217742919922},{""x"":1.100000023841858,""y"":3.3415253162384033},{""x"":1.600000023841858,""y"":3.0549843311309814},{""x"":2.0999999046325684,""y"":3.250074863433838},{""x"":2.5999999046325684,""y"":3.0432586669921875},{""x"":3.0999999046325684,""y"":3.265852451324463},{""x"":3.5999999046325684,""y"":2.9475724697113037},{""x"":4.099999904632568,""y"":3.1929898262023926},{""x"":4.599999904632568,""y"":2.7460060119628906},{""x"":5.099999904632568,""y"":1.6175861358642578},{""x"":5.599999904632568,""y"":0.3006608486175537},{""x"":6.099999904632568,""y"":0.3444803059101105},{""x"":6.599999904632568,""y"":0.015537971630692482},{""x"":7.099999904632568,""y"":0.5527358055114746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\n,,,,,,,,,,,,,,,,,,,,,');o.columns.add(t.Column.fromList(t.TYPE.BYTE_ARRAY,"BinaryImage",Array.from(new Uint8Array(11))));var i=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const s=3e4,a=108e5,u=console.log.bind(console),c=console.info.bind(console),l=console.warn.bind(console),f=console.error.bind(console),h={},m="Auto Tests",d="Demo",p="Detectors",g="Core",y={};let v;var w,E,A,C,_,x,N,b,S,T;!function(t){t.notNull=function(t,n){if(null==t)throw new Error(`${null==n?"Value":n} not defined`)}}(w||(w={}));class I{constructor(t,n){this.catchUnhandled=!0,this.report=!1,void 0!==t&&(this.catchUnhandled=t),void 0!==n&&(this.report=n)}}class M{constructor(t,n,e,r){var o;this.category=t,this.name=n,null!=r||(r={}),null!==(o=r.timeout)&&void 0!==o||(r.timeout=s),this.options=r,this.test=()=>i(this,void 0,void 0,(function*(){return new Promise(((t,n)=>i(this,void 0,void 0,(function*(){let r="";try{r=yield e()}catch(t){n(t)}t(r)}))))}))}}function O(t,n,e){null==h[v]&&(h[v]={}),null==h[v].tests&&(h[v].tests=[]),h[v].tests.push(new M(v,t,n,e))}function R(t,n=!0,e){if(e=e?`${e}, `:"",t!==n)throw new Error(`${e}Expected "${n}", got "${t}"`)}function L(t,n,e){var r;v=t,n(),h[v]&&(h[v].clear=null===(r=null==e?void 0:e.clear)||void 0===r||r,h[v].timeout=null==e?void 0:e.timeout,h[v].benchmarks=null==e?void 0:e.benchmarks,h[v].stressTests=null==e?void 0:e.stressTests,h[v].owner=null==e?void 0:e.owner)}function P(t,n){return t.replace(new RegExp(n.name,"gi"),n.nqName)}function D(e,r){var u,c,l,f,v,w,E;return i(this,void 0,void 0,(function*(){const A=e.id;if(y[A])return;const C=r?r.tests:h;if(void 0!==C[m]||void 0!==C[d]||Object.keys(C).find((t=>t.startsWith(m)||t.startsWith(g))))return void(y[A]=!0);if("DevTools"===e.name||r&&"DevTools"===r._package.name)for(const t of window.dartTests){const n=t.name.split(/\s*\|\s*!/g);let e=null!==(u=n.pop())&&void 0!==u?u:t.name,r=n.length?g+": "+n.join(": "):g,o=e.split(" | ");e=o[o.length-1],o.unshift(r),o.pop(),r=o.join(": "),void 0===C[r]&&(C[r]={tests:[],clear:!0}),C[r].tests.push(new M(r,e,t.test,{isAggregated:!1,timeout:null!==(l=null===(c=t.options)||void 0===c?void 0:c.timeout)&&void 0!==l?l:s,skipReason:null===(f=t.options)||void 0===f?void 0:f.skipReason,owner:null===(v=t.options)||void 0===v?void 0:v.owner}))}const _=[],x=[],N=[],b=yield n.dapi.functions.filter(`package.id = "${A}"`).list(),S=new RegExp(/skip:\s*([^,\s]+)|wait:\s*(\d+)|cat:\s*([^,\s]+)|timeout:\s*(\d+)/g);for(const r of b){const u=r.options.test,c=r.options.demoPath;if(u&&Array.isArray(u)&&u.length)for(let e=0;e<u.length;e++){const o=u[e].matchAll(S),c={};Array.from(o).forEach((t=>{t[0].startsWith("skip")?c.skip=t[1]:t[0].startsWith("wait")?c.wait=parseInt(t[2]):t[0].startsWith("cat")?c.cat=t[3]:t[0].startsWith("timeout")&&(c.timeout=parseInt(t[4]))}));const l=new M(m,1===u.length?r.name:`${r.name} ${e+1}`,(()=>i(this,void 0,void 0,(function*(){const t=yield n.functions.eval(P(u[e],r));if(c.wait&&(yield k(c.wait)),"boolean"==typeof t&&!t)throw`Failed: ${u[e]}, expected true, got ${t}`}))),{skipReason:c.skip,timeout:t.Test.isInBenchmark?null!==(w=c.benchmarkTimeout)&&void 0!==w?w:a:null!==(E=c.timeout)&&void 0!==E?E:s});if(c.cat){const t=m+": "+c.cat;l.category=t,void 0===C[t]&&(C[t]={tests:[],clear:!0}),C[t].tests.push(l)}else _.push(l)}if(c){const e=r.options.demoWait?parseInt(r.options.demoWait):void 0,o=new M(d,r.friendlyName,(()=>i(this,void 0,void 0,(function*(){n.shell.isInDemo=!0,void 0===n.shell.view(t.View.BROWSE)&&(n.shell.v=t.View.createByType(t.View.BROWSE)),yield k(300),n.shell.clearLastError(),yield r.apply(),yield k(e||2e3);const o=yield n.shell.lastError;if(o)throw new Error(o);n.shell.isInDemo=!1}))),{skipReason:r.options.demoSkip});x.push(o)}if(r.hasTag("semTypeDetector")){let t=o;r.options.testData&&(t=yield n.data.files.openTable(`System:AppData/${e.nqName}/${r.options.testData}`));const s=new M(p,r.friendlyName,(()=>i(this,void 0,void 0,(function*(){const n=[];console.log(`System:AppData/${e.nqName}/${r.options.testData}`);for(const e of t.clone().columns){const t=yield r.apply([e]);n.push(t||e.semType)}const o=n.filter((t=>t));R(o.length,1),r.options.testDataColumnName&&R(o[0],r.options.testDataColumnName)}))),{skipReason:r.options.skipTest});N.push(s)}}y[A]=!0,_.length>0&&(C[m]={tests:_,clear:!0}),x.length>0&&(C[d]={tests:x,clear:!0}),N.length>0&&(C[p]={tests:N,clear:!1})}))}function F(n){return i(this,void 0,void 0,(function*(){return`${n.toString()}\n${n.stack?yield t.Logger.translateStackTrace(n.stack):""}`}))}function U(e,r,o,a,c,l){var h,m,d,p,g,y,v,w,E,A;return i(this,void 0,void 0,(function*(){let i;o.length=0;let C="package";const _=null!=r&&e.name.toLowerCase()!==r.toLowerCase();let x=(null===(h=e.options)||void 0===h?void 0:h.skipReason)||_,N=_?"skipped":null===(m=e.options)||void 0===m?void 0:m.skipReason;if(t.Test.isInBenchmark&&!(null===(d=e.options)||void 0===d?void 0:d.benchmark))return void u(`SKIPPED: ${e.category} ${e.name} doesnt available in benchmark mode`);x||u(`Started ${e.category} ${e.name}`);const b=Date.now();try{if(x)i={date:(new Date).toISOString(),success:!0,result:N,ms:0,skipped:!0};else{let t=null!=a?a:s;i={date:(new Date).toISOString(),success:!0,result:null!==(p=yield H(e.test,t))&&void 0!==p?p:"OK",ms:0,skipped:!1}}}catch(t){f(t),i={date:(new Date).toISOString(),success:!1,result:yield F(t),ms:0,skipped:!1}}if((null===(g=e.options)||void 0===g?void 0:g.isAggregated)&&i.result.constructor===t.DataFrame){const t=i.result.col("success");if(t&&(i.success=t.stats.sum===t.length),!l){const t=i.result;t.columns.remove("stack"),t.rows.removeWhere((t=>t.get("success"))),i.result=t}i.result=i.result.toCsv()}if(i.logs=o.join("\n"),i.ms=Date.now()-b,x||u(`Finished ${e.category} ${e.name} for ${i.ms} ms`),i.category=e.category,i.name=e.name,i.owner=null!==(v=null===(y=e.options)||void 0===y?void 0:y.owner)&&void 0!==v?v:"",!_){let r={success:i.success,result:i.result,ms:i.ms,date:i.date,skipped:i.skipped,package:c,category:e.category,name:e.name,logs:i.logs,owner:i.owner,flaking:t.Test.isReproducing&&i.success,timeoutWarning:t.Test.isInBenchmark&&(null===(w=e.options)||void 0===w?void 0:w.benchmarkWarnTimeout)&&i.ms>(null===(E=e.options)||void 0===E?void 0:E.benchmarkWarnTimeout)};if(i.result.constructor==Object){const t=Object.keys(i.result).reduce(((t,n)=>Object.assign(Object.assign({},t),{["result."+n]:i.result[n]})),{});r=Object.assign(Object.assign({},r),t)}r.result instanceof t.DataFrame&&(r.result=JSON.stringify(null===(A=r.result)||void 0===A?void 0:A.toJson())||""),null!=n.shell.reportTest?yield n.shell.reportTest(C,r):yield fetch(`${n.dapi.root}/log/tests/${C}`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify(r)})}return i}))}function B(t){const n=t.slice();return n.sort((()=>Math.random()-.5)),n}function k(t){return i(this,void 0,void 0,(function*(){yield new Promise((n=>setTimeout(n,t)))}))}function H(t,n,e="EXECUTION TIMEOUT"){return i(this,void 0,void 0,(function*(){let r=null;const o=new Promise(((t,o)=>{r=setTimeout((()=>{o(e)}),n)}));try{return yield Promise.race([t(),o])}finally{r&&clearTimeout(r)}}))}t.DataFrame.fromColumns([t.Column.fromStrings("col",["val1","val2","val3"])]),function(t){t.UMAP="UMAP",t.T_SNE="t-SNE"}(E||(E={})),function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan",t.Onehot="One-Hot"}(A||(A={})),function(t){t.Euclidean="Euclidean"}(C||(C={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean"}(_||(_={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(x||(x={})),(T=N||(N={})).Vector="Vector",T.String="String",T.BitArray="BitArray",T.MacroMolecule="MacroMolecule",T.Number="Number",T.IntArray="IntArray",T.NumberArray="NumberArray",function(t){t.Difference="Difference"}(b||(b={})),function(t){t.CommonItems="Common Items"}(S||(S={}));const G=new Uint32Array(65536),V=(t,n)=>{if(t.length<n.length){const e=n;n=t,t=e}return 0===n.length?t.length:t.length<=32?((t,n)=>{const e=t.length,r=n.length,o=1<<e-1;let i=-1,s=0,a=e,u=e;for(;u--;)G[t.charCodeAt(u)]|=1<<u;for(u=0;u<r;u++){let t=G[n.charCodeAt(u)];const e=t|s;t|=(t&i)+i^i,s|=~(t|i),i&=t,s&o&&a++,i&o&&a--,s=s<<1|1,i=i<<1|~(e|s),s&=e}for(u=e;u--;)G[t.charCodeAt(u)]=0;return a})(t,n):((t,n)=>{const e=n.length,r=t.length,o=[],i=[],s=Math.ceil(e/32),a=Math.ceil(r/32);for(let t=0;t<s;t++)i[t]=-1,o[t]=0;let u=0;for(;u<a-1;u++){let s=0,a=-1;const c=32*u,l=Math.min(32,r)+c;for(let n=c;n<l;n++)G[t.charCodeAt(n)]|=1<<n;for(let t=0;t<e;t++){const e=G[n.charCodeAt(t)],r=i[t/32|0]>>>t&1,u=o[t/32|0]>>>t&1,c=e|s,l=((e|u)&a)+a^a|e|u;let f=s|~(l|a),h=a&l;f>>>31^r&&(i[t/32|0]^=1<<t),h>>>31^u&&(o[t/32|0]^=1<<t),f=f<<1|r,h=h<<1|u,a=h|~(c|f),s=f&c}for(let n=c;n<l;n++)G[t.charCodeAt(n)]=0}let c=0,l=-1;const f=32*u,h=Math.min(32,r-f)+f;for(let n=f;n<h;n++)G[t.charCodeAt(n)]|=1<<n;let m=r;for(let t=0;t<e;t++){const e=G[n.charCodeAt(t)],s=i[t/32|0]>>>t&1,a=o[t/32|0]>>>t&1,u=e|c,f=((e|a)&l)+l^l|e|a;let h=c|~(f|l),d=l&f;m+=h>>>r-1&1,m-=d>>>r-1&1,h>>>31^s&&(i[t/32|0]^=1<<t),d>>>31^a&&(o[t/32|0]^=1<<t),h=h<<1|s,d=d<<1|a,l=d|~(u|h),c=h&u}for(let n=f;n<h;n++)G[t.charCodeAt(n)]=0;return m})(t,n)};var W=e(944);class q{constructor(t,n=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const e=t,r=q._createBuffer(e);if(n)for(let t=0;t<r.length;t++)r[t]=-1;this._data=r,this._length=e}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=n}}getRawData(){return this._data}assureGoez(t,n){if(t<0)throw new Error(`${n} should be greater than zero`)}assureInRange(t,n,e,r){if(t<n||t>e)throw new Error(`Argument ${r} (${t}) out of range (${n}, ${e})`)}copy(t,n,e){for(let r=0;r<e;r++)n[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const n=Math.floor((t+31)/32);if(n>this._data.length||n+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(n);this.copy(this._data,t,n>this._data.length?this._data.length:n),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,n)),this._length=t,this._version++}static fromAnd(t,n){if(t._length!=n._length)throw new Error(`Lengths differ (${t._length} != ${n._length})`);const e=new q(t._length);e._length=t._length,e._data=q._createBuffer(e._length),e._version=0;const r=t.lengthInInts;for(let o=0;o<r;o++)e._data[o]=t._data[o]&n._data[o];return e}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const n=new q(t.length);n._version=0;for(let e=0;e<n._length;e++)t[e]&&(n._data[Math.floor(e/32)]|=1<<(e%32&31));return n}static fromSeq(t,n){const e=new q(t);for(let r=0;r<t;++r)e.setBit(r,n(r));return e._version=0,e}static fromString(t){return q.fromSeq(t.length,(n=>"1"==t.charAt(n)))}static fromUint32Array(t,n){const e=new q(t);return e._data=n,e}static fromBytes(t){const n=t.length,e=new q(8*n);e._data=new Uint32Array(Math.floor((n+3)/4)),e._length=8*n;let r=0,o=0;for(;n-o>=4;)e._data[r++]=255&t[o]|(255&t[o+1])<<8|(255&t[o+2])<<16|(255&t[o+3])<<24,o+=4;return n-o==3&&(e._data[r]=(255&t[o+2])<<16),n-o==2&&(e._data[r]|=(255&t[o+1])<<8),n-o==1&&(e._data[r]|=255&t[o]),e._version=0,e}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let n=0;n<this._data.length-1;n++)if(this._data[n]!=t._data[n])return!1;for(let n=8*(this._data.length-1);n<this._length;n++)if(this.getBit(n)!=t.getBit(n))return!1;return!0}clone(){const t=new q(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,n){this.setAll(!1,!1);for(let n=0;n<this._length;n++)t(n)&&(this._data[Math.floor(n/32)]|=1<<(n%32&31));return this.incrementVersion(n),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,n=!1){const e=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=e;this.incrementVersion(n)}setIndexes(t,n=!0,e=!0,r=!0){e&&this.setAll(!n,!1);for(const e of t)this.setFast(e,n);this.incrementVersion(r)}everyIndex(t,n=!0){for(const e of t)if(this.getBit(e)!=n)return!1;return!0}anyIndex(t,n=!0){for(const e of t)if(this.getBit(e)==n)return!0;return!1}setWhere(t,n=!0,e=!0,r=!0,o=!0){if(e&&o&&this.setAll(!n,!1),o)for(let e=0;e<this._length;e++)t(e)&&this.setFast(e,n);else for(let e=0;e<this._length;e++)this.setFast(e,t(e)?n:!n);this.incrementVersion(r)}getRange(t,n){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(n,0,this._length,"to");const e=[];for(let r=t;r<n;++r)e.push(this.getBit(r));return q.fromValues(e)}getRangeAsList(t,n){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(n,0,this._length,"to");const e=[];for(let r=t;r<n;++r)e.push(this.getBit(r));return e}setRange(t,n,e,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(n,0,this._length-1,"to");const o=Math.min(t,n),i=Math.max(t,n);if(e)for(let t=o;t<=i;t++)this.setTrue(t);else for(let t=o;t<=i;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,n,e=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!n),this.setAll(!n);for(let e=0;e<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=n&&(this.setFast(t,n),e++)}this.incrementVersion(e)}and(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let n=0,e=this.lengthInInts;n<e;n++)this._data[n]&=t._data[n];return this.incrementVersion(n),this}andNot(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const e=this.lengthInInts;for(let n=0;n<e;n++)this._data[n]&=~t._data[n];return this.incrementVersion(n),this}notAnd(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let n=0,e=this.lengthInInts;n<e;n++)this._data[n]=~this._data[n]&t._data[n];return this.incrementVersion(n),this}not(t=!0){for(let t=0,n=this.lengthInInts;t<n;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let n=0,e=this.lengthInInts;n<e;n++)this._data[n]|=t._data[n];return this.incrementVersion(n),this}xor(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let n=0,e=this.lengthInInts;n<e;n++)this._data[n]^=t._data[n];return this.incrementVersion(n),this}insertAt(t,n,e=!1){if(this.assureInRange(t,0,this._length,"pos"),0==n)return;const r=this._length;this.setLength(this._length+n);for(let e=r-1;e>=t;e--)this.setBit(e+n,this.getBit(e));for(let r=t;r<t+n;r++)this.setBit(r,e)}removeAt(t,n=1){if(n<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-n,"pos"),this.contains(!0))for(let e=t;e<this._length-n;e++)this.setBit(e,this.getBit(e+n));this.setLength(this._length-n)}removeByMask(t,n=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!n)),this.setAll(!n);else{let e=0;for(let r=-1;-1!=(r=t.findNext(r,!n));)this.setFast(e++,this.getBit(r));this._length=e,this._version++}return this}getBit(t){return!!(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,n,e=!0){this.setFast(t,n),this._version++}setFast(t,n){n?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let n=0;for(;n<t-1;n++)for(let t=this._data[n];0!=t;t>>>=8)this._selectedCount+=q._onBitCount[255&t];let e=this._data[n];const r=31&this._length;for(0!=r&&(e&=~(4294967295<<r));0!=e;e>>>=8)this._selectedCount+=q._onBitCount[255&e];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let n=0;if(this.trueCount()==this._length)for(let e=0;e<this._length;e++)n+=t(e)?1:0;else for(let e=-1;-1!=(e=this.findNext(e,!0));)n+=t(e)?1:0;return n}andWithCountBits(t,n){if(0==this._length)return 0;let e=0;const r=this.lengthInInts;let o=0;for(;o<r-1;o++)for(let n=this._data[o]&t._data[o];0!=n;n>>>=8)e+=q._onBitCount[255&n];let i=this._data[o]&t._data[o];const s=31&this._length;for(0!=s&&(i&=~(4294967295<<s));0!=i;i>>>=8)e+=q._onBitCount[255&i];return n?e:this._length-e}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,n=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let e=31&(t=t<0?0:t+1);const r=this.lengthInInts;for(let o=Math.floor(t/32);o<r;o++){let r=n?this._data[o]:~this._data[o];if(0!=e)r&=4294967295<<e&4294967295,e=0;else if(!n&&-4294967296==r)continue;for(let n=0;0!=r;n+=8,r>>>=8){const e=q._firstOnBit[255&r];if(e>=0)return(t=e+32*o+n)>=this._length?-1:t}}return-1}findPrev(t,n=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let e=1+(t=t<0?this._length-1:t-1)&31;for(let r=Math.floor(t/32);r>=0;r--){let t=n?this._data[r]:~this._data[r];0!=e&&(t&=~(4294967295<<e),e=0);for(let n=24;0!=t;n-=8,t<<=8){const e=q._lastOnBit[t>>>24];if(e>=0)return e+32*r+n}}return-1}}function Y(t={}){const n=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,n)=>t===n?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const n=t.alphabetIndexes,e=t.scoringMatrix,r=Math.min(...Object.keys(n).map((t=>t.charCodeAt(0))))+1,o=new Float32Array((e.length+r)*(e.length+r));return Object.entries(n).forEach((([t,r])=>{const i=e[r];Object.entries(n).forEach((([n,r])=>{o[t.charCodeAt(0)*e.length+n.charCodeAt(0)]=i[r]}))})),(t,n)=>1-o[t.charCodeAt(0)*e.length+n.charCodeAt(0)]}(),e=t?.threshold??0;return(t,r)=>{let o=0;const i=t.length,s=r.length,a=Math.ceil(Math.max(i,s)*(1-e));i!==s&&(o=Math.abs(i-s));let u=0;for(let e=0;e<Math.min(i,s);e++)if(t[e]!==r[e]&&(u+=n(t[e],r[e]),u>a))return 1;return u+=o,u/=Math.max(i,s),u}}q._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),q._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),q._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]);const $={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var K;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(K||(K={}));const j={[K.HAMMING]:Y,[K.LEVENSHTEIN]:function(){return(t,n)=>V(t,n)/Math.max(t.length,n.length)},[K.NEEDLEMANN_WUNSCH]:function(t){const n=new Uint16Array(65536),{gapOpen:e,gapExtend:r,scoringMatrix:o,alphabetIndexes:i}={...$,...t};Object.entries(i).forEach((([t,e])=>n[t.charCodeAt(0)]=e));const s=[new Float32Array(1e4),new Float32Array(1e4)];return(t,i)=>{const a=new Array(t.length+1).fill(!1),u=new Array(t.length+1).fill(!1);let c=0,l=1;for(let n=1;n<t.length+1;n++)s[0][n]=-r-(n-1)*r,s[1][n]=0;s[0][0]=0;for(let f=1;f<i.length+1;f++){s[l][0]=-r-(f-1)*r;for(let h=1;h<t.length+1;h++){const m=s[c][h-1]+o[n[t.charCodeAt(h-1)]][n[i.charCodeAt(f-1)]],d=s[c][h]-(a[h]||1===f||f===i.length?r:e),p=s[l][h-1]-(u[h-1]||1===h||h===t.length?r:e);s[l][h]=Math.max(m,p,d),s[l][h]===m?(a[h]=!1,u[h]=!1):s[l][h]===p?(a[h]=!1,u[h]=!0):(a[h]=!0,u[h]=!1)}c=l,l=(l+1)%2}const f=Math.min(t.length,i.length);return(f-s[c][t.length])/f}},[K.MONOMER_CHEMICAL_DISTANCE]:Y};function z(t,n){const e=t.trueCount()+n.trueCount();if(0==e)return 1;const r=t.andWithCountBits(n,!0);return r/(e-r)}function X(t){return 0===t?3402823e32:1/t-1}_.Tanimoto,_.Dice,_.Asymmetric,_.BraunBlanquet,_.Cosine,_.Kulczynski,_.McConnaughey,_.RogotGoldberg,_.Russel,_.Sokal,_.Hamming,_.Euclidean,_.Tanimoto,_.Dice,_.Asymmetric,_.BraunBlanquet,_.Cosine,_.Kulczynski,_.McConnaughey,_.RogotGoldberg,_.Russel,_.Sokal,_.Hamming,_.Euclidean,_.Tanimoto,_.Dice,_.Cosine,_.Tanimoto,_.Asymmetric,_.Cosine,_.Sokal,K.HAMMING,K.LEVENSHTEIN,K.MONOMER_CHEMICAL_DISTANCE,K.NEEDLEMANN_WUNSCH;const Q={[C.Euclidean]:function(t,n){let e=0;const r=t.length;if(r!==n.length)throw new Error("The dimensionality of the vectors must match");for(let o=0;o<r;++o)e+=Math.pow(t[o]-n[o],2);return Math.sqrt(e)}},Z={[A.Levenshtein]:V,[A.JaroWinkler]:W.Vb,[A.Manhattan]:function(t,n){if(t.length!==n.length)return 1;{let e=0;for(let r=1;r<t.length;r++)e+=t[r]==n[r]?0:1;return e/t.length}},[A.Onehot]:function(t,n){return t===n?0:1}},J={[_.Tanimoto]:function(t,n){return 1-z(t,n)},[_.Dice]:function(t,n){return 1-function(t,n){const e=t.trueCount()+n.trueCount();return 0==e?0:2*t.andWithCountBits(n,!0)/e}(t,n)},[_.Asymmetric]:function(t,n){return 1-function(t,n){const e=Math.min(t.trueCount(),n.trueCount());return 0==e?0:t.andWithCountBits(n,!0)/e}(t,n)},[_.BraunBlanquet]:function(t,n){return X(function(t,n){const e=Math.max(t.trueCount(),n.trueCount());return 0==e?0:t.andWithCountBits(n,!0)/e}(t,n))},[_.Cosine]:function(t,n){return 1-function(t,n){const e=t.trueCount()*n.trueCount();return 0==e?0:t.andWithCountBits(n,!0)/Math.sqrt(e)}(t,n)},[_.Kulczynski]:function(t,n){return X(function(t,n){const e=t.trueCount()+n.trueCount(),r=t.trueCount()*n.trueCount();return 0==r?0:t.andWithCountBits(n,!0)*e/(2*r)}(t,n))},[_.McConnaughey]:function(t,n){return X(function(t,n){const e=t.trueCount()+n.trueCount(),r=t.trueCount()*n.trueCount();return 0==r?0:(t.andWithCountBits(n,!0)*e-r)/r}(t,n))},[_.RogotGoldberg]:function(t,n){return X(function(t,n){const e=t.andWithCountBits(n,!0),r=t.countBits(!0)+n.countBits(!0),o=t.length,i=o-r+e;return e==o||i==o?1:e/r+i/(2*o-r)}(t,n))},[_.Russel]:function(t,n){return X(function(t,n){return 0==t.length?0:t.andWithCountBits(n,!0)/t.length}(t,n))},[_.Sokal]:function(t,n){return 1-function(t,n){const e=t.trueCount()+n.trueCount(),r=t.andWithCountBits(n,!0);return r/(2*e-3*r)}(t,n)},[_.Hamming]:function(t,n){return t.trueCount()+n.trueCount()-2*t.andWithCountBits(n,!0)},[_.Euclidean]:function(t,n){return Math.sqrt(t.trueCount()+n.trueCount()-2*t.andWithCountBits(n,!0))}},tt={[x.TanimotoIntArray]:function(t,n){return X(z(new q(t,32*t.length),new q(n,32*n.length)))}},nt={[b.Difference]:function(t){if(t&&null!=t.range&&t.range>0){const n=t.range;return(t,e)=>Math.abs(t-e)/n}return(t,n)=>Math.abs(t-n)}},et={[S.CommonItems]:function(t){const n=function(t){const n=t?.mostCommon??new Set;return(t,e)=>{const r=t.length,o=e.length;let i=0,s=0,a=0;for(;s<r&&a<o;)t[s]===e[a]?(n?.has(t[s])||++i,++s,++a):t[s]<e[a]?++s:++a;return i}}(t);return(t,e)=>0===e.length||0===t.length?1e4:Math.min(t.length,e.length)/(n(t,e)+1e-4)}},rt={[N.Vector]:{[C.Euclidean]:Q[C.Euclidean]},[N.String]:{[A.Levenshtein]:Z[A.Levenshtein],[A.JaroWinkler]:Z[A.JaroWinkler],[A.Manhattan]:Z[A.Manhattan],[A.Onehot]:Z[A.Onehot]},[N.BitArray]:{[_.Tanimoto]:J[_.Tanimoto],[_.Dice]:J[_.Dice],[_.Asymmetric]:J[_.Asymmetric],[_.BraunBlanquet]:J[_.BraunBlanquet],[_.Cosine]:J[_.Cosine],[_.Kulczynski]:J[_.Kulczynski],[_.McConnaughey]:J[_.McConnaughey],[_.RogotGoldberg]:J[_.RogotGoldberg],[_.Russel]:J[_.Russel],[_.Sokal]:J[_.Sokal]},[N.MacroMolecule]:{[K.HAMMING]:j[K.HAMMING],[K.LEVENSHTEIN]:j[K.LEVENSHTEIN],[K.NEEDLEMANN_WUNSCH]:j[K.NEEDLEMANN_WUNSCH],[K.MONOMER_CHEMICAL_DISTANCE]:j[K.MONOMER_CHEMICAL_DISTANCE]},[N.Number]:{[b.Difference]:nt[b.Difference]},[N.IntArray]:{[x.TanimotoIntArray]:tt[x.TanimotoIntArray]},[N.NumberArray]:{[S.CommonItems]:et[S.CommonItems]}};Object.keys(rt).reduce(((t,n)=>{for(const e of Object.keys(rt[n]))t[e]=n;return t}),{});const ot=ui,it="bypassLargeDataWarning",st="show-scatterplot-progress";var at,ut,ct,lt,ft,ht,mt,dt=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};e(5540),(ut=at||(at={})).EUCLIDEAN="EUCLIDEAN",ut.MANHATTAN="MANHATTAN",at.EUCLIDEAN,at.MANHATTAN,(lt=ct||(ct={})).HAMMING="Hamming",lt.EUCLIDEAN="Euclidean",lt.MANHATTAN="Manhattan",lt.TANIMOTO="Tanimoto",lt.LEVENSTEIN="Levenshtein",lt.NEEDLEMAN_WUNSCH="Needlemann-Wunsch",lt.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance",lt.SOKAL="Sokal",lt.COSINE="Cosine",lt.ASYMMETRIC="Asymmetric",lt.Difference="Difference",lt.OneHot="One-Hot",ct.HAMMING,ct.EUCLIDEAN,ct.MANHATTAN,ct.TANIMOTO,ct.LEVENSTEIN,ct.NEEDLEMAN_WUNSCH,ct.MONOMER_CHEMICAL_DISTANCE,ct.SOKAL,ct.COSINE,ct.ASYMMETRIC,ct.Difference,ct.OneHot,ct.HAMMING,ct.EUCLIDEAN,ct.MANHATTAN,ct.TANIMOTO,ct.SOKAL,ct.COSINE,ct.ASYMMETRIC,ct.LEVENSTEIN,ct.NEEDLEMAN_WUNSCH,ct.MONOMER_CHEMICAL_DISTANCE,ct.Difference,ct.OneHot,new Set([ct.HAMMING,ct.LEVENSTEIN,ct.NEEDLEMAN_WUNSCH,ct.MONOMER_CHEMICAL_DISTANCE,ct.OneHot]),new Set([ct.HAMMING,ct.EUCLIDEAN,ct.MANHATTAN,ct.MONOMER_CHEMICAL_DISTANCE,ct.LEVENSTEIN,ct.NEEDLEMAN_WUNSCH,ct.TANIMOTO,ct.COSINE,ct.SOKAL,ct.ASYMMETRIC,ct.OneHot,ct.Difference]),new Set([ct.EUCLIDEAN,ct.MANHATTAN,ct.OneHot,ct.Difference]),new Set([ct.EUCLIDEAN,ct.MANHATTAN,ct.Difference]),new Set([ct.EUCLIDEAN,ct.MANHATTAN,ct.Difference]),new Set([ct.TANIMOTO,ct.COSINE,ct.SOKAL,ct.ASYMMETRIC]),function(t){t.ADD="ADD",t.SUB="SUB",t.MULT="MULT"}(ft||(ft={})),function(t){t.SQUARE="SQUARE",t.INVERSE="INVERSE",t.TRANSPOSE="TRANSPOSE",t.NORM="NORM",t.COLUMN_NORM="COLUMN_NORM"}(ht||(ht={})),function(t){t.SCALARMULT="SCALARMULT",t.SCALARADD="SCALARADD",t.SCALARPOW="SCALARPOW"}(mt||(mt={})),Object.prototype.toString;const pt="dimensionality-reducer-terminate-event";var gt,yt;(yt=gt||(gt={})).EUCLIDEAN="EUCLIDEAN",yt.MANHATTAN="MANHATTAN";const vt=t=>null==t;function wt(t,n){return`${n} (${t.length>4?`${t.length} columns`:t.map((t=>t.name)).join(", ")})`}async function Et(r,o,i,s,a,u,c,l=!0,f=!1,h={preprocessingFuncArgs:[]},m={},d=null,p={}){const g={showXAxis:!1,showYAxis:!1,showXSelector:!1,showYSelector:!1};if(o.length!==s.length||o.length!==u.length||o.length!==a.length||o.length!==h.preprocessingFuncArgs.length)throw new Error("columns, metrics and preprocessing functions, weights and function argumentsmust have the same length");const y=l?m.tableView??n.shell.tableView(r.name)??n.shell.addTableView(r):null,v=async()=>{const v=t.TaskBarProgressIndicator.create(`Initializing ${m.scatterPlotName??"dimensionality reduction"} ...`);let w;try{const E=function(t){const n=["Embed_X","Embed_Y"],e=t.columns.names().filter((t=>t.includes(n[0]))).length+1;return n.map((t=>`${t}_${e}`))}(r);function A(n,e,s){let a=null,u=null;r.columns.names().includes(E[0])?(a=r.columns.byName(E[0]),u=r.columns.byName(E[1])):(a=r.columns.add(t.Column.float(E[0],r.rowCount)),u=r.columns.add(t.Column.float(E[1],r.rowCount)),l&&!w&&(w=y.scatterPlot({...g,x:E[0],y:E[1],title:m.scatterPlotName??wt(o,i)}))),m[st]&&(w?.root&&ot.setUpdateIndicator(w.root,!1),a.init((t=>s[0]?s[0][t]:void 0)),u.init((t=>s[1]?s[1][t]:void 0)));const c=n/e*100;v.update(c,`Running ${m.scatterPlotName??"dimensionality reduction"}... ${c.toFixed(0)}%`)}async function C(){r.columns.add(t.Column.float(E[0],r.rowCount)),r.columns.add(t.Column.float(E[1],r.rowCount));let f=null;l&&(w=y.scatterPlot({...g,x:E[0],y:E[1],title:m.scatterPlotName??wt(o,i)}),ot.setUpdateIndicator(w.root,!0));const d=n.events.onViewerClosed.subscribe((t=>{const e=t.args.viewer;e?.getOptions()?.look?.title&&w?.getOptions()?.look?.title&&e?.getOptions()?.look?.title===w?.getOptions()?.look?.title&&(n.events.fireCustomEvent(pt,{}),d.unsubscribe(),f?.(),v.close())})),p=new Promise((async(t,r)=>{try{f=t;const r=[];for(let t=0;t<u.length;++t){const n=u[t];if(h.distanceFnArgs||(h.distanceFnArgs=[]),n){const e=n.inputs[0].name,i=n.inputs[1].name,{entries:a,options:u}=await n.apply({[e]:o[t],[i]:s[t],...h.preprocessingFuncArgs[t]??{}});r.push({entries:a,options:u}),h.distanceFnArgs.push(u)}else{const n=o[t].toList(),e={};r.push({entries:n,options:e}),h.distanceFnArgs.push(e)}}t(await async function(t,r,o,i,s,a,u){let c=await async function(t,r,o,i,s,a,u){if(!a.distanceFnArgs)throw new Error("options.distanceFnArgs must be defined");if(t.length!==r.length||t.length!==a.distanceFnArgs.length||t.length!==i.length)throw new Error("data, metrics and options and weights must have the same length");return new Promise((function(c,l){const f=new Worker(new URL(e.p+e.u(234),e.b));f.postMessage({columnsData:t,distanceMetrics:r,method:o,options:a,weights:i,aggregationMethod:s});const h=n.events.onCustomEvent(pt).subscribe((()=>{try{f?.terminate()}finally{h.unsubscribe()}}));f.onmessage=({data:{error:t,embedding:n,epochNum:e,epochsLength:r}})=>{vt(e)||vt(r)?(h.unsubscribe(),t?l(t):c(n),setTimeout((()=>f.terminate()),100)):u&&u(e,r,n)}}))}(t,o,r,i,s,a,u);return c=c.map((t=>function(t){const n=t.length;let e=0,r=0;for(let o=0;o<n;++o)e+=t[o],r+=Math.pow(t[o],2);const o=e/n,i=1/Math.sqrt(r/n-Math.pow(o,2));for(let e=0;e<n;++e)t[e]=(t[e]-o)*i;return t}(t))),c}(r.map((t=>t.entries)),i,s,a,c,h,m[it]?void 0:A))}catch(t){r(t)}})),C=await p;return v.close(),d.unsubscribe(),C}const _=await C();if(f&&_){const x=t.TaskBarProgressIndicator.create("Clustering embeddings ...");try{const N=await function(t,n,r,o){return dt(this,void 0,void 0,(function*(){return new Promise((function(i,s){const a=new Worker(new URL(e.p+e.u(682),e.b));a.postMessage({embedX:t,embedY:n,minPts:o,epsilon:r}),a.onmessage=({data:{error:t,clusters:n}})=>{a.terminate(),t?s(t):i(n)}}))}))}(_[0],_[1],h.dbScanEpsilon??.01,h.dbScanMinPts??4),b=r.columns.getUnusedName("Cluster (DBSCAN)");r.columns.addNewString(b).init((t=>N[t].toString())),w&&(w.props.colorColumnName=b)}catch(S){n.shell.error("Clustering embeddings failed"),console.error(S)}finally{x.close()}}if(_){const T=r.columns.byName(E[0]),I=r.columns.byName(E[1]);if(T.init((t=>_[0][t])),I.init((t=>_[1][t])),d)try{const M=d.inputs[0].name,O=d.inputs[1].name;await d.prepare({[M]:T,[O]:I,...p}).call(!0)}catch(R){n.shell.error("Post-processing failed"),console.error(R)}if(w)return ot.setUpdateIndicator(w.root,!1),w.helpUrl="/help/compute/sequence-space",w}}catch(L){n.shell.error("Dimensionality reduction failed"),console.error(L),v.close(),w&&ot.setUpdateIndicator(w.root,!1)}};return new Promise((async(t,n)=>{try{if(m.fastRowCount&&r.rowCount>m.fastRowCount&&!m[it])ot.dialog().add(ot.divText("Analysis might take several minutes. Do you want to continue?")).onOK((async()=>{try{const n=await v();t(n)}catch(t){n(t)}})).onCancel((()=>t(void 0))).show();else{const n=await v();t(n)}}catch(t){n(t)}}))}var At=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const Ct={SUBJ:"subj",STUDY:"study",SITE:"site",AGE:"age",SEX:"sex",RACE:"race",DISEASE:"disease",WEIGHT:"weight",HEIGHT:"height"};function _t(t,e,r){return At(this,void 0,void 0,(function*(){const o=n.data.demo.demog(100);n.shell.addTableView(o),R(!!(yield Et(o,t.map((t=>o.col(t))),e,r,t.map((()=>1)),t.map((()=>{})),"EUCLIDEAN",!0,!0,{preprocessingFuncArgs:t.map((()=>({})))})),!0,"No scatterplot returned");const i=o.columns.names().filter((t=>t.toLowerCase().startsWith("embed")));R(i.length,2,"Wrong number of embeddings added"),R(!!o.columns.names().find((t=>t.toLowerCase().startsWith("cluster"))),!0,"No cluster column added");for(const t of i){const n=o.col(t);R(new Array(n.length).fill(null).every(((t,e)=>!n.isNone(e)&&!isNaN(n.get(e)))),!0,"Embedding column has null-ish values")}yield new Promise((t=>setTimeout(t,500)))}))}L("Dimensionality reduction: UMAP",(()=>{O("Numeric column",(()=>At(void 0,void 0,void 0,(function*(){yield _t([Ct.AGE],E.UMAP,[b.Difference])}))),{timeout:3e4}),O("String column",(()=>At(void 0,void 0,void 0,(function*(){yield _t([Ct.SEX],E.UMAP,[A.Onehot])}))),{timeout:3e4}),O("Numeric and string columns",(()=>At(void 0,void 0,void 0,(function*(){yield _t([Ct.SEX,Ct.AGE],E.UMAP,[A.Onehot,b.Difference])})))),O("All demog columns",(()=>At(void 0,void 0,void 0,(function*(){const e=n.data.demo.demog(10).columns.toList().filter((t=>Object.values(Ct).includes(t.name))),r=e.map((n=>n.type===t.COLUMN_TYPE.STRING?A.Onehot:b.Difference)),o=e.map((t=>t.name));yield _t(o,E.UMAP,r)}))))})),L("Dimensionality reduction: T-SNE",(()=>{O("Numeric column",(()=>At(void 0,void 0,void 0,(function*(){yield _t([Ct.AGE],E.T_SNE,[b.Difference])}))),{timeout:3e4}),O("String column",(()=>At(void 0,void 0,void 0,(function*(){yield _t([Ct.SEX],E.T_SNE,[A.Onehot])}))),{timeout:3e4}),O("Numeric and string columns",(()=>At(void 0,void 0,void 0,(function*(){yield _t([Ct.SEX,Ct.AGE],E.T_SNE,[A.Onehot,b.Difference])})))),O("All demog columns",(()=>At(void 0,void 0,void 0,(function*(){const e=n.data.demo.demog(10).columns.toList().filter((t=>Object.values(Ct).includes(t.name))),r=e.map((n=>n.type===t.COLUMN_TYPE.STRING?A.Onehot:b.Difference)),o=e.map((t=>t.name));yield _t(o,E.T_SNE,r)}))))}));const xt={i32:"HEAP32",f32:"HEAPF32"},Nt={i32:Int32Array,f32:Float32Array},bt={i32:2,f32:2},St={i32:DG.Column.fromInt32Array,f32:DG.Column.fromFloat32Array};class Tt{constructor(t){this.data=t}complementArrOfParams(t){t.push(this.data)}complementArrOfTypes(t){t.push("number")}allocateMemoryForBuffer(t){}isMemoryForBufferAllocated(){return!0}putDataToBuffer(t){}getDataFromBuffer(t){}freeBuffer(t){}}class It extends Tt{constructor(t,n,e=!1){super(t),this.type=n,this.toUpdate=e,this.buf=0,this.numOfRows=t.length}complementArrOfParams(t){t.push(this.buf),t.push(this.numOfRows)}complementArrOfTypes(t){t.push("number"),t.push("number")}allocateMemoryForBuffer(t){this.buf=t._malloc(this.numOfRows*Nt[this.type].BYTES_PER_ELEMENT)}isMemoryForBufferAllocated(){return 0!=this.buf}putDataToBuffer(t){if(this.isMemoryForBufferAllocated()){const n=this.type,e=bt[n],r=t[xt[n]];let o=null;const i=this.data;o="int"==i.type&&"i32"==n||"double"==i.type&&"f32"==n?i.getRawData():new Nt[n](i.getRawData()),o&&r.set(o,this.buf>>e)}}getDataFromBuffer(t){if(this.toUpdate&&this.isMemoryForBufferAllocated()){const n=this.type,e=t[xt[n]],r=this.buf,o=Nt[n].BYTES_PER_ELEMENT,i=this.data.getRawData();for(let t=0;t<this.numOfRows;t++)i[t]=e[r/o+t]}}freeBuffer(t){this.isMemoryForBufferAllocated()&&(t._free(this.buf),this.buf=0)}}class Mt extends It{constructor(t,n){super([],t,!0),this.numOfRows=n}putDataToBuffer(t){}getDataFromBuffer(t){if(this.toUpdate&&this.isMemoryForBufferAllocated()){const n=this.type,e=t[xt[n]],r=this.buf,o=St[n],i=new Nt[n](this.numOfRows);for(let t=0;t<i.length;t++)i[t]=e[r/i.BYTES_PER_ELEMENT+t];this.data=o("name",i)}}}class Ot extends Tt{constructor(t,n,e=!1){super(t),this.type=n,this.toUpdate=e,this.buf=0,this.numOfColumns=t.length,this.numOfRows=t[0].length}complementArrOfParams(t){t.push(this.buf),t.push(this.numOfRows),t.push(this.numOfColumns)}complementArrOfTypes(t){t.push("number"),t.push("number"),t.push("number")}allocateMemoryForBuffer(t){this.buf=t._malloc(this.numOfRows*this.numOfColumns*Nt[this.type].BYTES_PER_ELEMENT)}isMemoryForBufferAllocated(){return 0!=this.buf}putDataToBuffer(t){if(this.isMemoryForBufferAllocated()){const n=this.type,e=bt[n],r=t[xt[n]],o=Nt[n].BYTES_PER_ELEMENT;for(let t=0;t<this.numOfColumns;t++){let i=null;const s=this.data[t];i="int"==s.type&&"i32"==n||"double"==s.type&&"f32"==n?s.getRawData():new Nt[n](s.getRawData()),null!=i&&r.set(i,this.buf+t*this.numOfRows*o>>e)}}}getDataFromBuffer(t){if(this.toUpdate&&this.isMemoryForBufferAllocated()){const n=this.type,e=t[xt[n]],r=this.numOfRows,o=this.numOfColumns,i=new Nt[n](e.buffer,this.buf,r*o);for(let t=0;t<o;t++){const n=this.data[t].getRawData();for(let e=0;e<r;e++)n[e]=i[e+t*r]}}}freeBuffer(t){this.isMemoryForBufferAllocated()&&(t._free(this.buf),this.buf=0)}}class Rt extends Ot{constructor(t,n,e){super([[]],t,!0),this.data=[],this.numOfColumns=e,this.numOfRows=n}putDataToBuffer(t){}getDataFromBuffer(t){if(this.toUpdate&&this.isMemoryForBufferAllocated()){const n=this.type,e=t[xt[n]],r=this.numOfRows,o=this.numOfColumns,i=Nt[n].BYTES_PER_ELEMENT,s=St[n],a=this.buf;for(let t=0;t<o;t++){const o=new Nt[n](r);for(let n=0;n<r;n++)o[n]=e[a/i+n+t*r];this.data.push(s((t+1).toString(),o))}}}}const Lt={intColumn:t=>new It(t,"i32"),newIntColumn:t=>new Mt("i32",t),intColumns:t=>new Ot(t.toList(),"i32"),newIntColumns:(t,n)=>new Rt("i32",t,n),floatColumn:t=>new It(t,"f32"),newFloatColumn:t=>new Mt("f32",t),floatColumns:t=>new Ot(t.toList(),"f32"),newFloatColumns:(t,n)=>new Rt("f32",t,n),int:t=>new Tt(t),num:t=>new Tt(t)},Pt={tableFromColumns:t=>DG.DataFrame.fromColumns(t.data),num:t=>t,int:t=>t,double:t=>t,column:t=>t.data};function Dt(t,n,e){const r=t[n],o=r.arguments,i=[];let s=0;for(const t in o){const n=o[t];if("_callResult"!=t){switch(n.type){case"floatColumns":case"int":case"num":case"floatColumn":case"intColumn":case"intColumns":n.data=Lt[n.type](e[s]),s++;break;case"newFloatColumns":case"newIntColumns":const t=o[n.numOfRows.ref].data[n.numOfRows.value],r=o[n.numOfColumns.ref].data[n.numOfColumns.value];n.data=Lt[n.type](t,r);break;case"newFloatColumn":case"newIntColumn":const i=o[n.numOfRows.ref].data[n.numOfRows.value];n.data=Lt[n.type](i)}i.push(o[t].data)}}const a=function(t,n,e,r){let o;for(const n of r)n.allocateMemoryForBuffer(t);let i=!0;for(const t of r)i&=t.isMemoryForBufferAllocated();if(i){const e=[],i=[];for(const n of r)n.complementArrOfParams(e),n.complementArrOfTypes(i),n.putDataToBuffer(t);const s="number";o=t.ccall(n,s,i,e);for(const n of r)n.getDataFromBuffer(t)}for(const n of r)n.freeBuffer(t);if(null!=o)return o}(t,n,0,i);o._callResult=Lt.num(a);const u=r.output;if("objects"!=u.type)return Pt[u.type](o[u.source].data);const c=[];for(const t of u.source)c.push(o[t].data.data);return c}const Ft="num",Ut="floatColumn",Bt="intColumn",kt="floatColumns",Ht="newFloatColumns",Gt="intColumns",Vt="newIntColumns",Wt="newFloatColumn",qt="newIntColumn",Yt="column",$t="_callResult",Kt="numOfRows",jt="numOfColumns",zt="ref",Xt="value",Qt="tableFromColumns",Zt="objects",Jt="int",tn="double",nn={intColumn:Int32Array,floatColumn:Float32Array,floatColumns:Float32Array,newFloatColumns:Float32Array,intColumns:Int32Array,newIntColumns:Int32Array,newFloatColumn:Float32Array,newIntColumn:Int32Array};function en(t,n){let e,r=[],o=0;for(const i in t){const s=t[i],a=s.type;if(i!==$t){switch(a){case Ft:case Jt:case tn:s.data=n[o],o++;break;case Bt:case Ut:let r;const i=n[o],u=i.length;r=i.type===Jt&&a===Bt||i.type===tn&&a===Ut?i.getRawData().slice(0,u):new nn[a](i.getRawData().slice(0,u)),s.data={array:r,numOfRows:u},o++;break;case qt:case Wt:let c=0;e=s[Kt][zt],c=t[e].type===Ft?t[e].data:t[e].data[s[Kt][Xt]],s.data={numOfRows:c},o++;break;case Gt:case kt:let l=[];const f=n[o].byIndex(0).length;for(const t of n[o].toList())t.type===Jt&&a===Bt||t.type===tn&&a===Ut?l.push(t.getRawData().slice(0,f)):l.push(new nn[a](t.getRawData().slice(0,f)));s.data={arrays:l,numOfRows:f,numOfColumns:l.length},o++;break;case Vt:case Ht:let h=0,m=0;e=s[Kt][zt],h=t[e].type===Ft?t[e].data:t[e].data[s[Kt][Xt]],e=s[jt][zt],m=t[e].type===Ft?t[e].data:t[e].data[s[jt][Xt]],s.data={numOfRows:h,numOfColumns:m},o++;break;default:return}r.push(s)}}return r}function rn(t,n){t.arguments._callResult=n.callResult,function(t,n){const e={newFloatColumns:DG.Column.fromFloat32Array,newIntColumns:DG.Column.fromInt32Array,newFloatColumn:DG.Column.fromFloat32Array,newIntColumn:DG.Column.fromInt32Array};let r=0;for(const o in t){const i=t[o];switch(i.type){case Ft:case Jt:case tn:case Bt:case Ut:case kt:case Gt:break;case Wt:case qt:let t;null==i.name?t=(0).toString():a=i.name,i.column=e[i.type](t,n[r].array);break;case Vt:case Ht:let o=[],s=n[r].arrays.length,a=[];if(null==i.names)for(let t=1;t<=s;t++)a.push(t.toString());else a=i.names;for(let t=0;t<s;t++)o.push(e[i.type](a[t],n[r].arrays[t]));i.columns=o}r++}}(t.arguments,n.args);let e=function(t){let n=t.output;const e={newFloatColumns:"columns",newIntColumns:"columns",newFloatColumn:"column",newIntColumn:"column"};switch(n.type){case Ft:case Jt:case tn:return t.arguments[n.source];case Yt:return t.arguments[n.source].column;case Qt:return DG.DataFrame.fromColumns(t.arguments[n.source].columns);case Zt:let r=[];for(let o of n.source){let n=t.arguments[o];r.push(n[e[n.type]])}return r}}(t);return function(t){for(const n in t){const e=t[n];switch(e.type){case Ft:case Jt:case tn:case Bt:case Ut:case Gt:case kt:break;case qt:case Wt:e.column=null;break;case Vt:case Ht:e.columns=null}}}(t.arguments),e}async function on(t,n,r){return new Promise(((t,o)=>{const i=new Worker(new URL(e.p+e.u(128),e.b));i.postMessage(en(EDA.principalComponentAnalysisNipals.arguments,[n,r])),i.onmessage=function(n){i.terminate(),t(rn(EDA.principalComponentAnalysisNipals,n.data))}}))}const sn=1,an=1e8,un=1e-6,cn="components must be positive.",ln="components must not be greater than features count.",fn="dataframe is too big.",hn="unsupported column type: ";function mn(n){if(n.type!=t.COLUMN_TYPE.FLOAT&&n.type!=t.COLUMN_TYPE.INT)throw new Error(hn+n.type)}function dn(t){if(t.stats.missingValueCount>0)throw new Error(`The column '${t.name}' has missing values.`)}function pn(t,n){if(function(t,n){if(n<sn)throw new Error(cn);if(n>t.length)throw new Error(ln);for(const n of t)mn(n),dn(n)}(t,n),t.length*t.byIndex(0).length>an)throw new Error(fn)}function gn(t,n,e){return n?e?function(t){const n=t.rowCount;for(const e of t.columns)if(e.isNumerical){const t=e.stats.stdev,r=e.stats.avg,o=e.getRawData();if(t>0)for(let e=0;e<n;++e)o[e]=(o[e]-r)/t;else for(let t=0;t<n;++t)o[t]-=r}return t}(t):function(t){const n=t.rowCount;for(const e of t.columns)if(e.isNumerical){const t=e.stats.avg;if(Math.abs(t)>un){const r=e.getRawData();for(let e=0;e<n;++e)r[e]-=t}}return t}(t):e?function(t){const n=t.rowCount;for(const e of t.columns)if(e.isNumerical){const t=e.stats.stdev;if(Math.abs(t-1)>un&&t>0){const r=e.getRawData();for(let e=0;e<n;++e)r[e]/=t}}return t}(t):t}var yn,vn,wn,En,An,Cn,_n,xn,Nn,bn,Sn,Tn,In,Mn,On;function Rn(n,r,o,i,s){return a=this,u=void 0,l=function*(){pn(r,o);const a=n.rowCount,u=function(n){const e=[];for(const t of n)t.stats.stdev>0&&t.stats.missingValueCount<1&&e.push(t);return t.DataFrame.fromColumns(e)}(r),c=u.columns.length;if(0===c){const n=[];for(let e=0;e<o;++e)n.push(t.Column.fromFloat32Array(`${e+1}`,new Float32Array(a).fill(0)));return t.DataFrame.fromColumns(n)}const l=c<o?o-c:0,f=Math.min(o,c);let h;if(c>900)h=yield on(0,r,f);else{const t=yield async function(t,n,r){return new Promise(((t,o)=>{const i=new Worker(new URL(e.p+e.u(860),e.b));i.postMessage(en(EDA.principalComponentAnalysis.arguments,[n,r,1,0])),i.onmessage=function(n){i.terminate(),0===n.data.callResult?t(rn(EDA.principalComponentAnalysis,n.data)):t(-1)}}))}(0,r,f);h=-1!==t?gn(t,i,s):yield on(0,r,f)}if(void 0===h)throw new Error("Failed to compute PCA");h=gn(h,i,s);const m=h.columns,d=m.length;for(let n=0;n<l;++n)m.add(t.Column.fromFloat32Array(`${d+n+1}`,new Float32Array(a).fill(0)));return h},new((c=void 0)||(c=Promise))((function(t,n){function e(t){try{o(l.next(t))}catch(t){n(t)}}function r(t){try{o(l.throw(t))}catch(t){n(t)}}function o(n){var o;n.done?t(n.value):(o=n.value,o instanceof c?o:new c((function(t){t(o)}))).then(e,r)}o((l=l.apply(a,u||[])).next())}));var a,u,c,l}(On=yn||(yn={}))[On.COMPUTE_COMPONENTS=0]="COMPUTE_COMPONENTS",On[On.PERFORM_MVA=1]="PERFORM_MVA",On[On.DEMO=2]="DEMO",(Mn=vn||(vn={})).NO_DF="No dataframe is opened",Mn.NO_COLS="No numeric columns without missing values",Mn.ONE_COL="No columns to be used as features (just one numeric columns without missing values)",Mn.EMPTY_DF="Dataframe is empty",(In=wn||(wn={})).PREDICT="Predict",In.USING="Using",In.COMPONENTS="Components",In.PLS="PLS",In.MVA="Multivariate Analysis (PLS)",In.RUN="RUN",In.NAMES="Names",In.MODEL="Observed vs. Predicted",In.FEATURE="Feature",In.REGR_COEFS="Regression Coefficients",In.XLOADING="x.loading.p",In.LOADINGS="Loadings",In.XSCORE="x.score.t",In.YSCORE="y.score.u",In.SCORES="Scores",In.EXPL_VAR="Explained Variance",In.EXPLORE="Explore",In.FEATURES="Feature names",In.BROWSE="Browse",In.ANALYSIS="Features Analysis",(Tn=En||(En={})).PREDICT="Column with the response variable",Tn.FEATURES="Predictors (features)",Tn.COMPONENTS="Number of PLS components",Tn.PLS="Compute PLS components",Tn.MVA="Perform multivariate analysis",Tn.NAMES="Names of data samples",(Sn=An||(An={})).PLS="/help/explore/multivariate-analysis/pls#pls-components",Sn.MVA="/help/explore/multivariate-analysis/pls",Sn.MODEL="/help/explore/multivariate-analysis/plots/predicted-vs-reference",Sn.COEFFS="/help/explore/multivariate-analysis/plots/regression-coefficients",Sn.LOADINGS="/help/explore/multivariate-analysis/plots/loadings",Sn.EXPL_VARS="/help/explore/multivariate-analysis/plots/explained-variance",Sn.SCORES="/help/explore/multivariate-analysis/plots/scores",(bn=Cn||(Cn={}))[bn.DEFAULT=3]="DEFAULT",bn[bn.MIN=1]="MIN",(Nn=_n||(_n={})).PREFIX="PLS",Nn.SUFFIX="(predicted)",Nn.COMP="component",Nn.COMPS="components",function(t){t[t.PREDICTION=0]="PREDICTION",t[t.REGR_COEFFS=1]="REGR_COEFFS",t[t.T_SCORES=2]="T_SCORES",t[t.U_SCORES=3]="U_SCORES",t[t.X_LOADINGS=4]="X_LOADINGS",t[t.Y_LOADINGS=5]="Y_LOADINGS"}(xn||(xn={}));const Ln=[.49,.79,.99];var Pn;!function(t){t.AXIS="#838383",t.CIRCLE="#0000FF"}(Pn||(Pn={})),[{caption:wn.MODEL,text:"Closer to the line means better price prediction."},{caption:wn.SCORES,text:"The latent factor values for each sample reflect the similarities and dissimilarities among observations."},{caption:wn.LOADINGS,text:"The impact of each feature on the latent factors: higher loading means stronger influence."},{caption:wn.REGR_COEFS,text:"Parameters of the obtained linear model: features make different contribution to the prediction."},{caption:wn.EXPL_VAR,text:"How well the latent components fit source data: closer to one means better fit."}].map((t=>`# ${t.caption}\n\n${t.text}`)).join("\n\n"),An.MVA;var Dn=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};function Fn(t){return Dn(this,void 0,void 0,(function*(){pn(t.features,t.components),mn(t.predict),dn(t.predict);const n=yield async function(t,n,r,o){return new Promise(((t,i)=>{const s=new Worker(new URL(e.p+e.u(412),e.b));s.postMessage(en(EDA.partialLeastSquareRegression.arguments,[n,r,o])),s.onmessage=function(n){s.terminate(),t(rn(EDA.partialLeastSquareRegression,n.data))}}))}(t.table,t.features,t.predict,t.components);return{prediction:n[xn.PREDICTION],regressionCoefficients:n[xn.REGR_COEFFS],tScores:n[xn.T_SCORES],uScores:n[xn.U_SCORES],xLoadings:n[xn.X_LOADINGS],yLoadings:n[xn.Y_LOADINGS]}}))}Math.min,Math.max;var Un=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};function Bn(n,e){return Un(this,void 0,void 0,(function*(){const r=n.length,o=e.length,i=e.stats.avg,s=e.stats.stdev,a=new Float32Array(r+1).fill(0);if(a[r]=i,0===s||1===o)return a;try{const o=[],u=[],c=new Float32Array(r),l=new Float32Array(r);let f=0,h=0;for(const t of n){const n=t.stats;n.stdev>0&&(o.push(f),u.push(t),c[h]=n.avg,l[h]=n.stdev,++h),++f}if(0===h)return a;const m=function(t,n,e,r,o,i,s){return Dt(EDA,"fitLinearRegressionParamsWithDataNormalizing",[t,n,e,r,o,i,s])}(t.DataFrame.fromColumns(u).columns,t.Column.fromFloat32Array("xAvgs",c,h),t.Column.fromFloat32Array("xStdevs",l,h),e,i,s,h+1).getRawData();for(let t=0;t<h;++t)a[o[t]]=m[t];a[r]=m[h]}catch(o){const i=yield function(n,e,r){return Un(this,void 0,void 0,(function*(){return(yield Fn({table:t.DataFrame.fromColumns([e]),features:n,predict:e,components:r,names:void 0})).regressionCoefficients.getRawData()}))}(n,e,Hn(n.length,e.length));let s=0;for(let t=0;t<r;++t)a[t]=i[t],s+=i[t]*n.byIndex(t).stats.avg;a[r]-=s}return a}))}function kn(n,e){const r=n.length;if(r!==e.length-1)throw new Error("Incorrect parameters count");const o=n.byIndex(0),i=o.length,s=new Float32Array(i);let a=o.getRawData();const u=e[r];let c=e[0];for(let t=0;t<i;++t)s[t]=u+c*a[t];for(let t=1;t<r;++t){a=n.byIndex(t).getRawData(),c=e[t];for(let t=0;t<i;++t)s[t]+=c*a[t]}return t.Column.fromFloat32Array(n.getUnusedName("prediction"),s,i)}const Hn=(t,n)=>n<=t?Math.min(10,n):Math.min(10,t);var Gn;!function(t){t[t.MAX_SAMLPES=1e5]="MAX_SAMLPES",t[t.MAX_FEATURES=1e3]="MAX_FEATURES"}(Gn||(Gn={}));class Vn{static isApplicable(t,n){for(const n of t)if(!n.matches("numerical"))return!1;return!!n.matches("numerical")}static isInteractive(t,n){return t.length<=Gn.MAX_FEATURES&&n.length<=Gn.MAX_SAMLPES}constructor(n){if(this.specn=null,n)try{const e=new Uint32Array(n.buffer,0,2),r=e[0],o=e[1],i=new Uint8Array(n.buffer,8,r),s=t.DataFrame.fromByteArray(i),a=s.rowCount,u=s.columns,c=u.length,l=new Uint8Array(n.buffer,8+r,o),f=t.DataFrame.fromByteArray(l);if(c<3)throw new Error("incorrect columns count");const h=u.byName(wn.FEATURES).toList(),m=new Float32Array(a);m.set(u.byName(wn.REGR_COEFS).getRawData());const d=c-2,p=new Array(d);for(let t=0;t<d;++t)p[t]=new Float32Array(a),p[t].set(u.byIndex(t+2).getRawData());this.specn={params:m,loadings:p,names:h,dim:a-1,components:c-2,scores:f}}catch(t){throw new Error(`Failed to load model: ${t instanceof Error?t.message:"the platform issue"}`)}}fit(n,e,r){return o=this,i=void 0,a=function*(){const o=yield Fn({table:t.DataFrame.fromColumns([e]),features:n,predict:e,components:r,names:void 0}),i=n.names();i.push("_");const s=this.getRegrCoeffs(n,e,o.regressionCoefficients),a=this.getLoadings(r,o.xLoadings);this.specn={names:i,params:s,loadings:a,components:r,dim:n.length,scores:this.getScoresDf(o)},this.computeExplVars(e.length,r,o.yLoadings)},new((s=void 0)||(s=Promise))((function(t,n){function e(t){try{u(a.next(t))}catch(t){n(t)}}function r(t){try{u(a.throw(t))}catch(t){n(t)}}function u(n){var o;n.done?t(n.value):(o=n.value,o instanceof s?o:new s((function(t){t(o)}))).then(e,r)}u((a=a.apply(o,i||[])).next())}));var o,i,s,a}getLoadings(t,n){const e=Array(t),r=n[0].length+1;for(let o=0;o<t;++o)e[o]=new Float32Array(r),e[o].set(n[o].getRawData());return e}getRegrCoeffs(t,n,e){const r=t.length,o=new Float32Array(r+1),i=e.getRawData();let s=0;for(let n=0;n<r;++n)o[n]=i[n],s+=i[n]*t.byIndex(n).stats.avg;return o[r]=n.stats.avg-s,o}computeExplVars(t,n,e){if(null===this.specn)throw new Error("Failed to compute explained variances");const r=e.getRawData(),o=this.specn.loadings[0].length-1;let i=Math.pow(r[0],2)/t;this.specn.loadings[0][o]=i;for(let e=1;e<n;++e)i+=Math.pow(r[e],2)/t,this.specn.loadings[e][o]=i}toBytes(){if(null===this.specn)throw new Error("Failed to pack untrained model");const n=t.DataFrame.fromColumns([t.Column.fromStrings(wn.FEATURES,this.specn.names),t.Column.fromFloat32Array(wn.REGR_COEFS,this.specn.params)]);this.specn.loadings.forEach(((e,r)=>n.columns.add(t.Column.fromFloat32Array(`${wn.XLOADING}${r+1}`,e))));const e=n.toByteArray(),r=e.length,o=this.specn.scores.toByteArray(),i=o.length,s=r+i+8,a=new Uint8Array(64*(Math.ceil(s/64)+1)),u=new Uint32Array(a.buffer,0,2);return u[0]=r,u[1]=i,a.set(e,8),a.set(o,8+r),a}predict(t){if(null===this.specn)throw new Error("Predicting failed: model is not trained");return kn(t,this.specn.params)}loadingsParamsViewers(){if(null===this.specn)throw new Error("Failed to create loadings and parameters viewers: untrained model");const n=[],e=this.specn.dim,r=t.DataFrame.fromColumns([t.Column.fromStrings(wn.FEATURES,this.specn.names.slice(0,-1)),t.Column.fromFloat32Array(wn.REGR_COEFS,this.specn.params,e)]),o=r.columns,i=o.length,s=this.specn.components;return this.specn.loadings.forEach(((n,o)=>r.columns.add(t.Column.fromFloat32Array(`${wn.XLOADING}${o+1}`,n,e)))),n.push(t.Viewer.scatterPlot(r,{title:wn.LOADINGS,xColumnName:o.byIndex(i).name,yColumnName:o.byIndex(i+(s>1?1:0)).name,markerType:t.MARKER_TYPE.CIRCLE,labelFormColumnNames:[wn.FEATURES],help:An.LOADINGS})),n.push(t.Viewer.barChart(r,{title:wn.REGR_COEFS,splitColumnName:wn.FEATURES,valueColumnName:wn.REGR_COEFS,valueAggrType:t.AGG.AVG,help:An.COEFFS,showValueSelector:!1,showStackSelector:!1})),n}explVarsViewer(){if(null===this.specn)throw new Error("Failed to create exaplained variances viewer: untrained model");const n=this.specn.components,e=this.specn.dim,r=new Array(n),o=new Float32Array(n);r[0]=`${_n.COMP} 1`,o[0]=this.specn.loadings[0][e];for(let t=1;t<n;++t)r[t]=`${_n.COMPS} ${t+1}`,o[t]=this.specn.loadings[t][e];return t.Viewer.barChart(t.DataFrame.fromColumns([t.Column.fromStrings(_n.COMPS,r),t.Column.fromFloat32Array(wn.EXPL_VAR,o)]),{title:wn.EXPL_VAR,splitColumnName:_n.COMPS,valueColumnName:wn.EXPL_VAR,valueAggrType:t.AGG.AVG,help:An.EXPL_VARS,showCategorySelector:!1,showStackSelector:!1,showValueSelector:!1})}viewers(){if(null===this.specn)throw new Error("Failed to create viewers: untrained model");const t=this.loadingsParamsViewers();return t.push(this.explVarsViewer(),this.getScoresScatter()),t}getScoresDf(n){const e=n.tScores,r=n.uScores;return e.forEach(((t,n)=>t.name=`${wn.XSCORE}${n+1}`)),r.forEach(((t,n)=>t.name=`${wn.YSCORE}${n+1}`)),t.DataFrame.fromColumns(e.concat(r))}getScoresScatter(){if(null===this.specn)throw new Error("Failed to create scores scatter: untrained model");const n=this.specn.scores.columns.names(),e=t.Viewer.scatterPlot(this.specn.scores,{title:wn.SCORES,xColumnName:n[0],yColumnName:n[1],markerType:t.MARKER_TYPE.CIRCLE,help:An.SCORES,showViewerFormulaLines:!0});return e.meta.formulaLines.addAll(function(t){const n=[],e=(t,e)=>{n.push({type:"line",formula:t,width:1,visible:!0,title:" ",min:-e,max:e,color:Pn.CIRCLE})};return t.forEach((r=>{const o="${"+r+"}";n.push({type:"line",formula:`${o} = 0`,width:1,visible:!0,title:" ",color:Pn.AXIS}),t.forEach((t=>{const n="${"+t+"}";Ln.forEach((t=>{e(n+` = sqrt(${t*t} - ${o} * ${o})`,t),e(n+` = -sqrt(${t*t} - ${o} * ${o})`,t)}))}))})),n}(n)),e}}const Wn=["Alpha","Beta","Gamma","Delta"];function qn(t,n){if(t.length!==n.length)throw new Error(`Non-equal elements count: ${t.length} vs. ${n.length}`)}function Yn(e,r,o){const i=n.data.demo.randomWalk(e,r),s=i.columns,a=new Float32Array(r),u=new Array(r);for(let t=0;t<r;++t)u[t]=s.byIndex(t).getRawData();for(let n=0;n<o;++n){const o=new Float32Array(e);for(let t=0;t<r;++t)a[t]=Math.random();for(let t=0;t<e;++t)for(let n=0;n<r;++n)o[t]+=a[n]*u[n][t];s.add(t.Column.fromFloat32Array(`y${n}`,o))}return i}function $n(t,n){qn(t,n);let e=0;const r=t.length,o=t.getRawData(),i=n.getRawData();for(let t=0;t<r;++t)e=Math.max(e,Math.abs(o[t]-i[t]));return e}function Kn(n,e,r){const o=new Array(n),i=new Array(e);for(let t=0;t<e;++t){const e=new Float32Array(n);for(let t=0;t<n;++t)e[t]=Math.random();i[t]=e}const s=t.DataFrame.fromColumns(i.map(((n,e)=>t.Column.fromFloat32Array(`#${e}`,n))));for(let t=0;t<n;++t)o[t]=i.slice(0,2).map((n=>n[t]>.5?"A":"B")).join("");if(s.columns.add(t.Column.fromStrings("Labels",o)),r)for(let t=0;t<e;++t)for(let e=0;e<n;++e)i[t][e]+=1*(i[t][e]>0?1:-1);return s}function jn(t,n){qn(t,n);let e=0;const r=t.length;if(r<1)return 1;for(let o=0;o<r;++o)t.get(o)===n.get(o)&&++e;return e/r}var zn=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const Xn=100,Qn=9e3,Zn=.1;L("Principal component analysis",(()=>{O("Performance: 100K rows, 100 cols, 3 components",(()=>zn(void 0,void 0,void 0,(function*(){const t=n.data.demo.randomWalk(1e5,Xn);yield Rn(t,t.columns,3,!1,!1)}))),{timeout:Qn,benchmark:!0}),O("Performance: 1K rows, 5K cols, 3 components",(()=>zn(void 0,void 0,void 0,(function*(){const t=n.data.demo.randomWalk(1e3,5e3);yield Rn(t,t.columns,3,!1,!1)}))),{timeout:Qn,benchmark:!0}),O("Correctness",(()=>zn(void 0,void 0,void 0,(function*(){const t=Yn(100,3,5);R(function(t){let n=0;const e=t.length,r=t.getRawData();for(let t=0;t<e;++t)n=Math.max(n,Math.abs(r[t]));return n}((yield Rn(t,t.columns,4,!1,!1)).columns.byIndex(3))<Zn,!0,"Incorrect PCA computations")}))),{timeout:Qn})})),L("Partial least squares regression",(()=>{O("Performance: 100K rows, 100 cols, 3 components",(()=>zn(void 0,void 0,void 0,(function*(){const t=n.data.demo.randomWalk(1e5,Xn),e=t.columns;yield Fn({table:t,features:e,predict:e.byIndex(99),components:3,names:void 0})}))),{timeout:Qn,benchmark:!0}),O("Correctness",(()=>zn(void 0,void 0,void 0,(function*(){const t=Yn(100,3,5),n=t.columns,e=n.byIndex(7),r=$n(e,(yield Fn({table:t,features:n,predict:e,components:3,names:void 0})).prediction);R(r<Zn,!0,`Incorrect PLS computations, error is too big: ${r}; expected: < 0.1`)}))),{timeout:Qn}),O("Predictive modeling: 100K samples, 100 features, 3 components",(()=>zn(void 0,void 0,void 0,(function*(){const t=Yn(1e5,3,98).columns,n=t.byIndex(Xn);t.remove(n.name);const e=new Vn;yield e.fit(t,n,3);const r=e.toBytes(),o=$n(n,new Vn(r).predict(t));R(o<Zn,!0,`Incorrect PLS (ML) computations, error is too big: ${o}; expected: < 0.1`)}))),{timeout:Qn,benchmark:!0})})),L("Linear regression",(()=>{O("Performance: 100K samples, 100 features",(()=>zn(void 0,void 0,void 0,(function*(){const t=Yn(1e5,Xn,1).columns,n=t.byIndex(Xn),e=yield Bn(t,n),r=new Uint8Array(e.buffer);kn(t,new Float32Array(r.buffer))}))),{timeout:Qn,benchmark:!0}),O("Correctness",(()=>zn(void 0,void 0,void 0,(function*(){const t=Yn(100,2,1).columns,n=t.byIndex(2),e=yield Bn(t,n),r=new Uint8Array(e.buffer),o=kn(t,new Float32Array(r.buffer)),i=$n(o,o);R(i<Zn,!0,`Incorrect linear regression computations, error is too big: ${i}; expected: < 0.1`)}))),{timeout:Qn})}));var Jn=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const te="Avg-s",ne="Stddev-s";var ee;!function(t){t[t.MAX_SAMLPES=5e4]="MAX_SAMLPES",t[t.MAX_FEATURES=100]="MAX_FEATURES"}(ee||(ee={}));class re{static isApplicable(n,e){for(const t of n)if(!t.matches("numerical"))return!1;return e.type===t.COLUMN_TYPE.STRING}static isInteractive(t,n){return t.length<=ee.MAX_FEATURES&&n.length<=ee.MAX_SAMLPES}constructor(n,e){if(this.params=void 0,this.classesCount=1,this.featuresCount=1,void 0!==n){const t=n.featuresCount,e=n.classesCount;if(t<1)throw new Error("Incorrect features count");if(e<1)throw new Error("Incorrect classes count");const r=t+1;this.avgs=new Float32Array(r),this.stdevs=new Float32Array(r),this.categories=new Array(r),this.featuresCount=t,this.classesCount=e}else{if(void 0===e)throw new Error("Softmax classifier not initialized");try{const n=new Uint32Array(e.buffer,0,1)[0],r=new Uint8Array(e.buffer,4,n),o=t.DataFrame.fromByteArray(r),i=o.columns,s=i.length;if(s<3)throw new Error("incorrect columns count");this.classesCount=s-2,this.featuresCount=o.rowCount-1;const a=this.classesCount;this.params=new Array(a),this.categories=new Array(o.rowCount);for(let n=0;n<a;++n){const e=i.byIndex(n);if(this.categories[n]=e.name,e.type!==t.COLUMN_TYPE.FLOAT)throw new Error(`Incorrect input column type. Expected: float, passed: ${e.type}`);this.params[n]=e.getRawData()}const u=i.byName(te);if(u.type!==t.COLUMN_TYPE.FLOAT)throw new Error("incorrect average values column type");this.avgs=u.getRawData();const c=i.byName(ne);if(c.type!==t.COLUMN_TYPE.FLOAT)throw new Error("incorrect standard deviations column type");this.stdevs=c.getRawData()}catch(t){throw new Error(`Failed to load model: ${t instanceof Error?t.message:"the platform issue"}`)}}}toBytes(){if(void 0===this.params)throw new Error("Non-trained model");const n=this.classesCount,e=new Array(n+2);for(let r=0;r<n;++r)e[r]=t.Column.fromFloat32Array(this.categories[r],this.params[r]);e[n]=t.Column.fromFloat32Array(te,this.avgs),e[n+1]=t.Column.fromFloat32Array(ne,this.stdevs);const r=t.DataFrame.fromColumns(e).toByteArray(),o=r.length,i=new Uint8Array(o+4);return new Uint32Array(i.buffer,0,1)[0]=o,i.set(r,4),i}fit(n,e){return Jn(this,arguments,void 0,(function*(n,e,r=1,o=100,i=.1,s=.001){if(n.length!==this.featuresCount)throw new Error("Training failes - incorrect features count");if(r<=0||o<1||i<=0||s<=0)throw new Error("Training failes - incorrect fitting hyperparameters");this.extractStats(n);const a=e.length,u=e.categories.length,c=e.categories;for(let t=0;t<u;++t)this.categories[t]=c[t];try{const c=function(t,n,e,r,o,i,s,a,u,c,l){return Dt(EDA,"fitSoftmax",[t,n,e,r,o,i,s,a,u,c,l])}(n,t.Column.fromFloat32Array("avgs",this.avgs,this.featuresCount),t.Column.fromFloat32Array("stdevs",this.stdevs,this.featuresCount),t.Column.fromInt32Array("targets",e.getRawData(),a),u,o,r,i,s,this.featuresCount+1,u).columns;this.params=new Array(u);for(let t=0;t<u;++t)this.params[t]=c.byIndex(t).getRawData()}catch(t){try{this.params=yield this.fitSoftmaxParams(n,e,o,r,i,s)}catch(t){throw new Error("Training failes")}}if(void 0===this.params)throw new Error("Training failes")}))}extractStats(n){let e=0;for(const r of n){if(r.type!==t.COLUMN_TYPE.INT&&r.type!==t.COLUMN_TYPE.FLOAT)throw new Error("Training failes - incorrect features type");this.avgs[e]=r.stats.avg,this.stdevs[e]=r.stats.stdev,++e}}normalized(n){const e=n.byIndex(0).length,r=new Array(e);for(let t=0;t<e;++t)r[t]=new Float32Array(this.featuresCount);let o=0;for(const i of n){if(i.type!==t.COLUMN_TYPE.INT&&i.type!==t.COLUMN_TYPE.FLOAT)throw new Error("Training failes - incorrect features type");const n=i.getRawData(),s=this.avgs[o],a=this.stdevs[o];if(a>0)for(let t=0;t<e;++t)r[t][o]=(n[t]-s)/a;else for(let t=0;t<e;++t)r[t][o]=0;++o}return r}transposed(n){const e=n.byIndex(0).length,r=this.featuresCount,o=new Array(r);for(let t=0;t<r;++t)o[t]=new Float32Array(e);let i=0;for(const r of n){if(r.type!==t.COLUMN_TYPE.INT&&r.type!==t.COLUMN_TYPE.FLOAT)throw new Error("Training failes - incorrect features type");const n=r.getRawData(),s=this.avgs[i],a=this.stdevs[i];if(a>0)for(let t=0;t<e;++t)o[i][t]=(n[t]-s)/a;else for(let t=0;t<e;++t)o[i][t]=0;++i}return o}preprocessedTargets(n){if(n.type!==t.COLUMN_TYPE.STRING)throw new Error("Training failes - incorrect target type");const e=this.classesCount,r=n.length,o=n.getRawData(),i=new Array(r),s=new Uint32Array(e).fill(0);for(let t=0;t<r;++t)i[t]=new Uint8Array(e).fill(0);for(let t=0;t<r;++t)i[t][o[t]]=1,++s[o[t]];return{oneHot:i,weights:s}}predict(n){if(void 0===this.params)throw new Error("Non-trained model");if(n.length!==this.featuresCount)throw new Error("Predcition fails: incorrect features count");const e=this.normalized(n),r=e.length,o=this.featuresCount,i=this.classesCount;let s,a;const u=new Float32Array(i);let c,l,f;const h=new Array(r);for(let t=0;t<r;++t){s=e[t],c=0;for(let t=0;t<i;++t){a=this.params[t],c=a[o];for(let t=0;t<o;++t)c+=a[t]*s[t];u[t]=Math.exp(c)}l=u[0],f=0;for(let t=1;t<i;++t)l<u[t]&&(l=u[t],f=t);h[t]=this.categories[f]}return t.Column.fromStrings("predicted",h)}fitSoftmaxParams(t,n,r,o,i,s){return Jn(this,void 0,void 0,(function*(){const a=this.preprocessedTargets(n);return new Promise(((u,c)=>{const l=new Worker(new URL(e.p+e.u(501),e.b));l.postMessage({features:this.normalized(t),transposed:this.transposed(t),oneHot:a.oneHot,classesWeights:a.weights,targetRaw:n.getRawData(),iterations:r,rate:o,penalty:i,tolerance:s}),l.onmessage=function(t){l.terminate(),u(t.data.params),console.log(`Loss: ${t.data.loss}`)}}))}))}}var oe,ie,se,ae;(ae=oe||(oe={}))[ae.ITERATIONS=20]="ITERATIONS",ae[ae.ETA=.3]="ETA",ae[ae.MAX_DEPTH=6]="MAX_DEPTH",ae[ae.LAMBDA=1]="LAMBDA",ae[ae.ALPHA=0]="ALPHA",function(t){t[t.SAMLPES_HIGH=1e5]="SAMLPES_HIGH",t[t.SAMLPES_MID=5e4]="SAMLPES_MID",t[t.SAMPLES_LOW=1e4]="SAMPLES_LOW",t[t.FEATURES_HIGH=10]="FEATURES_HIGH",t[t.FEATURES_MID=20]="FEATURES_MID",t[t.FEATURES_LOW=100]="FEATURES_LOW"}(ie||(ie={})),function(t){t[t.MODEL=1e7]="MODEL",t[t.UTILS=1]="UTILS",t[t.PACK=128]="PACK",t[t.SIZE=4]="SIZE"}(se||(se={}));const ue=t.FLOAT_NULL;var ce;!function(t){t.PREDICT="Prediction",t.TYPE="Type",t.PARAMS="Params count",t.CATS="Categories",t.CATS_SIZE="Categories size"}(ce||(ce={}));class le{static isApplicable(t,n){for(const n of t)if(!n.matches("numerical"))return!1;return!(!n.matches("numerical")&&!n.matches("string"))}static isInteractive(t,n){const e=t.length,r=n.length;return r<=ie.SAMPLES_LOW?e<=ie.FEATURES_LOW:r<=ie.SAMLPES_MID?e<=ie.FEATURES_MID:r<=ie.SAMLPES_HIGH&&e<=ie.FEATURES_HIGH}constructor(n){var e;if(this.modelParams=void 0,this.targetType=void 0,this.targetCategories=void 0,n)try{let r=0;const o=new Uint32Array(n.buffer,r,1)[0];r+=se.SIZE;const i=t.DataFrame.fromByteArray(new Uint8Array(n.buffer,r,o));r+=o,this.targetType=i.get(ce.TYPE,0);const s=i.get(ce.PARAMS,0),a=i.get(ce.CATS_SIZE,0);if(a>0){const o=t.DataFrame.fromByteArray(new Uint8Array(n.buffer,r,a));this.targetCategories=null===(e=o.col(ce.CATS))||void 0===e?void 0:e.toList()}r+=a,r=4*Math.ceil(r/4),this.modelParams=new Int32Array(n.buffer,r,s)}catch(t){throw new Error(`Failed to load model: ${t instanceof Error?t.message:"the platform issue"}`)}}fit(n,r){return o=this,i=arguments,a=function*(n,r,o=oe.ITERATIONS,i=oe.ETA,s=oe.MAX_DEPTH,a=oe.LAMBDA,u=oe.ALPHA){this.targetType=r.type,this.targetType===t.COLUMN_TYPE.STRING&&(this.targetCategories=r.categories),this.modelParams=yield async function(t,n,r,o,i,s,a,u,c,l){return new Promise(((f,h)=>{const m=n.length,d=t.length,p=new Float32Array(m*d);let g,y;for(let n=0;n<d;++n){y=t.byIndex(n).getRawData(),g=n*m;for(let t=0;t<m;++t)p[t+g]=y[t]}const v=new Worker(new URL(e.p+e.u(990),e.b));v.postMessage({features:p,target:n.getRawData(),samplesCount:m,featuresCount:d,modelReserve:c,utilsLength:l,iterations:o,eta:i,maxDepth:s,lambda:a,alpha:u,missingValue:r}),v.onmessage=function(t){v.terminate(),f(t.data.params)}}))}(n,r,ue,o,i,s,a,u,se.MODEL,se.UTILS)},new((s=void 0)||(s=Promise))((function(t,n){function e(t){try{u(a.next(t))}catch(t){n(t)}}function r(t){try{u(a.throw(t))}catch(t){n(t)}}function u(n){var o;n.done?t(n.value):(o=n.value,o instanceof s?o:new s((function(t){t(o)}))).then(e,r)}u((a=a.apply(o,i||[])).next())}));var o,i,s,a}predict(n){if(void 0===this.modelParams)throw new Error("Failed to apply non-trained model");const e=function(t,n,e){const r=t.byIndex(0).length,o=t.length,i=e.length;let s=XGBoostModule.HEAPF32;const a=XGBoostModule.HEAP32,u=XGBoostModule._malloc(r*o*4),c=XGBoostModule._malloc(4*r),l=XGBoostModule._malloc(4*i);for(let n=0;n<o;++n){const e=t.byIndex(n).getRawData();for(let t=0;t<r;++t)s[u/4+t+n*r]=e[t]}for(let t=0;t<i;++t)a[l/4+t]=e[t];XGBoostModule._predict(u,r,o,n,l,i,c,r),s=XGBoostModule.HEAPF32;const f=new Float32Array(r);for(let t=0;t<r;++t)f[t]=s[c/4+t];return XGBoostModule._free(u),XGBoostModule._free(c),XGBoostModule._free(l),f}(n,ue,this.modelParams);switch(this.targetType){case t.COLUMN_TYPE.STRING:return this.stringColPrediction(e);case t.COLUMN_TYPE.INT:return this.intColPrediction(e);case t.COLUMN_TYPE.BIG_INT:return this.bigIntColPrediction(e);default:return t.Column.fromFloat32Array(ce.PREDICT,e)}}toBytes(){if(void 0===this.modelParams||void 0===this.targetType)throw new Error("Failed to pack non-trained model");const n=void 0!==this.targetCategories?t.DataFrame.fromColumns([t.Column.fromList(t.COLUMN_TYPE.STRING,ce.CATS,this.targetCategories)]).toByteArray():void 0,e=void 0!==n?n.length:0,r=this.modelParams.length*this.modelParams.BYTES_PER_ELEMENT,o=t.DataFrame.fromColumns([t.Column.fromStrings(ce.TYPE,[this.targetType]),t.Column.fromInt32Array(ce.PARAMS,new Int32Array([this.modelParams.length])),t.Column.fromInt32Array(ce.CATS_SIZE,new Int32Array([e]))]).toByteArray(),i=o.length,s=64*Math.ceil((se.SIZE+i+e+r+se.PACK)/64),a=new Uint8Array(s);let u=0;return new Uint32Array(a.buffer,u,1)[0]=i,u+=se.SIZE,a.set(o,u),u+=i,e>0&&a.set(n,u),u+=e,u=4*Math.ceil(u/4),a.set(new Uint8Array(this.modelParams.buffer),u),a}stringColPrediction(n){const e=n.length;if(void 0===this.targetCategories)throw new Error("Predicting fails: undefined categories");const r=new Array(e),o=this.targetCategories.length-1;for(let t=0;t<e;++t)r[t]=this.targetCategories[(i=Math.round(n[t]),Math.max(0,Math.min(i,o)))];var i;return t.Column.fromList(t.COLUMN_TYPE.STRING,ce.PREDICT,r)}intColPrediction(n){const e=n.length,r=new Int32Array(e);for(let t=0;t<e;++t)r[t]=Math.round(n[t]);return t.Column.fromInt32Array(ce.PREDICT,r,e)}bigIntColPrediction(n){const e=n.length,r=new BigInt64Array(e);for(let t=0;t<e;++t)r[t]=BigInt(Math.round(n[t]));return t.Column.fromBigInt64Array(ce.PREDICT,r)}}var fe=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const he=100,me=8e3;var de;L("Softmax",(()=>{O("Performance: 50K samples, 100 features",(()=>fe(void 0,void 0,void 0,(function*(){const t=Kn(5e4,he,!1).columns,n=t.byIndex(he);t.remove(n.name);const e=new re({classesCount:n.categories.length,featuresCount:t.length});yield e.fit(t,n);const r=e.toBytes();new re(void 0,r).predict(t)}))),{timeout:me,benchmark:!0}),O("Correctness",(()=>fe(void 0,void 0,void 0,(function*(){const t=Kn(50,2,!0).columns,n=t.byIndex(2);t.remove(n.name);const e=new re({classesCount:n.categories.length,featuresCount:t.length});yield e.fit(t,n);const r=e.toBytes(),o=jn(n,new re(void 0,r).predict(t));R(o>.9,!0,`Softmax failed, too small accuracy: ${o}; expected: <= 0.9`)}))),{timeout:me})})),L("XGBoost",(()=>{O("Performance: 50K samples, 100 features",(()=>fe(void 0,void 0,void 0,(function*(){const t=Kn(5e4,he,!1).columns,n=t.byIndex(he);t.remove(n.name);const e=new le;yield e.fit(t,n);const r=e.toBytes();new le(r).predict(t)}))),{timeout:me,benchmark:!0}),O("Correctness",(()=>fe(void 0,void 0,void 0,(function*(){const t=Kn(50,2,!0).columns,n=t.byIndex(2);t.remove(n.name);const e=new le;yield e.fit(t,n);const r=e.toBytes(),o=jn(n,new le(r).predict(t));R(o>.9,!0,`XGBoost failed, too small accuracy: ${o}; expected: <= 0.9`)}))),{timeout:me})})),function(t){t.NO_DATAFRAME="No dataframe is opened",t.NO_MISSING_VALUES="No missing values",t.ONE_AVAILABLE_FEATURE="Not enough of feature columns to apply imputation using the KNN method",t.ONE_FEATURE_SELECTED="Imputation cannot be applied to",t.UNSUPPORTED_COLUMN_TYPE="Unsupported column type",t.UNSUPPORTED_IMPUTATION_STRATEGY="Unsupported imputation strategy",t.KNN_CANNOT_BE_APPLIED="KNN imputer cannot be applied: no columns to be used as features",t.KNN_NO_TARGET_COLUMNS="KNN imputer cannot be applied: no columns with missing values",t.KNN_NO_FEATURE_COLUMNS="KNN imputer cannot be applied: no feature columns",t.KNN_NOT_ENOUGH_OF_ROWS="KNN imputer cannot be applied: not enough of rows",t.KNN_IMPOSSIBLE_IMPUTATION="Imputation is impossible, no features can be used",t.INCORRECT_NEIGHBORS="Incorrect number of neighbors",t.KNN_FAILS="KNN IMPUTATION FAILS",t.CORE_ISSUE="Core issue",t.FAILED_TO_IMPUTE="Failed to impute",t.UNSUPPORTED_FILL_VALUE_TYPE="Unsupported fill value type",t.EMPTY_COLUMN="Column contains just null values",t.FAILS_TO_PREDICT_IMPUTATION_FAILS="Failed to predict imputation fails",t.WRONG_PREDICTIONS="wrong evaluation of KNN imputation fails"}(de||(de={}));const pe="copy";var ge,ye;!function(t){t.KNN_IMPUTER="k-NN Imputation",t.TABLE="Table",t.IN_PLACE="In-place",t.COLUMNS="Impute",t.FEATURES="Using",t.CANCEL="CANCEL",t.RUN="RUN",t.OK="OK",t.NEIGHBORS="Neighbors",t.DISTANCE="Distance",t.FILL="Fill",t.MARK="Mark",t.SIMPLE_IMPUTER="Simple impute",t.SETTINGS="Settings",t.KEEP_EMPTY="Keep empty"}(ge||(ge={})),function(t){t.TARGET="Columns with missing values that must be filled",t.FEATURES="Columns with features to be used for determining the 'nearest' elements in the k-NN method",t.IN_PLACE="Defines whether to use in-place imputation or add a new column without missing values",t.METRIC="Type of metric between the feature values",t.WEIGHT="Weight",t.NEIGHBORS="Neighbors count used in the KNN method",t.DISTANCE="Type of distance between elements with the specified features",t.METRIC_SETTINGS="Show additional options",t.FILL_FAILED_ITEMS="Impute missing values using a simple approach: mean, median or most frequent",t.MARK_FAILED_ITEMS="Mark missing values cells with a color",t.FILL_VALUE="Fill value",t.IMPUTATION_SETTINGS="Simple imputation settings",t.KEEP_EMPTY="Defines whether to keep empty missing values failed to be imputed OR fill them using simple imputation",t.RUN="Run imputation using the k-NN method"}(ye||(ye={}));const ve=[t.COLUMN_TYPE.INT,t.COLUMN_TYPE.FLOAT,t.COLUMN_TYPE.STRING,t.COLUMN_TYPE.DATE_TIME,t.COLUMN_TYPE.QNUM];function we(n){switch(n.type){case t.COLUMN_TYPE.INT:return t.INT_NULL;case t.COLUMN_TYPE.FLOAT:case t.COLUMN_TYPE.QNUM:case t.COLUMN_TYPE.DATE_TIME:return t.FLOAT_NULL;case t.COLUMN_TYPE.STRING:return n.max;default:throw new Error(de.UNSUPPORTED_COLUMN_TYPE)}}var Ee,Ae,Ce,_e;function xe(n){switch(n){case t.COLUMN_TYPE.STRING:case t.COLUMN_TYPE.DATE_TIME:return{defaultWeight:Ce.WEIGHT,defaultMetric:Ee.ONE_HOT,availableMetrics:[Ee.ONE_HOT]};case t.COLUMN_TYPE.INT:case t.COLUMN_TYPE.FLOAT:case t.COLUMN_TYPE.QNUM:return{defaultWeight:Ce.WEIGHT,defaultMetric:Ee.DIFFERENCE,availableMetrics:[Ee.DIFFERENCE,Ee.ONE_HOT]};default:throw new Error(de.UNSUPPORTED_COLUMN_TYPE)}}!function(t){t.ONE_HOT="One-hot",t.DIFFERENCE="Difference"}(Ee||(Ee={})),(_e=Ae||(Ae={})).EUCLIDEAN="Euclidean",_e.MANHATTAN="Manhattan",function(t){t[t.WEIGHT=1]="WEIGHT",t[t.NEIGHBORS=4]="NEIGHBORS",t[t.IN_PLACE=1]="IN_PLACE",t[t.SELECTED=1]="SELECTED",t[t.KEEP_EMPTY=0]="KEEP_EMPTY"}(Ce||(Ce={}));const Ne=e=>{O(`${e} dist, 100K rows, 15 cols, 75 missing vals`,(()=>{return r=void 0,o=void 0,s=function*(){const r=function(n){const e=Wn.length,r=[];let o=0;const i=new Map;for(let e=0;e<5;++e){const s=new Int32Array(n),a=`int #${e+1}`,u=[];for(let t=0;t<n;++t)s[t]=Math.floor(10*Math.random());for(let e=0;e<5;++e)o=Math.floor(n*Math.random()),s[o]=t.INT_NULL,u.push(o);r.push(t.Column.fromInt32Array(a,s)),i.set(a,u)}for(let e=0;e<5;++e){const s=new Float32Array(n),a=`float #${e+1}`,u=[];for(let t=0;t<n;++t)s[t]=10*Math.random();for(let e=0;e<5;++e)o=Math.floor(n*Math.random()),s[o]=t.FLOAT_NULL,u.push(o);r.push(t.Column.fromFloat32Array(a,s)),i.set(a,u)}for(let s=0;s<5;++s){const a=new Array(n),u=`str #${s+1}`,c=[];for(let t=0;t<n;++t)a[t]=Wn[Math.floor(Math.random()*e)];const l=t.Column.fromStrings(u,a);for(let t=0;t<5;++t)o=Math.floor(n*Math.random()),l.set(o,null),c.push(o);r.push(l),i.set(u,c)}return{df:t.DataFrame.fromColumns(r),misValsIds:i}}(1e5),o=r.df,i=o.columns.names(),s=new Map,a=r.misValsIds;for(const t of o.columns){const n=xe(t.type);s.set(t.name,{weight:n.defaultWeight,type:n.defaultMetric})}const u=function(e,r,o,i,s,a,u){if(a<1)throw new Error(de.INCORRECT_NEIGHBORS);if(e.rowCount<2)throw new Error(de.KNN_NOT_ENOUGH_OF_ROWS);if(0===r.length)throw new Error(de.KNN_NO_TARGET_COLUMNS);if(0===o.size)throw new Error(de.KNN_NO_FEATURE_COLUMNS);1===o.size&&r.forEach((t=>{if(o.has(t))throw new Error(`${de.KNN_NO_FEATURE_COLUMNS} can be used for the column '${t}'`)})),r.forEach((t=>{if(!i.has(t))throw new Error(`${de.KNN_FAILS}: ${de.WRONG_PREDICTIONS}`)}));const c=e.columns;r.forEach((t=>{if(!ve.includes(c.byName(t).type))throw new Error(de.UNSUPPORTED_COLUMN_TYPE)})),o.forEach(((t,n)=>{if(!ve.includes(e.getCol(n).type))throw new Error(de.UNSUPPORTED_COLUMN_TYPE)}));const l=new Map;return r.forEach((r=>{const f=c.byName(r),h=we(f),m=f.length,d=f.getRawData(),p=new Uint16Array(f.categories.length),g=[],y=[],v=[],w=[];o.forEach(((t,n)=>{if(n!==f.name){const e=c.byName(n);switch(g.push(e.getRawData()),y.push(we(e)),t.type){case Ee.DIFFERENCE:v.push(((n,e)=>t.weight*Math.abs(n-e)));break;case Ee.ONE_HOT:v.push(((n,e)=>t.weight*(n===e?0:1)))}}}));const E=g.length,A=new Uint32Array(g.length),C=new Float32Array(g.length);let _=0;const x=new Array(a);let N=0,b=0,S=0,T=0,I=0;const M=(t,n)=>{A.forEach(((e,r)=>{C[r]=v[e](g[e][t],g[e][n])}))},O=s===Ae.EUCLIDEAN?()=>{let t=0;for(let n=0;n<_;++n)t+=C[n]*C[n];return Math.sqrt(t)}:()=>{let t=0;for(let n=0;n<_;++n)t+=Math.abs(C[n]);return Math.sqrt(t)},R=t=>{if(d[t]===h)return!1;for(let n=0;n<_;++n)if(g[A[n]][t]===y[A[n]])return!1;return!0},L=n=>{if((t=>{_=0;for(let n=0;n<E;++n)g[n][t]!==y[n]&&(A[_]=n,++_)})(n),0===_)throw new Error(`${de.KNN_IMPOSSIBLE_IMPUTATION}: the column "${f.name}", row ${n+1}`);N=0;for(let t=0;t<m;++t)if(R(t)&&t!==n){M(n,t);const e=O();if(N<a)x[N]={index:t,dist:e},++N;else{b=0,S=x[0].dist;for(let t=1;t<N;++t)S<x[t].dist&&(S=x[t].dist,b=t);e<S&&(x[b]={index:t,dist:e})}}if(0===N)throw new Error(`${de.KNN_IMPOSSIBLE_IMPUTATION}: the column "${f.name}", row ${n+1}`);if(f.type===t.COLUMN_TYPE.STRING)return(()=>{p.forEach(((t,n,e)=>e[n]=0));let t=0;for(t=0;t<N;++t)++p[d[x[t].index]];let n=p[0],e=0;return p.forEach(((t,r)=>{t>n&&(n=t,e=r)})),e})();T=0;for(let t=0;t<N;++t)T+=d[x[t].index];return I=T/N,f.type===t.COLUMN_TYPE.INT?Math.round(I):I};if(u){for(const t of i.get(r))try{d[t]=L(t)}catch(e){w.push(t),e instanceof Error||n.shell.error(de.CORE_ISSUE)}w.length>0&&l.set(r,w),f.set(0,f.get(0))}else{const t=f.clone();let o=1,s=`${r}(${pe})`;for(;e.columns.contains(s);)s=`${r}(${pe} ${o})`,++o;t.name=s;const a=t.getRawData();for(const t of i.get(r))try{a[t]=L(t)}catch(e){w.push(t),e instanceof Error||n.shell.error(de.CORE_ISSUE)}w.length>0&&l.set(s,w),t.set(0,t.get(0)),e.columns.add(t)}})),l}(o,i,s,a,e,5,!0);let c=0;u.forEach(((t,n)=>c+=t.length)),R(c,0,`Failed to impute ${c} missing values`)},new((i=void 0)||(i=Promise))((function(t,n){function e(t){try{u(s.next(t))}catch(t){n(t)}}function a(t){try{u(s.throw(t))}catch(t){n(t)}}function u(n){var r;n.done?t(n.value):(r=n.value,r instanceof i?r:new i((function(t){t(r)}))).then(e,a)}u((s=s.apply(r,o||[])).next())}));var r,o,i,s}),{timeout:1e4,benchmark:!0})};L("Missing values imputation",(()=>{Ne(Ae.EUCLIDEAN),Ne(Ae.MANHATTAN)}));var be,Se=e(6572);function Te(t){if(t<=0||t>=1)throw new Error(be.INCORRECT_SIGNIFICANCE_LEVEL)}function Ie(t){const n=t.size;return n<=1?0:(t.sumOfSquares-Math.pow(t.sum,2)/n)/(n-1)}function Me(t,n,e){Te(e);const r=Ie(t),o=Ie(n);return 0===r||0===o?r===o:r/o<Se.centralF.inv(1-e,t.size-1,n.size-1)}!function(t){t.NON_EQUAL_FACTORS_VALUES_SIZE="non-equal sizes of factor and values arrays",t.INCORRECT_SIGNIFICANCE_LEVEL="incorrect significance level",t.NON_EQUAL_VARIANCES="non-equal variances",t.NON_NORMAL_DISTRIB="non-normal distribution",t.UNSUPPORTED_COLUMN_TYPE="unsupported feature column type",t.INCORRECT_CATEGORIES_COL_TYPE="incorrect categories column type",t.SINGLE_FACTOR="single category features",t.CATS_EQUAL_SIZE="single value in each category",t.NO_FEATURE_VARIATION="no feature variation",t.NO_FEATURE_VARIATION_WITHIN_GROUPS="no feature variation within groups"}(be||(be={}));class Oe{constructor(t,n,e){if(this.nullsCount=0,t.length!==n.length)throw new Error(be.NON_EQUAL_FACTORS_VALUES_SIZE);if(!(n.stats.stdev>0))throw new Error(be.NO_FEATURE_VARIATION);this.setStats(t,n,e)}areVarsEqual(t){const n=this.catCount;if(1===n)return!0;const e={sum:this.sums[0],sumOfSquares:this.sumsOfSquares[0],size:this.subSampleSizes[0]};for(let r=1;r<n;++r)if(!Me(e,{sum:this.sums[r],sumOfSquares:this.sumsOfSquares[r],size:this.subSampleSizes[r]},t))return!1;return!0}getOneWayAnova(){let t=0,n=0,e=0,r=this.catCount,o=r;for(let i=0;i<r;++i)0!==this.subSampleSizes[i]?(t+=this.sums[i],n+=this.sumsOfSquares[i],e+=Math.pow(this.sums[i],2)/this.subSampleSizes[i]):--o;if(r=o,1===r)throw new Error(be.SINGLE_FACTOR);const i=this.size-this.nullsCount;if(i===r)throw new Error(be.CATS_EQUAL_SIZE);const s=n-Math.pow(t,2)/i,a=e-Math.pow(t,2)/i,u=s-a;if(0===u)throw new Error(be.NO_FEATURE_VARIATION_WITHIN_GROUPS);const c=r-1,l=i-r,f=a/c,h=u/l,m=f/h;return{ssBn:a,ssWn:u,ssTot:s,dfBn:c,dfWn:l,dfTot:i-1,msBn:f,msWn:h,fStat:m,pValue:1-Se.centralF.cdf(m,c,l)}}setStats(n,e,r){const o=e.type,i=e.length,s=we(e);switch(o){case t.COLUMN_TYPE.INT:case t.COLUMN_TYPE.FLOAT:const o=r;this.catCount=o,this.size=i;const a=e.getRawData(),u=n.getRawData(),c=new Float64Array(o).fill(0),l=new Float64Array(o).fill(0),f=new Int32Array(o).fill(0);let h;if(n.type==t.COLUMN_TYPE.BOOL){let t=0,n=0,e=u[0];const r=8*u.BYTES_PER_ELEMENT-1;for(let o=0;o<i;++o)h=1&e>>n,a[o]!==s?(c[h]+=a[o],l[h]+=Math.pow(a[o],2),++f[h]):++this.nullsCount,++n,n>r&&(n=0,++t,e=u[t])}else{const t=n.stats.missingValueCount>0?we(n):-1;for(let n=0;n<i;++n)h=u[n],h!==t&&a[n]!==s?(c[h]+=a[n],l[h]+=Math.pow(a[n],2),++f[h]):++this.nullsCount}this.sums=c,this.sumsOfSquares=l,this.subSampleSizes=f;break;default:throw new Error(be.UNSUPPORTED_COLUMN_TYPE)}}}function Re(t,n,e,r=!0){Te(e);const o=t.stats.uniqueCount;if(o<2)throw new Error(be.SINGLE_FACTOR);const i=new Oe(t,n,o);if(r&&!i.areVarsEqual(e))throw new Error(be.NON_EQUAL_VARIANCES);const s=i.getOneWayAnova();return{anovaTable:s,fCritical:Se.centralF.inv(1-e,s.dfBn,s.dfWn),significance:e}}var Le=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const Pe=.05,De=!1,Fe=t.Column.fromList(t.COLUMN_TYPE.INT,"features",[9,12,4,8,7,4,6,8,2,10,1,3,4,5,2]),Ue=t.Column.fromStrings("features",["A","A","A","A","A","B","B","B","B","B","C","C","C","C","C"]);var Be;!function(t){t[t.DF_BN=2]="DF_BN",t[t.DF_TOT=14]="DF_TOT",t[t.DF_WN=12]="DF_WN",t[t.SS_BN=63.333]="SS_BN",t[t.SS_TOT=147.333]="SS_TOT",t[t.SS_WN=84]="SS_WN",t[t.MS_BN=31.666]="MS_BN",t[t.MS_WN=7]="MS_WN",t[t.F_STAT=4.523]="F_STAT",t[t.F_CRIT=3.885]="F_CRIT",t[t.P_VAL=.034]="P_VAL"}(Be||(Be={})),L("ANOVA",(()=>{O("Performance: 1M rows demog",(()=>Le(void 0,void 0,void 0,(function*(){const t=n.data.demo.demog(1e6),e=t.col("race"),r=t.col("height");new Oe(e,r,e.stats.uniqueCount).areVarsEqual(Pe),Re(e,r,Pe,De)}))),{timeout:4e3,benchmark:!0}),O("Correctness",(()=>Le(void 0,void 0,void 0,(function*(){const t=Re(Ue,Fe,Pe,De),n=t.anovaTable;R(n.dfBn,Be.DF_BN,"Incorrect degrees of freedom: dfBn"),R(n.dfTot,Be.DF_TOT,"Incorrect degrees of freedom: dfTot"),R(n.dfWn,Be.DF_WN,"Incorrect degrees of freedom: dfWn");const e=(t,n)=>Math.abs(t-n)<.01;R(e(n.ssBn,Be.SS_BN),!0,"Incorrect sum of squares: ssBn"),R(e(n.ssTot,Be.SS_TOT),!0,"Incorrect sum of squares: ssTot"),R(e(n.ssWn,Be.SS_WN),!0,"Incorrect sum of squares: ssWn"),R(e(n.msBn,Be.MS_BN),!0,"Incorrect mean squares: msBn"),R(e(n.msWn,Be.MS_WN),!0,"Incorrect mean squares: msWn"),R(e(n.fStat,Be.F_STAT),!0,"Incorrect F-statistics value"),R(e(n.pValue,Be.P_VAL),!0,"Incorrect p-value"),R(e(t.fCritical,Be.F_CRIT),!0,"Incorrect F-critical")}))),{timeout:4e3})}));var ke=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const He=new t.Package;function Ge(e,r,o){return ke(this,void 0,void 0,(function*(){const m=yield function(e){var r,o,m,d;return i(this,void 0,void 0,(function*(){const p=null===(o=null===(r=n.functions.getCurrentCall())||void 0===r?void 0:r.func)||void 0===o?void 0:o.package;yield D(p);const g=[];console.log("Running tests"),null!=e||(e={}),null!==(m=(d=e).testContext)&&void 0!==m||(d.testContext=new I),n.shell.clearLastError();const y=function(){const t=[];return console.log=(...n)=>{t.push(...n),u(...n)},console.info=(...n)=>{t.push(...n),c(...n)},console.warn=(...n)=>{t.push(...n),l(...n)},console.error=(...n)=>{t.push(...n),f(...n)},t}();yield function(e,r){var o,h,m,d,w,E,A,C,_,x,N,b,S,T,I,M,O,R,L,P;return i(this,void 0,void 0,(function*(){try{for(const[i,c]of Object.entries(e)){if((null==r?void 0:r.category)&&!i.toLowerCase().startsWith(null==r?void 0:r.category.toLowerCase())||(null===(o=r.exclude)||void 0===o?void 0:o.some((t=>i.startsWith(t)))))continue;u(`Started ${i} category`);const e=null===(h=c.tests)||void 0===h?void 0:h.every((t=>{var n;return null===(n=t.options)||void 0===n?void 0:n.skipReason}));e||(c.beforeStatus=yield v(c.before,null!==(m=r.category)&&void 0!==m?m:""));let l=null!==(d=c.tests)&&void 0!==d?d:[];r.stressTest&&(l=l.filter((t=>{var n;return null===(n=t.options)||void 0===n?void 0:n.stressTest})),l=B(l)),(null!==(E=null===(w=r.tags)||void 0===w?void 0:w.length)&&void 0!==E?E:0)>0&&(l=l.filter((t=>{var n,e;return null===(e=null===(n=t.options)||void 0===n?void 0:n.tags)||void 0===e?void 0:e.some((t=>{var n;return(null!==(n=null==r?void 0:r.tags)&&void 0!==n?n:[]).includes(t)}))})));const f=[];if(c.clear)for(let e=0;e<l.length;e++){l[e].options&&void 0===(null===(A=l[e].options)||void 0===A?void 0:A.benchmark)&&(l[e].options||(l[e].options={}),l[e].options.benchmark=null!==(C=c.benchmarks)&&void 0!==C&&C);let o=l[e];(null==o?void 0:o.options)&&(o.options.owner=null!==(x=null===(_=l[e].options)||void 0===_?void 0:_.owner)&&void 0!==x?x:null==c?void 0:c.owner);let i=yield U(o,null==r?void 0:r.test,y,t.Test.isInBenchmark?null!==(b=null===(N=l[e].options)||void 0===N?void 0:N.benchmarkTimeout)&&void 0!==b?b:a:null!==(T=null===(S=l[e].options)||void 0===S?void 0:S.timeout)&&void 0!==T?T:s,p.name,r.verbose);i&&f.push(i),n.shell.closeAll(),t.Balloon.closeAll()}else for(let n=0;n<l.length;n++){let e=l[n];(null==e?void 0:e.options)&&(e.options.owner=null!==(M=null===(I=l[n].options)||void 0===I?void 0:I.owner)&&void 0!==M?M:null==c?void 0:c.owner);let o=yield U(e,null==r?void 0:r.test,y,t.Test.isInBenchmark?null!==(R=null===(O=l[n].options)||void 0===O?void 0:O.benchmarkTimeout)&&void 0!==R?R:a:null===(L=l[n].options)||void 0===L?void 0:L.timeout,p.name,r.verbose);o&&f.push(o)}const D=f.filter((t=>"skipped"!=t.result));e||(c.afterStatus=yield v(c.after,null!==(P=r.category)&&void 0!==P?P:"")),c.afterStatus&&D.push({date:(new Date).toISOString(),logs:"",category:i,name:"after",result:c.afterStatus,success:!1,ms:0,skipped:!1}),c.beforeStatus&&D.push({date:(new Date).toISOString(),logs:"",category:i,name:"before",result:c.beforeStatus,success:!1,ms:0,skipped:!1}),g.push(...D)}}finally{console.log=u,console.info=c,console.warn=l,console.error=f}if(r.testContext.catchUnhandled&&!t.Test.isInBenchmark){yield k(1e3);const e=yield n.shell.lastError,r={logs:"",date:(new Date).toISOString(),category:"Unhandled exceptions",name:"Exception",result:null!=e?e:"",success:!e,ms:0,skipped:!1,flaking:t.Test.isReproducing&&!e};g.push(r),r.package=p.name,null!=n.shell.reportTest?yield n.shell.reportTest("package",r):yield fetch(`${n.dapi.root}/log/tests/package`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify(r)})}}))}(h,e);for(let t of g)t.result=t.result.toString().replace(/"/g,"'"),null!=t.logs&&(t.logs=t.logs.toString().replace(/"/g,"'"));return g;function v(t,n){return i(this,void 0,void 0,(function*(){var e=void 0;try{void 0!==t&&(yield H((()=>i(this,void 0,void 0,(function*(){yield t()}))),1e5,`before ${n}: timeout error`))}catch(t){e=yield F(t)}return e}))}}))}({category:e,test:r,testContext:o});return t.DataFrame.fromObjects(m)}))}function Ve(){return ke(this,void 0,void 0,(function*(){yield D(He,He.getModule("package-test.js"))}))}})(),eda_test=r})();
|
|
1
|
+
var eda_test;(()=>{var t={944:(t,n)=>{"use strict";n.Vb=void 0,n.Vb=function(t,n,e){var r=function(t,n,e){if(0===t.length||0===n.length)return 0;if(e&&!e.caseSensitive&&(t=t.toUpperCase(),n=n.toUpperCase()),t===n)return 1;for(var r=0,o=t.length,i=n.length,s=Math.floor(Math.max(o,i)/2)-1,a=new Array(o),u=new Array(i),c=0;c<o;c++)for(var l=Math.max(0,c-s);l<=Math.min(i,c+s+1);l++)if(!a[c]&&!u[l]&&t[c]===n[l]){++r,a[c]=u[l]=!0;break}if(0===r)return 0;var f=0,h=0;for(c=0;c<o;c++)if(a[c]){for(;!u[h];)h++;t.charAt(c)!==n.charAt(h++)&&f++}return(r/o+r/i+(r-(f/=2))/r)/3}(t,n,e),o=0;if(r>.7){for(var i=Math.min(t.length,n.length),s=0;t[s]===n[s]&&s<4&&s<i;)++o,s++;r+=.1*o*(1-r)}return r}},5540:(t,n,e)=>{"use strict";t=e.hmd(t);var r,o=(r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(t={}){var n,e,o=void 0!==t?t:{};o.ready=new Promise((function(t,r){n=t,e=r}));var i,s=Object.assign({},o),a="object"==typeof window,u="function"==typeof importScripts,c=("object"==typeof process&&"object"==typeof process.versions&&process.versions.node,"");(a||u)&&(u?c=self.location.href:"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),r&&(c=r),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(i=t=>{var n=new XMLHttpRequest;return n.open("GET",t,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)})),o.print||console.log.bind(console);var l,f,h=o.printErr||console.warn.bind(console);Object.assign(o,s),s=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(l=o.wasmBinary),o.noExitRuntime,"object"!=typeof WebAssembly&&b("no native wasm support detected");var m,d,p,g=!1;function y(){var t=f.buffer;o.HEAP8=m=new Int8Array(t),o.HEAP16=new Int16Array(t),o.HEAP32=new Int32Array(t),o.HEAPU8=d=new Uint8Array(t),o.HEAPU16=new Uint16Array(t),o.HEAPU32=p=new Uint32Array(t),o.HEAPF32=new Float32Array(t),o.HEAPF64=new Float64Array(t)}var v,w,E=[],A=[],C=[],_=0,N=null,x=null;function b(t){o.onAbort&&o.onAbort(t),h(t="Aborted("+t+")"),g=!0,t+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(t);throw e(n),n}function S(t){return t.startsWith("data:application/octet-stream;base64,")}function T(t){try{if(t==v&&l)return new Uint8Array(l);if(i)return i(t);throw"both async and sync fetching of the wasm failed"}catch(t){b(t)}}function M(t,n,e){return function(t){return l||!a&&!u||"function"!=typeof fetch?Promise.resolve().then((function(){return T(t)})):fetch(t,{credentials:"same-origin"}).then((function(n){if(!n.ok)throw"failed to load wasm binary file at '"+t+"'";return n.arrayBuffer()})).catch((function(){return T(t)}))}(t).then((function(t){return WebAssembly.instantiate(t,n)})).then((function(t){return t})).then(e,(function(t){h("failed to asynchronously prepare wasm: "+t),b(t)}))}function I(t){for(;t.length>0;)t.shift()(o)}function O(t){this.excPtr=t,this.ptr=t-24,this.set_type=function(t){p[this.ptr+4>>2]=t},this.get_type=function(){return p[this.ptr+4>>2]},this.set_destructor=function(t){p[this.ptr+8>>2]=t},this.get_destructor=function(){return p[this.ptr+8>>2]},this.set_caught=function(t){t=t?1:0,m[this.ptr+12|0]=t},this.get_caught=function(){return 0!=m[this.ptr+12|0]},this.set_rethrown=function(t){t=t?1:0,m[this.ptr+13|0]=t},this.get_rethrown=function(){return 0!=m[this.ptr+13|0]},this.init=function(t,n){this.set_adjusted_ptr(0),this.set_type(t),this.set_destructor(n)},this.set_adjusted_ptr=function(t){p[this.ptr+16>>2]=t},this.get_adjusted_ptr=function(){return p[this.ptr+16>>2]},this.get_exception_ptr=function(){if(G(this.get_type()))return p[this.excPtr>>2];var t=this.get_adjusted_ptr();return 0!==t?t:this.excPtr}}function R(t){var n=f.buffer;try{return f.grow(t-n.byteLength+65535>>>16),y(),1}catch(t){}}function L(t){return o["_"+t]}S(v="wasmDbscan.wasm")||(w=v,v=o.locateFile?o.locateFile(w,c):c+w);var P="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function D(t,n,e,r,o){var i={string:t=>{var n=0;return null!=t&&0!==t&&(n=function(t){var n=function(t){for(var n=0,e=0;e<t.length;++e){var r=t.charCodeAt(e);r<=127?n++:r<=2047?n+=2:r>=55296&&r<=57343?(n+=4,++e):n+=3}return n}(t)+1,e=H(n);return function(t,n,e){!function(t,n,e,r){if(!(r>0))return 0;for(var o=e+r-1,i=0;i<t.length;++i){var s=t.charCodeAt(i);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&t.charCodeAt(++i)),s<=127){if(e>=o)break;n[e++]=s}else if(s<=2047){if(e+1>=o)break;n[e++]=192|s>>6,n[e++]=128|63&s}else if(s<=65535){if(e+2>=o)break;n[e++]=224|s>>12,n[e++]=128|s>>6&63,n[e++]=128|63&s}else{if(e+3>=o)break;n[e++]=240|s>>18,n[e++]=128|s>>12&63,n[e++]=128|s>>6&63,n[e++]=128|63&s}}n[e]=0}(t,d,n,e)}(t,e,n),e}(t)),n},array:t=>{var n,e,r=H(t.length);return n=t,e=r,m.set(n,e),r}},s=L(t),a=[],u=0;if(r)for(var c=0;c<r.length;c++){var l=i[e[c]];l?(0===u&&(u=B()),a[c]=l(r[c])):a[c]=r[c]}var f=s.apply(null,a);return function(t){return 0!==u&&k(u),function(t){return"string"===n?(e=t)?function(t,n,e){for(var r=n+e,o=n;t[o]&&!(o>=r);)++o;if(o-n>16&&t.buffer&&P)return P.decode(t.subarray(n,o));for(var i="";n<o;){var s=t[n++];if(128&s){var a=63&t[n++];if(192!=(224&s)){var u=63&t[n++];if((s=224==(240&s)?(15&s)<<12|a<<6|u:(7&s)<<18|a<<12|u<<6|63&t[n++])<65536)i+=String.fromCharCode(s);else{var c=s-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&s)<<6|a)}else i+=String.fromCharCode(s)}return i}(d,e,r):"":"boolean"===n?Boolean(t):t;var e,r}(t)}(f)}var F,U={__cxa_throw:function(t,n,e){throw new O(t).init(n,e),t},abort:function(){b("")},emscripten_memcpy_big:function(t,n,e){d.copyWithin(t,n,n+e)},emscripten_resize_heap:function(t){var n,e=d.length,r=2147483648;if((t>>>=0)>r)return!1;for(var o=1;o<=4;o*=2){var i=e*(1+.2/o);if(i=Math.min(i,t+100663296),R(Math.min(r,(n=Math.max(t,i))+(65536-n%65536)%65536)))return!0}return!1}},B=(function(){var t,n,r,i,s={env:U,wasi_snapshot_preview1:U};function a(t,n){var e,r=t.exports;return o.asm=r,f=o.asm.memory,y(),o.asm.__indirect_function_table,e=o.asm.__wasm_call_ctors,A.unshift(e),function(){if(_--,o.monitorRunDependencies&&o.monitorRunDependencies(_),0==_&&(null!==N&&(clearInterval(N),N=null),x)){var t=x;x=null,t()}}(),r}if(_++,o.monitorRunDependencies&&o.monitorRunDependencies(_),o.instantiateWasm)try{return o.instantiateWasm(s,a)}catch(t){h("Module.instantiateWasm callback failed with error: "+t),e(t)}(t=l,n=v,r=s,i=function(t){a(t.instance)},t||"function"!=typeof WebAssembly.instantiateStreaming||S(n)||"function"!=typeof fetch?M(n,r,i):fetch(n,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,r).then(i,(function(t){return h("wasm streaming compile failed: "+t),h("falling back to ArrayBuffer instantiation"),M(n,r,i)}))}))).catch(e)}(),o._dbscan=function(){return(o._dbscan=o.asm.dbscan).apply(null,arguments)},o._malloc=function(){return(o._malloc=o.asm.malloc).apply(null,arguments)},o._free=function(){return(o._free=o.asm.free).apply(null,arguments)},function(){return(B=o.asm.stackSave).apply(null,arguments)}),k=function(){return(k=o.asm.stackRestore).apply(null,arguments)},H=function(){return(H=o.asm.stackAlloc).apply(null,arguments)},G=function(){return(G=o.asm.__cxa_is_pointer_type).apply(null,arguments)};function V(){function t(){F||(F=!0,o.calledRun=!0,g||(I(A),n(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)t=o.postRun.shift(),C.unshift(t);var t;I(C)}()))}_>0||(function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)t=o.preRun.shift(),E.unshift(t);var t;I(E)}(),_>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t()))}if(o.ccall=D,o.cwrap=function(t,n,e,r){var o=!e||e.every((t=>"number"===t||"boolean"===t));return"string"!==n&&o&&!r?L(t):function(){return D(t,n,e,arguments)}},x=function t(){F||V(),F||(x=t)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return V(),t.ready});"object"==typeof exports?t.exports=o:"function"==typeof define&&e.amdO?define([],(function(){return o})):"object"==typeof exports&&(exports.exportCppDbscanLib=o)},6572:function(t){var n;t.exports=(n=function(t,n){var e=Array.prototype.concat,r=Array.prototype.slice,o=Object.prototype.toString;function i(n,e){var r=n>e?n:e;return t.pow(10,17-~~(t.log(r>0?r:-r)*t.LOG10E))}var s=Array.isArray||function(t){return"[object Array]"===o.call(t)};function a(t){return"[object Function]"===o.call(t)}function u(t){return"number"==typeof t&&t-t==0}function c(){return new c._init(arguments)}function l(){return 0}function f(){return 1}function h(t,n){return t===n?1:0}c.fn=c.prototype,c._init=function(t){if(s(t[0]))if(s(t[0][0])){a(t[1])&&(t[0]=c.map(t[0],t[1]));for(var n=0;n<t[0].length;n++)this[n]=t[0][n];this.length=t[0].length}else this[0]=a(t[1])?c.map(t[0],t[1]):t[0],this.length=1;else if(u(t[0]))this[0]=c.seq.apply(null,t),this.length=1;else{if(t[0]instanceof c)return c(t[0].toArray());this[0]=[],this.length=1}return this},c._init.prototype=c.prototype,c._init.constructor=c,c.utils={calcRdx:i,isArray:s,isFunction:a,isNumber:u,toVector:function(t){return e.apply([],t)}},c._random_fn=t.random,c.setRandom=function(t){if("function"!=typeof t)throw new TypeError("fn is not a function");c._random_fn=t},c.extend=function(t){var n,e;if(1===arguments.length){for(e in t)c[e]=t[e];return this}for(n=1;n<arguments.length;n++)for(e in arguments[n])t[e]=arguments[n][e];return t},c.rows=function(t){return t.length||1},c.cols=function(t){return t[0].length||1},c.dimensions=function(t){return{rows:c.rows(t),cols:c.cols(t)}},c.row=function(t,n){return s(n)?n.map((function(n){return c.row(t,n)})):t[n]},c.rowa=function(t,n){return c.row(t,n)},c.col=function(t,n){if(s(n)){var e=c.arange(t.length).map((function(){return new Array(n.length)}));return n.forEach((function(n,r){c.arange(t.length).forEach((function(o){e[o][r]=t[o][n]}))})),e}for(var r=new Array(t.length),o=0;o<t.length;o++)r[o]=[t[o][n]];return r},c.cola=function(t,n){return c.col(t,n).map((function(t){return t[0]}))},c.diag=function(t){for(var n=c.rows(t),e=new Array(n),r=0;r<n;r++)e[r]=[t[r][r]];return e},c.antidiag=function(t){for(var n=c.rows(t)-1,e=new Array(n),r=0;n>=0;n--,r++)e[r]=[t[r][n]];return e},c.transpose=function(t){var n,e,r,o,i,a=[];for(s(t[0])||(t=[t]),e=t.length,r=t[0].length,i=0;i<r;i++){for(n=new Array(e),o=0;o<e;o++)n[o]=t[o][i];a.push(n)}return 1===a.length?a[0]:a},c.map=function(t,n,e){var r,o,i,a,u;for(s(t[0])||(t=[t]),o=t.length,i=t[0].length,a=e?t:new Array(o),r=0;r<o;r++)for(a[r]||(a[r]=new Array(i)),u=0;u<i;u++)a[r][u]=n(t[r][u],r,u);return 1===a.length?a[0]:a},c.cumreduce=function(t,n,e){var r,o,i,a,u;for(s(t[0])||(t=[t]),o=t.length,i=t[0].length,a=e?t:new Array(o),r=0;r<o;r++)for(a[r]||(a[r]=new Array(i)),i>0&&(a[r][0]=t[r][0]),u=1;u<i;u++)a[r][u]=n(a[r][u-1],t[r][u]);return 1===a.length?a[0]:a},c.alter=function(t,n){return c.map(t,n,!0)},c.create=function(t,n,e){var r,o,i=new Array(t);for(a(n)&&(e=n,n=t),r=0;r<t;r++)for(i[r]=new Array(n),o=0;o<n;o++)i[r][o]=e(r,o);return i},c.zeros=function(t,n){return u(n)||(n=t),c.create(t,n,l)},c.ones=function(t,n){return u(n)||(n=t),c.create(t,n,f)},c.rand=function(t,n){return u(n)||(n=t),c.create(t,n,c._random_fn)},c.identity=function(t,n){return u(n)||(n=t),c.create(t,n,h)},c.symmetric=function(t){var n,e,r=t.length;if(t.length!==t[0].length)return!1;for(n=0;n<r;n++)for(e=0;e<r;e++)if(t[e][n]!==t[n][e])return!1;return!0},c.clear=function(t){return c.alter(t,l)},c.seq=function(t,n,e,r){a(r)||(r=!1);var o,s=[],u=i(t,n),c=(n*u-t*u)/((e-1)*u),l=t;for(o=0;l<=n&&o<e;l=(t*u+c*u*++o)/u)s.push(r?r(l,o):l);return s},c.arange=function(t,e,r){var o,i=[];if(r=r||1,e===n&&(e=t,t=0),t===e||0===r)return[];if(t<e&&r<0)return[];if(t>e&&r>0)return[];if(r>0)for(o=t;o<e;o+=r)i.push(o);else for(o=t;o>e;o+=r)i.push(o);return i},c.slice=function(){function t(t,e,r,o){var i,s=[],a=t.length;if(e===n&&r===n&&o===n)return c.copy(t);if(o=o||1,(e=(e=e||0)>=0?e:a+e)===(r=(r=r||t.length)>=0?r:a+r)||0===o)return[];if(e<r&&o<0)return[];if(e>r&&o>0)return[];if(o>0)for(i=e;i<r;i+=o)s.push(t[i]);else for(i=e;i>r;i+=o)s.push(t[i]);return s}return function(n,e){var r,o;return u((e=e||{}).row)?u(e.col)?n[e.row][e.col]:t(c.rowa(n,e.row),(r=e.col||{}).start,r.end,r.step):u(e.col)?t(c.cola(n,e.col),(o=e.row||{}).start,o.end,o.step):(o=e.row||{},r=e.col||{},t(n,o.start,o.end,o.step).map((function(n){return t(n,r.start,r.end,r.step)})))}}(),c.sliceAssign=function(e,r,o){var i,s;if(u(r.row)){if(u(r.col))return e[r.row][r.col]=o;r.col=r.col||{},r.col.start=r.col.start||0,r.col.end=r.col.end||e[0].length,r.col.step=r.col.step||1,i=c.arange(r.col.start,t.min(e.length,r.col.end),r.col.step);var a=r.row;return i.forEach((function(t,n){e[a][t]=o[n]})),e}if(u(r.col)){r.row=r.row||{},r.row.start=r.row.start||0,r.row.end=r.row.end||e.length,r.row.step=r.row.step||1,s=c.arange(r.row.start,t.min(e[0].length,r.row.end),r.row.step);var l=r.col;return s.forEach((function(t,n){e[t][l]=o[n]})),e}return o[0].length===n&&(o=[o]),r.row.start=r.row.start||0,r.row.end=r.row.end||e.length,r.row.step=r.row.step||1,r.col.start=r.col.start||0,r.col.end=r.col.end||e[0].length,r.col.step=r.col.step||1,s=c.arange(r.row.start,t.min(e.length,r.row.end),r.row.step),i=c.arange(r.col.start,t.min(e[0].length,r.col.end),r.col.step),s.forEach((function(t,n){i.forEach((function(r,i){e[t][r]=o[n][i]}))})),e},c.diagonal=function(t){var n=c.zeros(t.length,t.length);return t.forEach((function(t,e){n[e][e]=t})),n},c.copy=function(t){return t.map((function(t){return u(t)?t:t.map((function(t){return t}))}))};var m=c.prototype;return m.length=0,m.push=Array.prototype.push,m.sort=Array.prototype.sort,m.splice=Array.prototype.splice,m.slice=Array.prototype.slice,m.toArray=function(){return this.length>1?r.call(this):r.call(this)[0]},m.map=function(t,n){return c(c.map(this,t,n))},m.cumreduce=function(t,n){return c(c.cumreduce(this,t,n))},m.alter=function(t){return c.alter(this,t),this},function(t){for(var n=0;n<t.length;n++)!function(t){m[t]=function(n){var e,r=this;return n?(setTimeout((function(){n.call(r,m[t].call(r))})),this):(e=c[t](this),s(e)?c(e):e)}}(t[n])}("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")),function(t){for(var n=0;n<t.length;n++)!function(t){m[t]=function(n,e){var r=this;return e?(setTimeout((function(){e.call(r,m[t].call(r,n))})),this):c(c[t](this,n))}}(t[n])}("row col".split(" ")),function(t){for(var n=0;n<t.length;n++)!function(t){m[t]=function(){return c(c[t].apply(null,arguments))}}(t[n])}("create zeros ones rand identity".split(" ")),c}(Math),function(t,n){var e=t.utils.isFunction;function r(t,n){return t-n}function o(t,e,r){return n.max(e,n.min(t,r))}t.sum=function(t){for(var n=0,e=t.length;--e>=0;)n+=t[e];return n},t.sumsqrd=function(t){for(var n=0,e=t.length;--e>=0;)n+=t[e]*t[e];return n},t.sumsqerr=function(n){for(var e,r=t.mean(n),o=0,i=n.length;--i>=0;)o+=(e=n[i]-r)*e;return o},t.sumrow=function(t){for(var n=0,e=t.length;--e>=0;)n+=t[e];return n},t.product=function(t){for(var n=1,e=t.length;--e>=0;)n*=t[e];return n},t.min=function(t){for(var n=t[0],e=0;++e<t.length;)t[e]<n&&(n=t[e]);return n},t.max=function(t){for(var n=t[0],e=0;++e<t.length;)t[e]>n&&(n=t[e]);return n},t.unique=function(t){for(var n={},e=[],r=0;r<t.length;r++)n[t[r]]||(n[t[r]]=!0,e.push(t[r]));return e},t.mean=function(n){return t.sum(n)/n.length},t.meansqerr=function(n){return t.sumsqerr(n)/n.length},t.geomean=function(e){var r=e.map(n.log),o=t.mean(r);return n.exp(o)},t.median=function(t){var n=t.length,e=t.slice().sort(r);return 1&n?e[n/2|0]:(e[n/2-1]+e[n/2])/2},t.cumsum=function(n){return t.cumreduce(n,(function(t,n){return t+n}))},t.cumprod=function(n){return t.cumreduce(n,(function(t,n){return t*n}))},t.diff=function(t){var n,e=[],r=t.length;for(n=1;n<r;n++)e.push(t[n]-t[n-1]);return e},t.rank=function(t){var n,e=[],o={};for(n=0;n<t.length;n++)o[u=t[n]]?o[u]++:(o[u]=1,e.push(u));var i=e.sort(r),s={},a=1;for(n=0;n<i.length;n++){var u,c=o[u=i[n]],l=(a+(a+c-1))/2;s[u]=l,a+=c}return t.map((function(t){return s[t]}))},t.mode=function(t){var n,e=t.length,o=t.slice().sort(r),i=1,s=0,a=0,u=[];for(n=0;n<e;n++)o[n]===o[n+1]?i++:(i>s?(u=[o[n]],s=i,a=0):i===s&&(u.push(o[n]),a++),i=1);return 0===a?u[0]:u},t.range=function(n){return t.max(n)-t.min(n)},t.variance=function(n,e){return t.sumsqerr(n)/(n.length-(e?1:0))},t.pooledvariance=function(n){return n.reduce((function(n,e){return n+t.sumsqerr(e)}),0)/(n.reduce((function(t,n){return t+n.length}),0)-n.length)},t.deviation=function(n){for(var e=t.mean(n),r=n.length,o=new Array(r),i=0;i<r;i++)o[i]=n[i]-e;return o},t.stdev=function(e,r){return n.sqrt(t.variance(e,r))},t.pooledstdev=function(e){return n.sqrt(t.pooledvariance(e))},t.meandev=function(e){for(var r=t.mean(e),o=[],i=e.length-1;i>=0;i--)o.push(n.abs(e[i]-r));return t.mean(o)},t.meddev=function(e){for(var r=t.median(e),o=[],i=e.length-1;i>=0;i--)o.push(n.abs(e[i]-r));return t.median(o)},t.coeffvar=function(n){return t.stdev(n)/t.mean(n)},t.quartiles=function(t){var e=t.length,o=t.slice().sort(r);return[o[n.round(e/4)-1],o[n.round(e/2)-1],o[n.round(3*e/4)-1]]},t.quantiles=function(t,e,i,s){var a,u,c,l,f,h=t.slice().sort(r),m=[e.length],d=t.length;for(void 0===i&&(i=3/8),void 0===s&&(s=3/8),a=0;a<e.length;a++)c=d*(u=e[a])+(i+u*(1-i-s)),l=n.floor(o(c,1,d-1)),f=o(c-l,0,1),m[a]=(1-f)*h[l-1]+f*h[l];return m},t.percentile=function(t,n,e){var o=t.slice().sort(r),i=n*(o.length+(e?1:-1))+(e?0:1),s=parseInt(i),a=i-s;return s+1<o.length?o[s-1]+a*(o[s]-o[s-1]):o[s-1]},t.percentileOfScore=function(t,n,e){var r,o,i=0,s=t.length,a=!1;for("strict"===e&&(a=!0),o=0;o<s;o++)r=t[o],(a&&r<n||!a&&r<=n)&&i++;return i/s},t.histogram=function(e,r){r=r||4;var o,i=t.min(e),s=(t.max(e)-i)/r,a=e.length,u=[];for(o=0;o<r;o++)u[o]=0;for(o=0;o<a;o++)u[n.min(n.floor((e[o]-i)/s),r-1)]+=1;return u},t.covariance=function(n,e){var r,o=t.mean(n),i=t.mean(e),s=n.length,a=new Array(s);for(r=0;r<s;r++)a[r]=(n[r]-o)*(e[r]-i);return t.sum(a)/(s-1)},t.corrcoeff=function(n,e){return t.covariance(n,e)/t.stdev(n,1)/t.stdev(e,1)},t.spearmancoeff=function(n,e){return n=t.rank(n),e=t.rank(e),t.corrcoeff(n,e)},t.stanMoment=function(e,r){for(var o=t.mean(e),i=t.stdev(e),s=e.length,a=0,u=0;u<s;u++)a+=n.pow((e[u]-o)/i,r);return a/e.length},t.skewness=function(n){return t.stanMoment(n,3)},t.kurtosis=function(n){return t.stanMoment(n,4)-3};var i=t.prototype;!function(n){for(var r=0;r<n.length;r++)!function(n){i[n]=function(r,o){var s=[],a=0,u=this;if(e(r)&&(o=r,r=!1),o)return setTimeout((function(){o.call(u,i[n].call(u,r))})),this;if(this.length>1){for(u=!0===r?this:this.transpose();a<u.length;a++)s[a]=t[n](u[a]);return s}return t[n](this[0],r)}}(n[r])}("cumsum cumprod".split(" ")),function(n){for(var r=0;r<n.length;r++)!function(n){i[n]=function(r,o){var s=[],a=0,u=this;if(e(r)&&(o=r,r=!1),o)return setTimeout((function(){o.call(u,i[n].call(u,r))})),this;if(this.length>1){for("sumrow"!==n&&(u=!0===r?this:this.transpose());a<u.length;a++)s[a]=t[n](u[a]);return!0===r?t[n](t.utils.toVector(s)):s}return t[n](this[0],r)}}(n[r])}("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")),function(n){for(var r=0;r<n.length;r++)!function(n){i[n]=function(){var r,o=[],s=0,a=this,u=Array.prototype.slice.call(arguments);if(e(u[u.length-1])){r=u[u.length-1];var c=u.slice(0,u.length-1);return setTimeout((function(){r.call(a,i[n].apply(a,c))})),this}r=void 0;var l=function(e){return t[n].apply(a,[e].concat(u))};if(this.length>1){for(a=a.transpose();s<a.length;s++)o[s]=l(a[s]);return o}return l(this[0])}}(n[r])}("quantiles percentileOfScore".split(" "))}(n,Math),function(t,n){t.gammaln=function(t){var e,r,o,i=0,s=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18],a=1.000000000190015;for(o=(r=e=t)+5.5,o-=(e+.5)*n.log(o);i<6;i++)a+=s[i]/++r;return n.log(2.5066282746310007*a/e)-o},t.loggam=function(t){var e,r,o,i,s,a,u,c=[.08333333333333333,-.002777777777777778,.0007936507936507937,-.0005952380952380952,.0008417508417508418,-.001917526917526918,.00641025641025641,-.02955065359477124,.1796443723688307,-1.3924322169059];if(e=t,u=0,1==t||2==t)return 0;for(t<=7&&(e=t+(u=n.floor(7-t))),r=1/(e*e),o=2*n.PI,s=c[9],a=8;a>=0;a--)s*=r,s+=c[a];if(i=s/e+.5*n.log(o)+(e-.5)*n.log(e)-e,t<=7)for(a=1;a<=u;a++)i-=n.log(e-1),e-=1;return i},t.gammafn=function(t){var e,r,o,i,s=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],a=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],u=!1,c=0,l=0,f=0,h=t;if(t>171.6243769536076)return 1/0;if(h<=0){if(!(i=h%1+36e-17))return 1/0;u=(1&h?-1:1)*n.PI/n.sin(n.PI*i),h=1-h}for(o=h,r=h<1?h++:(h-=c=(0|h)-1)-1,e=0;e<8;++e)f=(f+s[e])*r,l=l*r+a[e];if(i=f/l+1,o<h)i/=o;else if(o>h)for(e=0;e<c;++e)i*=h,h++;return u&&(i=u/i),i},t.gammap=function(n,e){return t.lowRegGamma(n,e)*t.gammafn(n)},t.lowRegGamma=function(e,r){var o,i=t.gammaln(e),s=e,a=1/e,u=a,c=r+1-e,l=1/1e-30,f=1/c,h=f,m=1,d=-~(8.5*n.log(e>=1?e:1/e)+.4*e+17);if(r<0||e<=0)return NaN;if(r<e+1){for(;m<=d;m++)a+=u*=r/++s;return a*n.exp(-r+e*n.log(r)-i)}for(;m<=d;m++)h*=(f=1/(f=(o=-m*(m-e))*f+(c+=2)))*(l=c+o/l);return 1-h*n.exp(-r+e*n.log(r)-i)},t.factorialln=function(n){return n<0?NaN:t.gammaln(n+1)},t.factorial=function(n){return n<0?NaN:t.gammafn(n+1)},t.combination=function(e,r){return e>170||r>170?n.exp(t.combinationln(e,r)):t.factorial(e)/t.factorial(r)/t.factorial(e-r)},t.combinationln=function(n,e){return t.factorialln(n)-t.factorialln(e)-t.factorialln(n-e)},t.permutation=function(n,e){return t.factorial(n)/t.factorial(n-e)},t.betafn=function(e,r){if(!(e<=0||r<=0))return e+r>170?n.exp(t.betaln(e,r)):t.gammafn(e)*t.gammafn(r)/t.gammafn(e+r)},t.betaln=function(n,e){return t.gammaln(n)+t.gammaln(e)-t.gammaln(n+e)},t.betacf=function(t,e,r){var o,i,s,a,u=1e-30,c=1,l=e+r,f=e+1,h=e-1,m=1,d=1-l*t/f;for(n.abs(d)<u&&(d=u),a=d=1/d;c<=100&&(d=1+(i=c*(r-c)*t/((h+(o=2*c))*(e+o)))*d,n.abs(d)<u&&(d=u),m=1+i/m,n.abs(m)<u&&(m=u),a*=(d=1/d)*m,d=1+(i=-(e+c)*(l+c)*t/((e+o)*(f+o)))*d,n.abs(d)<u&&(d=u),m=1+i/m,n.abs(m)<u&&(m=u),a*=s=(d=1/d)*m,!(n.abs(s-1)<3e-7));c++);return a},t.gammapinv=function(e,r){var o,i,s,a,u,c,l=0,f=r-1,h=t.gammaln(r);if(e>=1)return n.max(100,r+100*n.sqrt(r));if(e<=0)return 0;for(r>1?(u=n.log(f),c=n.exp(f*(u-1)-h),a=e<.5?e:1-e,o=(2.30753+.27061*(i=n.sqrt(-2*n.log(a))))/(1+i*(.99229+.04481*i))-i,e<.5&&(o=-o),o=n.max(.001,r*n.pow(1-1/(9*r)-o/(3*n.sqrt(r)),3))):o=e<(i=1-r*(.253+.12*r))?n.pow(e/i,1/r):1-n.log(1-(e-i)/(1-i));l<12;l++){if(o<=0)return 0;if((o-=i=(s=(t.lowRegGamma(r,o)-e)/(i=r>1?c*n.exp(-(o-f)+f*(n.log(o)-u)):n.exp(-o+f*n.log(o)-h)))/(1-.5*n.min(1,s*((r-1)/o-1))))<=0&&(o=.5*(o+i)),n.abs(i)<1e-8*o)break}return o},t.erf=function(t){var e,r,o,i,s=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,1.5626441722e-8,-8.5238095915e-8,6.529054439e-9,5.059343495e-9,-9.91364156e-10,-2.27365122e-10,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18],a=s.length-1,u=!1,c=0,l=0;for(t<0&&(t=-t,u=!0),r=4*(e=2/(2+t))-2;a>0;a--)o=c,c=r*c-l+s[a],l=o;return i=e*n.exp(-t*t+.5*(s[0]+r*c)-l),u?i-1:1-i},t.erfc=function(n){return 1-t.erf(n)},t.erfcinv=function(e){var r,o,i,s,a=0;if(e>=2)return-100;if(e<=0)return 100;for(s=e<1?e:2-e,r=-.70711*((2.30753+.27061*(i=n.sqrt(-2*n.log(s/2))))/(1+i*(.99229+.04481*i))-i);a<2;a++)r+=(o=t.erfc(r)-s)/(1.1283791670955126*n.exp(-r*r)-r*o);return e<1?r:-r},t.ibetainv=function(e,r,o){var i,s,a,u,c,l,f,h,m,d,p=r-1,g=o-1,y=0;if(e<=0)return 0;if(e>=1)return 1;for(r>=1&&o>=1?(a=e<.5?e:1-e,l=(2.30753+.27061*(u=n.sqrt(-2*n.log(a))))/(1+u*(.99229+.04481*u))-u,e<.5&&(l=-l),f=(l*l-3)/6,h=2/(1/(2*r-1)+1/(2*o-1)),m=l*n.sqrt(f+h)/h-(1/(2*o-1)-1/(2*r-1))*(f+5/6-2/(3*h)),l=r/(r+o*n.exp(2*m))):(i=n.log(r/(r+o)),s=n.log(o/(r+o)),l=e<(u=n.exp(r*i)/r)/(m=u+(c=n.exp(o*s)/o))?n.pow(r*m*e,1/r):1-n.pow(o*m*(1-e),1/o)),d=-t.gammaln(r)-t.gammaln(o)+t.gammaln(r+o);y<10;y++){if(0===l||1===l)return l;if((l-=u=(c=(t.ibeta(l,r,o)-e)/(u=n.exp(p*n.log(l)+g*n.log(1-l)+d)))/(1-.5*n.min(1,c*(p/l-g/(1-l)))))<=0&&(l=.5*(l+u)),l>=1&&(l=.5*(l+u+1)),n.abs(u)<1e-8*l&&y>0)break}return l},t.ibeta=function(e,r,o){var i=0===e||1===e?0:n.exp(t.gammaln(r+o)-t.gammaln(r)-t.gammaln(o)+r*n.log(e)+o*n.log(1-e));return!(e<0||e>1)&&(e<(r+1)/(r+o+2)?i*t.betacf(e,r,o)/r:1-i*t.betacf(1-e,o,r)/o)},t.randn=function(e,r){var o,i,s,a,u;if(r||(r=e),e)return t.create(e,r,(function(){return t.randn()}));do{o=t._random_fn(),i=1.7156*(t._random_fn()-.5),u=(s=o-.449871)*s+(a=n.abs(i)+.386595)*(.196*a-.25472*s)}while(u>.27597&&(u>.27846||i*i>-4*n.log(o)*o*o));return i/o},t.randg=function(e,r,o){var i,s,a,u,c,l,f=e;if(o||(o=r),e||(e=1),r)return(l=t.zeros(r,o)).alter((function(){return t.randg(e)})),l;e<1&&(e+=1),i=e-1/3,s=1/n.sqrt(9*i);do{do{u=1+s*(c=t.randn())}while(u<=0);u*=u*u,a=t._random_fn()}while(a>1-.331*n.pow(c,4)&&n.log(a)>.5*c*c+i*(1-u+n.log(u)));if(e==f)return i*u;do{a=t._random_fn()}while(0===a);return n.pow(a,1/f)*i*u},function(n){for(var e=0;e<n.length;e++)!function(n){t.fn[n]=function(){return t(t.map(this,(function(e){return t[n](e)})))}}(n[e])}("gammaln gammafn factorial factorialln".split(" ")),function(n){for(var e=0;e<n.length;e++)!function(n){t.fn[n]=function(){return t(t[n].apply(null,arguments))}}(n[e])}("randn".split(" "))}(n,Math),function(t,n){function e(t,e,r,o){for(var i,s=0,a=1,u=1,c=1,l=0,f=0;n.abs((u-f)/u)>o;)f=u,a=c+(i=-(e+l)*(e+r+l)*t/(e+2*l)/(e+2*l+1))*a,u=(s=u+i*s)+(i=(l+=1)*(r-l)*t/(e+2*l-1)/(e+2*l))*u,s/=c=a+i*c,a/=c,u/=c,c=1;return u/e}function r(e,r,o){var i=[.9815606342467192,.9041172563704749,.7699026741943047,.5873179542866175,.3678314989981802,.1252334085114689],s=[.04717533638651183,.10693932599531843,.16007832854334622,.20316742672306592,.2334925365383548,.24914704581340277],a=.5*e;if(a>=8)return 1;var u,c=2*t.normal.cdf(a,0,1,1,0)-1;c=c>=n.exp(-50/o)?n.pow(c,o):0;for(var l=a,f=(8-a)/(u=e>3?2:3),h=l+f,m=0,d=o-1,p=1;p<=u;p++){for(var g=0,y=.5*(h+l),v=.5*(h-l),w=1;w<=12;w++){var E,A=y+v*(6<w?i[(E=12-w+1)-1]:-i[(E=w)-1]),C=A*A;if(C>60)break;var _=2*t.normal.cdf(A,0,1,1,0)*.5-2*t.normal.cdf(A,e,1,1,0)*.5;_>=n.exp(-30/d)&&(g+=_=s[E-1]*n.exp(-.5*C)*n.pow(_,d))}m+=g*=2*v*o/n.sqrt(2*n.PI),l=h,h+=f}return(c+=m)<=n.exp(-30/r)?0:(c=n.pow(c,r))>=1?1:c}!function(n){for(var e=0;e<n.length;e++)!function(n){t[n]=function t(n,e,r){return this instanceof t?(this._a=n,this._b=e,this._c=r,this):new t(n,e,r)},t.fn[n]=function(e,r,o){var i=t[n](e,r,o);return i.data=this,i},t[n].prototype.sample=function(e){var r=this._a,o=this._b,i=this._c;return e?t.alter(e,(function(){return t[n].sample(r,o,i)})):t[n].sample(r,o,i)},function(e){for(var r=0;r<e.length;r++)!function(e){t[n].prototype[e]=function(r){var o=this._a,i=this._b,s=this._c;return r||0===r||(r=this.data),"number"!=typeof r?t.fn.map.call(r,(function(r){return t[n][e](r,o,i,s)})):t[n][e](r,o,i,s)}}(e[r])}("pdf cdf inv".split(" ")),function(e){for(var r=0;r<e.length;r++)!function(e){t[n].prototype[e]=function(){return t[n][e](this._a,this._b,this._c)}}(e[r])}("mean median mode variance".split(" "))}(n[e])}("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")),t.extend(t.beta,{pdf:function(e,r,o){return e>1||e<0?0:1==r&&1==o?1:r<512&&o<512?n.pow(e,r-1)*n.pow(1-e,o-1)/t.betafn(r,o):n.exp((r-1)*n.log(e)+(o-1)*n.log(1-e)-t.betaln(r,o))},cdf:function(n,e,r){return n>1||n<0?1*(n>1):t.ibeta(n,e,r)},inv:function(n,e,r){return t.ibetainv(n,e,r)},mean:function(t,n){return t/(t+n)},median:function(n,e){return t.ibetainv(.5,n,e)},mode:function(t,n){return(t-1)/(t+n-2)},sample:function(n,e){var r=t.randg(n);return r/(r+t.randg(e))},variance:function(t,e){return t*e/(n.pow(t+e,2)*(t+e+1))}}),t.extend(t.centralF,{pdf:function(e,r,o){var i;return e<0?0:r<=2?0===e&&r<2?1/0:0===e&&2===r?1:1/t.betafn(r/2,o/2)*n.pow(r/o,r/2)*n.pow(e,r/2-1)*n.pow(1+r/o*e,-(r+o)/2):(i=r*e/(o+e*r),r*(o/(o+e*r))/2*t.binomial.pdf((r-2)/2,(r+o-2)/2,i))},cdf:function(n,e,r){return n<0?0:t.ibeta(e*n/(e*n+r),e/2,r/2)},inv:function(n,e,r){return r/(e*(1/t.ibetainv(n,e/2,r/2)-1))},mean:function(t,n){return n>2?n/(n-2):void 0},mode:function(t,n){return t>2?n*(t-2)/(t*(n+2)):void 0},sample:function(n,e){return 2*t.randg(n/2)/n/(2*t.randg(e/2)/e)},variance:function(t,n){if(!(n<=4))return 2*n*n*(t+n-2)/(t*(n-2)*(n-2)*(n-4))}}),t.extend(t.cauchy,{pdf:function(t,e,r){return r<0?0:r/(n.pow(t-e,2)+n.pow(r,2))/n.PI},cdf:function(t,e,r){return n.atan((t-e)/r)/n.PI+.5},inv:function(t,e,r){return e+r*n.tan(n.PI*(t-.5))},median:function(t){return t},mode:function(t){return t},sample:function(e,r){return t.randn()*n.sqrt(1/(2*t.randg(.5)))*r+e}}),t.extend(t.chisquare,{pdf:function(e,r){return e<0?0:0===e&&2===r?.5:n.exp((r/2-1)*n.log(e)-e/2-r/2*n.log(2)-t.gammaln(r/2))},cdf:function(n,e){return n<0?0:t.lowRegGamma(e/2,n/2)},inv:function(n,e){return 2*t.gammapinv(n,.5*e)},mean:function(t){return t},median:function(t){return t*n.pow(1-2/(9*t),3)},mode:function(t){return t-2>0?t-2:0},sample:function(n){return 2*t.randg(n/2)},variance:function(t){return 2*t}}),t.extend(t.exponential,{pdf:function(t,e){return t<0?0:e*n.exp(-e*t)},cdf:function(t,e){return t<0?0:1-n.exp(-e*t)},inv:function(t,e){return-n.log(1-t)/e},mean:function(t){return 1/t},median:function(t){return 1/t*n.log(2)},mode:function(){return 0},sample:function(e){return-1/e*n.log(t._random_fn())},variance:function(t){return n.pow(t,-2)}}),t.extend(t.gamma,{pdf:function(e,r,o){return e<0?0:0===e&&1===r?1/o:n.exp((r-1)*n.log(e)-e/o-t.gammaln(r)-r*n.log(o))},cdf:function(n,e,r){return n<0?0:t.lowRegGamma(e,n/r)},inv:function(n,e,r){return t.gammapinv(n,e)*r},mean:function(t,n){return t*n},mode:function(t,n){if(t>1)return(t-1)*n},sample:function(n,e){return t.randg(n)*e},variance:function(t,n){return t*n*n}}),t.extend(t.invgamma,{pdf:function(e,r,o){return e<=0?0:n.exp(-(r+1)*n.log(e)-o/e-t.gammaln(r)+r*n.log(o))},cdf:function(n,e,r){return n<=0?0:1-t.lowRegGamma(e,r/n)},inv:function(n,e,r){return r/t.gammapinv(1-n,e)},mean:function(t,n){return t>1?n/(t-1):void 0},mode:function(t,n){return n/(t+1)},sample:function(n,e){return e/t.randg(n)},variance:function(t,n){if(!(t<=2))return n*n/((t-1)*(t-1)*(t-2))}}),t.extend(t.kumaraswamy,{pdf:function(t,e,r){return 0===t&&1===e?r:1===t&&1===r?e:n.exp(n.log(e)+n.log(r)+(e-1)*n.log(t)+(r-1)*n.log(1-n.pow(t,e)))},cdf:function(t,e,r){return t<0?0:t>1?1:1-n.pow(1-n.pow(t,e),r)},inv:function(t,e,r){return n.pow(1-n.pow(1-t,1/r),1/e)},mean:function(n,e){return e*t.gammafn(1+1/n)*t.gammafn(e)/t.gammafn(1+1/n+e)},median:function(t,e){return n.pow(1-n.pow(2,-1/e),1/t)},mode:function(t,e){if(t>=1&&e>=1&&1!==t&&1!==e)return n.pow((t-1)/(t*e-1),1/t)},variance:function(){throw new Error("variance not yet implemented")}}),t.extend(t.lognormal,{pdf:function(t,e,r){return t<=0?0:n.exp(-n.log(t)-.5*n.log(2*n.PI)-n.log(r)-n.pow(n.log(t)-e,2)/(2*r*r))},cdf:function(e,r,o){return e<0?0:.5+.5*t.erf((n.log(e)-r)/n.sqrt(2*o*o))},inv:function(e,r,o){return n.exp(-1.4142135623730951*o*t.erfcinv(2*e)+r)},mean:function(t,e){return n.exp(t+e*e/2)},median:function(t){return n.exp(t)},mode:function(t,e){return n.exp(t-e*e)},sample:function(e,r){return n.exp(t.randn()*r+e)},variance:function(t,e){return(n.exp(e*e)-1)*n.exp(2*t+e*e)}}),t.extend(t.noncentralt,{pdf:function(e,r,o){return n.abs(o)<1e-14?t.studentt.pdf(e,r):n.abs(e)<1e-14?n.exp(t.gammaln((r+1)/2)-o*o/2-.5*n.log(n.PI*r)-t.gammaln(r/2)):r/e*(t.noncentralt.cdf(e*n.sqrt(1+2/r),r+2,o)-t.noncentralt.cdf(e,r,o))},cdf:function(e,r,o){var i=1e-14;if(n.abs(o)<i)return t.studentt.cdf(e,r);var s=!1;e<0&&(s=!0,o=-o);for(var a=t.normal.cdf(-o,0,1),u=i+1,c=u,l=e*e/(e*e+r),f=0,h=n.exp(-o*o/2),m=n.exp(-o*o/2-.5*n.log(2)-t.gammaln(1.5))*o;f<200||c>i||u>i;)c=u,f>0&&(h*=o*o/(2*f),m*=o*o/(2*(f+.5))),a+=.5*(u=h*t.beta.cdf(l,f+.5,r/2)+m*t.beta.cdf(l,f+1,r/2)),f++;return s?1-a:a}}),t.extend(t.normal,{pdf:function(t,e,r){return n.exp(-.5*n.log(2*n.PI)-n.log(r)-n.pow(t-e,2)/(2*r*r))},cdf:function(e,r,o){return.5*(1+t.erf((e-r)/n.sqrt(2*o*o)))},inv:function(n,e,r){return-1.4142135623730951*r*t.erfcinv(2*n)+e},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},sample:function(n,e){return t.randn()*e+n},variance:function(t,n){return n*n}}),t.extend(t.pareto,{pdf:function(t,e,r){return t<e?0:r*n.pow(e,r)/n.pow(t,r+1)},cdf:function(t,e,r){return t<e?0:1-n.pow(e/t,r)},inv:function(t,e,r){return e/n.pow(1-t,1/r)},mean:function(t,e){if(!(e<=1))return e*n.pow(t,e)/(e-1)},median:function(t,e){return t*(e*n.SQRT2)},mode:function(t){return t},variance:function(t,e){if(!(e<=2))return t*t*e/(n.pow(e-1,2)*(e-2))}}),t.extend(t.studentt,{pdf:function(e,r){return r=r>1e100?1e100:r,1/(n.sqrt(r)*t.betafn(.5,r/2))*n.pow(1+e*e/r,-(r+1)/2)},cdf:function(e,r){var o=r/2;return t.ibeta((e+n.sqrt(e*e+r))/(2*n.sqrt(e*e+r)),o,o)},inv:function(e,r){var o=t.ibetainv(2*n.min(e,1-e),.5*r,.5);return o=n.sqrt(r*(1-o)/o),e>.5?o:-o},mean:function(t){return t>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(e){return t.randn()*n.sqrt(e/(2*t.randg(e/2)))},variance:function(t){return t>2?t/(t-2):t>1?1/0:void 0}}),t.extend(t.weibull,{pdf:function(t,e,r){return t<0||e<0||r<0?0:r/e*n.pow(t/e,r-1)*n.exp(-n.pow(t/e,r))},cdf:function(t,e,r){return t<0?0:1-n.exp(-n.pow(t/e,r))},inv:function(t,e,r){return e*n.pow(-n.log(1-t),1/r)},mean:function(n,e){return n*t.gammafn(1+1/e)},median:function(t,e){return t*n.pow(n.log(2),1/e)},mode:function(t,e){return e<=1?0:t*n.pow((e-1)/e,1/e)},sample:function(e,r){return e*n.pow(-n.log(t._random_fn()),1/r)},variance:function(e,r){return e*e*t.gammafn(1+2/r)-n.pow(t.weibull.mean(e,r),2)}}),t.extend(t.uniform,{pdf:function(t,n,e){return t<n||t>e?0:1/(e-n)},cdf:function(t,n,e){return t<n?0:t<e?(t-n)/(e-n):1},inv:function(t,n,e){return n+t*(e-n)},mean:function(t,n){return.5*(t+n)},median:function(n,e){return t.mean(n,e)},mode:function(){throw new Error("mode is not yet implemented")},sample:function(n,e){return n/2+e/2+(e/2-n/2)*(2*t._random_fn()-1)},variance:function(t,e){return n.pow(e-t,2)/12}}),t.extend(t.binomial,{pdf:function(e,r,o){return 0===o||1===o?r*o===e?1:0:t.combination(r,e)*n.pow(o,e)*n.pow(1-o,r-e)},cdf:function(r,o,i){var s,a=1e-10;if(r<0)return 0;if(r>=o)return 1;if(i<0||i>1||o<=0)return NaN;var u=i,c=(r=n.floor(r))+1,l=o-r,f=c+l,h=n.exp(t.gammaln(f)-t.gammaln(l)-t.gammaln(c)+c*n.log(u)+l*n.log(1-u));return s=u<(c+1)/(f+2)?h*e(u,c,l,a):1-h*e(1-u,l,c,a),n.round(1/a*(1-s))/(1/a)}}),t.extend(t.negbin,{pdf:function(e,r,o){return e===e>>>0&&(e<0?0:t.combination(e+r-1,r-1)*n.pow(1-o,e)*n.pow(o,r))},cdf:function(n,e,r){var o=0,i=0;if(n<0)return 0;for(;i<=n;i++)o+=t.negbin.pdf(i,e,r);return o}}),t.extend(t.hypgeom,{pdf:function(e,r,o,i){if(e!=e|0)return!1;if(e<0||e<o-(r-i))return 0;if(e>i||e>o)return 0;if(2*o>r)return 2*i>r?t.hypgeom.pdf(r-o-i+e,r,r-o,r-i):t.hypgeom.pdf(i-e,r,r-o,i);if(2*i>r)return t.hypgeom.pdf(o-e,r,o,r-i);if(o<i)return t.hypgeom.pdf(e,r,i,o);for(var s=1,a=0,u=0;u<e;u++){for(;s>1&&a<i;)s*=1-o/(r-a),a++;s*=(i-u)*(o-u)/((u+1)*(r-o-i+u+1))}for(;a<i;a++)s*=1-o/(r-a);return n.min(1,n.max(0,s))},cdf:function(e,r,o,i){if(e<0||e<o-(r-i))return 0;if(e>=i||e>=o)return 1;if(2*o>r)return 2*i>r?t.hypgeom.cdf(r-o-i+e,r,r-o,r-i):1-t.hypgeom.cdf(i-e-1,r,r-o,i);if(2*i>r)return 1-t.hypgeom.cdf(o-e-1,r,o,r-i);if(o<i)return t.hypgeom.cdf(e,r,i,o);for(var s=1,a=1,u=0,c=0;c<e;c++){for(;s>1&&u<i;){var l=1-o/(r-u);a*=l,s*=l,u++}s+=a*=(i-c)*(o-c)/((c+1)*(r-o-i+c+1))}for(;u<i;u++)s*=1-o/(r-u);return n.min(1,n.max(0,s))}}),t.extend(t.poisson,{pdf:function(e,r){return r<0||e%1!=0||e<0?0:n.pow(r,e)*n.exp(-r)/t.factorial(e)},cdf:function(n,e){var r=[],o=0;if(n<0)return 0;for(;o<=n;o++)r.push(t.poisson.pdf(o,e));return t.sum(r)},mean:function(t){return t},variance:function(t){return t},sampleSmall:function(e){var r=1,o=0,i=n.exp(-e);do{o++,r*=t._random_fn()}while(r>i);return o-1},sampleLarge:function(e){var r,o,i,s,a,u,c,l,f,h,m=e;for(s=n.sqrt(m),a=n.log(m),u=.02483*(c=.931+2.53*s)-.059,l=1.1239+1.1328/(c-3.4),f=.9277-3.6224/(c-2);;){if(o=n.random()-.5,i=n.random(),h=.5-n.abs(o),r=n.floor((2*u/h+c)*o+m+.43),h>=.07&&i<=f)return r;if(!(r<0||h<.013&&i>h)&&n.log(i)+n.log(l)-n.log(u/(h*h)+c)<=r*a-m-t.loggam(r+1))return r}},sample:function(t){return t<10?this.sampleSmall(t):this.sampleLarge(t)}}),t.extend(t.triangular,{pdf:function(t,n,e,r){return e<=n||r<n||r>e?NaN:t<n||t>e?0:t<r?2*(t-n)/((e-n)*(r-n)):t===r?2/(e-n):2*(e-t)/((e-n)*(e-r))},cdf:function(t,e,r,o){return r<=e||o<e||o>r?NaN:t<=e?0:t>=r?1:t<=o?n.pow(t-e,2)/((r-e)*(o-e)):1-n.pow(r-t,2)/((r-e)*(r-o))},inv:function(t,e,r,o){return r<=e||o<e||o>r?NaN:t<=(o-e)/(r-e)?e+(r-e)*n.sqrt(t*((o-e)/(r-e))):e+(r-e)*(1-n.sqrt((1-t)*(1-(o-e)/(r-e))))},mean:function(t,n,e){return(t+n+e)/3},median:function(t,e,r){return r<=(t+e)/2?e-n.sqrt((e-t)*(e-r))/n.sqrt(2):r>(t+e)/2?t+n.sqrt((e-t)*(r-t))/n.sqrt(2):void 0},mode:function(t,n,e){return e},sample:function(e,r,o){var i=t._random_fn();return i<(o-e)/(r-e)?e+n.sqrt(i*(r-e)*(o-e)):r-n.sqrt((1-i)*(r-e)*(r-o))},variance:function(t,n,e){return(t*t+n*n+e*e-t*n-t*e-n*e)/18}}),t.extend(t.arcsine,{pdf:function(t,e,r){return r<=e?NaN:t<=e||t>=r?0:2/n.PI*n.pow(n.pow(r-e,2)-n.pow(2*t-e-r,2),-.5)},cdf:function(t,e,r){return t<e?0:t<r?2/n.PI*n.asin(n.sqrt((t-e)/(r-e))):1},inv:function(t,e,r){return e+(.5-.5*n.cos(n.PI*t))*(r-e)},mean:function(t,n){return n<=t?NaN:(t+n)/2},median:function(t,n){return n<=t?NaN:(t+n)/2},mode:function(){throw new Error("mode is not yet implemented")},sample:function(e,r){return(e+r)/2+(r-e)/2*n.sin(2*n.PI*t.uniform.sample(0,1))},variance:function(t,e){return e<=t?NaN:n.pow(e-t,2)/8}}),t.extend(t.laplace,{pdf:function(t,e,r){return r<=0?0:n.exp(-n.abs(t-e)/r)/(2*r)},cdf:function(t,e,r){return r<=0?0:t<e?.5*n.exp((t-e)/r):1-.5*n.exp(-(t-e)/r)},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},variance:function(t,n){return 2*n*n},sample:function(e,r){var o,i=t._random_fn()-.5;return e-r*((o=i)/n.abs(o))*n.log(1-2*n.abs(i))}}),t.extend(t.tukey,{cdf:function(e,o,i){var s=o,a=[.9894009349916499,.9445750230732326,.8656312023878318,.755404408355003,.6178762444026438,.45801677765722737,.2816035507792589,.09501250983763744],u=[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685];if(e<=0)return 0;if(i<2||s<2)return NaN;if(!Number.isFinite(e))return 1;if(i>25e3)return r(e,1,s);var c,l=.5*i,f=l*n.log(i)-i*n.log(2)-t.gammaln(l),h=l-1,m=.25*i;c=i<=100?1:i<=800?.5:i<=5e3?.25:.125,f+=n.log(c);for(var d=0,p=1;p<=50;p++){for(var g=0,y=(2*p-1)*c,v=1;v<=16;v++){var w,E;8<v?(w=v-8-1,E=f+h*n.log(y+a[w]*c)-(a[w]*c+y)*m):(w=v-1,E=f+h*n.log(y-a[w]*c)+(a[w]*c-y)*m),E>=-30&&(g+=r(8<v?e*n.sqrt(.5*(a[w]*c+y)):e*n.sqrt(.5*(-a[w]*c+y)),1,s)*u[w]*n.exp(E))}if(p*c>=1&&g<=1e-14)break;d+=g}if(g>1e-14)throw new Error("tukey.cdf failed to converge");return d>1&&(d=1),d},inv:function(e,r,o){if(o<2||r<2)return NaN;if(e<0||e>1)return NaN;if(0===e)return 0;if(1===e)return 1/0;var i,s=function(t,e,r){var o=.5-.5*t,i=n.sqrt(n.log(1/(o*o))),s=i+((((-453642210148e-16*i-.204231210125)*i-.342242088547)*i-1)*i+.322232421088)/((((.0038560700634*i+.10353775285)*i+.531103462366)*i+.588581570495)*i+.099348462606);r<120&&(s+=(s*s*s+s)/r/4);var a=.8832-.2368*s;return r<120&&(a+=-1.214/r+1.208*s/r),s*(a*n.log(e-1)+1.4142)}(e,r,o),a=t.tukey.cdf(s,r,o)-e;i=a>0?n.max(0,s-1):s+1;for(var u,c=t.tukey.cdf(i,r,o)-e,l=1;l<50;l++)if(u=i-c*(i-s)/(c-a),a=c,s=i,u<0&&(u=0,c=-e),c=t.tukey.cdf(u,r,o)-e,i=u,n.abs(i-s)<1e-4)return u;throw new Error("tukey.inv failed to converge")}})}(n,Math),function(t,n){var e,r,o=Array.prototype.push,i=t.utils.isArray;function s(n){return i(n)||n instanceof t}t.extend({add:function(n,e){return s(e)?(s(e[0])||(e=[e]),t.map(n,(function(t,n,r){return t+e[n][r]}))):t.map(n,(function(t){return t+e}))},subtract:function(n,e){return s(e)?(s(e[0])||(e=[e]),t.map(n,(function(t,n,r){return t-e[n][r]||0}))):t.map(n,(function(t){return t-e}))},divide:function(n,e){return s(e)?(s(e[0])||(e=[e]),t.multiply(n,t.inv(e))):t.map(n,(function(t){return t/e}))},multiply:function(n,e){var r,o,i,a,u,c,l,f;if(void 0===n.length&&void 0===e.length)return n*e;if(u=n.length,c=n[0].length,l=t.zeros(u,i=s(e)?e[0].length:c),f=0,s(e)){for(;f<i;f++)for(r=0;r<u;r++){for(a=0,o=0;o<c;o++)a+=n[r][o]*e[o][f];l[r][f]=a}return 1===u&&1===f?l[0][0]:l}return t.map(n,(function(t){return t*e}))},outer:function(n,e){return t.multiply(n.map((function(t){return[t]})),[e])},dot:function(n,e){s(n[0])||(n=[n]),s(e[0])||(e=[e]);for(var r,o,i=1===n[0].length&&1!==n.length?t.transpose(n):n,a=1===e[0].length&&1!==e.length?t.transpose(e):e,u=[],c=0,l=i.length,f=i[0].length;c<l;c++){for(u[c]=[],r=0,o=0;o<f;o++)r+=i[c][o]*a[c][o];u[c]=r}return 1===u.length?u[0]:u},pow:function(e,r){return t.map(e,(function(t){return n.pow(t,r)}))},exp:function(e){return t.map(e,(function(t){return n.exp(t)}))},log:function(e){return t.map(e,(function(t){return n.log(t)}))},abs:function(e){return t.map(e,(function(t){return n.abs(t)}))},norm:function(t,e){var r=0,o=0;for(isNaN(e)&&(e=2),s(t[0])&&(t=t[0]);o<t.length;o++)r+=n.pow(n.abs(t[o]),e);return n.pow(r,1/e)},angle:function(e,r){return n.acos(t.dot(e,r)/(t.norm(e)*t.norm(r)))},aug:function(t,n){var e,r=[];for(e=0;e<t.length;e++)r.push(t[e].slice());for(e=0;e<r.length;e++)o.apply(r[e],n[e]);return r},inv:function(n){for(var e,r=n.length,o=n[0].length,i=t.identity(r,o),s=t.gauss_jordan(n,i),a=[],u=0;u<r;u++)for(a[u]=[],e=o;e<s[0].length;e++)a[u][e-o]=s[u][e];return a},det:function t(n){if(2===n.length)return n[0][0]*n[1][1]-n[0][1]*n[1][0];for(var e=0,r=0;r<n.length;r++){for(var o=[],i=1;i<n.length;i++){o[i-1]=[];for(var s=0;s<n.length;s++)s<r?o[i-1][s]=n[i][s]:s>r&&(o[i-1][s-1]=n[i][s])}var a=r%2?-1:1;e+=t(o)*n[0][r]*a}return e},gauss_elimination:function(e,r){var o,i,s,a,u=0,c=0,l=e.length,f=e[0].length,h=1,m=0,d=[];for(o=(e=t.aug(e,r))[0].length,u=0;u<l;u++){for(i=e[u][u],c=u,a=u+1;a<f;a++)i<n.abs(e[a][u])&&(i=e[a][u],c=a);if(c!=u)for(a=0;a<o;a++)s=e[u][a],e[u][a]=e[c][a],e[c][a]=s;for(c=u+1;c<l;c++)for(h=e[c][u]/e[u][u],a=u;a<o;a++)e[c][a]=e[c][a]-h*e[u][a]}for(u=l-1;u>=0;u--){for(m=0,c=u+1;c<=l-1;c++)m+=d[c]*e[u][c];d[u]=(e[u][o-1]-m)/e[u][u]}return d},gauss_jordan:function(e,r){var o,i,s,a=t.aug(e,r),u=a.length,c=a[0].length,l=0;for(i=0;i<u;i++){var f=i;for(s=i+1;s<u;s++)n.abs(a[s][i])>n.abs(a[f][i])&&(f=s);var h=a[i];for(a[i]=a[f],a[f]=h,s=i+1;s<u;s++)for(l=a[s][i]/a[i][i],o=i;o<c;o++)a[s][o]-=a[i][o]*l}for(i=u-1;i>=0;i--){for(l=a[i][i],s=0;s<i;s++)for(o=c-1;o>i-1;o--)a[s][o]-=a[i][o]*a[s][i]/l;for(a[i][i]/=l,o=u;o<c;o++)a[i][o]/=l}return a},triaUpSolve:function(n,e){var r,o=n[0].length,i=t.zeros(1,o)[0],s=!1;return null!=e[0].length&&(e=e.map((function(t){return t[0]})),s=!0),t.arange(o-1,-1,-1).forEach((function(s){r=t.arange(s+1,o).map((function(t){return i[t]*n[s][t]})),i[s]=(e[s]-t.sum(r))/n[s][s]})),s?i.map((function(t){return[t]})):i},triaLowSolve:function(n,e){var r,o=n[0].length,i=t.zeros(1,o)[0],s=!1;return null!=e[0].length&&(e=e.map((function(t){return t[0]})),s=!0),t.arange(o).forEach((function(o){r=t.arange(o).map((function(t){return n[o][t]*i[t]})),i[o]=(e[o]-t.sum(r))/n[o][o]})),s?i.map((function(t){return[t]})):i},lu:function(n){var e,r=n.length,o=t.identity(r),i=t.zeros(n.length,n[0].length);return t.arange(r).forEach((function(t){i[0][t]=n[0][t]})),t.arange(1,r).forEach((function(s){t.arange(s).forEach((function(r){e=t.arange(r).map((function(t){return o[s][t]*i[t][r]})),o[s][r]=(n[s][r]-t.sum(e))/i[r][r]})),t.arange(s,r).forEach((function(r){e=t.arange(s).map((function(t){return o[s][t]*i[t][r]})),i[s][r]=n[e.length][r]-t.sum(e)}))})),[o,i]},cholesky:function(e){var r,o=e.length,i=t.zeros(e.length,e[0].length);return t.arange(o).forEach((function(s){r=t.arange(s).map((function(t){return n.pow(i[s][t],2)})),i[s][s]=n.sqrt(e[s][s]-t.sum(r)),t.arange(s+1,o).forEach((function(n){r=t.arange(s).map((function(t){return i[s][t]*i[n][t]})),i[n][s]=(e[s][n]-t.sum(r))/i[s][s]}))})),i},gauss_jacobi:function(e,r,o,i){for(var s,a,u,c,l=0,f=0,h=e.length,m=[],d=[],p=[];l<h;l++)for(m[l]=[],d[l]=[],p[l]=[],f=0;f<h;f++)l>f?(m[l][f]=e[l][f],d[l][f]=p[l][f]=0):l<f?(d[l][f]=e[l][f],m[l][f]=p[l][f]=0):(p[l][f]=e[l][f],m[l][f]=d[l][f]=0);for(u=t.multiply(t.multiply(t.inv(p),t.add(m,d)),-1),a=t.multiply(t.inv(p),r),s=o,c=t.add(t.multiply(u,o),a),l=2;n.abs(t.norm(t.subtract(c,s)))>i;)s=c,c=t.add(t.multiply(u,s),a),l++;return c},gauss_seidel:function(e,r,o,i){for(var s,a,u,c,l,f=0,h=e.length,m=[],d=[],p=[];f<h;f++)for(m[f]=[],d[f]=[],p[f]=[],s=0;s<h;s++)f>s?(m[f][s]=e[f][s],d[f][s]=p[f][s]=0):f<s?(d[f][s]=e[f][s],m[f][s]=p[f][s]=0):(p[f][s]=e[f][s],m[f][s]=d[f][s]=0);for(c=t.multiply(t.multiply(t.inv(t.add(p,m)),d),-1),u=t.multiply(t.inv(t.add(p,m)),r),a=o,l=t.add(t.multiply(c,o),u),f=2;n.abs(t.norm(t.subtract(l,a)))>i;)a=l,l=t.add(t.multiply(c,a),u),f+=1;return l},SOR:function(e,r,o,i,s){for(var a,u,c,l,f,h=0,m=e.length,d=[],p=[],g=[];h<m;h++)for(d[h]=[],p[h]=[],g[h]=[],a=0;a<m;a++)h>a?(d[h][a]=e[h][a],p[h][a]=g[h][a]=0):h<a?(p[h][a]=e[h][a],d[h][a]=g[h][a]=0):(g[h][a]=e[h][a],d[h][a]=p[h][a]=0);for(l=t.multiply(t.inv(t.add(g,t.multiply(d,s))),t.subtract(t.multiply(g,1-s),t.multiply(p,s))),c=t.multiply(t.multiply(t.inv(t.add(g,t.multiply(d,s))),r),s),u=o,f=t.add(t.multiply(l,o),c),h=2;n.abs(t.norm(t.subtract(f,u)))>i;)u=f,f=t.add(t.multiply(l,u),c),h++;return f},householder:function(e){for(var r,o,i,s,a=e.length,u=e[0].length,c=0,l=[],f=[];c<a-1;c++){for(r=0,s=c+1;s<u;s++)r+=e[s][c]*e[s][c];for(r=(e[c+1][c]>0?-1:1)*n.sqrt(r),o=n.sqrt((r*r-e[c+1][c]*r)/2),(l=t.zeros(a,1))[c+1][0]=(e[c+1][c]-r)/(2*o),i=c+2;i<a;i++)l[i][0]=e[i][c]/(2*o);f=t.subtract(t.identity(a,u),t.multiply(t.multiply(l,t.transpose(l)),2)),e=t.multiply(f,t.multiply(e,f))}return e},QR:(e=t.sum,r=t.arange,function(o){var i,s,a,u=o.length,c=o[0].length,l=t.zeros(c,c);for(o=t.copy(o),s=0;s<c;s++){for(l[s][s]=n.sqrt(e(r(u).map((function(t){return o[t][s]*o[t][s]})))),i=0;i<u;i++)o[i][s]=o[i][s]/l[s][s];for(a=s+1;a<c;a++)for(l[s][a]=e(r(u).map((function(t){return o[t][s]*o[t][a]}))),i=0;i<u;i++)o[i][a]=o[i][a]-o[i][s]*l[s][a]}return[o,l]}),lstsq:function(n,e){var r=!1;void 0===e[0].length&&(e=e.map((function(t){return[t]})),r=!0);var o=t.QR(n),i=o[0],s=o[1],a=n[0].length,u=t.slice(i,{col:{end:a}}),c=function(n){var e=(n=t.copy(n)).length,r=t.identity(e);return t.arange(e-1,-1,-1).forEach((function(e){t.sliceAssign(r,{row:e},t.divide(t.slice(r,{row:e}),n[e][e])),t.sliceAssign(n,{row:e},t.divide(t.slice(n,{row:e}),n[e][e])),t.arange(e).forEach((function(o){var i=t.multiply(n[o][e],-1),s=t.slice(n,{row:o}),a=t.multiply(t.slice(n,{row:e}),i);t.sliceAssign(n,{row:o},t.add(s,a));var u=t.slice(r,{row:o}),c=t.multiply(t.slice(r,{row:e}),i);t.sliceAssign(r,{row:o},t.add(u,c))}))})),r}(t.slice(s,{row:{end:a}})),l=t.transpose(u);void 0===l[0].length&&(l=[l]);var f=t.multiply(t.multiply(c,l),e);return void 0===f.length&&(f=[[f]]),r?f.map((function(t){return t[0]})):f},jacobi:function(e){for(var r,o,i,s,a,u,c,l=1,f=e.length,h=t.identity(f,f),m=[];1===l;){for(a=e[0][1],i=0,s=1,r=0;r<f;r++)for(o=0;o<f;o++)r!=o&&a<n.abs(e[r][o])&&(a=n.abs(e[r][o]),i=r,s=o);for(u=e[i][i]===e[s][s]?e[i][s]>0?n.PI/4:-n.PI/4:n.atan(2*e[i][s]/(e[i][i]-e[s][s]))/2,(c=t.identity(f,f))[i][i]=n.cos(u),c[i][s]=-n.sin(u),c[s][i]=n.sin(u),c[s][s]=n.cos(u),h=t.multiply(h,c),e=t.multiply(t.multiply(t.inv(c),e),c),l=0,r=1;r<f;r++)for(o=1;o<f;o++)r!=o&&n.abs(e[r][o])>.001&&(l=1)}for(r=0;r<f;r++)m.push(e[r][r]);return[h,m]},rungekutta:function(t,n,e,r,o,i){var s,a,u;if(2===i)for(;r<=e;)o+=((s=n*t(r,o))+(a=n*t(r+n,o+s)))/2,r+=n;if(4===i)for(;r<=e;)o+=((s=n*t(r,o))+2*(a=n*t(r+n/2,o+s/2))+2*(u=n*t(r+n/2,o+a/2))+n*t(r+n,o+u))/6,r+=n;return o},romberg:function(t,e,r,o){for(var i,s,a,u,c,l=0,f=(r-e)/2,h=[],m=[],d=[];l<o/2;){for(c=t(e),a=e,u=0;a<=r;a+=f,u++)h[u]=a;for(i=h.length,a=1;a<i-1;a++)c+=(a%2!=0?4:2)*t(h[a]);c=f/3*(c+t(r)),d[l]=c,f/=2,l++}for(s=d.length,i=1;1!==s;){for(a=0;a<s-1;a++)m[a]=(n.pow(4,i)*d[a+1]-d[a])/(n.pow(4,i)-1);s=m.length,d=m,m=[],i++}return d},richardson:function(t,e,r,o){function i(t,n){for(var e,r=0,o=t.length;r<o;r++)t[r]===n&&(e=r);return e}for(var s,a,u,c,l,f=n.abs(r-t[i(t,r)+1]),h=0,m=[],d=[];o>=f;)s=i(t,r+o),a=i(t,r),m[h]=(e[s]-2*e[a]+e[2*a-s])/(o*o),o/=2,h++;for(c=m.length,u=1;1!=c;){for(l=0;l<c-1;l++)d[l]=(n.pow(4,u)*m[l+1]-m[l])/(n.pow(4,u)-1);c=d.length,m=d,d=[],u++}return m},simpson:function(t,n,e,r){for(var o,i=(e-n)/r,s=t(n),a=[],u=n,c=0,l=1;u<=e;u+=i,c++)a[c]=u;for(o=a.length;l<o-1;l++)s+=(l%2!=0?4:2)*t(a[l]);return i/3*(s+t(e))},hermite:function(t,n,e,r){for(var o,i=t.length,s=0,a=0,u=[],c=[],l=[],f=[];a<i;a++){for(u[a]=1,o=0;o<i;o++)a!=o&&(u[a]*=(r-t[o])/(t[a]-t[o]));for(c[a]=0,o=0;o<i;o++)a!=o&&(c[a]+=1/(t[a]-t[o]));l[a]=(1-2*(r-t[a])*c[a])*(u[a]*u[a]),f[a]=(r-t[a])*(u[a]*u[a]),s+=l[a]*n[a]+f[a]*e[a]}return s},lagrange:function(t,n,e){for(var r,o,i=0,s=0,a=t.length;s<a;s++){for(o=n[s],r=0;r<a;r++)s!=r&&(o*=(e-t[r])/(t[s]-t[r]));i+=o}return i},cubic_spline:function(n,e,r){for(var o,i,s=n.length,a=0,u=[],c=[],l=[],f=[],h=[],m=[];a<s-1;a++)f[a]=n[a+1]-n[a];for(l[0]=0,a=1;a<s-1;a++)l[a]=3/f[a]*(e[a+1]-e[a])-3/f[a-1]*(e[a]-e[a-1]);for(a=1;a<s-1;a++)u[a]=[],c[a]=[],u[a][a-1]=f[a-1],u[a][a]=2*(f[a-1]+f[a]),u[a][a+1]=f[a],c[a][0]=l[a];for(i=t.multiply(t.inv(u),c),o=0;o<s-1;o++)h[o]=(e[o+1]-e[o])/f[o]-f[o]*(i[o+1][0]+2*i[o][0])/3,m[o]=(i[o+1][0]-i[o][0])/(3*f[o]);for(o=0;o<s&&!(n[o]>r);o++);return e[o-=1]+(r-n[o])*h[o]+t.sq(r-n[o])*i[o]+(r-n[o])*t.sq(r-n[o])*m[o]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(n){var e,r,o,i,s,a=n.length,u=n[0].length,c=0,l=[],f=[],h=[],m=[],d=[],p=[],g=[];for(c=0;c<a;c++)l[c]=t.sum(n[c])/u;for(c=0;c<u;c++)for(d[c]=[],e=0;e<a;e++)d[c][e]=n[e][c]-l[e];for(d=t.transpose(d),c=0;c<a;c++)for(p[c]=[],e=0;e<a;e++)p[c][e]=t.dot([d[c]],[d[e]])/(u-1);for(s=(o=t.jacobi(p))[0],f=o[1],g=t.transpose(s),c=0;c<f.length;c++)for(e=c;e<f.length;e++)f[c]<f[e]&&(r=f[c],f[c]=f[e],f[e]=r,h=g[c],g[c]=g[e],g[e]=h);for(i=t.transpose(d),c=0;c<a;c++)for(m[c]=[],e=0;e<i.length;e++)m[c][e]=t.dot([g[c]],[i[e]]);return[n,f,g,m]}}),function(n){for(var e=0;e<n.length;e++)!function(n){t.fn[n]=function(e,r){var o=this;return r?(setTimeout((function(){r.call(o,t.fn[n].call(o,e))}),15),this):"number"==typeof t[n](this,e)?t[n](this,e):t(t[n](this,e))}}(n[e])}("add divide multiply subtract dot pow exp log abs norm angle".split(" "))}(n,Math),function(t,n){var e=[].slice,r=t.utils.isNumber,o=t.utils.isArray;function i(t,e,r,o){if(t>1||r>1||t<=0||r<=0)throw new Error("Proportions should be greater than 0 and less than 1");var i=(t*e+r*o)/(e+o);return(t-r)/n.sqrt(i*(1-i)*(1/e+1/o))}t.extend({zscore:function(){var n=e.call(arguments);return r(n[1])?(n[0]-n[1])/n[2]:(n[0]-t.mean(n[1]))/t.stdev(n[1],n[2])},ztest:function(){var r,i=e.call(arguments);return o(i[1])?(r=t.zscore(i[0],i[1],i[3]),1===i[2]?t.normal.cdf(-n.abs(r),0,1):2*t.normal.cdf(-n.abs(r),0,1)):i.length>2?(r=t.zscore(i[0],i[1],i[2]),1===i[3]?t.normal.cdf(-n.abs(r),0,1):2*t.normal.cdf(-n.abs(r),0,1)):(r=i[0],1===i[1]?t.normal.cdf(-n.abs(r),0,1):2*t.normal.cdf(-n.abs(r),0,1))}}),t.extend(t.fn,{zscore:function(t,n){return(t-this.mean())/this.stdev(n)},ztest:function(e,r,o){var i=n.abs(this.zscore(e,o));return 1===r?t.normal.cdf(-i,0,1):2*t.normal.cdf(-i,0,1)}}),t.extend({tscore:function(){var r=e.call(arguments);return 4===r.length?(r[0]-r[1])/(r[2]/n.sqrt(r[3])):(r[0]-t.mean(r[1]))/(t.stdev(r[1],!0)/n.sqrt(r[1].length))},ttest:function(){var o,i=e.call(arguments);return 5===i.length?(o=n.abs(t.tscore(i[0],i[1],i[2],i[3])),1===i[4]?t.studentt.cdf(-o,i[3]-1):2*t.studentt.cdf(-o,i[3]-1)):r(i[1])?(o=n.abs(i[0]),1==i[2]?t.studentt.cdf(-o,i[1]-1):2*t.studentt.cdf(-o,i[1]-1)):(o=n.abs(t.tscore(i[0],i[1])),1==i[2]?t.studentt.cdf(-o,i[1].length-1):2*t.studentt.cdf(-o,i[1].length-1))}}),t.extend(t.fn,{tscore:function(t){return(t-this.mean())/(this.stdev(!0)/n.sqrt(this.cols()))},ttest:function(e,r){return 1===r?1-t.studentt.cdf(n.abs(this.tscore(e)),this.cols()-1):2*t.studentt.cdf(-n.abs(this.tscore(e)),this.cols()-1)}}),t.extend({anovafscore:function(){var r,o,i,s,a,u,c,l,f=e.call(arguments);if(1===f.length){for(a=new Array(f[0].length),c=0;c<f[0].length;c++)a[c]=f[0][c];f=a}for(o=new Array,c=0;c<f.length;c++)o=o.concat(f[c]);for(i=t.mean(o),r=0,c=0;c<f.length;c++)r+=f[c].length*n.pow(t.mean(f[c])-i,2);for(r/=f.length-1,u=0,c=0;c<f.length;c++)for(s=t.mean(f[c]),l=0;l<f[c].length;l++)u+=n.pow(f[c][l]-s,2);return r/(u/(o.length-f.length))},anovaftest:function(){var n,o,i,s,a=e.call(arguments);if(r(a[0]))return 1-t.centralF.cdf(a[0],a[1],a[2]);var u=t.anovafscore(a);for(n=a.length-1,i=0,s=0;s<a.length;s++)i+=a[s].length;return o=i-n-1,1-t.centralF.cdf(u,n,o)},ftest:function(n,e,r){return 1-t.centralF.cdf(n,e,r)}}),t.extend(t.fn,{anovafscore:function(){return t.anovafscore(this.toArray())},anovaftes:function(){var n,e=0;for(n=0;n<this.length;n++)e+=this[n].length;return t.ftest(this.anovafscore(),this.length-1,e-this.length)}}),t.extend({qscore:function(){var o,i,s,a,u,c=e.call(arguments);return r(c[0])?(o=c[0],i=c[1],s=c[2],a=c[3],u=c[4]):(o=t.mean(c[0]),i=t.mean(c[1]),s=c[0].length,a=c[1].length,u=c[2]),n.abs(o-i)/(u*n.sqrt((1/s+1/a)/2))},qtest:function(){var n,r=e.call(arguments);3===r.length?(n=r[0],r=r.slice(1)):7===r.length?(n=t.qscore(r[0],r[1],r[2],r[3],r[4]),r=r.slice(5)):(n=t.qscore(r[0],r[1],r[2]),r=r.slice(3));var o=r[0],i=r[1];return 1-t.tukey.cdf(n,i,o-i)},tukeyhsd:function(n){for(var e=t.pooledstdev(n),r=n.map((function(n){return t.mean(n)})),o=n.reduce((function(t,n){return t+n.length}),0),i=[],s=0;s<n.length;++s)for(var a=s+1;a<n.length;++a){var u=t.qtest(r[s],r[a],n[s].length,n[a].length,e,o,n.length);i.push([[s,a],u])}return i}}),t.extend({normalci:function(){var r,o=e.call(arguments),i=new Array(2);return r=4===o.length?n.abs(t.normal.inv(o[1]/2,0,1)*o[2]/n.sqrt(o[3])):n.abs(t.normal.inv(o[1]/2,0,1)*t.stdev(o[2])/n.sqrt(o[2].length)),i[0]=o[0]-r,i[1]=o[0]+r,i},tci:function(){var r,o=e.call(arguments),i=new Array(2);return r=4===o.length?n.abs(t.studentt.inv(o[1]/2,o[3]-1)*o[2]/n.sqrt(o[3])):n.abs(t.studentt.inv(o[1]/2,o[2].length-1)*t.stdev(o[2],!0)/n.sqrt(o[2].length)),i[0]=o[0]-r,i[1]=o[0]+r,i},significant:function(t,n){return t<n}}),t.extend(t.fn,{normalci:function(n,e){return t.normalci(n,e,this.toArray())},tci:function(n,e){return t.tci(n,e,this.toArray())}}),t.extend(t.fn,{oneSidedDifferenceOfProportions:function(n,e,r,o){var s=i(n,e,r,o);return t.ztest(s,1)},twoSidedDifferenceOfProportions:function(n,e,r,o){var s=i(n,e,r,o);return t.ztest(s,2)}})}(n,Math),n.models=function(){function t(t,e){var r=t.length,o=e[0].length-1,i=r-o-1,s=n.lstsq(e,t),a=n.multiply(e,s.map((function(t){return[t]}))).map((function(t){return t[0]})),u=n.subtract(t,a),c=n.mean(t),l=n.sum(a.map((function(t){return Math.pow(t-c,2)}))),f=n.sum(t.map((function(t,n){return Math.pow(t-a[n],2)}))),h=l+f;return{exog:e,endog:t,nobs:r,df_model:o,df_resid:i,coef:s,predict:a,resid:u,ybar:c,SST:h,SSE:l,SSR:f,R2:l/h}}function e(e){var r,o,i=(r=e.exog,o=r[0].length,n.arange(o).map((function(e){var i=n.arange(o).filter((function(t){return t!==e}));return t(n.col(r,e).map((function(t){return t[0]})),n.col(r,i))}))),s=Math.sqrt(e.SSR/e.df_resid),a=i.map((function(t){var n=t.SST,e=t.R2;return s/Math.sqrt(n*(1-e))})),u=e.coef.map((function(t,n){return(t-0)/a[n]})),c=u.map((function(t){var r=n.studentt.cdf(t,e.df_resid);return 2*(r>.5?1-r:r)})),l=n.studentt.inv(.975,e.df_resid),f=e.coef.map((function(t,n){var e=l*a[n];return[t-e,t+e]}));return{se:a,t:u,p:c,sigmaHat:s,interval95:f}}return{ols:function(r,o){var i=t(r,o),s=e(i),a=function(t){var e,r,o,i=t.R2/t.df_model/((1-t.R2)/t.df_resid);return{F_statistic:i,pvalue:1-(e=i,r=t.df_model,o=t.df_resid,n.beta.cdf(e/(o/r+e),r/2,o/2))}}(i),u=1-(1-i.R2)*((i.nobs-1)/i.df_resid);return i.t=s,i.f=a,i.adjust_R2=u,i}}}(),n.extend({buildxmatrix:function(){for(var t=new Array(arguments.length),e=0;e<arguments.length;e++){t[e]=[1].concat(arguments[e])}return n(t)},builddxmatrix:function(){for(var t=new Array(arguments[0].length),e=0;e<arguments[0].length;e++){t[e]=[1].concat(arguments[0][e])}return n(t)},buildjxmatrix:function(t){for(var e=new Array(t.length),r=0;r<t.length;r++)e[r]=t[r];return n.builddxmatrix(e)},buildymatrix:function(t){return n(t).transpose()},buildjymatrix:function(t){return t.transpose()},matrixmult:function(t,e){var r,o,i,s,a;if(t.cols()==e.rows()){if(e.rows()>1){for(s=[],r=0;r<t.rows();r++)for(s[r]=[],o=0;o<e.cols();o++){for(a=0,i=0;i<t.cols();i++)a+=t.toArray()[r][i]*e.toArray()[i][o];s[r][o]=a}return n(s)}for(s=[],r=0;r<t.rows();r++)for(s[r]=[],o=0;o<e.cols();o++){for(a=0,i=0;i<t.cols();i++)a+=t.toArray()[r][i]*e.toArray()[o];s[r][o]=a}return n(s)}},regress:function(t,e){var r=n.xtranspxinv(t),o=t.transpose(),i=n.matrixmult(n(r),o);return n.matrixmult(i,e)},regresst:function(t,e,r){var o=n.regress(t,e),i={anova:{}},s=n.jMatYBar(t,o);i.yBar=s;var a=e.mean();i.anova.residuals=n.residuals(e,s),i.anova.ssr=n.ssr(s,a),i.anova.msr=i.anova.ssr/(t[0].length-1),i.anova.sse=n.sse(e,s),i.anova.mse=i.anova.sse/(e.length-(t[0].length-1)-1),i.anova.sst=n.sst(e,a),i.anova.mst=i.anova.sst/(e.length-1),i.anova.r2=1-i.anova.sse/i.anova.sst,i.anova.r2<0&&(i.anova.r2=0),i.anova.fratio=i.anova.msr/i.anova.mse,i.anova.pvalue=n.anovaftest(i.anova.fratio,t[0].length-1,e.length-(t[0].length-1)-1),i.anova.rmse=Math.sqrt(i.anova.mse),i.anova.r2adj=1-i.anova.mse/i.anova.mst,i.anova.r2adj<0&&(i.anova.r2adj=0),i.stats=new Array(t[0].length);for(var u,c,l,f=n.xtranspxinv(t),h=0;h<o.length;h++)u=Math.sqrt(i.anova.mse*Math.abs(f[h][h])),c=Math.abs(o[h]/u),l=n.ttest(c,e.length-t[0].length-1,r),i.stats[h]=[o[h],u,c,l];return i.regress=o,i},xtranspx:function(t){return n.matrixmult(t.transpose(),t)},xtranspxinv:function(t){var e=n.matrixmult(t.transpose(),t);return n.inv(e)},jMatYBar:function(t,e){var r=n.matrixmult(t,e);return new n(r)},residuals:function(t,e){return n.matrixsubtract(t,e)},ssr:function(t,n){for(var e=0,r=0;r<t.length;r++)e+=Math.pow(t[r]-n,2);return e},sse:function(t,n){for(var e=0,r=0;r<t.length;r++)e+=Math.pow(t[r]-n[r],2);return e},sst:function(t,n){for(var e=0,r=0;r<t.length;r++)e+=Math.pow(t[r]-n,2);return e},matrixsubtract:function(t,e){for(var r=new Array(t.length),o=0;o<t.length;o++){r[o]=new Array(t[o].length);for(var i=0;i<t[o].length;i++)r[o][i]=t[o][i]-e[o][i]}return n(r)}}),n.jStat=n,n)},9982:function(t,n,e){var r;!function(){var n={};!function(t){"use strict";t.__esModule=!0,t.digestLength=32,t.blockSize=64;var n=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function e(t,e,r,o,i){for(var s,a,u,c,l,f,h,m,d,p,g,y,v;i>=64;){for(s=e[0],a=e[1],u=e[2],c=e[3],l=e[4],f=e[5],h=e[6],m=e[7],p=0;p<16;p++)g=o+4*p,t[p]=(255&r[g])<<24|(255&r[g+1])<<16|(255&r[g+2])<<8|255&r[g+3];for(p=16;p<64;p++)y=((d=t[p-2])>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,v=((d=t[p-15])>>>7|d<<25)^(d>>>18|d<<14)^d>>>3,t[p]=(y+t[p-7]|0)+(v+t[p-16]|0);for(p=0;p<64;p++)y=(((l>>>6|l<<26)^(l>>>11|l<<21)^(l>>>25|l<<7))+(l&f^~l&h)|0)+(m+(n[p]+t[p]|0)|0)|0,v=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&a^s&u^a&u)|0,m=h,h=f,f=l,l=c+y|0,c=u,u=a,a=s,s=y+v|0;e[0]+=s,e[1]+=a,e[2]+=u,e[3]+=c,e[4]+=l,e[5]+=f,e[6]+=h,e[7]+=m,o+=64,i-=64}return o}var r=function(){function n(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return n.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},n.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},n.prototype.update=function(t,n){if(void 0===n&&(n=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var r=0;if(this.bytesHashed+=n,this.bufferLength>0){for(;this.bufferLength<64&&n>0;)this.buffer[this.bufferLength++]=t[r++],n--;64===this.bufferLength&&(e(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(n>=64&&(r=e(this.temp,this.state,t,r,n),n%=64);n>0;)this.buffer[this.bufferLength++]=t[r++],n--;return this},n.prototype.finish=function(t){if(!this.finished){var n=this.bytesHashed,r=this.bufferLength,o=n/536870912|0,i=n<<3,s=n%64<56?64:128;this.buffer[r]=128;for(var a=r+1;a<s-8;a++)this.buffer[a]=0;this.buffer[s-8]=o>>>24&255,this.buffer[s-7]=o>>>16&255,this.buffer[s-6]=o>>>8&255,this.buffer[s-5]=o>>>0&255,this.buffer[s-4]=i>>>24&255,this.buffer[s-3]=i>>>16&255,this.buffer[s-2]=i>>>8&255,this.buffer[s-1]=i>>>0&255,e(this.temp,this.state,this.buffer,0,s),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},n.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},n.prototype._saveState=function(t){for(var n=0;n<this.state.length;n++)t[n]=this.state[n]},n.prototype._restoreState=function(t,n){for(var e=0;e<this.state.length;e++)this.state[e]=t[e];this.bytesHashed=n,this.finished=!1,this.bufferLength=0},n}();t.Hash=r;var o=function(){function t(t){this.inner=new r,this.outer=new r,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var n=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new r).update(t).finish(n).clean();else for(var e=0;e<t.length;e++)n[e]=t[e];for(e=0;e<n.length;e++)n[e]^=54;for(this.inner.update(n),e=0;e<n.length;e++)n[e]^=106;for(this.outer.update(n),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),e=0;e<n.length;e++)n[e]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function i(t){var n=(new r).update(t),e=n.digest();return n.clean(),e}function s(t,n){var e=new o(t).update(n),r=e.digest();return e.clean(),r}function a(t,n,e,r){var o=r[0];if(0===o)throw new Error("hkdf: cannot expand more");n.reset(),o>1&&n.update(t),e&&n.update(e),n.update(r),n.finish(t),r[0]++}t.HMAC=o,t.hash=i,t.default=i,t.hmac=s;var u=new Uint8Array(t.digestLength);t.hkdf=function(t,n,e,r){void 0===n&&(n=u),void 0===r&&(r=32);for(var i=new Uint8Array([1]),c=s(n,t),l=new o(c),f=new Uint8Array(l.digestLength),h=f.length,m=new Uint8Array(r),d=0;d<r;d++)h===f.length&&(a(f,l,e,i),h=0),m[d]=f[h++];return l.clean(),f.fill(0),i.fill(0),m},t.pbkdf2=function(t,n,e,r){for(var i=new o(t),s=i.digestLength,a=new Uint8Array(4),u=new Uint8Array(s),c=new Uint8Array(s),l=new Uint8Array(r),f=0;f*s<r;f++){var h=f+1;a[0]=h>>>24&255,a[1]=h>>>16&255,a[2]=h>>>8&255,a[3]=h>>>0&255,i.reset(),i.update(n),i.update(a),i.finish(c);for(var m=0;m<s;m++)u[m]=c[m];for(m=2;m<=e;m++){i.reset(),i.update(c).finish(c);for(var d=0;d<s;d++)u[d]^=c[d]}for(m=0;m<s&&f*s+m<r;m++)l[f*s+m]=u[m]}for(f=0;f<s;f++)u[f]=c[f]=0;for(f=0;f<4;f++)a[f]=0;return i.clean(),l}}(n);var o=n.default;for(var i in n)o[i]=n[i];"object"==typeof t.exports?t.exports=o:void 0===(r=function(){return o}.call(n,e,n,t))||(t.exports=r)}()}},n={};function e(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}e.m=t,e.amdO={},e.d=(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.u=t=>t+".js",e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.hmd=t=>((t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t),e.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{var t;e.g.importScripts&&(t=e.g.location+"");var n=e.g.document;if(!t&&n&&(n.currentScript&&"SCRIPT"===n.currentScript.tagName.toUpperCase()&&(t=n.currentScript.src),!t)){var r=n.getElementsByTagName("script");if(r.length)for(var o=r.length-1;o>-1&&(!t||!/^http(s?):/.test(t));)t=r[o--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t})(),e.b=document.baseURI||self.location.href;var r={};(()=>{"use strict";e.r(r),e.d(r,{_package:()=>Te,initAutoTests:()=>Ie,test:()=>Me,tests:()=>h});const t=DG,n=grok;e(9982);const o=t.DataFrame.fromCsv('countries,fasta,smiles,molregno,LON,Zip Code,Street Address Line 1,ImageUrl,user_id,error_message,xray,flag,magnitude,CS-id,pdb_id,accel_a,time_offset,chart,fit,Questions,empty_number,empty_string\nBelgium,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C(=O)OCCCc1cccnc1)c2cccc(c2)C(=O)c3ccccc3,1480014,36.276729583740234,995042300,14016 ROUTE 31W,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,1,1,1QBS,1,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.497360340644872, 1.7058694986686864, 5.278052678195135, 0.16000320889028383],""points"":[{""x"":0.10000000149011612,""y"":2.374499797821045},{""x"":0.6000000238418579,""y"":2.6242473125457764},{""x"":1.100000023841858,""y"":2.367267608642578},{""x"":1.600000023841858,""y"":2.6723148822784424},{""x"":2.0999999046325684,""y"":2.6537344455718994},{""x"":2.5999999046325684,""y"":2.3651671409606934},{""x"":3.0999999046325684,""y"":2.5654284954071045},{""x"":3.5999999046325684,""y"":2.4160959720611572},{""x"":4.099999904632568,""y"":2.286726713180542},{""x"":4.599999904632568,""y"":2.5100042819976807},{""x"":5.099999904632568,""y"":1.6676985025405884},{""x"":5.599999904632568,""y"":0.680136501789093},{""x"":6.099999904632568,""y"":0.3391543924808502},{""x"":6.599999904632568,""y"":0.09038983285427094},{""x"":7.099999904632568,""y"":0.19802775979042053}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[7.525235855508179, 1.3186911876809984, 5.335672608564294, 0.7860743343958098],""points"":[{""x"":0.10000000149011612,""y"":7.988070487976074},{""x"":0.6000000238418579,""y"":7.018453121185303},{""x"":1.100000023841858,""y"":8.115279197692871},{""x"":1.600000023841858,""y"":7.486658096313477},{""x"":2.0999999046325684,""y"":7.396438121795654},{""x"":2.5999999046325684,""y"":7.477052211761475},{""x"":3.0999999046325684,""y"":6.913095474243164},{""x"":3.5999999046325684,""y"":8.01385498046875},{""x"":4.099999904632568,""y"":6.985900402069092},{""x"":4.599999904632568,""y"":6.970335960388184},{""x"":5.099999904632568,""y"":5.448817253112793},{""x"":5.599999904632568,""y"":2.5534818172454834},{""x"":6.099999904632568,""y"":1.893947958946228},{""x"":6.599999904632568,""y"":0.6340042352676392},{""x"":7.099999904632568,""y"":0.8403874039649963}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,100,abc\nBurundi,MDYKETLLMPKTDFPMRGGLPNKEPQIQEKW,COc1ccc2cc(ccc2c1)C(C)C(=O)Oc3ccc(C)cc3OC,1480015,36.276729583740234,995073444,80 STATE HIGHWAY 310,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,2,2,1ZP8,2,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.431460753103398, 2.1691498799246745, 5.266445597102774, 0.7825762827017926],""points"":[{""x"":0.10000000149011612,""y"":4.751083850860596},{""x"":0.6000000238418579,""y"":4.203000068664551},{""x"":1.100000023841858,""y"":4.415858745574951},{""x"":1.600000023841858,""y"":4.68414306640625},{""x"":2.0999999046325684,""y"":4.198400974273682},{""x"":2.5999999046325684,""y"":4.179222106933594},{""x"":3.0999999046325684,""y"":4.638473987579346},{""x"":3.5999999046325684,""y"":4.708553314208984},{""x"":4.099999904632568,""y"":4.291589260101318},{""x"":4.599999904632568,""y"":4.038082599639893},{""x"":5.099999904632568,""y"":3.4349939823150635},{""x"":5.599999904632568,""y"":1.2194708585739136},{""x"":6.099999904632568,""y"":1.1920831203460693},{""x"":6.599999904632568,""y"":0.5352635979652405},{""x"":7.099999904632568,""y"":0.3346920311450958}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.339458017970126, -1.0734184310171178, 4.746332950550934, 0.2482416857595658],""points"":[{""x"":0.10000000149011612,""y"":0.2139337658882141},{""x"":0.6000000238418579,""y"":0.4269562065601349},{""x"":1.100000023841858,""y"":0.2441573292016983},{""x"":1.600000023841858,""y"":0.146635964512825},{""x"":2.0999999046325684,""y"":0.08818462491035461},{""x"":2.5999999046325684,""y"":0.2560656666755676},{""x"":3.0999999046325684,""y"":0.42434045672416687},{""x"":3.5999999046325684,""y"":0.37111231684684753},{""x"":4.099999904632568,""y"":0.5581737160682678},{""x"":4.599999904632568,""y"":1.183590054512024},{""x"":5.099999904632568,""y"":1.5629843473434448},{""x"":5.599999904632568,""y"":2.3211288452148438},{""x"":6.099999904632568,""y"":2.229961633682251},{""x"":6.599999904632568,""y"":2.2560226917266846},{""x"":7.099999904632568,""y"":2.2142398357391357}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCameroon,MIEVFLFGIVLGLIPITLAGLFVTAYLQYRRGDQLDL,COc1ccc2cc(ccc2c1)C(C)C(=O)OCCCc3cccnc3,1480016,36.26095962524414,995153596,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,3,3,2BDJ,3,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.6760652578642325, 0.9046956320756703, 5.651408971856738, 0.07738846012184185],""points"":[{""x"":0.10000000149011612,""y"":4.32425594329834},{""x"":0.6000000238418579,""y"":4.668442249298096},{""x"":1.100000023841858,""y"":4.379785060882568},{""x"":1.600000023841858,""y"":5.0345139503479},{""x"":2.0999999046325684,""y"":4.878653526306152},{""x"":2.5999999046325684,""y"":4.3451313972473145},{""x"":3.0999999046325684,""y"":4.336992263793945},{""x"":3.5999999046325684,""y"":5.037430286407471},{""x"":4.099999904632568,""y"":5.0092692375183105},{""x"":4.599999904632568,""y"":4.151902675628662},{""x"":5.099999904632568,""y"":3.4066951274871826},{""x"":5.599999904632568,""y"":2.3732759952545166},{""x"":6.099999904632568,""y"":1.673728108406067},{""x"":6.599999904632568,""y"":0.48574790358543396},{""x"":7.099999904632568,""y"":0.2783052325248718}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.938395863010111, -1.4658480661392117, 5.462702751996584, 0.3473139023615039],""points"":[{""x"":0.10000000149011612,""y"":0.4941710829734802},{""x"":0.6000000238418579,""y"":0.15323974192142487},{""x"":1.100000023841858,""y"":0.46373432874679565},{""x"":1.600000023841858,""y"":0.3370431363582611},{""x"":2.0999999046325684,""y"":0.5179030299186707},{""x"":2.5999999046325684,""y"":0.27899765968322754},{""x"":3.0999999046325684,""y"":0.22075064480304718},{""x"":3.5999999046325684,""y"":0.5789918899536133},{""x"":4.099999904632568,""y"":0.21169911324977875},{""x"":4.599999904632568,""y"":0.27857646346092224},{""x"":5.099999904632568,""y"":1.0906332731246948},{""x"":5.599999904632568,""y"":1.8520300388336182},{""x"":6.099999904632568,""y"":2.7177059650421143},{""x"":6.599999904632568,""y"":2.8680918216705322},{""x"":7.099999904632568,""y"":3.2413077354431152}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCanada,MMELVLKTIIGPIVVGVVLRIVDKWLNKDK,CC(C(=O)NCCS)c1cccc(c1)C(=O)c2ccccc2,1480017,36.26095962524414,99515,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,4,4,1IAN,4,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[0.8597390975430008, 1.0957625732481946, 5.260537067987958, 0.07974187998177736],""points"":[{""x"":0.10000000149011612,""y"":0.8190152645111084},{""x"":0.6000000238418579,""y"":0.8421689867973328},{""x"":1.100000023841858,""y"":0.8740922212600708},{""x"":1.600000023841858,""y"":0.8924275040626526},{""x"":2.0999999046325684,""y"":0.8249067664146423},{""x"":2.5999999046325684,""y"":0.9327669143676758},{""x"":3.0999999046325684,""y"":0.8522974252700806},{""x"":3.5999999046325684,""y"":0.8174492716789246},{""x"":4.099999904632568,""y"":0.8394647240638733},{""x"":4.599999904632568,""y"":0.7139387726783752},{""x"":5.099999904632568,""y"":0.5561167597770691},{""x"":5.599999904632568,""y"":0.3276226818561554},{""x"":6.099999904632568,""y"":0.12479474395513535},{""x"":6.599999904632568,""y"":0.13006797432899475},{""x"":7.099999904632568,""y"":0.059702079743146896}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.760930219582546, 1.6591793293833013, 4.667155929720851, 0.7858109544121652],""points"":[{""x"":0.10000000149011612,""y"":6.156993389129639},{""x"":0.6000000238418579,""y"":5.236701965332031},{""x"":1.100000023841858,""y"":6.010560512542725},{""x"":1.600000023841858,""y"":5.495512962341309},{""x"":2.0999999046325684,""y"":6.087770462036133},{""x"":2.5999999046325684,""y"":5.79986572265625},{""x"":3.0999999046325684,""y"":5.597546577453613},{""x"":3.5999999046325684,""y"":5.520902156829834},{""x"":4.099999904632568,""y"":5.360654354095459},{""x"":4.599999904632568,""y"":3.5539746284484863},{""x"":5.099999904632568,""y"":1.577236294746399},{""x"":5.599999904632568,""y"":1.0001264810562134},{""x"":6.099999904632568,""y"":0.9305797815322876},{""x"":6.599999904632568,""y"":0.6033638715744019},{""x"":7.099999904632568,""y"":0.4203685522079468}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nColombia,MDRTDEVSNHTHDKPTLTWFEEIFEEYHSPFHN,FC(F)(F)c1ccc(OC2CCNCC2)cc1,1480029,36.3309440612793,995152050,1 COURT HOUSE SQUARE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,5,5,4UJ1,5,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[6.4995088314153655, 2.4270351004539914, 5.178659535348579, 0.625653346241577],""points"":[{""x"":0.10000000149011612,""y"":6.496231555938721},{""x"":0.6000000238418579,""y"":6.42543363571167},{""x"":1.100000023841858,""y"":7.040063858032227},{""x"":1.600000023841858,""y"":6.1115403175354},{""x"":2.0999999046325684,""y"":6.680728435516357},{""x"":2.5999999046325684,""y"":6.406774520874023},{""x"":3.0999999046325684,""y"":6.611269474029541},{""x"":3.5999999046325684,""y"":5.889094352722168},{""x"":4.099999904632568,""y"":6.75344705581665},{""x"":4.599999904632568,""y"":6.361435890197754},{""x"":5.099999904632568,""y"":4.1666975021362305},{""x"":5.599999904632568,""y"":1.172118902206421},{""x"":6.099999904632568,""y"":0.801048994064331},{""x"":6.599999904632568,""y"":0.4640021026134491},{""x"":7.099999904632568,""y"":0.0010357667924836278}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[1.4734381347446401, 1.1649805188074196, 4.82958608866421, 0.09500545496710007],""points"":[{""x"":0.10000000149011612,""y"":1.5279096364974976},{""x"":0.6000000238418579,""y"":1.3559974431991577},{""x"":1.100000023841858,""y"":1.5246378183364868},{""x"":1.600000023841858,""y"":1.5567657947540283},{""x"":2.0999999046325684,""y"":1.4114240407943726},{""x"":2.5999999046325684,""y"":1.4045010805130005},{""x"":3.0999999046325684,""y"":1.4769829511642456},{""x"":3.5999999046325684,""y"":1.4875500202178955},{""x"":4.099999904632568,""y"":1.2991987466812134},{""x"":4.599999904632568,""y"":0.922961413860321},{""x"":5.099999904632568,""y"":0.6520044803619385},{""x"":5.599999904632568,""y"":0.15350978076457977},{""x"":6.099999904632568,""y"":0.1078903079032898},{""x"":6.599999904632568,""y"":0.17276449501514435},{""x"":7.099999904632568,""y"":0.14066608250141144}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCosta Rica,MKSTKEEIQTIKTLLKDSRTAKYHKRLQIVL,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCCc3ccccc3,1480018,36.3309440612793,995084218,4041 SOUTHWESTERN BLVD,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,6,6,2BPW,6,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.4833641843311227, -1.8945978742090062, 4.671127708092568, 0.24159861311815153],""points"":[{""x"":0.10000000149011612,""y"":0.0969524160027504},{""x"":0.6000000238418579,""y"":0.028483040630817413},{""x"":1.100000023841858,""y"":0.22087176144123077},{""x"":1.600000023841858,""y"":0.0068915546871721745},{""x"":2.0999999046325684,""y"":0.4305879771709442},{""x"":2.5999999046325684,""y"":0.44774115085601807},{""x"":3.0999999046325684,""y"":0.45346319675445557},{""x"":3.5999999046325684,""y"":0.2370593100786209},{""x"":4.099999904632568,""y"":0.4657953977584839},{""x"":4.599999904632568,""y"":1.155200719833374},{""x"":5.099999904632568,""y"":2.2294070720672607},{""x"":5.599999904632568,""y"":2.4311530590057373},{""x"":6.099999904632568,""y"":2.33846116065979},{""x"":6.599999904632568,""y"":2.608201026916504},{""x"":7.099999904632568,""y"":2.8136143684387207}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.224573521642033, 1.4454033924198528, 5.6014197746076535, 0.2823216054197577],""points"":[{""x"":0.10000000149011612,""y"":4.95027494430542},{""x"":0.6000000238418579,""y"":5.1754679679870605},{""x"":1.100000023841858,""y"":5.276752948760986},{""x"":1.600000023841858,""y"":5.589294910430908},{""x"":2.0999999046325684,""y"":5.616994857788086},{""x"":2.5999999046325684,""y"":5.120813846588135},{""x"":3.0999999046325684,""y"":5.340766906738281},{""x"":3.5999999046325684,""y"":4.876471042633057},{""x"":4.099999904632568,""y"":4.94999361038208},{""x"":4.599999904632568,""y"":5.162564754486084},{""x"":5.099999904632568,""y"":4.399557590484619},{""x"":5.599999904632568,""y"":2.7977969646453857},{""x"":6.099999904632568,""y"":1.0229872465133667},{""x"":6.599999904632568,""y"":0.48275601863861084},{""x"":7.099999904632568,""y"":0.10408931970596313}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCuba,MHAILRYFIRRLFYHIFYKIYSLISKKHQSLPSDVRQF,COc1ccc2c(c1)c(CC(=O)N3CCCC3C(=O)Oc4ccc(C)cc4OC)c(C)n2C(=O)c5ccc(Cl)cc5,1480019,36.33115768432617,995081928,1227 US HIGHWAY 11,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,7,7,1QBS,7,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.320838679713925, -1.2421619987316728, 4.831325425225256, 0.3236011098403072],""points"":[{""x"":0.10000000149011612,""y"":0.3727470338344574},{""x"":0.6000000238418579,""y"":0.12365014106035233},{""x"":1.100000023841858,""y"":0.48422467708587646},{""x"":1.600000023841858,""y"":0.2264465093612671},{""x"":2.0999999046325684,""y"":0.16821794211864471},{""x"":2.5999999046325684,""y"":0.3879014551639557},{""x"":3.0999999046325684,""y"":0.5470244884490967},{""x"":3.5999999046325684,""y"":0.3419053554534912},{""x"":4.099999904632568,""y"":0.7655120491981506},{""x"":4.599999904632568,""y"":1.2346516847610474},{""x"":5.099999904632568,""y"":2.453336715698242},{""x"":5.599999904632568,""y"":2.9565491676330566},{""x"":6.099999904632568,""y"":3.335299491882324},{""x"":6.599999904632568,""y"":3.240290880203247},{""x"":7.099999904632568,""y"":3.1107218265533447}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.6401853521511094, 1.26211588875013, 5.399028074402744, 0.5089580830068091],""points"":[{""x"":0.10000000149011612,""y"":3.8585598468780518},{""x"":0.6000000238418579,""y"":3.6077206134796143},{""x"":1.100000023841858,""y"":3.855252265930176},{""x"":1.600000023841858,""y"":3.619039297103882},{""x"":2.0999999046325684,""y"":3.839388370513916},{""x"":2.5999999046325684,""y"":3.335283041000366},{""x"":3.0999999046325684,""y"":3.571141481399536},{""x"":3.5999999046325684,""y"":3.4155046939849854},{""x"":4.099999904632568,""y"":3.7316646575927734},{""x"":4.599999904632568,""y"":3.0680155754089355},{""x"":5.099999904632568,""y"":2.891066551208496},{""x"":5.599999904632568,""y"":1.6022753715515137},{""x"":6.099999904632568,""y"":0.7652576565742493},{""x"":6.599999904632568,""y"":0.6875326037406921},{""x"":7.099999904632568,""y"":0.5828871726989746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nItaly,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO[N+](=O)[O-],1480020,36.33115768432617,99502,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,8,8,1ZP8,8,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.293592105923809, 1.3781586549141835, 5.1025898038676605, 0.03493851245291291],""points"":[{""x"":0.10000000149011612,""y"":2.1287283897399902},{""x"":0.6000000238418579,""y"":2.267972230911255},{""x"":1.100000023841858,""y"":2.398442506790161},{""x"":1.600000023841858,""y"":2.5130622386932373},{""x"":2.0999999046325684,""y"":2.3255116939544678},{""x"":2.5999999046325684,""y"":2.127340793609619},{""x"":3.0999999046325684,""y"":2.47259783744812},{""x"":3.5999999046325684,""y"":2.131181478500366},{""x"":4.099999904632568,""y"":2.090421438217163},{""x"":4.599999904632568,""y"":2.02299165725708},{""x"":5.099999904632568,""y"":1.1105059385299683},{""x"":5.599999904632568,""y"":0.4494485855102539},{""x"":6.099999904632568,""y"":0.1375635862350464},{""x"":6.599999904632568,""y"":0.036351121962070465},{""x"":7.099999904632568,""y"":0.1619771122932434}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.953125499439879, 1.2528620255306528, 5.187637440149802, 0.3110348753260886],""points"":[{""x"":0.10000000149011612,""y"":5.6585283279418945},{""x"":0.6000000238418579,""y"":5.911152362823486},{""x"":1.100000023841858,""y"":5.924920082092285},{""x"":1.600000023841858,""y"":5.8469438552856445},{""x"":2.0999999046325684,""y"":5.929472923278809},{""x"":2.5999999046325684,""y"":6.190037727355957},{""x"":3.0999999046325684,""y"":6.236179828643799},{""x"":3.5999999046325684,""y"":6.141019344329834},{""x"":4.099999904632568,""y"":5.295210838317871},{""x"":4.599999904632568,""y"":5.265801906585693},{""x"":5.099999904632568,""y"":3.3722851276397705},{""x"":5.599999904632568,""y"":1.8299226760864258},{""x"":6.099999904632568,""y"":0.32690900564193726},{""x"":6.599999904632568,""y"":0.6274543404579163},{""x"":7.099999904632568,""y"":0.8441857099533081}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nRwanda,MPNSEPASLLELFNSIATQGELVRSLKAGNASK,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO,1480021,36.33137130737305,995037247,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,9,2BDJ,9,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.8209972202654474, 1.3779216716448506, 5.299882228439686, 0.06040645519069608],""points"":[{""x"":0.10000000149011612,""y"":3.7821109294891357},{""x"":0.6000000238418579,""y"":3.542433023452759},{""x"":1.100000023841858,""y"":3.7008674144744873},{""x"":1.600000023841858,""y"":3.717301607131958},{""x"":2.0999999046325684,""y"":4.024452209472656},{""x"":2.5999999046325684,""y"":4.013899326324463},{""x"":3.0999999046325684,""y"":3.945094347000122},{""x"":3.5999999046325684,""y"":3.866621971130371},{""x"":4.099999904632568,""y"":3.7461626529693604},{""x"":4.599999904632568,""y"":3.3454740047454834},{""x"":5.099999904632568,""y"":2.61944317817688},{""x"":5.599999904632568,""y"":0.999405026435852},{""x"":6.099999904632568,""y"":0.46259793639183044},{""x"":6.599999904632568,""y"":0.054134611040353775},{""x"":7.099999904632568,""y"":0.05711187422275543}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.6318079657726035, 1.8495493770000595, 5.391793312471116, 0.17060707587348442],""points"":[{""x"":0.10000000149011612,""y"":5.458079814910889},{""x"":0.6000000238418579,""y"":5.554427146911621},{""x"":1.100000023841858,""y"":5.799983024597168},{""x"":1.600000023841858,""y"":5.364140033721924},{""x"":2.0999999046325684,""y"":5.864485740661621},{""x"":2.5999999046325684,""y"":5.4509806632995605},{""x"":3.0999999046325684,""y"":5.702574729919434},{""x"":3.5999999046325684,""y"":5.7314534187316895},{""x"":4.099999904632568,""y"":5.5123443603515625},{""x"":4.599999904632568,""y"":5.724395751953125},{""x"":5.099999904632568,""y"":4.354506969451904},{""x"":5.599999904632568,""y"":1.7307666540145874},{""x"":6.099999904632568,""y"":0.6305936574935913},{""x"":6.599999904632568,""y"":0.035183437168598175},{""x"":7.099999904632568,""y"":0.7575169205665588}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nSwitzerland,IRVVGRYLIEVWKAAGMDMDKVLFLWSSDEI,CN1CCC(CC1)Oc2ccc(cc2)C(F)(F)F,1480028,36.33137130737305,99504,92-11 179TH PLACE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,10,1IAN,10,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[1.1190255865097471, 2.3163895161544437, 5.4968866182279195, 0.2035204047289052],""points"":[{""x"":0.10000000149011612,""y"":1.1057683229446411},{""x"":0.6000000238418579,""y"":1.1019697189331055},{""x"":1.100000023841858,""y"":1.0818607807159424},{""x"":1.600000023841858,""y"":1.062997817993164},{""x"":2.0999999046325684,""y"":1.046447515487671},{""x"":2.5999999046325684,""y"":1.1217249631881714},{""x"":3.0999999046325684,""y"":1.2166996002197266},{""x"":3.5999999046325684,""y"":1.215477705001831},{""x"":4.099999904632568,""y"":1.0581893920898438},{""x"":4.599999904632568,""y"":1.1747995615005493},{""x"":5.099999904632568,""y"":1.0181127786636353},{""x"":5.599999904632568,""y"":0.5344523191452026},{""x"":6.099999904632568,""y"":0.2569526433944702},{""x"":6.599999904632568,""y"":0.1912207305431366},{""x"":7.099999904632568,""y"":0.15060538053512573}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.1038581025805785, 2.0032224204185245, 5.087602825989163, 0.13277988512492753],""points"":[{""x"":0.10000000149011612,""y"":3.0498509407043457},{""x"":0.6000000238418579,""y"":2.805217742919922},{""x"":1.100000023841858,""y"":3.3415253162384033},{""x"":1.600000023841858,""y"":3.0549843311309814},{""x"":2.0999999046325684,""y"":3.250074863433838},{""x"":2.5999999046325684,""y"":3.0432586669921875},{""x"":3.0999999046325684,""y"":3.265852451324463},{""x"":3.5999999046325684,""y"":2.9475724697113037},{""x"":4.099999904632568,""y"":3.1929898262023926},{""x"":4.599999904632568,""y"":2.7460060119628906},{""x"":5.099999904632568,""y"":1.6175861358642578},{""x"":5.599999904632568,""y"":0.3006608486175537},{""x"":6.099999904632568,""y"":0.3444803059101105},{""x"":6.599999904632568,""y"":0.015537971630692482},{""x"":7.099999904632568,""y"":0.5527358055114746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\n,,,,,,,,,,,,,,,,,,,,,');o.columns.add(t.Column.fromList(t.TYPE.BYTE_ARRAY,"BinaryImage",Array.from(new Uint8Array(11))));var i=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const s=3e4,a=108e5,u=console.log.bind(console),c=console.info.bind(console),l=console.warn.bind(console),f=console.error.bind(console),h={},m="Auto Tests",d="Demo",p="Detectors",g="Core",y={};let v;var w,E,A,C,_,N,x,b,S,T;!function(t){t.notNull=function(t,n){if(null==t)throw new Error(`${null==n?"Value":n} not defined`)}}(w||(w={}));class M{constructor(t,n){this.catchUnhandled=!0,this.report=!1,void 0!==t&&(this.catchUnhandled=t),void 0!==n&&(this.report=n)}}class I{constructor(n,e,r,o){var a;this.category=n,this.name=e,null!=o||(o={}),null!==(a=o.timeout)&&void 0!==a||(o.timeout=s),this.options=o,this.test=()=>i(this,void 0,void 0,(function*(){return new Promise(((n,e)=>i(this,void 0,void 0,(function*(){let o="";try{t.Test.isInDebug,o=yield r()}catch(t){e(t)}n(o)}))))}))}}function O(t,n,e){null==h[v]&&(h[v]={}),null==h[v].tests&&(h[v].tests=[]),h[v].tests.push(new I(v,t,n,e))}function R(t,n=!0,e){if(e=e?`${e}, `:"",t!==n)throw new Error(`${e}Expected "${n}", got "${t}"`)}function L(t,n,e){var r;v=t,n(),h[v]&&(h[v].clear=null===(r=null==e?void 0:e.clear)||void 0===r||r,h[v].timeout=null==e?void 0:e.timeout,h[v].benchmarks=null==e?void 0:e.benchmarks,h[v].stressTests=null==e?void 0:e.stressTests,h[v].owner=null==e?void 0:e.owner)}function P(t,n){return t.replace(new RegExp(n.name,"gi"),n.nqName)}function D(e,r){var u,c,l,f,v,w,E;return i(this,void 0,void 0,(function*(){const A=e.id;if(y[A])return;const C=r?r.tests:h;if(void 0!==C[m]||void 0!==C[d]||Object.keys(C).find((t=>t.startsWith(m)||t.startsWith(g))))return void(y[A]=!0);if("DevTools"===e.name||r&&"DevTools"===r._package.name)for(const t of window.dartTests){const n=t.name.split(/\s*\|\s*!/g);let e=null!==(u=n.pop())&&void 0!==u?u:t.name,r=n.length?g+": "+n.join(": "):g,o=e.split(" | ");e=o[o.length-1],o.unshift(r),o.pop(),r=o.join(": "),void 0===C[r]&&(C[r]={tests:[],clear:!0}),C[r].tests.push(new I(r,e,t.test,{isAggregated:!1,timeout:null!==(l=null===(c=t.options)||void 0===c?void 0:c.timeout)&&void 0!==l?l:s,skipReason:null===(f=t.options)||void 0===f?void 0:f.skipReason,owner:null===(v=t.options)||void 0===v?void 0:v.owner}))}const _=[],N=[],x=[],b=yield n.dapi.functions.filter(`package.id = "${A}"`).list(),S=new RegExp(/skip:\s*([^,\s]+)|wait:\s*(\d+)|cat:\s*([^,\s]+)|timeout:\s*(\d+)/g);for(const r of b){const u=r.options.test,c=r.options.demoPath;if(u&&Array.isArray(u)&&u.length)for(let e=0;e<u.length;e++){const o=u[e].matchAll(S),c={};Array.from(o).forEach((t=>{t[0].startsWith("skip")?c.skip=t[1]:t[0].startsWith("wait")?c.wait=parseInt(t[2]):t[0].startsWith("cat")?c.cat=t[3]:t[0].startsWith("timeout")&&(c.timeout=parseInt(t[4]))}));const l=new I(m,1===u.length?r.name:`${r.name} ${e+1}`,(()=>i(this,void 0,void 0,(function*(){const t=yield n.functions.eval(P(u[e],r));if(c.wait&&(yield H(c.wait)),"boolean"==typeof t&&!t)throw`Failed: ${u[e]}, expected true, got ${t}`}))),{skipReason:c.skip,timeout:t.Test.isInBenchmark?null!==(w=c.benchmarkTimeout)&&void 0!==w?w:a:null!==(E=c.timeout)&&void 0!==E?E:s});if(c.cat){const t=m+": "+c.cat;l.category=t,void 0===C[t]&&(C[t]={tests:[],clear:!0}),C[t].tests.push(l)}else _.push(l)}if(c){const t=r.options.demoWait?parseInt(r.options.demoWait):void 0,e=new I(d,r.friendlyName,(()=>i(this,void 0,void 0,(function*(){yield H(300),n.shell.clearLastError(),yield r.apply(),yield H(t||2e3);const e=yield n.shell.lastError;if(e)throw new Error(e)}))),{skipReason:r.options.demoSkip});N.push(e)}if(r.hasTag("semTypeDetector")){let t=o;r.options.testData&&(t=yield n.data.files.openTable(`System:AppData/${e.nqName}/${r.options.testData}`));const s=new I(p,r.friendlyName,(()=>i(this,void 0,void 0,(function*(){const n=[];console.log(`System:AppData/${e.nqName}/${r.options.testData}`);for(const e of t.clone().columns){const t=yield r.apply([e]);n.push(t||e.semType)}const o=n.filter((t=>t));R(o.length,1),r.options.testDataColumnName&&R(o[0],r.options.testDataColumnName)}))),{skipReason:r.options.skipTest});x.push(s)}}y[A]=!0,_.length>0&&(C[m]={tests:_,clear:!0}),N.length>0&&(C[d]={tests:N,clear:!0}),x.length>0&&(C[p]={tests:x,clear:!1})}))}function F(t,e){return i(this,void 0,void 0,(function*(){null!=n.shell.reportTest?yield n.shell.reportTest(t,e):yield fetch(`${n.dapi.root}/log/tests/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify(e)})}))}function U(n){return i(this,void 0,void 0,(function*(){return`${n.toString()}\n${n.stack?yield t.Logger.translateStackTrace(n.stack):""}`}))}function B(e,r,o,a,c,l){var h,m,d,p,g,y,v,w,E,A;return i(this,void 0,void 0,(function*(){let i;o.length=0;const C=null!=r&&e.name.toLowerCase()!==r.toLowerCase();let _=(null===(h=e.options)||void 0===h?void 0:h.skipReason)||C,N=C?"skipped":null===(m=e.options)||void 0===m?void 0:m.skipReason;if(t.Test.isInBenchmark&&!(null===(d=e.options)||void 0===d?void 0:d.benchmark))return void u(`SKIPPED: ${e.category} ${e.name} doesnt available in benchmark mode`);_||u(`Started ${e.category} ${e.name}`);const x=Date.now(),b=new Date(x).toISOString();try{if(_)i={date:b,success:!0,result:N,ms:0,skipped:!0};else{let r=null!=a?a:s;t.Test.isProfiling&&console.profile(`${e.category}: ${e.name}`),i={date:b,success:!0,result:null!==(p=yield G(e.test,r))&&void 0!==p?p:"OK",ms:0,skipped:!1},t.Test.isProfiling&&(console.profileEnd(`${e.category}: ${e.name}`),n.shell.info(`Profiling of ${e.category}: ${e.name} finished \n Please ensure that you have opened DevTools (F12) / Performance panel before test starts.`))}}catch(t){f(t),i={date:b,success:!1,result:yield U(t),ms:0,skipped:!1}}if((null===(g=e.options)||void 0===g?void 0:g.isAggregated)&&i.result.constructor===t.DataFrame){const t=i.result.col("success");if(t&&(i.success=t.stats.sum===t.length),!l){const t=i.result;t.columns.remove("stack"),t.rows.removeWhere((t=>t.get("success"))),i.result=t}i.result=i.result.toCsv()}if(i.logs=o.join("\n"),i.ms=Date.now()-x,_||u(`Finished ${e.category} ${e.name} for ${i.ms} ms`),i.category=e.category,i.name=e.name,i.owner=null!==(v=null===(y=e.options)||void 0===y?void 0:y.owner)&&void 0!==v?v:"",!C){let n={success:i.success,result:i.result,ms:i.ms,date:i.date,skipped:i.skipped,package:c,category:e.category,name:e.name,logs:i.logs,owner:i.owner,flaking:t.Test.isReproducing&&i.success,timeoutWarning:t.Test.isInBenchmark&&(null===(w=e.options)||void 0===w?void 0:w.benchmarkWarnTimeout)&&i.ms>(null===(E=e.options)||void 0===E?void 0:E.benchmarkWarnTimeout)};if(i.result.constructor==Object){const t=Object.keys(i.result).reduce(((t,n)=>Object.assign(Object.assign({},t),{["result."+n]:i.result[n]})),{});n=Object.assign(Object.assign({},n),t)}n.result instanceof t.DataFrame&&(n.result=JSON.stringify(null===(A=n.result)||void 0===A?void 0:A.toJson())||""),yield F("package",n)}return i}))}function k(t){const n=t.slice();return n.sort((()=>Math.random()-.5)),n}function H(t){return i(this,void 0,void 0,(function*(){yield new Promise((n=>setTimeout(n,t)))}))}function G(t,n,e="EXECUTION TIMEOUT"){return i(this,void 0,void 0,(function*(){let r=null;const o=new Promise(((t,o)=>{r=setTimeout((()=>{o(e)}),n)}));try{return yield Promise.race([t(),o])}finally{r&&clearTimeout(r)}}))}t.DataFrame.fromColumns([t.Column.fromStrings("col",["val1","val2","val3"])]),function(t){t.UMAP="UMAP",t.T_SNE="t-SNE"}(E||(E={})),function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan String",t.Onehot="One-Hot"}(A||(A={})),function(t){t.Euclidean="Euclidean",t.Manhattan="Manhattan",t.Cosine="Vector Cosine"}(C||(C={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean BitArray"}(_||(_={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(N||(N={})),(T=x||(x={})).Vector="Vector",T.String="String",T.BitArray="BitArray",T.MacroMolecule="MacroMolecule",T.Number="Number",T.IntArray="IntArray",T.NumberArray="NumberArray",function(t){t.Difference="Difference"}(b||(b={})),function(t){t.CommonItems="Common Items"}(S||(S={}));const V=new Uint32Array(65536),W=(t,n)=>{if(t.length<n.length){const e=n;n=t,t=e}return 0===n.length?t.length:t.length<=32?((t,n)=>{const e=t.length,r=n.length,o=1<<e-1;let i=-1,s=0,a=e,u=e;for(;u--;)V[t.charCodeAt(u)]|=1<<u;for(u=0;u<r;u++){let t=V[n.charCodeAt(u)];const e=t|s;t|=(t&i)+i^i,s|=~(t|i),i&=t,s&o&&a++,i&o&&a--,s=s<<1|1,i=i<<1|~(e|s),s&=e}for(u=e;u--;)V[t.charCodeAt(u)]=0;return a})(t,n):((t,n)=>{const e=n.length,r=t.length,o=[],i=[],s=Math.ceil(e/32),a=Math.ceil(r/32);for(let t=0;t<s;t++)i[t]=-1,o[t]=0;let u=0;for(;u<a-1;u++){let s=0,a=-1;const c=32*u,l=Math.min(32,r)+c;for(let n=c;n<l;n++)V[t.charCodeAt(n)]|=1<<n;for(let t=0;t<e;t++){const e=V[n.charCodeAt(t)],r=i[t/32|0]>>>t&1,u=o[t/32|0]>>>t&1,c=e|s,l=((e|u)&a)+a^a|e|u;let f=s|~(l|a),h=a&l;f>>>31^r&&(i[t/32|0]^=1<<t),h>>>31^u&&(o[t/32|0]^=1<<t),f=f<<1|r,h=h<<1|u,a=h|~(c|f),s=f&c}for(let n=c;n<l;n++)V[t.charCodeAt(n)]=0}let c=0,l=-1;const f=32*u,h=Math.min(32,r-f)+f;for(let n=f;n<h;n++)V[t.charCodeAt(n)]|=1<<n;let m=r;for(let t=0;t<e;t++){const e=V[n.charCodeAt(t)],s=i[t/32|0]>>>t&1,a=o[t/32|0]>>>t&1,u=e|c,f=((e|a)&l)+l^l|e|a;let h=c|~(f|l),d=l&f;m+=h>>>r-1&1,m-=d>>>r-1&1,h>>>31^s&&(i[t/32|0]^=1<<t),d>>>31^a&&(o[t/32|0]^=1<<t),h=h<<1|s,d=d<<1|a,l=d|~(u|h),c=h&u}for(let n=f;n<h;n++)V[t.charCodeAt(n)]=0;return m})(t,n)};var q=e(944);class ${constructor(t,n=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const e=t,r=$._createBuffer(e);if(n)for(let t=0;t<r.length;t++)r[t]=-1;this._data=r,this._length=e}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=n}}getRawData(){return this._data}assureGoez(t,n){if(t<0)throw new Error(`${n} should be greater than zero`)}assureInRange(t,n,e,r){if(t<n||t>e)throw new Error(`Argument ${r} (${t}) out of range (${n}, ${e})`)}copy(t,n,e){for(let r=0;r<e;r++)n[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const n=Math.floor((t+31)/32);if(n>this._data.length||n+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(n);this.copy(this._data,t,n>this._data.length?this._data.length:n),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,n)),this._length=t,this._version++}static fromAnd(t,n){if(t._length!=n._length)throw new Error(`Lengths differ (${t._length} != ${n._length})`);const e=new $(t._length);e._length=t._length,e._data=$._createBuffer(e._length),e._version=0;const r=t.lengthInInts;for(let o=0;o<r;o++)e._data[o]=t._data[o]&n._data[o];return e}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const n=new $(t.length);n._version=0;for(let e=0;e<n._length;e++)t[e]&&(n._data[Math.floor(e/32)]|=1<<(e%32&31));return n}static fromSeq(t,n){const e=new $(t);for(let r=0;r<t;++r)e.setBit(r,n(r));return e._version=0,e}static fromString(t){return $.fromSeq(t.length,(n=>"1"==t.charAt(n)))}static fromUint32Array(t,n){const e=new $(t);return e._data=n,e}static fromBytes(t){const n=t.length,e=new $(8*n);e._data=new Uint32Array(Math.floor((n+3)/4)),e._length=8*n;let r=0,o=0;for(;n-o>=4;)e._data[r++]=255&t[o]|(255&t[o+1])<<8|(255&t[o+2])<<16|(255&t[o+3])<<24,o+=4;return n-o==3&&(e._data[r]=(255&t[o+2])<<16),n-o==2&&(e._data[r]|=(255&t[o+1])<<8),n-o==1&&(e._data[r]|=255&t[o]),e._version=0,e}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let n=0;n<this._data.length-1;n++)if(this._data[n]!=t._data[n])return!1;for(let n=8*(this._data.length-1);n<this._length;n++)if(this.getBit(n)!=t.getBit(n))return!1;return!0}clone(){const t=new $(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,n){this.setAll(!1,!1);for(let n=0;n<this._length;n++)t(n)&&(this._data[Math.floor(n/32)]|=1<<(n%32&31));return this.incrementVersion(n),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,n=!1){const e=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=e;this.incrementVersion(n)}setIndexes(t,n=!0,e=!0,r=!0){e&&this.setAll(!n,!1);for(const e of t)this.setFast(e,n);this.incrementVersion(r)}everyIndex(t,n=!0){for(const e of t)if(this.getBit(e)!=n)return!1;return!0}anyIndex(t,n=!0){for(const e of t)if(this.getBit(e)==n)return!0;return!1}setWhere(t,n=!0,e=!0,r=!0,o=!0){if(e&&o&&this.setAll(!n,!1),o)for(let e=0;e<this._length;e++)t(e)&&this.setFast(e,n);else for(let e=0;e<this._length;e++)this.setFast(e,t(e)?n:!n);this.incrementVersion(r)}getRange(t,n){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(n,0,this._length,"to");const e=[];for(let r=t;r<n;++r)e.push(this.getBit(r));return $.fromValues(e)}getRangeAsList(t,n){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(n,0,this._length,"to");const e=[];for(let r=t;r<n;++r)e.push(this.getBit(r));return e}setRange(t,n,e,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(n,0,this._length-1,"to");const o=Math.min(t,n),i=Math.max(t,n);if(e)for(let t=o;t<=i;t++)this.setTrue(t);else for(let t=o;t<=i;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,n,e=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!n),this.setAll(!n);for(let e=0;e<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=n&&(this.setFast(t,n),e++)}this.incrementVersion(e)}and(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let n=0,e=this.lengthInInts;n<e;n++)this._data[n]&=t._data[n];return this.incrementVersion(n),this}andNot(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const e=this.lengthInInts;for(let n=0;n<e;n++)this._data[n]&=~t._data[n];return this.incrementVersion(n),this}notAnd(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let n=0,e=this.lengthInInts;n<e;n++)this._data[n]=~this._data[n]&t._data[n];return this.incrementVersion(n),this}not(t=!0){for(let t=0,n=this.lengthInInts;t<n;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let n=0,e=this.lengthInInts;n<e;n++)this._data[n]|=t._data[n];return this.incrementVersion(n),this}xor(t,n=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let n=0,e=this.lengthInInts;n<e;n++)this._data[n]^=t._data[n];return this.incrementVersion(n),this}insertAt(t,n,e=!1){if(this.assureInRange(t,0,this._length,"pos"),0==n)return;const r=this._length;this.setLength(this._length+n);for(let e=r-1;e>=t;e--)this.setBit(e+n,this.getBit(e));for(let r=t;r<t+n;r++)this.setBit(r,e)}removeAt(t,n=1){if(n<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-n,"pos"),this.contains(!0))for(let e=t;e<this._length-n;e++)this.setBit(e,this.getBit(e+n));this.setLength(this._length-n)}removeByMask(t,n=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!n)),this.setAll(!n);else{let e=0;for(let r=-1;-1!=(r=t.findNext(r,!n));)this.setFast(e++,this.getBit(r));this._length=e,this._version++}return this}getBit(t){return!!(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,n,e=!0){this.setFast(t,n),this._version++}setFast(t,n){n?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let n=0;for(;n<t-1;n++)for(let t=this._data[n];0!=t;t>>>=8)this._selectedCount+=$._onBitCount[255&t];let e=this._data[n];const r=31&this._length;for(0!=r&&(e&=~(4294967295<<r));0!=e;e>>>=8)this._selectedCount+=$._onBitCount[255&e];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let n=0;if(this.trueCount()==this._length)for(let e=0;e<this._length;e++)n+=t(e)?1:0;else for(let e=-1;-1!=(e=this.findNext(e,!0));)n+=t(e)?1:0;return n}andWithCountBits(t,n){if(0==this._length)return 0;let e=0;const r=this.lengthInInts;let o=0;for(;o<r-1;o++)for(let n=this._data[o]&t._data[o];0!=n;n>>>=8)e+=$._onBitCount[255&n];let i=this._data[o]&t._data[o];const s=31&this._length;for(0!=s&&(i&=~(4294967295<<s));0!=i;i>>>=8)e+=$._onBitCount[255&i];return n?e:this._length-e}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,n=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let e=31&(t=t<0?0:t+1);const r=this.lengthInInts;for(let o=Math.floor(t/32);o<r;o++){let r=n?this._data[o]:~this._data[o];if(0!=e)r&=4294967295<<e&4294967295,e=0;else if(!n&&-4294967296==r)continue;for(let n=0;0!=r;n+=8,r>>>=8){const e=$._firstOnBit[255&r];if(e>=0)return(t=e+32*o+n)>=this._length?-1:t}}return-1}findPrev(t,n=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let e=1+(t=t<0?this._length-1:t-1)&31;for(let r=Math.floor(t/32);r>=0;r--){let t=n?this._data[r]:~this._data[r];0!=e&&(t&=~(4294967295<<e),e=0);for(let n=24;0!=t;n-=8,t<<=8){const e=$._lastOnBit[t>>>24];if(e>=0)return e+32*r+n}}return-1}}function Y(t={}){const n=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,n)=>t===n?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const n=t.alphabetIndexes,e=t.scoringMatrix,r=Math.min(...Object.keys(n).map((t=>t.charCodeAt(0))))+1,o=new Float32Array((e.length+r)*(e.length+r));return Object.entries(n).forEach((([t,r])=>{const i=e[r];Object.entries(n).forEach((([n,r])=>{o[t.charCodeAt(0)*e.length+n.charCodeAt(0)]=i[r]}))})),(t,n)=>1-o[t.charCodeAt(0)*e.length+n.charCodeAt(0)]}(),e=t?.threshold??0;return(t,r)=>{let o=0;const i=t.length,s=r.length,a=Math.ceil(Math.max(i,s)*(1-e));i!==s&&(o=Math.abs(i-s));let u=0;for(let e=0;e<Math.min(i,s);e++)if(t[e]!==r[e]&&(u+=n(t[e],r[e]),u>a))return 1;return u+=o,u/=Math.max(i,s),u}}$._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),$._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),$._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]);const K={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var j;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(j||(j={}));const z={[j.HAMMING]:Y,[j.LEVENSHTEIN]:function(){return(t,n)=>W(t,n)/Math.max(t.length,n.length)},[j.NEEDLEMANN_WUNSCH]:function(t){const n=new Uint16Array(65536),{gapOpen:e,gapExtend:r,scoringMatrix:o,alphabetIndexes:i}={...K,...t};Object.entries(i).forEach((([t,e])=>n[t.charCodeAt(0)]=e));const s=[new Float32Array(1e4),new Float32Array(1e4)];return(t,i)=>{const a=new Array(t.length+1).fill(!1),u=new Array(t.length+1).fill(!1);let c=0,l=1;for(let n=1;n<t.length+1;n++)s[0][n]=-r-(n-1)*r,s[1][n]=0;s[0][0]=0;for(let f=1;f<i.length+1;f++){s[l][0]=-r-(f-1)*r;for(let h=1;h<t.length+1;h++){const m=s[c][h-1]+o[n[t.charCodeAt(h-1)]][n[i.charCodeAt(f-1)]],d=s[c][h]-(a[h]||1===f||f===i.length?r:e),p=s[l][h-1]-(u[h-1]||1===h||h===t.length?r:e);s[l][h]=Math.max(m,p,d),s[l][h]===m?(a[h]=!1,u[h]=!1):s[l][h]===p?(a[h]=!1,u[h]=!0):(a[h]=!0,u[h]=!1)}c=l,l=(l+1)%2}const f=Math.min(t.length,i.length);return(f-s[c][t.length])/f}},[j.MONOMER_CHEMICAL_DISTANCE]:Y};function X(t,n){const e=t.trueCount()+n.trueCount();if(0==e)return 1;const r=t.andWithCountBits(n,!0);return r/(e-r)}function Q(t){return t<=0?3402823e32:1/t-1}_.Tanimoto,_.Dice,_.Asymmetric,_.BraunBlanquet,_.Cosine,_.Kulczynski,_.McConnaughey,_.RogotGoldberg,_.Russel,_.Sokal,_.Hamming,_.Euclidean,_.Tanimoto,_.Dice,_.Asymmetric,_.BraunBlanquet,_.Cosine,_.Kulczynski,_.McConnaughey,_.RogotGoldberg,_.Russel,_.Sokal,_.Hamming,_.Euclidean,_.Tanimoto,_.Dice,_.Cosine,_.Tanimoto,_.Asymmetric,_.Cosine,_.Sokal,j.HAMMING,j.LEVENSHTEIN,j.MONOMER_CHEMICAL_DISTANCE,j.NEEDLEMANN_WUNSCH;const Z={[C.Euclidean]:function(t,n){let e=0;for(let r=0;r<t.length;r++)e+=Math.pow(t[r]-n[r],2);return Math.sqrt(e)},[C.Manhattan]:function(t,n){let e=0;for(let r=0;r<t.length;r++)e+=Math.abs(t[r]-n[r]);return e},[C.Cosine]:function(t,n){let e=0,r=0,o=0;for(let i=0;i<t.length;i++)e+=t[i]*n[i],r+=t[i]*t[i],o+=n[i]*n[i];return(1-e/(Math.sqrt(r)*Math.sqrt(o)))/2}},J={[A.Levenshtein]:W,[A.JaroWinkler]:q.Vb,[A.Manhattan]:function(t,n){if(t.length!==n.length)return 1;{let e=0;for(let r=1;r<t.length;r++)e+=t[r]==n[r]?0:1;return e/t.length}},[A.Onehot]:function(t,n){return t===n?0:1}},tt={[_.Tanimoto]:function(t,n){return 1-X(t,n)},[_.Dice]:function(t,n){return 1-function(t,n){const e=t.trueCount()+n.trueCount();return 0==e?0:2*t.andWithCountBits(n,!0)/e}(t,n)},[_.Asymmetric]:function(t,n){return 1-function(t,n){const e=Math.min(t.trueCount(),n.trueCount());return 0==e?0:t.andWithCountBits(n,!0)/e}(t,n)},[_.BraunBlanquet]:function(t,n){return Q(function(t,n){const e=Math.max(t.trueCount(),n.trueCount());return 0==e?0:t.andWithCountBits(n,!0)/e}(t,n))},[_.Cosine]:function(t,n){return 1-function(t,n){const e=t.trueCount()*n.trueCount();return 0==e?0:t.andWithCountBits(n,!0)/Math.sqrt(e)}(t,n)},[_.Kulczynski]:function(t,n){return Q(function(t,n){const e=t.trueCount()+n.trueCount(),r=t.trueCount()*n.trueCount();return 0==r?0:t.andWithCountBits(n,!0)*e/(2*r)}(t,n))},[_.McConnaughey]:function(t,n){return Q(function(t,n){const e=t.trueCount()+n.trueCount(),r=t.trueCount()*n.trueCount();return 0==r?0:(t.andWithCountBits(n,!0)*e-r)/r}(t,n))},[_.RogotGoldberg]:function(t,n){return Q(function(t,n){const e=t.andWithCountBits(n,!0),r=t.countBits(!0)+n.countBits(!0),o=t.length,i=o-r+e;return e==o||i==o?1:e/r+i/(2*o-r)}(t,n))},[_.Russel]:function(t,n){return Q(function(t,n){return 0==t.length?0:t.andWithCountBits(n,!0)/t.length}(t,n))},[_.Sokal]:function(t,n){return 1-function(t,n){const e=t.trueCount()+n.trueCount(),r=t.andWithCountBits(n,!0);return r/(2*e-3*r)}(t,n)},[_.Hamming]:function(t,n){return t.trueCount()+n.trueCount()-2*t.andWithCountBits(n,!0)},[_.Euclidean]:function(t,n){return Math.sqrt(t.trueCount()+n.trueCount()-2*t.andWithCountBits(n,!0))}},nt={[N.TanimotoIntArray]:function(t,n){return Q(X(new $(t,32*t.length),new $(n,32*n.length)))}},et={[b.Difference]:function(t){if(t&&null!=t.range&&t.range>0){const n=t.range;return(t,e)=>Math.abs(t-e)/n}return(t,n)=>Math.abs(t-n)}},rt={[S.CommonItems]:function(t){const n=function(t){const n=t?.mostCommon??new Set;return(t,e)=>{const r=t.length,o=e.length;let i=0,s=0,a=0;for(;s<r&&a<o;)t[s]===e[a]?(n?.has(t[s])||++i,++s,++a):t[s]<e[a]?++s:++a;return i}}(t);return(t,e)=>0===e.length||0===t.length?1e4:Math.min(t.length,e.length)/(n(t,e)+1e-4)}},ot={[x.Vector]:{[C.Euclidean]:Z[C.Euclidean],[C.Manhattan]:Z[C.Manhattan],[C.Cosine]:Z[C.Cosine]},[x.String]:{[A.Levenshtein]:J[A.Levenshtein],[A.JaroWinkler]:J[A.JaroWinkler],[A.Manhattan]:J[A.Manhattan],[A.Onehot]:J[A.Onehot]},[x.BitArray]:{[_.Tanimoto]:tt[_.Tanimoto],[_.Dice]:tt[_.Dice],[_.Asymmetric]:tt[_.Asymmetric],[_.BraunBlanquet]:tt[_.BraunBlanquet],[_.Cosine]:tt[_.Cosine],[_.Kulczynski]:tt[_.Kulczynski],[_.McConnaughey]:tt[_.McConnaughey],[_.RogotGoldberg]:tt[_.RogotGoldberg],[_.Russel]:tt[_.Russel],[_.Sokal]:tt[_.Sokal]},[x.MacroMolecule]:{[j.HAMMING]:z[j.HAMMING],[j.LEVENSHTEIN]:z[j.LEVENSHTEIN],[j.NEEDLEMANN_WUNSCH]:z[j.NEEDLEMANN_WUNSCH],[j.MONOMER_CHEMICAL_DISTANCE]:z[j.MONOMER_CHEMICAL_DISTANCE]},[x.Number]:{[b.Difference]:et[b.Difference]},[x.IntArray]:{[N.TanimotoIntArray]:nt[N.TanimotoIntArray]},[x.NumberArray]:{[S.CommonItems]:rt[S.CommonItems]}};Object.keys(ot).reduce(((t,n)=>{for(const e of Object.keys(ot[n]))t[e]=n;return t}),{});const it=ui,st="bypassLargeDataWarning";var at,ut,ct,lt,ft,ht,mt;e(5540),(ut=at||(at={})).EUCLIDEAN="EUCLIDEAN",ut.MANHATTAN="MANHATTAN",at.EUCLIDEAN,at.MANHATTAN,(lt=ct||(ct={})).HAMMING="Hamming",lt.EUCLIDEAN="Euclidean",lt.VECTOR_COSINE="Vector Cosine",lt.MANHATTAN="Manhattan",lt.TANIMOTO="Tanimoto",lt.LEVENSTEIN="Levenshtein",lt.NEEDLEMAN_WUNSCH="Needlemann-Wunsch",lt.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance",lt.SOKAL="Sokal",lt.COSINE="Cosine",lt.ASYMMETRIC="Asymmetric",lt.Difference="Difference",lt.OneHot="One-Hot",ct.HAMMING,ct.EUCLIDEAN,ct.MANHATTAN,ct.VECTOR_COSINE,ct.TANIMOTO,ct.LEVENSTEIN,ct.NEEDLEMAN_WUNSCH,ct.MONOMER_CHEMICAL_DISTANCE,ct.SOKAL,ct.COSINE,ct.ASYMMETRIC,ct.Difference,ct.OneHot,ct.HAMMING,ct.EUCLIDEAN,ct.MANHATTAN,ct.TANIMOTO,ct.SOKAL,ct.COSINE,ct.ASYMMETRIC,ct.LEVENSTEIN,ct.NEEDLEMAN_WUNSCH,ct.MONOMER_CHEMICAL_DISTANCE,ct.Difference,ct.OneHot,ct.VECTOR_COSINE,new Set([ct.HAMMING,ct.LEVENSTEIN,ct.NEEDLEMAN_WUNSCH,ct.MONOMER_CHEMICAL_DISTANCE,ct.OneHot]),new Set([ct.HAMMING,ct.EUCLIDEAN,ct.MANHATTAN,ct.MONOMER_CHEMICAL_DISTANCE,ct.LEVENSTEIN,ct.NEEDLEMAN_WUNSCH,ct.TANIMOTO,ct.COSINE,ct.VECTOR_COSINE,ct.SOKAL,ct.ASYMMETRIC,ct.OneHot,ct.Difference]),new Set([ct.EUCLIDEAN,ct.MANHATTAN,ct.OneHot,ct.Difference,ct.VECTOR_COSINE]),new Set([ct.EUCLIDEAN,ct.MANHATTAN,ct.Difference,ct.VECTOR_COSINE]),new Set([ct.EUCLIDEAN,ct.MANHATTAN,ct.Difference]),new Set([ct.TANIMOTO,ct.COSINE,ct.SOKAL,ct.ASYMMETRIC]),function(t){t.ADD="ADD",t.SUB="SUB",t.MULT="MULT"}(ft||(ft={})),function(t){t.SQUARE="SQUARE",t.INVERSE="INVERSE",t.TRANSPOSE="TRANSPOSE",t.NORM="NORM",t.COLUMN_NORM="COLUMN_NORM"}(ht||(ht={})),function(t){t.SCALARMULT="SCALARMULT",t.SCALARADD="SCALARADD",t.SCALARPOW="SCALARPOW"}(mt||(mt={})),Object.prototype.toString;const dt="dimensionality-reducer-terminate-event";var pt,gt;(gt=pt||(pt={})).EUCLIDEAN="EUCLIDEAN",gt.MANHATTAN="MANHATTAN";const yt=t=>null==t;function vt(t,n){return`${n} (${t.length>4?`${t.length} columns`:t.map((t=>t.name)).join(", ")})`}async function wt(r,o,i,s,a,u,c,l=!0,f=!1,h={preprocessingFuncArgs:[]},m={},d=null,p={},g){const y={showXAxis:!1,showYAxis:!1,showXSelector:!1,showYSelector:!1};if(o.length!==s.length||o.length!==u.length||o.length!==a.length||o.length!==h.preprocessingFuncArgs.length)throw new Error("columns, metrics and preprocessing functions, weights and function argumentsmust have the same length");const v=l?m.tableView??n.shell.tableView(r.name)??n.shell.addTableView(r):null,w=async()=>{const w=t.TaskBarProgressIndicator.create(`Initializing ${m.scatterPlotName??"dimensionality reduction"} ...`);let E;try{const A=function(t){const n=["Embed_X","Embed_Y"],e=t.columns.names().filter((t=>t.includes(n[0]))).length+1;return n.map((t=>`${t}_${e}`))}(r);function C(n,e,s){let a=null,u=null;r.columns.names().includes(A[0])?(a=r.columns.byName(A[0]),u=r.columns.byName(A[1])):(a=r.columns.add(t.Column.float(A[0],r.rowCount)),u=r.columns.add(t.Column.float(A[1],r.rowCount)),l&&!E&&(E=v.scatterPlot({...y,x:A[0],y:A[1],title:m.scatterPlotName??vt(o,i)}))),m["show-scatterplot-progress"]&&(E?.root&&it.setUpdateIndicator(E.root,!1),a.init((t=>s[0]?s[0][t]:void 0)),u.init((t=>s[1]?s[1][t]:void 0)));const c=n/e*100;w.update(c,`Running ${m.scatterPlotName??"dimensionality reduction"}... ${c.toFixed(0)}%`)}async function _(){r.columns.add(t.Column.float(A[0],r.rowCount)),r.columns.add(t.Column.float(A[1],r.rowCount));let f=null;l&&(E=v.scatterPlot({...y,x:A[0],y:A[1],title:m.scatterPlotName??vt(o,i)}),it.setUpdateIndicator(E.root,!0));const d=n.events.onViewerClosed.subscribe((t=>{const e=t.args.viewer;e?.getOptions()?.look?.title&&E?.getOptions()?.look?.title&&e?.getOptions()?.look?.title===E?.getOptions()?.look?.title&&(n.events.fireCustomEvent(dt,{}),d.unsubscribe(),f?.(),w.close())})),p=new Promise((async(t,l)=>{try{f=t;const l=[];let d=s,p=a,y=c;if(g&&o.every((t=>t.isNumerical))){const t=o.map((t=>t.toList())),n=new Array(r.rowCount).fill(0).map(((t,n)=>new Float32Array(o.length)));for(let e=0;e<o.length;++e)for(let o=0;o<r.rowCount;++o)n[o][e]=t[e][o];h.distanceFnArgs=[{}],l.push({entries:n,options:{}}),d=[g],p=[1],y="MANHATTAN"}else for(let t=0;t<u.length;++t){const n=u[t];if(h.distanceFnArgs||(h.distanceFnArgs=[]),n){const e=n.inputs[0].name,r=n.inputs[1].name,{entries:i,options:a}=await n.apply({[e]:o[t],[r]:s[t],...h.preprocessingFuncArgs[t]??{}});l.push({entries:i,options:a}),h.distanceFnArgs.push(a)}else{const n=o[t].toList(),e={};l.push({entries:n,options:e}),h.distanceFnArgs.push(e)}}t(await async function(t,r,o,i,s,a,u){let c=await async function(t,r,o,i,s,a,u){if(!a.distanceFnArgs)throw new Error("options.distanceFnArgs must be defined");if(t.length!==r.length||t.length!==a.distanceFnArgs.length||t.length!==i.length)throw new Error("data, metrics and options and weights must have the same length");return new Promise((function(c,l){const f=new Worker(new URL(e.p+e.u(234),e.b));f.postMessage({columnsData:t,distanceMetrics:r,method:o,options:a,weights:i,aggregationMethod:s});const h=n.events.onCustomEvent(dt).subscribe((()=>{try{f?.terminate()}finally{h.unsubscribe()}}));f.onmessage=({data:{error:t,embedding:n,epochNum:e,epochsLength:r}})=>{yt(e)||yt(r)?(h.unsubscribe(),t?l(t):c(n),setTimeout((()=>f.terminate()),100)):u&&u(e,r,n)}}))}(t,o,r,i,s,a,u);return c=c.map((t=>function(t){const n=t.length;let e=0,r=0;for(let o=0;o<n;++o)e+=t[o],r+=Math.pow(t[o],2);const o=e/n,i=1/Math.sqrt(r/n-Math.pow(o,2));for(let e=0;e<n;++e)t[e]=(t[e]-o)*i;return t}(t))),c}(l.map((t=>t.entries)),i,d,p,c,h,m[st]?void 0:C))}catch(t){l(t)}})),_=await p;return w.close(),d.unsubscribe(),_}const N=await _();if(f&&N){const x=t.TaskBarProgressIndicator.create("Clustering embeddings ...");try{const b=await function(t,n,r,o){return i=this,s=void 0,u=function*(){return new Promise((function(i,s){const a=new Worker(new URL(e.p+e.u(682),e.b));a.postMessage({embedX:t,embedY:n,minPts:o,epsilon:r}),a.onmessage=({data:{error:t,clusters:n}})=>{a.terminate(),t?s(t):i(n)}}))},new((a=void 0)||(a=Promise))((function(t,n){function e(t){try{o(u.next(t))}catch(t){n(t)}}function r(t){try{o(u.throw(t))}catch(t){n(t)}}function o(n){var o;n.done?t(n.value):(o=n.value,o instanceof a?o:new a((function(t){t(o)}))).then(e,r)}o((u=u.apply(i,s||[])).next())}));var i,s,a,u}(N[0],N[1],h.dbScanEpsilon??.01,h.dbScanMinPts??4),S=r.columns.getUnusedName("Cluster (DBSCAN)");r.columns.addNewString(S).init((t=>b[t].toString())),E&&(E.props.colorColumnName=S)}catch(T){n.shell.error("Clustering embeddings failed"),console.error(T)}finally{x.close()}}if(N){const M=r.columns.byName(A[0]),I=r.columns.byName(A[1]);if(M.init((t=>N[0][t])),I.init((t=>N[1][t])),d)try{const O=d.inputs[0].name,R=d.inputs[1].name;await d.prepare({[O]:M,[R]:I,...p}).call(!0)}catch(L){n.shell.error("Post-processing failed"),console.error(L)}if(E)return it.setUpdateIndicator(E.root,!1),E.helpUrl="/help/compute/sequence-space",E}}catch(P){n.shell.error("Dimensionality reduction failed"),console.error(P),w.close(),E&&it.setUpdateIndicator(E.root,!1)}};return new Promise((async(t,n)=>{try{if(m.fastRowCount&&r.rowCount>m.fastRowCount&&!m[st])it.dialog().add(it.divText("Analysis might take several minutes. Do you want to continue?")).onOK((async()=>{try{const n=await w();t(n)}catch(t){n(t)}})).onCancel((()=>t(void 0))).show();else{const n=await w();t(n)}}catch(t){n(t)}}))}var Et=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const At={SUBJ:"subj",STUDY:"study",SITE:"site",AGE:"age",SEX:"sex",RACE:"race",DISEASE:"disease",WEIGHT:"weight",HEIGHT:"height"};function Ct(t,e,r){return Et(this,void 0,void 0,(function*(){const o=n.data.demo.demog(100);n.shell.addTableView(o),R(!!(yield wt(o,t.map((t=>o.col(t))),e,r,t.map((()=>1)),t.map((()=>{})),"EUCLIDEAN",!0,!0,{preprocessingFuncArgs:t.map((()=>({})))})),!0,"No scatterplot returned");const i=o.columns.names().filter((t=>t.toLowerCase().startsWith("embed")));R(i.length,2,"Wrong number of embeddings added"),R(!!o.columns.names().find((t=>t.toLowerCase().startsWith("cluster"))),!0,"No cluster column added");for(const t of i){const n=o.col(t);R(new Array(n.length).fill(null).every(((t,e)=>!n.isNone(e)&&!isNaN(n.get(e)))),!0,"Embedding column has null-ish values")}yield new Promise((t=>setTimeout(t,500)))}))}L("Dimensionality reduction: UMAP",(()=>{O("Numeric column",(()=>Et(void 0,void 0,void 0,(function*(){yield Ct([At.AGE],E.UMAP,[b.Difference])}))),{timeout:3e4}),O("String column",(()=>Et(void 0,void 0,void 0,(function*(){yield Ct([At.SEX],E.UMAP,[A.Onehot])}))),{timeout:3e4}),O("Numeric and string columns",(()=>Et(void 0,void 0,void 0,(function*(){yield Ct([At.SEX,At.AGE],E.UMAP,[A.Onehot,b.Difference])})))),O("All demog columns",(()=>Et(void 0,void 0,void 0,(function*(){const e=n.data.demo.demog(10).columns.toList().filter((t=>Object.values(At).includes(t.name))),r=e.map((n=>n.type===t.COLUMN_TYPE.STRING?A.Onehot:b.Difference)),o=e.map((t=>t.name));yield Ct(o,E.UMAP,r)}))))})),L("Dimensionality reduction: T-SNE",(()=>{O("Numeric column",(()=>Et(void 0,void 0,void 0,(function*(){yield Ct([At.AGE],E.T_SNE,[b.Difference])}))),{timeout:3e4}),O("String column",(()=>Et(void 0,void 0,void 0,(function*(){yield Ct([At.SEX],E.T_SNE,[A.Onehot])}))),{timeout:3e4}),O("Numeric and string columns",(()=>Et(void 0,void 0,void 0,(function*(){yield Ct([At.SEX,At.AGE],E.T_SNE,[A.Onehot,b.Difference])})))),O("All demog columns",(()=>Et(void 0,void 0,void 0,(function*(){const e=n.data.demo.demog(10).columns.toList().filter((t=>Object.values(At).includes(t.name))),r=e.map((n=>n.type===t.COLUMN_TYPE.STRING?A.Onehot:b.Difference)),o=e.map((t=>t.name));yield Ct(o,E.T_SNE,r)}))))}));const _t={i32:"HEAP32",f32:"HEAPF32"},Nt={i32:Int32Array,f32:Float32Array},xt={i32:2,f32:2},bt={i32:DG.Column.fromInt32Array,f32:DG.Column.fromFloat32Array};class St{constructor(t){this.data=t}complementArrOfParams(t){t.push(this.data)}complementArrOfTypes(t){t.push("number")}allocateMemoryForBuffer(t){}isMemoryForBufferAllocated(){return!0}putDataToBuffer(t){}getDataFromBuffer(t){}freeBuffer(t){}}class Tt extends St{constructor(t,n,e=!1){super(t),this.type=n,this.toUpdate=e,this.buf=0,this.numOfRows=t.length}complementArrOfParams(t){t.push(this.buf),t.push(this.numOfRows)}complementArrOfTypes(t){t.push("number"),t.push("number")}allocateMemoryForBuffer(t){this.buf=t._malloc(this.numOfRows*Nt[this.type].BYTES_PER_ELEMENT)}isMemoryForBufferAllocated(){return 0!=this.buf}putDataToBuffer(t){if(this.isMemoryForBufferAllocated()){const n=this.type,e=xt[n],r=t[_t[n]];let o=null;const i=this.data;o="int"==i.type&&"i32"==n||"double"==i.type&&"f32"==n?i.getRawData():new Nt[n](i.getRawData()),o&&r.set(o,this.buf>>e)}}getDataFromBuffer(t){if(this.toUpdate&&this.isMemoryForBufferAllocated()){const n=this.type,e=t[_t[n]],r=this.buf,o=Nt[n].BYTES_PER_ELEMENT,i=this.data.getRawData();for(let t=0;t<this.numOfRows;t++)i[t]=e[r/o+t]}}freeBuffer(t){this.isMemoryForBufferAllocated()&&(t._free(this.buf),this.buf=0)}}class Mt extends Tt{constructor(t,n){super([],t,!0),this.numOfRows=n}putDataToBuffer(t){}getDataFromBuffer(t){if(this.toUpdate&&this.isMemoryForBufferAllocated()){const n=this.type,e=t[_t[n]],r=this.buf,o=bt[n],i=new Nt[n](this.numOfRows);for(let t=0;t<i.length;t++)i[t]=e[r/i.BYTES_PER_ELEMENT+t];this.data=o("name",i)}}}class It extends St{constructor(t,n,e=!1){super(t),this.type=n,this.toUpdate=e,this.buf=0,this.numOfColumns=t.length,this.numOfRows=t[0].length}complementArrOfParams(t){t.push(this.buf),t.push(this.numOfRows),t.push(this.numOfColumns)}complementArrOfTypes(t){t.push("number"),t.push("number"),t.push("number")}allocateMemoryForBuffer(t){this.buf=t._malloc(this.numOfRows*this.numOfColumns*Nt[this.type].BYTES_PER_ELEMENT)}isMemoryForBufferAllocated(){return 0!=this.buf}putDataToBuffer(t){if(this.isMemoryForBufferAllocated()){const n=this.type,e=xt[n],r=t[_t[n]],o=Nt[n].BYTES_PER_ELEMENT;for(let t=0;t<this.numOfColumns;t++){let i=null;const s=this.data[t];i="int"==s.type&&"i32"==n||"double"==s.type&&"f32"==n?s.getRawData():new Nt[n](s.getRawData()),null!=i&&r.set(i,this.buf+t*this.numOfRows*o>>e)}}}getDataFromBuffer(t){if(this.toUpdate&&this.isMemoryForBufferAllocated()){const n=this.type,e=t[_t[n]],r=this.numOfRows,o=this.numOfColumns,i=new Nt[n](e.buffer,this.buf,r*o);for(let t=0;t<o;t++){const n=this.data[t].getRawData();for(let e=0;e<r;e++)n[e]=i[e+t*r]}}}freeBuffer(t){this.isMemoryForBufferAllocated()&&(t._free(this.buf),this.buf=0)}}class Ot extends It{constructor(t,n,e){super([[]],t,!0),this.data=[],this.numOfColumns=e,this.numOfRows=n}putDataToBuffer(t){}getDataFromBuffer(t){if(this.toUpdate&&this.isMemoryForBufferAllocated()){const n=this.type,e=t[_t[n]],r=this.numOfRows,o=this.numOfColumns,i=Nt[n].BYTES_PER_ELEMENT,s=bt[n],a=this.buf;for(let t=0;t<o;t++){const o=new Nt[n](r);for(let n=0;n<r;n++)o[n]=e[a/i+n+t*r];this.data.push(s((t+1).toString(),o))}}}}const Rt={intColumn:t=>new Tt(t,"i32"),newIntColumn:t=>new Mt("i32",t),intColumns:t=>new It(t.toList(),"i32"),newIntColumns:(t,n)=>new Ot("i32",t,n),floatColumn:t=>new Tt(t,"f32"),newFloatColumn:t=>new Mt("f32",t),floatColumns:t=>new It(t.toList(),"f32"),newFloatColumns:(t,n)=>new Ot("f32",t,n),int:t=>new St(t),num:t=>new St(t)},Lt={tableFromColumns:t=>DG.DataFrame.fromColumns(t.data),num:t=>t,int:t=>t,double:t=>t,column:t=>t.data};function Pt(t,n,e){const r=t[n],o=r.arguments,i=[];let s=0;for(const t in o){const n=o[t];if("_callResult"!=t){switch(n.type){case"floatColumns":case"int":case"num":case"floatColumn":case"intColumn":case"intColumns":n.data=Rt[n.type](e[s]),s++;break;case"newFloatColumns":case"newIntColumns":const t=o[n.numOfRows.ref].data[n.numOfRows.value],r=o[n.numOfColumns.ref].data[n.numOfColumns.value];n.data=Rt[n.type](t,r);break;case"newFloatColumn":case"newIntColumn":const i=o[n.numOfRows.ref].data[n.numOfRows.value];n.data=Rt[n.type](i)}i.push(o[t].data)}}const a=function(t,n,e,r){let o;for(const n of r)n.allocateMemoryForBuffer(t);let i=!0;for(const t of r)i&=t.isMemoryForBufferAllocated();if(i){const e=[],i=[];for(const n of r)n.complementArrOfParams(e),n.complementArrOfTypes(i),n.putDataToBuffer(t);const s="number";o=t.ccall(n,s,i,e);for(const n of r)n.getDataFromBuffer(t)}for(const n of r)n.freeBuffer(t);if(null!=o)return o}(t,n,0,i);o._callResult=Rt.num(a);const u=r.output;if("objects"!=u.type)return Lt[u.type](o[u.source].data);const c=[];for(const t of u.source)c.push(o[t].data.data);return c}const Dt="num",Ft="floatColumn",Ut="intColumn",Bt="floatColumns",kt="newFloatColumns",Ht="intColumns",Gt="newIntColumns",Vt="newFloatColumn",Wt="newIntColumn",qt="numOfRows",$t="numOfColumns",Yt="ref",Kt="value",jt="int",zt="double",Xt={intColumn:Int32Array,floatColumn:Float32Array,floatColumns:Float32Array,newFloatColumns:Float32Array,intColumns:Int32Array,newIntColumns:Int32Array,newFloatColumn:Float32Array,newIntColumn:Int32Array};function Qt(t,n){let e,r=[],o=0;for(const i in t){const s=t[i],a=s.type;if("_callResult"!==i){switch(a){case Dt:case jt:case zt:s.data=n[o],o++;break;case Ut:case Ft:let r;const i=n[o],u=i.length;r=i.type===jt&&a===Ut||i.type===zt&&a===Ft?i.getRawData().slice(0,u):new Xt[a](i.getRawData().slice(0,u)),s.data={array:r,numOfRows:u},o++;break;case Wt:case Vt:let c=0;e=s[qt][Yt],c=t[e].type===Dt?t[e].data:t[e].data[s[qt][Kt]],s.data={numOfRows:c},o++;break;case Ht:case Bt:let l=[];const f=n[o].byIndex(0).length;for(const t of n[o].toList())t.type===jt&&a===Ut||t.type===zt&&a===Ft?l.push(t.getRawData().slice(0,f)):l.push(new Xt[a](t.getRawData().slice(0,f)));s.data={arrays:l,numOfRows:f,numOfColumns:l.length},o++;break;case Gt:case kt:let h=0,m=0;e=s[qt][Yt],h=t[e].type===Dt?t[e].data:t[e].data[s[qt][Kt]],e=s[$t][Yt],m=t[e].type===Dt?t[e].data:t[e].data[s[$t][Kt]],s.data={numOfRows:h,numOfColumns:m},o++;break;default:return}r.push(s)}}return r}function Zt(t,n){t.arguments._callResult=n.callResult,function(t,n){const e={newFloatColumns:DG.Column.fromFloat32Array,newIntColumns:DG.Column.fromInt32Array,newFloatColumn:DG.Column.fromFloat32Array,newIntColumn:DG.Column.fromInt32Array};let r=0;for(const o in t){const i=t[o];switch(i.type){case Dt:case jt:case zt:case Ut:case Ft:case Bt:case Ht:break;case Vt:case Wt:let t;null==i.name?t=(0).toString():a=i.name,i.column=e[i.type](t,n[r].array);break;case Gt:case kt:let o=[],s=n[r].arrays.length,a=[];if(null==i.names)for(let t=1;t<=s;t++)a.push(t.toString());else a=i.names;for(let t=0;t<s;t++)o.push(e[i.type](a[t],n[r].arrays[t]));i.columns=o}r++}}(t.arguments,n.args);let e=function(t){let n=t.output;const e={newFloatColumns:"columns",newIntColumns:"columns",newFloatColumn:"column",newIntColumn:"column"};switch(n.type){case Dt:case jt:case zt:return t.arguments[n.source];case"column":return t.arguments[n.source].column;case"tableFromColumns":return DG.DataFrame.fromColumns(t.arguments[n.source].columns);case"objects":let r=[];for(let o of n.source){let n=t.arguments[o];r.push(n[e[n.type]])}return r}}(t);return function(t){for(const n in t){const e=t[n];switch(e.type){case Dt:case jt:case zt:case Ut:case Ft:case Ht:case Bt:break;case Wt:case Vt:e.column=null;break;case Gt:case kt:e.columns=null}}}(t.arguments),e}async function Jt(t,n,r){return new Promise(((t,o)=>{const i=new Worker(new URL(e.p+e.u(128),e.b));i.postMessage(Qt(EDA.principalComponentAnalysisNipals.arguments,[n,r])),i.onmessage=function(n){i.terminate(),t(Zt(EDA.principalComponentAnalysisNipals,n.data))}}))}const tn=1e-6;function nn(n){if(n.type!=t.COLUMN_TYPE.FLOAT&&n.type!=t.COLUMN_TYPE.INT)throw new Error("unsupported column type: "+n.type)}function en(t){if(t.stats.missingValueCount>0)throw new Error(`The column '${t.name}' has missing values.`)}function rn(t,n){if(function(t,n){if(n<1)throw new Error("components must be positive.");if(n>t.length)throw new Error("components must not be greater than features count.");for(const n of t)nn(n),en(n)}(t,n),t.length*t.byIndex(0).length>1e8)throw new Error("dataframe is too big.")}function on(t,n,e){return n?e?function(t){const n=t.rowCount;for(const e of t.columns)if(e.isNumerical){const t=e.stats.stdev,r=e.stats.avg,o=e.getRawData();if(t>0)for(let e=0;e<n;++e)o[e]=(o[e]-r)/t;else for(let t=0;t<n;++t)o[t]-=r}return t}(t):function(t){const n=t.rowCount;for(const e of t.columns)if(e.isNumerical){const t=e.stats.avg;if(Math.abs(t)>tn){const r=e.getRawData();for(let e=0;e<n;++e)r[e]-=t}}return t}(t):e?function(t){const n=t.rowCount;for(const e of t.columns)if(e.isNumerical){const t=e.stats.stdev;if(Math.abs(t-1)>tn&&t>0){const r=e.getRawData();for(let e=0;e<n;++e)r[e]/=t}}return t}(t):t}var sn,an,un,cn,ln,fn,hn,mn,dn,pn,gn,yn,vn,wn,En;function An(n,r,o,i,s){return a=this,u=void 0,l=function*(){rn(r,o);const a=n.rowCount,u=function(n){const e=[];for(const t of n)t.stats.stdev>0&&t.stats.missingValueCount<1&&e.push(t);return t.DataFrame.fromColumns(e)}(r),c=u.columns.length;if(0===c){const n=[];for(let e=0;e<o;++e)n.push(t.Column.fromFloat32Array(`${e+1}`,new Float32Array(a).fill(0)));return t.DataFrame.fromColumns(n)}const l=c<o?o-c:0,f=Math.min(o,c);let h;if(c>900)h=yield Jt(0,r,f);else{const t=yield async function(t,n,r){return new Promise(((t,o)=>{const i=new Worker(new URL(e.p+e.u(860),e.b));i.postMessage(Qt(EDA.principalComponentAnalysis.arguments,[n,r,1,0])),i.onmessage=function(n){i.terminate(),0===n.data.callResult?t(Zt(EDA.principalComponentAnalysis,n.data)):t(-1)}}))}(0,r,f);h=-1!==t?on(t,i,s):yield Jt(0,r,f)}if(void 0===h)throw new Error("Failed to compute PCA");h=on(h,i,s);const m=h.columns,d=m.length;for(let n=0;n<l;++n)m.add(t.Column.fromFloat32Array(`${d+n+1}`,new Float32Array(a).fill(0)));return h},new((c=void 0)||(c=Promise))((function(t,n){function e(t){try{o(l.next(t))}catch(t){n(t)}}function r(t){try{o(l.throw(t))}catch(t){n(t)}}function o(n){var o;n.done?t(n.value):(o=n.value,o instanceof c?o:new c((function(t){t(o)}))).then(e,r)}o((l=l.apply(a,u||[])).next())}));var a,u,c,l}(En=sn||(sn={}))[En.COMPUTE_COMPONENTS=0]="COMPUTE_COMPONENTS",En[En.PERFORM_MVA=1]="PERFORM_MVA",En[En.DEMO=2]="DEMO",(wn=an||(an={})).NO_DF="No dataframe is opened",wn.NO_COLS="No numeric columns without missing values",wn.ONE_COL="No columns to be used as features (just one numeric columns without missing values)",wn.EMPTY_DF="Dataframe is empty",(vn=un||(un={})).PREDICT="Predict",vn.USING="Using",vn.COMPONENTS="Components",vn.PLS="PLS",vn.MVA="Multivariate Analysis (PLS)",vn.RUN="RUN",vn.NAMES="Names",vn.MODEL="Observed vs. Predicted",vn.FEATURE="Feature",vn.REGR_COEFS="Regression Coefficients",vn.XLOADING="x.loading.p",vn.LOADINGS="Loadings",vn.XSCORE="x.score.t",vn.YSCORE="y.score.u",vn.SCORES="Scores",vn.EXPL_VAR="Explained Variance",vn.EXPLORE="Explore",vn.FEATURES="Feature names",vn.BROWSE="Browse",vn.ANALYSIS="Features Analysis",(yn=cn||(cn={})).PREDICT="Column with the response variable",yn.FEATURES="Predictors (features)",yn.COMPONENTS="Number of PLS components",yn.PLS="Compute PLS components",yn.MVA="Perform multivariate analysis",yn.NAMES="Names of data samples",(gn=ln||(ln={})).PLS="/help/explore/multivariate-analysis#pls-components",gn.MVA="/help/explore/multivariate-analysis",gn.MODEL="/help/explore/multivariate-analysis#observed-vs-predicted",gn.COEFFS="/help/explore/multivariate-analysis#regression-coefficients",gn.LOADINGS="/help/explore/multivariate-analysis#loadings",gn.EXPL_VARS="/help/explore/multivariate-analysis#explained-variance",gn.SCORES="/help/explore/multivariate-analysis#scores",(pn=fn||(fn={}))[pn.DEFAULT=3]="DEFAULT",pn[pn.MIN=1]="MIN",(dn=hn||(hn={})).PREFIX="PLS",dn.SUFFIX="(predicted)",dn.COMP="component",dn.COMPS="components",function(t){t[t.PREDICTION=0]="PREDICTION",t[t.REGR_COEFFS=1]="REGR_COEFFS",t[t.T_SCORES=2]="T_SCORES",t[t.U_SCORES=3]="U_SCORES",t[t.X_LOADINGS=4]="X_LOADINGS",t[t.Y_LOADINGS=5]="Y_LOADINGS"}(mn||(mn={}));const Cn=[.49,.79,.99];var _n;!function(t){t.AXIS="#838383",t.CIRCLE="#0000FF"}(_n||(_n={})),[{caption:un.MODEL,text:"Closer to the line means better price prediction."},{caption:un.SCORES,text:"The latent factor values for each sample reflect the similarities and dissimilarities among observations."},{caption:un.LOADINGS,text:"The impact of each feature on the latent factors: higher loading means stronger influence."},{caption:un.REGR_COEFS,text:"Parameters of the obtained linear model: features make different contribution to the prediction."},{caption:un.EXPL_VAR,text:"How well the latent components fit source data: closer to one means better fit."}].map((t=>`# ${t.caption}\n\n${t.text}`)).join("\n\n"),ln.MVA;function Nn(t){return n=this,r=void 0,i=function*(){rn(t.features,t.components),nn(t.predict),en(t.predict);const n=yield async function(t,n,r,o){return new Promise(((t,i)=>{const s=new Worker(new URL(e.p+e.u(412),e.b));s.postMessage(Qt(EDA.partialLeastSquareRegression.arguments,[n,r,o])),s.onmessage=function(n){s.terminate(),t(Zt(EDA.partialLeastSquareRegression,n.data))}}))}(t.table,t.features,t.predict,t.components);return{prediction:n[mn.PREDICTION],regressionCoefficients:n[mn.REGR_COEFFS],tScores:n[mn.T_SCORES],uScores:n[mn.U_SCORES],xLoadings:n[mn.X_LOADINGS],yLoadings:n[mn.Y_LOADINGS]}},new((o=void 0)||(o=Promise))((function(t,e){function s(t){try{u(i.next(t))}catch(t){e(t)}}function a(t){try{u(i.throw(t))}catch(t){e(t)}}function u(n){var e;n.done?t(n.value):(e=n.value,e instanceof o?e:new o((function(t){t(e)}))).then(s,a)}u((i=i.apply(n,r||[])).next())}));var n,r,o,i}Math.min,Math.max;var xn=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};function bn(n,e){return xn(this,void 0,void 0,(function*(){const r=n.length,o=e.length,i=e.stats.avg,s=e.stats.stdev,a=new Float32Array(r+1).fill(0);if(a[r]=i,0===s||1===o)return a;try{const o=[],u=[],c=new Float32Array(r),l=new Float32Array(r);let f=0,h=0;for(const t of n){const n=t.stats;n.stdev>0&&(o.push(f),u.push(t),c[h]=n.avg,l[h]=n.stdev,++h),++f}if(0===h)return a;const m=function(t,n,e,r,o,i,s){return Pt(EDA,"fitLinearRegressionParamsWithDataNormalizing",[t,n,e,r,o,i,s])}(t.DataFrame.fromColumns(u).columns,t.Column.fromFloat32Array("xAvgs",c,h),t.Column.fromFloat32Array("xStdevs",l,h),e,i,s,h+1).getRawData();for(let t=0;t<h;++t)a[o[t]]=m[t];a[r]=m[h]}catch(o){const i=yield function(n,e,r){return xn(this,void 0,void 0,(function*(){return(yield Nn({table:t.DataFrame.fromColumns([e]),features:n,predict:e,components:r,names:void 0})).regressionCoefficients.getRawData()}))}(n,e,Tn(n.length,e.length));let s=0;for(let t=0;t<r;++t)a[t]=i[t],s+=i[t]*n.byIndex(t).stats.avg;a[r]-=s}return a}))}function Sn(n,e){const r=n.length;if(r!==e.length-1)throw new Error("Incorrect parameters count");const o=n.byIndex(0),i=o.length,s=new Float32Array(i);let a=o.getRawData();const u=e[r];let c=e[0];for(let t=0;t<i;++t)s[t]=u+c*a[t];for(let t=1;t<r;++t){a=n.byIndex(t).getRawData(),c=e[t];for(let t=0;t<i;++t)s[t]+=c*a[t]}return t.Column.fromFloat32Array(n.getUnusedName("prediction"),s,i)}const Tn=(t,n)=>n<=t?Math.min(10,n):Math.min(10,t);var Mn;!function(t){t[t.MAX_SAMLPES=1e5]="MAX_SAMLPES",t[t.MAX_FEATURES=1e3]="MAX_FEATURES"}(Mn||(Mn={}));class In{static isApplicable(t,n){for(const n of t)if(!n.matches("numerical"))return!1;return!!n.matches("numerical")}static isInteractive(t,n){return t.length<=Mn.MAX_FEATURES&&n.length<=Mn.MAX_SAMLPES}constructor(n){if(this.specn=null,n)try{const e=new Uint32Array(n.buffer,0,2),r=e[0],o=e[1],i=new Uint8Array(n.buffer,8,r),s=t.DataFrame.fromByteArray(i),a=s.rowCount,u=s.columns,c=u.length,l=new Uint8Array(n.buffer,8+r,o),f=t.DataFrame.fromByteArray(l);if(c<3)throw new Error("incorrect columns count");const h=u.byName(un.FEATURES).toList(),m=new Float32Array(a);m.set(u.byName(un.REGR_COEFS).getRawData());const d=c-2,p=new Array(d);for(let t=0;t<d;++t)p[t]=new Float32Array(a),p[t].set(u.byIndex(t+2).getRawData());this.specn={params:m,loadings:p,names:h,dim:a-1,components:c-2,scores:f}}catch(t){throw new Error(`Failed to load model: ${t instanceof Error?t.message:"the platform issue"}`)}}fit(n,e,r){return o=this,i=void 0,a=function*(){const o=yield Nn({table:t.DataFrame.fromColumns([e]),features:n,predict:e,components:r,names:void 0}),i=n.names();i.push("_");const s=this.getRegrCoeffs(n,e,o.regressionCoefficients),a=this.getLoadings(r,o.xLoadings);this.specn={names:i,params:s,loadings:a,components:r,dim:n.length,scores:this.getScoresDf(o)},this.computeExplVars(e.length,r,o.yLoadings)},new((s=void 0)||(s=Promise))((function(t,n){function e(t){try{u(a.next(t))}catch(t){n(t)}}function r(t){try{u(a.throw(t))}catch(t){n(t)}}function u(n){var o;n.done?t(n.value):(o=n.value,o instanceof s?o:new s((function(t){t(o)}))).then(e,r)}u((a=a.apply(o,i||[])).next())}));var o,i,s,a}getLoadings(t,n){const e=Array(t),r=n[0].length+1;for(let o=0;o<t;++o)e[o]=new Float32Array(r),e[o].set(n[o].getRawData());return e}getRegrCoeffs(t,n,e){const r=t.length,o=new Float32Array(r+1),i=e.getRawData();let s=0;for(let n=0;n<r;++n)o[n]=i[n],s+=i[n]*t.byIndex(n).stats.avg;return o[r]=n.stats.avg-s,o}computeExplVars(t,n,e){if(null===this.specn)throw new Error("Failed to compute explained variances");const r=e.getRawData(),o=this.specn.loadings[0].length-1;let i=Math.pow(r[0],2)/t;this.specn.loadings[0][o]=i;for(let e=1;e<n;++e)i+=Math.pow(r[e],2)/t,this.specn.loadings[e][o]=i}toBytes(){if(null===this.specn)throw new Error("Failed to pack untrained model");const n=t.DataFrame.fromColumns([t.Column.fromStrings(un.FEATURES,this.specn.names),t.Column.fromFloat32Array(un.REGR_COEFS,this.specn.params)]);this.specn.loadings.forEach(((e,r)=>n.columns.add(t.Column.fromFloat32Array(`${un.XLOADING}${r+1}`,e))));const e=n.toByteArray(),r=e.length,o=this.specn.scores.toByteArray(),i=o.length,s=r+i+8,a=new Uint8Array(64*(Math.ceil(s/64)+1)),u=new Uint32Array(a.buffer,0,2);return u[0]=r,u[1]=i,a.set(e,8),a.set(o,8+r),a}predict(t){if(null===this.specn)throw new Error("Predicting failed: model is not trained");return Sn(t,this.specn.params)}loadingsParamsViewers(){if(null===this.specn)throw new Error("Failed to create loadings and parameters viewers: untrained model");const n=[],e=this.specn.dim,r=t.DataFrame.fromColumns([t.Column.fromStrings(un.FEATURES,this.specn.names.slice(0,-1)),t.Column.fromFloat32Array(un.REGR_COEFS,this.specn.params,e)]),o=r.columns,i=o.length,s=this.specn.components;return this.specn.loadings.forEach(((n,o)=>r.columns.add(t.Column.fromFloat32Array(`${un.XLOADING}${o+1}`,n,e)))),n.push(t.Viewer.scatterPlot(r,{title:un.LOADINGS,xColumnName:o.byIndex(i).name,yColumnName:o.byIndex(i+(s>1?1:0)).name,markerType:t.MARKER_TYPE.CIRCLE,labelFormColumnNames:[un.FEATURES],help:ln.LOADINGS})),n.push(t.Viewer.barChart(r,{title:un.REGR_COEFS,splitColumnName:un.FEATURES,valueColumnName:un.REGR_COEFS,valueAggrType:t.AGG.AVG,help:ln.COEFFS,showValueSelector:!1,showStackSelector:!1})),n}explVarsViewer(){if(null===this.specn)throw new Error("Failed to create exaplained variances viewer: untrained model");const n=this.specn.components,e=this.specn.dim,r=new Array(n),o=new Float32Array(n);r[0]=`${hn.COMP} 1`,o[0]=this.specn.loadings[0][e];for(let t=1;t<n;++t)r[t]=`${hn.COMPS} ${t+1}`,o[t]=this.specn.loadings[t][e];return t.Viewer.barChart(t.DataFrame.fromColumns([t.Column.fromStrings(hn.COMPS,r),t.Column.fromFloat32Array(un.EXPL_VAR,o)]),{title:un.EXPL_VAR,splitColumnName:hn.COMPS,valueColumnName:un.EXPL_VAR,valueAggrType:t.AGG.AVG,help:ln.EXPL_VARS,showCategorySelector:!1,showStackSelector:!1,showValueSelector:!1})}viewers(){if(null===this.specn)throw new Error("Failed to create viewers: untrained model");const t=this.loadingsParamsViewers();return t.push(this.explVarsViewer(),this.getScoresScatter()),t}getScoresDf(n){const e=n.tScores,r=n.uScores;return e.forEach(((t,n)=>t.name=`${un.XSCORE}${n+1}`)),r.forEach(((t,n)=>t.name=`${un.YSCORE}${n+1}`)),t.DataFrame.fromColumns(e.concat(r))}getScoresScatter(){if(null===this.specn)throw new Error("Failed to create scores scatter: untrained model");const n=this.specn.scores.columns.names(),e=t.Viewer.scatterPlot(this.specn.scores,{title:un.SCORES,xColumnName:n[0],yColumnName:n[1],markerType:t.MARKER_TYPE.CIRCLE,help:ln.SCORES,showViewerFormulaLines:!0});return e.meta.formulaLines.addAll(function(t){const n=[],e=(t,e)=>{n.push({type:"line",formula:t,width:1,visible:!0,title:" ",min:-e,max:e,color:_n.CIRCLE})};return t.forEach((r=>{const o="${"+r+"}";n.push({type:"line",formula:`${o} = 0`,width:1,visible:!0,title:" ",color:_n.AXIS}),t.forEach((t=>{const n="${"+t+"}";Cn.forEach((t=>{e(n+` = sqrt(${t*t} - ${o} * ${o})`,t),e(n+` = -sqrt(${t*t} - ${o} * ${o})`,t)}))}))})),n}(n)),e}}const On=["Alpha","Beta","Gamma","Delta"];function Rn(t,n){if(t.length!==n.length)throw new Error(`Non-equal elements count: ${t.length} vs. ${n.length}`)}function Ln(e,r,o){const i=n.data.demo.randomWalk(e,r),s=i.columns,a=new Float32Array(r),u=new Array(r);for(let t=0;t<r;++t)u[t]=s.byIndex(t).getRawData();for(let n=0;n<o;++n){const o=new Float32Array(e);for(let t=0;t<r;++t)a[t]=Math.random();for(let t=0;t<e;++t)for(let n=0;n<r;++n)o[t]+=a[n]*u[n][t];s.add(t.Column.fromFloat32Array(`y${n}`,o))}return i}function Pn(t,n){Rn(t,n);let e=0;const r=t.length,o=t.getRawData(),i=n.getRawData();for(let t=0;t<r;++t)e=Math.max(e,Math.abs(o[t]-i[t]));return e}function Dn(n,e,r){const o=new Array(n),i=new Array(e);for(let t=0;t<e;++t){const e=new Float32Array(n);for(let t=0;t<n;++t)e[t]=Math.random();i[t]=e}const s=t.DataFrame.fromColumns(i.map(((n,e)=>t.Column.fromFloat32Array(`#${e}`,n))));for(let t=0;t<n;++t)o[t]=i.slice(0,2).map((n=>n[t]>.5?"A":"B")).join("");if(s.columns.add(t.Column.fromStrings("Labels",o)),r)for(let t=0;t<e;++t)for(let e=0;e<n;++e)i[t][e]+=1*(i[t][e]>0?1:-1);return s}function Fn(t,n){Rn(t,n);let e=0;const r=t.length;if(r<1)return 1;for(let o=0;o<r;++o)t.get(o)===n.get(o)&&++e;return e/r}var Un=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const Bn=100,kn=9e3,Hn=.1;L("Principal component analysis",(()=>{O("Performance: 100K rows, 100 cols, 3 components",(()=>Un(void 0,void 0,void 0,(function*(){const t=n.data.demo.randomWalk(1e5,Bn);yield An(t,t.columns,3,!1,!1)}))),{timeout:kn,benchmark:!0}),O("Performance: 1K rows, 5K cols, 3 components",(()=>Un(void 0,void 0,void 0,(function*(){const t=n.data.demo.randomWalk(1e3,5e3);yield An(t,t.columns,3,!1,!1)}))),{timeout:kn,benchmark:!0}),O("Correctness",(()=>Un(void 0,void 0,void 0,(function*(){const t=Ln(100,3,5);R(function(t){let n=0;const e=t.length,r=t.getRawData();for(let t=0;t<e;++t)n=Math.max(n,Math.abs(r[t]));return n}((yield An(t,t.columns,4,!1,!1)).columns.byIndex(3))<Hn,!0,"Incorrect PCA computations")}))),{timeout:kn})})),L("Partial least squares regression",(()=>{O("Performance: 100K rows, 100 cols, 3 components",(()=>Un(void 0,void 0,void 0,(function*(){const t=n.data.demo.randomWalk(1e5,Bn),e=t.columns;yield Nn({table:t,features:e,predict:e.byIndex(99),components:3,names:void 0})}))),{timeout:kn,benchmark:!0}),O("Correctness",(()=>Un(void 0,void 0,void 0,(function*(){const t=Ln(100,3,5),n=t.columns,e=n.byIndex(7),r=Pn(e,(yield Nn({table:t,features:n,predict:e,components:3,names:void 0})).prediction);R(r<Hn,!0,`Incorrect PLS computations, error is too big: ${r}; expected: < 0.1`)}))),{timeout:kn}),O("Predictive modeling: 100K samples, 100 features, 3 components",(()=>Un(void 0,void 0,void 0,(function*(){const t=Ln(1e5,3,98).columns,n=t.byIndex(Bn);t.remove(n.name);const e=new In;yield e.fit(t,n,3);const r=e.toBytes(),o=Pn(n,new In(r).predict(t));R(o<Hn,!0,`Incorrect PLS (ML) computations, error is too big: ${o}; expected: < 0.1`)}))),{timeout:kn,benchmark:!0})})),L("Linear regression",(()=>{O("Performance: 100K samples, 100 features",(()=>Un(void 0,void 0,void 0,(function*(){const t=Ln(1e5,Bn,1).columns,n=t.byIndex(Bn),e=yield bn(t,n),r=new Uint8Array(e.buffer);Sn(t,new Float32Array(r.buffer))}))),{timeout:kn,benchmark:!0}),O("Correctness",(()=>Un(void 0,void 0,void 0,(function*(){const t=Ln(100,2,1).columns,n=t.byIndex(2),e=yield bn(t,n),r=new Uint8Array(e.buffer),o=Sn(t,new Float32Array(r.buffer)),i=Pn(o,o);R(i<Hn,!0,`Incorrect linear regression computations, error is too big: ${i}; expected: < 0.1`)}))),{timeout:kn})}));var Gn=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const Vn="Avg-s",Wn="Stddev-s";var qn;!function(t){t[t.MAX_SAMLPES=5e4]="MAX_SAMLPES",t[t.MAX_FEATURES=100]="MAX_FEATURES"}(qn||(qn={}));class $n{static isApplicable(n,e){for(const t of n)if(!t.matches("numerical"))return!1;return e.type===t.COLUMN_TYPE.STRING}static isInteractive(t,n){return t.length<=qn.MAX_FEATURES&&n.length<=qn.MAX_SAMLPES}constructor(n,e){if(this.params=void 0,this.classesCount=1,this.featuresCount=1,void 0!==n){const t=n.featuresCount,e=n.classesCount;if(t<1)throw new Error("Incorrect features count");if(e<1)throw new Error("Incorrect classes count");const r=t+1;this.avgs=new Float32Array(r),this.stdevs=new Float32Array(r),this.categories=new Array(r),this.featuresCount=t,this.classesCount=e}else{if(void 0===e)throw new Error("Softmax classifier not initialized");try{const n=new Uint32Array(e.buffer,0,1)[0],r=new Uint8Array(e.buffer,4,n),o=t.DataFrame.fromByteArray(r),i=o.columns,s=i.length;if(s<3)throw new Error("incorrect columns count");this.classesCount=s-2,this.featuresCount=o.rowCount-1;const a=this.classesCount;this.params=new Array(a),this.categories=new Array(o.rowCount);for(let n=0;n<a;++n){const e=i.byIndex(n);if(this.categories[n]=e.name,e.type!==t.COLUMN_TYPE.FLOAT)throw new Error(`Incorrect input column type. Expected: float, passed: ${e.type}`);this.params[n]=e.getRawData()}const u=i.byName(Vn);if(u.type!==t.COLUMN_TYPE.FLOAT)throw new Error("incorrect average values column type");this.avgs=u.getRawData();const c=i.byName(Wn);if(c.type!==t.COLUMN_TYPE.FLOAT)throw new Error("incorrect standard deviations column type");this.stdevs=c.getRawData()}catch(t){throw new Error(`Failed to load model: ${t instanceof Error?t.message:"the platform issue"}`)}}}toBytes(){if(void 0===this.params)throw new Error("Non-trained model");const n=this.classesCount,e=new Array(n+2);for(let r=0;r<n;++r)e[r]=t.Column.fromFloat32Array(this.categories[r],this.params[r]);e[n]=t.Column.fromFloat32Array(Vn,this.avgs),e[n+1]=t.Column.fromFloat32Array(Wn,this.stdevs);const r=t.DataFrame.fromColumns(e).toByteArray(),o=r.length,i=new Uint8Array(o+4);return new Uint32Array(i.buffer,0,1)[0]=o,i.set(r,4),i}fit(n,e){return Gn(this,arguments,void 0,(function*(n,e,r=1,o=100,i=.1,s=.001){if(n.length!==this.featuresCount)throw new Error("Training failes - incorrect features count");if(r<=0||o<1||i<=0||s<=0)throw new Error("Training failes - incorrect fitting hyperparameters");this.extractStats(n);const a=e.length,u=e.categories.length,c=e.categories;for(let t=0;t<u;++t)this.categories[t]=c[t];try{const c=function(t,n,e,r,o,i,s,a,u,c,l){return Pt(EDA,"fitSoftmax",[t,n,e,r,o,i,s,a,u,c,l])}(n,t.Column.fromFloat32Array("avgs",this.avgs,this.featuresCount),t.Column.fromFloat32Array("stdevs",this.stdevs,this.featuresCount),t.Column.fromInt32Array("targets",e.getRawData(),a),u,o,r,i,s,this.featuresCount+1,u).columns;this.params=new Array(u);for(let t=0;t<u;++t)this.params[t]=c.byIndex(t).getRawData()}catch(t){try{this.params=yield this.fitSoftmaxParams(n,e,o,r,i,s)}catch(t){throw new Error("Training failes")}}if(void 0===this.params)throw new Error("Training failes")}))}extractStats(n){let e=0;for(const r of n){if(r.type!==t.COLUMN_TYPE.INT&&r.type!==t.COLUMN_TYPE.FLOAT)throw new Error("Training failes - incorrect features type");this.avgs[e]=r.stats.avg,this.stdevs[e]=r.stats.stdev,++e}}normalized(n){const e=n.byIndex(0).length,r=new Array(e);for(let t=0;t<e;++t)r[t]=new Float32Array(this.featuresCount);let o=0;for(const i of n){if(i.type!==t.COLUMN_TYPE.INT&&i.type!==t.COLUMN_TYPE.FLOAT)throw new Error("Training failes - incorrect features type");const n=i.getRawData(),s=this.avgs[o],a=this.stdevs[o];if(a>0)for(let t=0;t<e;++t)r[t][o]=(n[t]-s)/a;else for(let t=0;t<e;++t)r[t][o]=0;++o}return r}transposed(n){const e=n.byIndex(0).length,r=this.featuresCount,o=new Array(r);for(let t=0;t<r;++t)o[t]=new Float32Array(e);let i=0;for(const r of n){if(r.type!==t.COLUMN_TYPE.INT&&r.type!==t.COLUMN_TYPE.FLOAT)throw new Error("Training failes - incorrect features type");const n=r.getRawData(),s=this.avgs[i],a=this.stdevs[i];if(a>0)for(let t=0;t<e;++t)o[i][t]=(n[t]-s)/a;else for(let t=0;t<e;++t)o[i][t]=0;++i}return o}preprocessedTargets(n){if(n.type!==t.COLUMN_TYPE.STRING)throw new Error("Training failes - incorrect target type");const e=this.classesCount,r=n.length,o=n.getRawData(),i=new Array(r),s=new Uint32Array(e).fill(0);for(let t=0;t<r;++t)i[t]=new Uint8Array(e).fill(0);for(let t=0;t<r;++t)i[t][o[t]]=1,++s[o[t]];return{oneHot:i,weights:s}}predict(n){if(void 0===this.params)throw new Error("Non-trained model");if(n.length!==this.featuresCount)throw new Error("Predcition fails: incorrect features count");const e=this.normalized(n),r=e.length,o=this.featuresCount,i=this.classesCount;let s,a;const u=new Float32Array(i);let c,l,f;const h=new Array(r);for(let t=0;t<r;++t){s=e[t],c=0;for(let t=0;t<i;++t){a=this.params[t],c=a[o];for(let t=0;t<o;++t)c+=a[t]*s[t];u[t]=Math.exp(c)}l=u[0],f=0;for(let t=1;t<i;++t)l<u[t]&&(l=u[t],f=t);h[t]=this.categories[f]}return t.Column.fromStrings("predicted",h)}fitSoftmaxParams(t,n,r,o,i,s){return Gn(this,void 0,void 0,(function*(){const a=this.preprocessedTargets(n);return new Promise(((u,c)=>{const l=new Worker(new URL(e.p+e.u(501),e.b));l.postMessage({features:this.normalized(t),transposed:this.transposed(t),oneHot:a.oneHot,classesWeights:a.weights,targetRaw:n.getRawData(),iterations:r,rate:o,penalty:i,tolerance:s}),l.onmessage=function(t){l.terminate(),u(t.data.params),console.log(`Loss: ${t.data.loss}`)}}))}))}}var Yn,Kn,jn,zn;(zn=Yn||(Yn={}))[zn.ITERATIONS=20]="ITERATIONS",zn[zn.ETA=.3]="ETA",zn[zn.MAX_DEPTH=6]="MAX_DEPTH",zn[zn.LAMBDA=1]="LAMBDA",zn[zn.ALPHA=0]="ALPHA",function(t){t[t.SAMLPES_HIGH=1e5]="SAMLPES_HIGH",t[t.SAMLPES_MID=5e4]="SAMLPES_MID",t[t.SAMPLES_LOW=1e4]="SAMPLES_LOW",t[t.FEATURES_HIGH=10]="FEATURES_HIGH",t[t.FEATURES_MID=20]="FEATURES_MID",t[t.FEATURES_LOW=100]="FEATURES_LOW"}(Kn||(Kn={})),function(t){t[t.MODEL=1e7]="MODEL",t[t.UTILS=1]="UTILS",t[t.PACK=128]="PACK",t[t.SIZE=4]="SIZE"}(jn||(jn={}));const Xn=t.FLOAT_NULL;var Qn;!function(t){t.PREDICT="Prediction",t.TYPE="Type",t.PARAMS="Params count",t.CATS="Categories",t.CATS_SIZE="Categories size"}(Qn||(Qn={}));class Zn{static isApplicable(t,n){for(const n of t)if(!n.matches("numerical"))return!1;return!(!n.matches("numerical")&&!n.matches("string"))}static isInteractive(t,n){const e=t.length,r=n.length;return r<=Kn.SAMPLES_LOW?e<=Kn.FEATURES_LOW:r<=Kn.SAMLPES_MID?e<=Kn.FEATURES_MID:r<=Kn.SAMLPES_HIGH&&e<=Kn.FEATURES_HIGH}constructor(n){var e;if(this.modelParams=void 0,this.targetType=void 0,this.targetCategories=void 0,n)try{let r=0;const o=new Uint32Array(n.buffer,r,1)[0];r+=jn.SIZE;const i=t.DataFrame.fromByteArray(new Uint8Array(n.buffer,r,o));r+=o,this.targetType=i.get(Qn.TYPE,0);const s=i.get(Qn.PARAMS,0),a=i.get(Qn.CATS_SIZE,0);if(a>0){const o=t.DataFrame.fromByteArray(new Uint8Array(n.buffer,r,a));this.targetCategories=null===(e=o.col(Qn.CATS))||void 0===e?void 0:e.toList()}r+=a,r=4*Math.ceil(r/4),this.modelParams=new Int32Array(n.buffer,r,s)}catch(t){throw new Error(`Failed to load model: ${t instanceof Error?t.message:"the platform issue"}`)}}fit(n,r){return o=this,i=arguments,a=function*(n,r,o=Yn.ITERATIONS,i=Yn.ETA,s=Yn.MAX_DEPTH,a=Yn.LAMBDA,u=Yn.ALPHA){this.targetType=r.type,this.targetType===t.COLUMN_TYPE.STRING&&(this.targetCategories=r.categories),this.modelParams=yield async function(t,n,r,o,i,s,a,u,c,l){return new Promise(((f,h)=>{const m=n.length,d=t.length,p=new Float32Array(m*d);let g,y;for(let n=0;n<d;++n){y=t.byIndex(n).getRawData(),g=n*m;for(let t=0;t<m;++t)p[t+g]=y[t]}const v=new Worker(new URL(e.p+e.u(990),e.b));v.postMessage({features:p,target:n.getRawData(),samplesCount:m,featuresCount:d,modelReserve:c,utilsLength:l,iterations:o,eta:i,maxDepth:s,lambda:a,alpha:u,missingValue:r}),v.onmessage=function(t){v.terminate(),f(t.data.params)}}))}(n,r,Xn,o,i,s,a,u,jn.MODEL,jn.UTILS)},new((s=void 0)||(s=Promise))((function(t,n){function e(t){try{u(a.next(t))}catch(t){n(t)}}function r(t){try{u(a.throw(t))}catch(t){n(t)}}function u(n){var o;n.done?t(n.value):(o=n.value,o instanceof s?o:new s((function(t){t(o)}))).then(e,r)}u((a=a.apply(o,i||[])).next())}));var o,i,s,a}predict(n){if(void 0===this.modelParams)throw new Error("Failed to apply non-trained model");const e=function(t,n,e){const r=t.byIndex(0).length,o=t.length,i=e.length;let s=XGBoostModule.HEAPF32;const a=XGBoostModule.HEAP32,u=XGBoostModule._malloc(r*o*4),c=XGBoostModule._malloc(4*r),l=XGBoostModule._malloc(4*i);for(let n=0;n<o;++n){const e=t.byIndex(n).getRawData();for(let t=0;t<r;++t)s[u/4+t+n*r]=e[t]}for(let t=0;t<i;++t)a[l/4+t]=e[t];XGBoostModule._predict(u,r,o,n,l,i,c,r),s=XGBoostModule.HEAPF32;const f=new Float32Array(r);for(let t=0;t<r;++t)f[t]=s[c/4+t];return XGBoostModule._free(u),XGBoostModule._free(c),XGBoostModule._free(l),f}(n,Xn,this.modelParams);switch(this.targetType){case t.COLUMN_TYPE.STRING:return this.stringColPrediction(e);case t.COLUMN_TYPE.INT:return this.intColPrediction(e);case t.COLUMN_TYPE.BIG_INT:return this.bigIntColPrediction(e);default:return t.Column.fromFloat32Array(Qn.PREDICT,e)}}toBytes(){if(void 0===this.modelParams||void 0===this.targetType)throw new Error("Failed to pack non-trained model");const n=void 0!==this.targetCategories?t.DataFrame.fromColumns([t.Column.fromList(t.COLUMN_TYPE.STRING,Qn.CATS,this.targetCategories)]).toByteArray():void 0,e=void 0!==n?n.length:0,r=this.modelParams.length*this.modelParams.BYTES_PER_ELEMENT,o=t.DataFrame.fromColumns([t.Column.fromStrings(Qn.TYPE,[this.targetType]),t.Column.fromInt32Array(Qn.PARAMS,new Int32Array([this.modelParams.length])),t.Column.fromInt32Array(Qn.CATS_SIZE,new Int32Array([e]))]).toByteArray(),i=o.length,s=64*Math.ceil((jn.SIZE+i+e+r+jn.PACK)/64),a=new Uint8Array(s);let u=0;return new Uint32Array(a.buffer,u,1)[0]=i,u+=jn.SIZE,a.set(o,u),u+=i,e>0&&a.set(n,u),u+=e,u=4*Math.ceil(u/4),a.set(new Uint8Array(this.modelParams.buffer),u),a}stringColPrediction(n){const e=n.length;if(void 0===this.targetCategories)throw new Error("Predicting fails: undefined categories");const r=new Array(e),o=this.targetCategories.length-1;for(let t=0;t<e;++t)r[t]=this.targetCategories[(i=Math.round(n[t]),Math.max(0,Math.min(i,o)))];var i;return t.Column.fromList(t.COLUMN_TYPE.STRING,Qn.PREDICT,r)}intColPrediction(n){const e=n.length,r=new Int32Array(e);for(let t=0;t<e;++t)r[t]=Math.round(n[t]);return t.Column.fromInt32Array(Qn.PREDICT,r,e)}bigIntColPrediction(n){const e=n.length,r=new BigInt64Array(e);for(let t=0;t<e;++t)r[t]=BigInt(Math.round(n[t]));return t.Column.fromBigInt64Array(Qn.PREDICT,r)}}var Jn=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const te=100,ne=8e3;var ee;L("Softmax",(()=>{O("Performance: 50K samples, 100 features",(()=>Jn(void 0,void 0,void 0,(function*(){const t=Dn(5e4,te,!1).columns,n=t.byIndex(te);t.remove(n.name);const e=new $n({classesCount:n.categories.length,featuresCount:t.length});yield e.fit(t,n);const r=e.toBytes();new $n(void 0,r).predict(t)}))),{timeout:ne,benchmark:!0}),O("Correctness",(()=>Jn(void 0,void 0,void 0,(function*(){const t=Dn(50,2,!0).columns,n=t.byIndex(2);t.remove(n.name);const e=new $n({classesCount:n.categories.length,featuresCount:t.length});yield e.fit(t,n);const r=e.toBytes(),o=Fn(n,new $n(void 0,r).predict(t));R(o>.9,!0,`Softmax failed, too small accuracy: ${o}; expected: <= 0.9`)}))),{timeout:ne})})),L("XGBoost",(()=>{O("Performance: 50K samples, 100 features",(()=>Jn(void 0,void 0,void 0,(function*(){const t=Dn(5e4,te,!1).columns,n=t.byIndex(te);t.remove(n.name);const e=new Zn;yield e.fit(t,n);const r=e.toBytes();new Zn(r).predict(t)}))),{timeout:ne,benchmark:!0}),O("Correctness",(()=>Jn(void 0,void 0,void 0,(function*(){const t=Dn(50,2,!0).columns,n=t.byIndex(2);t.remove(n.name);const e=new Zn;yield e.fit(t,n);const r=e.toBytes(),o=Fn(n,new Zn(r).predict(t));R(o>.9,!0,`XGBoost failed, too small accuracy: ${o}; expected: <= 0.9`)}))),{timeout:ne})})),function(t){t.NO_DATAFRAME="No dataframe is opened",t.NO_MISSING_VALUES="No missing values",t.ONE_AVAILABLE_FEATURE="Not enough of feature columns to apply imputation using the KNN method",t.ONE_FEATURE_SELECTED="Imputation cannot be applied to",t.UNSUPPORTED_COLUMN_TYPE="Unsupported column type",t.UNSUPPORTED_IMPUTATION_STRATEGY="Unsupported imputation strategy",t.KNN_CANNOT_BE_APPLIED="KNN imputer cannot be applied: no columns to be used as features",t.KNN_NO_TARGET_COLUMNS="KNN imputer cannot be applied: no columns with missing values",t.KNN_NO_FEATURE_COLUMNS="KNN imputer cannot be applied: no feature columns",t.KNN_NOT_ENOUGH_OF_ROWS="KNN imputer cannot be applied: not enough of rows",t.KNN_IMPOSSIBLE_IMPUTATION="Imputation is impossible, no features can be used",t.INCORRECT_NEIGHBORS="Incorrect number of neighbors",t.KNN_FAILS="KNN IMPUTATION FAILS",t.CORE_ISSUE="Core issue",t.FAILED_TO_IMPUTE="Failed to impute",t.UNSUPPORTED_FILL_VALUE_TYPE="Unsupported fill value type",t.EMPTY_COLUMN="Column contains just null values",t.FAILS_TO_PREDICT_IMPUTATION_FAILS="Failed to predict imputation fails",t.WRONG_PREDICTIONS="wrong evaluation of KNN imputation fails"}(ee||(ee={}));const re="copy";var oe,ie;!function(t){t.KNN_IMPUTER="k-NN Imputation",t.TABLE="Table",t.IN_PLACE="In-place",t.COLUMNS="Impute",t.FEATURES="Using",t.CANCEL="CANCEL",t.RUN="RUN",t.OK="OK",t.NEIGHBORS="Neighbors",t.DISTANCE="Distance",t.FILL="Fill",t.MARK="Mark",t.SIMPLE_IMPUTER="Simple impute",t.SETTINGS="Settings",t.KEEP_EMPTY="Keep empty"}(oe||(oe={})),function(t){t.TARGET="Columns with missing values that must be filled",t.FEATURES="Columns with features to be used for determining the 'nearest' elements in the k-NN method",t.IN_PLACE="Defines whether to use in-place imputation or add a new column without missing values",t.METRIC="Type of metric between the feature values",t.WEIGHT="Weight",t.NEIGHBORS="Neighbors count used in the KNN method",t.DISTANCE="Type of distance between elements with the specified features",t.METRIC_SETTINGS="Show additional options",t.FILL_FAILED_ITEMS="Impute missing values using a simple approach: mean, median or most frequent",t.MARK_FAILED_ITEMS="Mark missing values cells with a color",t.FILL_VALUE="Fill value",t.IMPUTATION_SETTINGS="Simple imputation settings",t.KEEP_EMPTY="Defines whether to keep empty missing values failed to be imputed OR fill them using simple imputation",t.RUN="Run imputation using the k-NN method"}(ie||(ie={}));const se=[t.COLUMN_TYPE.INT,t.COLUMN_TYPE.FLOAT,t.COLUMN_TYPE.STRING,t.COLUMN_TYPE.DATE_TIME,t.COLUMN_TYPE.QNUM];function ae(n){switch(n.type){case t.COLUMN_TYPE.INT:return t.INT_NULL;case t.COLUMN_TYPE.FLOAT:case t.COLUMN_TYPE.QNUM:case t.COLUMN_TYPE.DATE_TIME:return t.FLOAT_NULL;case t.COLUMN_TYPE.STRING:return n.max;default:throw new Error(ee.UNSUPPORTED_COLUMN_TYPE)}}var ue,ce,le,fe;function he(n){switch(n){case t.COLUMN_TYPE.STRING:case t.COLUMN_TYPE.DATE_TIME:return{defaultWeight:le.WEIGHT,defaultMetric:ue.ONE_HOT,availableMetrics:[ue.ONE_HOT]};case t.COLUMN_TYPE.INT:case t.COLUMN_TYPE.FLOAT:case t.COLUMN_TYPE.QNUM:return{defaultWeight:le.WEIGHT,defaultMetric:ue.DIFFERENCE,availableMetrics:[ue.DIFFERENCE,ue.ONE_HOT]};default:throw new Error(ee.UNSUPPORTED_COLUMN_TYPE)}}!function(t){t.ONE_HOT="One-hot",t.DIFFERENCE="Difference"}(ue||(ue={})),(fe=ce||(ce={})).EUCLIDEAN="Euclidean",fe.MANHATTAN="Manhattan",function(t){t[t.WEIGHT=1]="WEIGHT",t[t.NEIGHBORS=4]="NEIGHBORS",t[t.IN_PLACE=1]="IN_PLACE",t[t.SELECTED=1]="SELECTED",t[t.KEEP_EMPTY=0]="KEEP_EMPTY"}(le||(le={}));const me=e=>{O(`${e} dist, 100K rows, 15 cols, 75 missing vals`,(()=>{return r=void 0,o=void 0,s=function*(){const r=function(n){const e=On.length,r=[];let o=0;const i=new Map;for(let e=0;e<5;++e){const s=new Int32Array(n),a=`int #${e+1}`,u=[];for(let t=0;t<n;++t)s[t]=Math.floor(10*Math.random());for(let e=0;e<5;++e)o=Math.floor(n*Math.random()),s[o]=t.INT_NULL,u.push(o);r.push(t.Column.fromInt32Array(a,s)),i.set(a,u)}for(let e=0;e<5;++e){const s=new Float32Array(n),a=`float #${e+1}`,u=[];for(let t=0;t<n;++t)s[t]=10*Math.random();for(let e=0;e<5;++e)o=Math.floor(n*Math.random()),s[o]=t.FLOAT_NULL,u.push(o);r.push(t.Column.fromFloat32Array(a,s)),i.set(a,u)}for(let s=0;s<5;++s){const a=new Array(n),u=`str #${s+1}`,c=[];for(let t=0;t<n;++t)a[t]=On[Math.floor(Math.random()*e)];const l=t.Column.fromStrings(u,a);for(let t=0;t<5;++t)o=Math.floor(n*Math.random()),l.set(o,null),c.push(o);r.push(l),i.set(u,c)}return{df:t.DataFrame.fromColumns(r),misValsIds:i}}(1e5),o=r.df,i=o.columns.names(),s=new Map,a=r.misValsIds;for(const t of o.columns){const n=he(t.type);s.set(t.name,{weight:n.defaultWeight,type:n.defaultMetric})}const u=function(e,r,o,i,s,a,u){if(a<1)throw new Error(ee.INCORRECT_NEIGHBORS);if(e.rowCount<2)throw new Error(ee.KNN_NOT_ENOUGH_OF_ROWS);if(0===r.length)throw new Error(ee.KNN_NO_TARGET_COLUMNS);if(0===o.size)throw new Error(ee.KNN_NO_FEATURE_COLUMNS);1===o.size&&r.forEach((t=>{if(o.has(t))throw new Error(`${ee.KNN_NO_FEATURE_COLUMNS} can be used for the column '${t}'`)})),r.forEach((t=>{if(!i.has(t))throw new Error(`${ee.KNN_FAILS}: ${ee.WRONG_PREDICTIONS}`)}));const c=e.columns;r.forEach((t=>{if(!se.includes(c.byName(t).type))throw new Error(ee.UNSUPPORTED_COLUMN_TYPE)})),o.forEach(((t,n)=>{if(!se.includes(e.getCol(n).type))throw new Error(ee.UNSUPPORTED_COLUMN_TYPE)}));const l=new Map;return r.forEach((r=>{const f=c.byName(r),h=ae(f),m=f.length,d=f.getRawData(),p=new Uint16Array(f.categories.length),g=[],y=[],v=[],w=[];o.forEach(((t,n)=>{if(n!==f.name){const e=c.byName(n);switch(g.push(e.getRawData()),y.push(ae(e)),t.type){case ue.DIFFERENCE:v.push(((n,e)=>t.weight*Math.abs(n-e)));break;case ue.ONE_HOT:v.push(((n,e)=>t.weight*(n===e?0:1)))}}}));const E=g.length,A=new Uint32Array(g.length),C=new Float32Array(g.length);let _=0;const N=new Array(a);let x=0,b=0,S=0,T=0,M=0;const I=(t,n)=>{A.forEach(((e,r)=>{C[r]=v[e](g[e][t],g[e][n])}))},O=s===ce.EUCLIDEAN?()=>{let t=0;for(let n=0;n<_;++n)t+=C[n]*C[n];return Math.sqrt(t)}:()=>{let t=0;for(let n=0;n<_;++n)t+=Math.abs(C[n]);return Math.sqrt(t)},R=t=>{if(d[t]===h)return!1;for(let n=0;n<_;++n)if(g[A[n]][t]===y[A[n]])return!1;return!0},L=n=>{if((t=>{_=0;for(let n=0;n<E;++n)g[n][t]!==y[n]&&(A[_]=n,++_)})(n),0===_)throw new Error(`${ee.KNN_IMPOSSIBLE_IMPUTATION}: the column "${f.name}", row ${n+1}`);x=0;for(let t=0;t<m;++t)if(R(t)&&t!==n){I(n,t);const e=O();if(x<a)N[x]={index:t,dist:e},++x;else{b=0,S=N[0].dist;for(let t=1;t<x;++t)S<N[t].dist&&(S=N[t].dist,b=t);e<S&&(N[b]={index:t,dist:e})}}if(0===x)throw new Error(`${ee.KNN_IMPOSSIBLE_IMPUTATION}: the column "${f.name}", row ${n+1}`);if(f.type===t.COLUMN_TYPE.STRING)return(()=>{p.forEach(((t,n,e)=>e[n]=0));let t=0;for(t=0;t<x;++t)++p[d[N[t].index]];let n=p[0],e=0;return p.forEach(((t,r)=>{t>n&&(n=t,e=r)})),e})();T=0;for(let t=0;t<x;++t)T+=d[N[t].index];return M=T/x,f.type===t.COLUMN_TYPE.INT?Math.round(M):M};if(u){for(const t of i.get(r))try{d[t]=L(t)}catch(e){w.push(t),e instanceof Error||n.shell.error(ee.CORE_ISSUE)}w.length>0&&l.set(r,w),f.set(0,f.get(0))}else{const t=f.clone();let o=1,s=`${r}(${re})`;for(;e.columns.contains(s);)s=`${r}(${re} ${o})`,++o;t.name=s;const a=t.getRawData();for(const t of i.get(r))try{a[t]=L(t)}catch(e){w.push(t),e instanceof Error||n.shell.error(ee.CORE_ISSUE)}w.length>0&&l.set(s,w),t.set(0,t.get(0)),e.columns.add(t)}})),l}(o,i,s,a,e,5,!0);let c=0;u.forEach(((t,n)=>c+=t.length)),R(c,0,`Failed to impute ${c} missing values`)},new((i=void 0)||(i=Promise))((function(t,n){function e(t){try{u(s.next(t))}catch(t){n(t)}}function a(t){try{u(s.throw(t))}catch(t){n(t)}}function u(n){var r;n.done?t(n.value):(r=n.value,r instanceof i?r:new i((function(t){t(r)}))).then(e,a)}u((s=s.apply(r,o||[])).next())}));var r,o,i,s}),{timeout:1e4,benchmark:!0})};L("Missing values imputation",(()=>{me(ce.EUCLIDEAN),me(ce.MANHATTAN)}));var de,pe=e(6572);function ge(t){if(t<=0||t>=1)throw new Error(de.INCORRECT_SIGNIFICANCE_LEVEL)}function ye(t){const n=t.size;return n<=1?0:(t.sumOfSquares-Math.pow(t.sum,2)/n)/(n-1)}function ve(t,n,e){ge(e);const r=ye(t),o=ye(n);return 0===r||0===o?r===o:r/o<pe.centralF.inv(1-e,t.size-1,n.size-1)}!function(t){t.NON_EQUAL_FACTORS_VALUES_SIZE="non-equal sizes of factor and values arrays",t.INCORRECT_SIGNIFICANCE_LEVEL="incorrect significance level",t.NON_EQUAL_VARIANCES="non-equal variances",t.NON_NORMAL_DISTRIB="non-normal distribution",t.UNSUPPORTED_COLUMN_TYPE="unsupported feature column type",t.INCORRECT_CATEGORIES_COL_TYPE="incorrect categories column type",t.SINGLE_FACTOR="single category features",t.CATS_EQUAL_SIZE="single value in each category",t.NO_FEATURE_VARIATION="no feature variation",t.NO_FEATURE_VARIATION_WITHIN_GROUPS="no feature variation within groups"}(de||(de={}));class we{constructor(t,n,e){if(this.nullsCount=0,t.length!==n.length)throw new Error(de.NON_EQUAL_FACTORS_VALUES_SIZE);if(!(n.stats.stdev>0))throw new Error(de.NO_FEATURE_VARIATION);this.setStats(t,n,e)}areVarsEqual(t){const n=this.catCount;if(1===n)return!0;const e={sum:this.sums[0],sumOfSquares:this.sumsOfSquares[0],size:this.subSampleSizes[0]};for(let r=1;r<n;++r)if(!ve(e,{sum:this.sums[r],sumOfSquares:this.sumsOfSquares[r],size:this.subSampleSizes[r]},t))return!1;return!0}getOneWayAnova(){let t=0,n=0,e=0,r=this.catCount,o=r;for(let i=0;i<r;++i)0!==this.subSampleSizes[i]?(t+=this.sums[i],n+=this.sumsOfSquares[i],e+=Math.pow(this.sums[i],2)/this.subSampleSizes[i]):--o;if(r=o,1===r)throw new Error(de.SINGLE_FACTOR);const i=this.size-this.nullsCount;if(i===r)throw new Error(de.CATS_EQUAL_SIZE);const s=n-Math.pow(t,2)/i,a=e-Math.pow(t,2)/i,u=s-a;if(0===u)throw new Error(de.NO_FEATURE_VARIATION_WITHIN_GROUPS);const c=r-1,l=i-r,f=a/c,h=u/l,m=f/h;return{ssBn:a,ssWn:u,ssTot:s,dfBn:c,dfWn:l,dfTot:i-1,msBn:f,msWn:h,fStat:m,pValue:1-pe.centralF.cdf(m,c,l)}}setStats(n,e,r){const o=e.type,i=e.length,s=ae(e);switch(o){case t.COLUMN_TYPE.INT:case t.COLUMN_TYPE.FLOAT:const o=r;this.catCount=o,this.size=i;const a=e.getRawData(),u=n.getRawData(),c=new Float64Array(o).fill(0),l=new Float64Array(o).fill(0),f=new Int32Array(o).fill(0);let h;if(n.type==t.COLUMN_TYPE.BOOL){let t=0,n=0,e=u[0];const r=8*u.BYTES_PER_ELEMENT-1;for(let o=0;o<i;++o)h=1&e>>n,a[o]!==s?(c[h]+=a[o],l[h]+=Math.pow(a[o],2),++f[h]):++this.nullsCount,++n,n>r&&(n=0,++t,e=u[t])}else{const t=n.stats.missingValueCount>0?ae(n):-1;for(let n=0;n<i;++n)h=u[n],h!==t&&a[n]!==s?(c[h]+=a[n],l[h]+=Math.pow(a[n],2),++f[h]):++this.nullsCount}this.sums=c,this.sumsOfSquares=l,this.subSampleSizes=f;break;default:throw new Error(de.UNSUPPORTED_COLUMN_TYPE)}}}function Ee(t,n,e,r=!0){ge(e);const o=t.stats.uniqueCount;if(o<2)throw new Error(de.SINGLE_FACTOR);const i=new we(t,n,o);if(r&&!i.areVarsEqual(e))throw new Error(de.NON_EQUAL_VARIANCES);const s=i.getOneWayAnova();return{anovaTable:s,fCritical:pe.centralF.inv(1-e,s.dfBn,s.dfWn),significance:e}}var Ae=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const Ce=.05,_e=!1,Ne=t.Column.fromList(t.COLUMN_TYPE.INT,"features",[9,12,4,8,7,4,6,8,2,10,1,3,4,5,2]),xe=t.Column.fromStrings("features",["A","A","A","A","A","B","B","B","B","B","C","C","C","C","C"]);var be;!function(t){t[t.DF_BN=2]="DF_BN",t[t.DF_TOT=14]="DF_TOT",t[t.DF_WN=12]="DF_WN",t[t.SS_BN=63.333]="SS_BN",t[t.SS_TOT=147.333]="SS_TOT",t[t.SS_WN=84]="SS_WN",t[t.MS_BN=31.666]="MS_BN",t[t.MS_WN=7]="MS_WN",t[t.F_STAT=4.523]="F_STAT",t[t.F_CRIT=3.885]="F_CRIT",t[t.P_VAL=.034]="P_VAL"}(be||(be={})),L("ANOVA",(()=>{O("Performance: 1M rows demog",(()=>Ae(void 0,void 0,void 0,(function*(){const t=n.data.demo.demog(1e6),e=t.col("race"),r=t.col("height");new we(e,r,e.stats.uniqueCount).areVarsEqual(Ce),Ee(e,r,Ce,_e)}))),{timeout:4e3,benchmark:!0}),O("Correctness",(()=>Ae(void 0,void 0,void 0,(function*(){const t=Ee(xe,Ne,Ce,_e),n=t.anovaTable;R(n.dfBn,be.DF_BN,"Incorrect degrees of freedom: dfBn"),R(n.dfTot,be.DF_TOT,"Incorrect degrees of freedom: dfTot"),R(n.dfWn,be.DF_WN,"Incorrect degrees of freedom: dfWn");const e=(t,n)=>Math.abs(t-n)<.01;R(e(n.ssBn,be.SS_BN),!0,"Incorrect sum of squares: ssBn"),R(e(n.ssTot,be.SS_TOT),!0,"Incorrect sum of squares: ssTot"),R(e(n.ssWn,be.SS_WN),!0,"Incorrect sum of squares: ssWn"),R(e(n.msBn,be.MS_BN),!0,"Incorrect mean squares: msBn"),R(e(n.msWn,be.MS_WN),!0,"Incorrect mean squares: msWn"),R(e(n.fStat,be.F_STAT),!0,"Incorrect F-statistics value"),R(e(n.pValue,be.P_VAL),!0,"Incorrect p-value"),R(e(t.fCritical,be.F_CRIT),!0,"Incorrect F-critical")}))),{timeout:4e3})}));var Se=function(t,n,e,r){return new(e||(e=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function a(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(s,a)}u((r=r.apply(t,n||[])).next())}))};const Te=new t.Package;function Me(e,r,o){return Se(this,void 0,void 0,(function*(){const m=yield function(e){var r,o,m,d,p,g;return i(this,void 0,void 0,(function*(){const y=null===(o=null===(r=n.functions.getCurrentCall())||void 0===r?void 0:r.func)||void 0===o?void 0:o.package,v=(null!==(d=(null!==(m=null==y?void 0:y.packageOwner)&&void 0!==m?m:"").match(new RegExp("[^<]*<([^>]*)>")))&&void 0!==d?d:["",""])[1];yield D(y);const w=[];console.log("Running tests"),null!=e||(e={}),null!==(p=(g=e).testContext)&&void 0!==p||(g.testContext=new M),n.shell.clearLastError();const E=function(){const t=[];return console.log=(...n)=>{t.push(...n),u(...n)},console.info=(...n)=>{t.push(...n),c(...n)},console.warn=(...n)=>{t.push(...n),l(...n)},console.error=(...n)=>{t.push(...n),f(...n)},t}();yield function(e,r){var o,s,a,h,m,d,p;return i(this,void 0,void 0,(function*(){try{for(const[t,n]of Object.entries(e)){if((null==r?void 0:r.category)&&!t.toLowerCase().startsWith(null==r?void 0:r.category.toLowerCase())||(null===(o=r.exclude)||void 0===o?void 0:o.some((n=>t.startsWith(n)))))continue;u(`Started ${t} category`);const e=null===(s=n.tests)||void 0===s?void 0:s.every((t=>{var n;return null===(n=t.options)||void 0===n?void 0:n.skipReason}));e||(n.beforeStatus=yield A(n.before,null!==(a=r.category)&&void 0!==a?a:""));let c,l=null!==(h=n.tests)&&void 0!==h?h:[];r.stressTest&&(l=l.filter((t=>{var n;return null===(n=t.options)||void 0===n?void 0:n.stressTest})),l=k(l)),(null!==(d=null===(m=r.tags)||void 0===m?void 0:m.length)&&void 0!==d?d:0)>0&&(l=l.filter((t=>{var n,e;return null===(e=null===(n=t.options)||void 0===n?void 0:n.tags)||void 0===e?void 0:e.some((t=>{var n;return(null!==(n=null==r?void 0:r.tags)&&void 0!==n?n:[]).includes(t)}))}))),n.beforeStatus?(c=Array.from(l.map((n=>({date:(new Date).toISOString(),logs:"",category:t,name:n.name,result:"before() failed",success:!1,ms:0,skipped:!1})))),c.forEach((t=>i(this,void 0,void 0,(function*(){return F("package",t)}))))):c=yield C(n,r);const f=c.filter((t=>"skipped"!=t.result));e||(n.afterStatus=yield A(n.after,null!==(p=r.category)&&void 0!==p?p:"")),n.afterStatus&&f.push({date:(new Date).toISOString(),logs:"",category:t,name:"after",result:n.afterStatus,success:!1,ms:0,skipped:!1}),n.beforeStatus&&f.push({date:(new Date).toISOString(),logs:"",category:t,name:"before",result:n.beforeStatus,success:!1,ms:0,skipped:!1}),w.push(...f)}}finally{console.log=u,console.info=c,console.warn=l,console.error=f}if(r.testContext.catchUnhandled&&!t.Test.isInBenchmark){yield H(1e3);const e=yield n.shell.lastError,r={logs:"",date:(new Date).toISOString(),category:"Unhandled exceptions",name:"Exception",result:null!=e?e:"",success:!e,ms:0,skipped:!1,flaking:t.Test.isReproducing&&!e,owner:null!=v?v:""};w.push(r),r.package=y.name,yield F("package",r)}}))}(h,e);for(let t of w)t.result=t.result.toString().replace(/"/g,"'"),null!=t.logs&&(t.logs=t.logs.toString().replace(/"/g,"'"));return w;function A(t,n){return i(this,void 0,void 0,(function*(){var e=void 0;try{void 0!==t&&(yield G((()=>i(this,void 0,void 0,(function*(){yield t()}))),1e5,`before ${n}: timeout error`))}catch(t){e=yield U(t)}return e}))}function C(e,r){var o,u,c,l,f,h,m,d,p,g,w,A,C,_,N,x,b,S,T,M,I,O,R,L;return i(this,void 0,void 0,(function*(){let i=null!==(o=e.tests)&&void 0!==o?o:[];const P=[],D=null===(c=null===(u=null===window||void 0===window?void 0:window.performance)||void 0===u?void 0:u.memory)||void 0===c?void 0:c.usedJSHeapSize,F=t.Widget.getAll().length;if(e.clear)for(let o=0;o<i.length;o++){i[o].options&&void 0===(null===(l=i[o].options)||void 0===l?void 0:l.benchmark)&&(i[o].options||(i[o].options={}),i[o].options.benchmark=null!==(f=e.benchmarks)&&void 0!==f&&f);let u=i[o];(null==u?void 0:u.options)&&(u.options.owner=null!==(p=null!==(d=null!==(m=null===(h=i[o].options)||void 0===h?void 0:h.owner)&&void 0!==m?m:null==e?void 0:e.owner)&&void 0!==d?d:v)&&void 0!==p?p:""),window.gc&&window.gc();let c=yield B(u,null==r?void 0:r.test,E,t.Test.isInBenchmark?null!==(w=null===(g=i[o].options)||void 0===g?void 0:g.benchmarkTimeout)&&void 0!==w?w:a:null!==(C=null===(A=i[o].options)||void 0===A?void 0:A.timeout)&&void 0!==C?C:s,y.name,r.verbose);window.gc&&window.gc(),c&&P.push(Object.assign(Object.assign({},c),{memoryDelta:(null===(N=null===(_=null===window||void 0===window?void 0:window.performance)||void 0===_?void 0:_.memory)||void 0===N?void 0:N.usedJSHeapSize)-D,widgetsDelta:t.Widget.getAll().length-F})),n.shell.closeAll(),t.Balloon.closeAll()}else for(let n=0;n<i.length;n++){let o=i[n];(null==o?void 0:o.options)&&(o.options.owner=null!==(T=null!==(S=null!==(b=null===(x=i[n].options)||void 0===x?void 0:x.owner)&&void 0!==b?b:null==e?void 0:e.owner)&&void 0!==S?S:v)&&void 0!==T?T:""),window.gc&&window.gc();let s=yield B(o,null==r?void 0:r.test,E,t.Test.isInBenchmark?null!==(I=null===(M=i[n].options)||void 0===M?void 0:M.benchmarkTimeout)&&void 0!==I?I:a:null===(O=i[n].options)||void 0===O?void 0:O.timeout,y.name,r.verbose);window.gc&&window.gc(),s&&P.push(Object.assign(Object.assign({},s),{memoryUsed:(null===(L=null===(R=null===window||void 0===window?void 0:window.performance)||void 0===R?void 0:R.memory)||void 0===L?void 0:L.usedJSHeapSize)-D,widgetsDifference:t.Widget.getAll().length-F}))}return P}))}}))}({category:e,test:r,testContext:o});return t.DataFrame.fromObjects(m)}))}function Ie(){return Se(this,void 0,void 0,(function*(){yield D(Te,Te.getModule("package-test.js"))}))}})(),eda_test=r})();
|
|
2
2
|
//# sourceMappingURL=package-test.js.map
|