@datagrok/eda 1.4.3 → 1.4.4

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.
Files changed (152) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/_d4c0.js +279 -0
  3. package/dist/_d4c0.js.map +1 -0
  4. package/dist/node_modules_datagrok-libraries_math_src_dbscan_wasm_clustering-worker_js.js +279 -0
  5. package/dist/node_modules_datagrok-libraries_math_src_dbscan_wasm_clustering-worker_js.js.map +1 -0
  6. package/dist/node_modules_datagrok-libraries_ml_src_MCL_mcl-sparse-matrix-mult-worker_js.js +59 -0
  7. package/dist/node_modules_datagrok-libraries_ml_src_MCL_mcl-sparse-matrix-mult-worker_js.js.map +1 -0
  8. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_distance-matrix-worker_js.js +284 -0
  9. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_distance-matrix-worker_js.js.map +1 -0
  10. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_single-value-knn-worker_js.js +265 -0
  11. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_single-value-knn-worker_js.js.map +1 -0
  12. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_sparse-matrix-worker_js.js +287 -0
  13. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_sparse-matrix-worker_js.js.map +1 -0
  14. package/dist/package-test.js +26140 -1
  15. package/dist/package-test.js.map +1 -1
  16. package/dist/package.js +30337 -1
  17. package/dist/package.js.map +1 -1
  18. package/dist/src_workers_softmax-worker_ts.js +154 -0
  19. package/dist/src_workers_softmax-worker_ts.js.map +1 -0
  20. package/dist/src_workers_tsne-worker_ts.js +244 -0
  21. package/dist/src_workers_tsne-worker_ts.js.map +1 -0
  22. package/dist/src_workers_umap-worker_ts.js +252 -0
  23. package/dist/src_workers_umap-worker_ts.js.map +1 -0
  24. package/dist/vendors-node_modules_datagrok-libraries_math_src_dbscan_wasm_dbscan_js.js +1253 -0
  25. package/dist/vendors-node_modules_datagrok-libraries_math_src_dbscan_wasm_dbscan_js.js.map +1 -0
  26. package/dist/vendors-node_modules_datagrok-libraries_math_src_hierarchical-clustering_wasm_clustering-worker_js.js +942 -0
  27. package/dist/vendors-node_modules_datagrok-libraries_math_src_hierarchical-clustering_wasm_clustering-worker_js.js.map +1 -0
  28. package/dist/vendors-node_modules_datagrok-libraries_math_src_webGPU_sparse-matrix_webGPU-sparse-matrix_js-07693f.js +1525 -0
  29. package/dist/vendors-node_modules_datagrok-libraries_math_src_webGPU_sparse-matrix_webGPU-sparse-matrix_js-07693f.js.map +1 -0
  30. package/dist/vendors-node_modules_datagrok-libraries_ml_src_MCL_mcl-worker_js-node_modules_datagrok-librar-e4203d.js +2244 -0
  31. package/dist/vendors-node_modules_datagrok-libraries_ml_src_MCL_mcl-worker_js-node_modules_datagrok-librar-e4203d.js.map +1 -0
  32. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_knn-threshold-worker_js.js +286 -0
  33. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_knn-threshold-worker_js.js.map +1 -0
  34. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_knn-worker_js.js +280 -0
  35. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_knn-worker_js.js.map +1 -0
  36. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_sparse-matrix-threshold-worker_js.js +282 -0
  37. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_sparse-matrix-threshold-worker_js.js.map +1 -0
  38. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_utils_js-node_modules_datagrok-72c7b2.js +1821 -0
  39. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_utils_js-node_modules_datagrok-72c7b2.js.map +1 -0
  40. package/dist/vendors-node_modules_datagrok-libraries_ml_src_multi-column-dimensionality-reduction_mulit-co-3800a0.js +7776 -0
  41. package/dist/vendors-node_modules_datagrok-libraries_ml_src_multi-column-dimensionality-reduction_mulit-co-3800a0.js.map +1 -0
  42. package/dist/vendors-node_modules_keckelt_tsne_lib_index_js.js +379 -0
  43. package/dist/vendors-node_modules_keckelt_tsne_lib_index_js.js.map +1 -0
  44. package/dist/vendors-node_modules_ml-matrix_matrix_mjs.js +5946 -0
  45. package/dist/vendors-node_modules_ml-matrix_matrix_mjs.js.map +1 -0
  46. package/dist/vendors-node_modules_umap-js_dist_index_js.js +2284 -0
  47. package/dist/vendors-node_modules_umap-js_dist_index_js.js.map +1 -0
  48. package/dist/wasm_EDAForWebWorker_js-wasm_callWasmForWebWorker_js.js +779 -0
  49. package/dist/wasm_EDAForWebWorker_js-wasm_callWasmForWebWorker_js.js.map +1 -0
  50. package/dist/wasm_workers_errorWorker_js.js +267 -0
  51. package/dist/wasm_workers_errorWorker_js.js.map +1 -0
  52. package/dist/wasm_workers_fitLinearRegressionParamsWithDataNormalizingWorker_js.js +267 -0
  53. package/dist/wasm_workers_fitLinearRegressionParamsWithDataNormalizingWorker_js.js.map +1 -0
  54. package/dist/wasm_workers_fitLinearRegressionParamsWorker_js.js +267 -0
  55. package/dist/wasm_workers_fitLinearRegressionParamsWorker_js.js.map +1 -0
  56. package/dist/wasm_workers_fitSoftmaxWorker_js.js +267 -0
  57. package/dist/wasm_workers_fitSoftmaxWorker_js.js.map +1 -0
  58. package/dist/wasm_workers_generateDatasetWorker_js.js +267 -0
  59. package/dist/wasm_workers_generateDatasetWorker_js.js.map +1 -0
  60. package/dist/wasm_workers_normalizeDatasetWorker_js.js +267 -0
  61. package/dist/wasm_workers_normalizeDatasetWorker_js.js.map +1 -0
  62. package/dist/wasm_workers_partialLeastSquareRegressionWorker_js.js +267 -0
  63. package/dist/wasm_workers_partialLeastSquareRegressionWorker_js.js.map +1 -0
  64. package/dist/wasm_workers_predictByLSSVMWorker_js.js +267 -0
  65. package/dist/wasm_workers_predictByLSSVMWorker_js.js.map +1 -0
  66. package/dist/wasm_workers_principalComponentAnalysisNipalsWorker_js.js +267 -0
  67. package/dist/wasm_workers_principalComponentAnalysisNipalsWorker_js.js.map +1 -0
  68. package/dist/wasm_workers_principalComponentAnalysisWorkerUpd_js.js +271 -0
  69. package/dist/wasm_workers_principalComponentAnalysisWorkerUpd_js.js.map +1 -0
  70. package/dist/wasm_workers_trainAndAnalyzeLSSVMWorker_js.js +267 -0
  71. package/dist/wasm_workers_trainAndAnalyzeLSSVMWorker_js.js.map +1 -0
  72. package/dist/wasm_workers_trainLSSVMWorker_js.js +267 -0
  73. package/dist/wasm_workers_trainLSSVMWorker_js.js.map +1 -0
  74. package/dist/wasm_workers_xgboostWorker_js.js +279 -0
  75. package/dist/wasm_workers_xgboostWorker_js.js.map +1 -0
  76. package/package.json +5 -4
  77. package/src/package-api.ts +259 -0
  78. package/src/package.g.ts +522 -0
  79. package/src/package.ts +907 -678
  80. package/test-console-output-1.log +78 -93
  81. package/test-record-1.mp4 +0 -0
  82. package/tsconfig.json +2 -2
  83. package/webpack.config.js +5 -0
  84. package/dist/111.js +0 -2
  85. package/dist/111.js.map +0 -1
  86. package/dist/128.js +0 -2
  87. package/dist/128.js.map +0 -1
  88. package/dist/153.js +0 -2
  89. package/dist/153.js.map +0 -1
  90. package/dist/23.js +0 -2
  91. package/dist/23.js.map +0 -1
  92. package/dist/234.js +0 -2
  93. package/dist/234.js.map +0 -1
  94. package/dist/242.js +0 -2
  95. package/dist/242.js.map +0 -1
  96. package/dist/260.js +0 -2
  97. package/dist/260.js.map +0 -1
  98. package/dist/33.js +0 -2
  99. package/dist/33.js.map +0 -1
  100. package/dist/348.js +0 -2
  101. package/dist/348.js.map +0 -1
  102. package/dist/377.js +0 -2
  103. package/dist/377.js.map +0 -1
  104. package/dist/412.js +0 -2
  105. package/dist/412.js.map +0 -1
  106. package/dist/415.js +0 -2
  107. package/dist/415.js.map +0 -1
  108. package/dist/501.js +0 -2
  109. package/dist/501.js.map +0 -1
  110. package/dist/531.js +0 -2
  111. package/dist/531.js.map +0 -1
  112. package/dist/583.js +0 -2
  113. package/dist/583.js.map +0 -1
  114. package/dist/589.js +0 -2
  115. package/dist/589.js.map +0 -1
  116. package/dist/603.js +0 -2
  117. package/dist/603.js.map +0 -1
  118. package/dist/656.js +0 -2
  119. package/dist/656.js.map +0 -1
  120. package/dist/682.js +0 -2
  121. package/dist/682.js.map +0 -1
  122. package/dist/705.js +0 -2
  123. package/dist/705.js.map +0 -1
  124. package/dist/727.js +0 -2
  125. package/dist/727.js.map +0 -1
  126. package/dist/731.js +0 -2
  127. package/dist/731.js.map +0 -1
  128. package/dist/738.js +0 -3
  129. package/dist/738.js.LICENSE.txt +0 -51
  130. package/dist/738.js.map +0 -1
  131. package/dist/763.js +0 -2
  132. package/dist/763.js.map +0 -1
  133. package/dist/778.js +0 -2
  134. package/dist/778.js.map +0 -1
  135. package/dist/783.js +0 -2
  136. package/dist/783.js.map +0 -1
  137. package/dist/793.js +0 -2
  138. package/dist/793.js.map +0 -1
  139. package/dist/801.js +0 -2
  140. package/dist/801.js.map +0 -1
  141. package/dist/810.js +0 -2
  142. package/dist/810.js.map +0 -1
  143. package/dist/860.js +0 -2
  144. package/dist/860.js.map +0 -1
  145. package/dist/907.js +0 -2
  146. package/dist/907.js.map +0 -1
  147. package/dist/950.js +0 -2
  148. package/dist/950.js.map +0 -1
  149. package/dist/980.js +0 -2
  150. package/dist/980.js.map +0 -1
  151. package/dist/990.js +0 -2
  152. package/dist/990.js.map +0 -1
@@ -0,0 +1,779 @@
1
+ "use strict";
2
+ (self["webpackChunkeda"] = self["webpackChunkeda"] || []).push([["wasm_EDAForWebWorker_js-wasm_callWasmForWebWorker_js"],{
3
+
4
+ /***/ "./wasm/EDA.wasm":
5
+ /*!***********************!*\
6
+ !*** ./wasm/EDA.wasm ***!
7
+ \***********************/
8
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9
+
10
+ module.exports = __webpack_require__.p + "3cec7d4ab7dacdcb37e6.wasm";
11
+
12
+ /***/ }),
13
+
14
+ /***/ "./wasm/EDAForWebWorker.js":
15
+ /*!*********************************!*\
16
+ !*** ./wasm/EDAForWebWorker.js ***!
17
+ \*********************************/
18
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
19
+
20
+ __webpack_require__.r(__webpack_exports__);
21
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22
+ /* harmony export */ exportEDA: () => (/* binding */ exportEDA)
23
+ /* harmony export */ });
24
+ /* module decorator */ module = __webpack_require__.hmd(module);
25
+
26
+ var exportEDA = (() => {
27
+ var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
28
+
29
+ return (
30
+ function(exportEDA) {
31
+ exportEDA = exportEDA || {};
32
+
33
+ var Module=typeof exportEDA!="undefined"?exportEDA:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||268435456;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="EDA.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(new URL(/* asset import */ __webpack_require__(/*! ../wasm/EDA.wasm */ "./wasm/EDA.wasm"), __webpack_require__.b)).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["f"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["k"];addOnInit(Module["asm"]["g"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(new URL(/* asset import */ __webpack_require__(/*! ../wasm/EDA.wasm */ "./wasm/EDA.wasm"), __webpack_require__.b)).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function getCFunc(ident){var func=Module["_"+ident];return func}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}function cwrap(ident,returnType,argTypes,opts){argTypes=argTypes||[];var numericArgs=argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}var asmLibraryArg={"a":___assert_fail,"b":___cxa_throw,"c":_abort,"e":_emscripten_memcpy_big,"d":_emscripten_resize_heap};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["g"]).apply(null,arguments)};var _principalComponentAnalysis=Module["_principalComponentAnalysis"]=function(){return(_principalComponentAnalysis=Module["_principalComponentAnalysis"]=Module["asm"]["h"]).apply(null,arguments)};var _error=Module["_error"]=function(){return(_error=Module["_error"]=Module["asm"]["i"]).apply(null,arguments)};var _principalComponentAnalysisNipals=Module["_principalComponentAnalysisNipals"]=function(){return(_principalComponentAnalysisNipals=Module["_principalComponentAnalysisNipals"]=Module["asm"]["j"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["l"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["m"]).apply(null,arguments)};var _partialLeastSquareRegression=Module["_partialLeastSquareRegression"]=function(){return(_partialLeastSquareRegression=Module["_partialLeastSquareRegression"]=Module["asm"]["n"]).apply(null,arguments)};var _generateDataset=Module["_generateDataset"]=function(){return(_generateDataset=Module["_generateDataset"]=Module["asm"]["o"]).apply(null,arguments)};var _normalizeDataset=Module["_normalizeDataset"]=function(){return(_normalizeDataset=Module["_normalizeDataset"]=Module["asm"]["p"]).apply(null,arguments)};var _trainLSSVM=Module["_trainLSSVM"]=function(){return(_trainLSSVM=Module["_trainLSSVM"]=Module["asm"]["q"]).apply(null,arguments)};var _predictByLSSVM=Module["_predictByLSSVM"]=function(){return(_predictByLSSVM=Module["_predictByLSSVM"]=Module["asm"]["r"]).apply(null,arguments)};var _trainAndAnalyzeLSSVM=Module["_trainAndAnalyzeLSSVM"]=function(){return(_trainAndAnalyzeLSSVM=Module["_trainAndAnalyzeLSSVM"]=Module["asm"]["s"]).apply(null,arguments)};var _fitLinearRegressionParamsWithDataNormalizing=Module["_fitLinearRegressionParamsWithDataNormalizing"]=function(){return(_fitLinearRegressionParamsWithDataNormalizing=Module["_fitLinearRegressionParamsWithDataNormalizing"]=Module["asm"]["t"]).apply(null,arguments)};var _fitLinearRegressionParams=Module["_fitLinearRegressionParams"]=function(){return(_fitLinearRegressionParams=Module["_fitLinearRegressionParams"]=Module["asm"]["u"]).apply(null,arguments)};var _fitSoftmax=Module["_fitSoftmax"]=function(){return(_fitSoftmax=Module["_fitSoftmax"]=Module["asm"]["v"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["w"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["x"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["y"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["z"]).apply(null,arguments)};Module["ccall"]=ccall;Module["cwrap"]=cwrap;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
34
+
35
+
36
+ return exportEDA.ready
37
+ }
38
+ );
39
+ })();
40
+ if (typeof exports === 'object' && "object" === 'object')
41
+ module.exports = exportEDA;
42
+ else if (typeof define === 'function' && __webpack_require__.amdO)
43
+ define([], function() { return exportEDA; });
44
+ else if (typeof exports === 'object')
45
+ exports["exportEDA"] = exportEDA;
46
+
47
+
48
+ /***/ }),
49
+
50
+ /***/ "./wasm/callWasmForWebWorker.js":
51
+ /*!**************************************!*\
52
+ !*** ./wasm/callWasmForWebWorker.js ***!
53
+ \**************************************/
54
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
55
+
56
+ __webpack_require__.r(__webpack_exports__);
57
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
58
+ /* harmony export */ cppWrapper: () => (/* binding */ cppWrapper),
59
+ /* harmony export */ getCppInput: () => (/* binding */ getCppInput),
60
+ /* harmony export */ getResult: () => (/* binding */ getResult)
61
+ /* harmony export */ });
62
+ // Utilities for calling wasm-functions via webworker.
63
+
64
+ // We use an approach that is well described here:
65
+ // https://becominghuman.ai/passing-and-returning-webassembly-array-parameters-a0f572c65d97
66
+ // It has been modified for usage in DATAGROK.
67
+
68
+ // Constants for wasm-functions in webworkers runtime system
69
+ const TYPE = 'type';
70
+ const NUM_TYPE = 'num';
71
+ const FLOAT_COLUMN_TYPE = 'floatColumn';
72
+ const INT_COLUMN_TYPE = 'intColumn';
73
+ const FLOAT_COLUMNS_TYPE = 'floatColumns';
74
+ const NEW_FLOAT_COLUMNS_TYPE = 'newFloatColumns';
75
+ const INT_COLUMNS_TYPE = 'intColumns';
76
+ const NEW_INT_COLUMNS_TYPE = 'newIntColumns';
77
+ const NEW_FLOAT_COLUMN_TYPE = 'newFloatColumn';
78
+ const NEW_INT_COLUMN_TYPE = 'newIntColumn';
79
+ const COLUMN = 'column';
80
+ const CALL_RESULT = '_callResult';
81
+ const NUM_OF_ROWS = 'numOfRows';
82
+ const NUM_OF_COLUMNS = 'numOfColumns';
83
+ const REF = 'ref';
84
+ const VALUE = 'value';
85
+ const TABLE_OF_COLUMNS = 'tableFromColumns';
86
+ const OBJECTS = 'objects';
87
+ const INT_TYPE = 'int';
88
+ const DOUBLE_TYPE = 'double';
89
+ const NUMBER = 'number';
90
+
91
+ // Type-to-heap correspondence.
92
+ // It is required for JS-module generated by Emscripten,
93
+ // and it is used, when passing array data to/from wasm-functions.
94
+ // More info can be found at the following link:
95
+ // https://becominghuman.ai/passing-and-returning-webassembly-array-parameters-a0f572c65d97
96
+ const heapMap = {
97
+ 'intColumn': "HEAP32",
98
+ 'floatColumn': "HEAPF32",
99
+ 'floatColumns': "HEAPF32",
100
+ 'newFloatColumns': "HEAPF32",
101
+ 'intColumns': "HEAP32",
102
+ 'newIntColumns': "HEAP32",
103
+ 'newFloatColumn': "HEAPF32",
104
+ 'newIntColumn': "HEAP32"
105
+ };
106
+
107
+ // Type signature to typed array map.
108
+ // It is used, when manipulating column(s).
109
+ const typeMap = {
110
+ 'intColumn': Int32Array,
111
+ 'floatColumn': Float32Array,
112
+ 'floatColumns': Float32Array,
113
+ 'newFloatColumns': Float32Array,
114
+ 'intColumns': Int32Array,
115
+ 'newIntColumns': Int32Array,
116
+ 'newFloatColumn': Float32Array,
117
+ 'newIntColumn': Int32Array
118
+ };
119
+
120
+ // Type-to-shift map.
121
+ // It is used, when passing array to/from wasm-functions.
122
+ // More info can be found at the following link:
123
+ // https://becominghuman.ai/passing-and-returning-webassembly-array-parameters-a0f572c65d97
124
+ const shiftMap = {'intColumn': 2,
125
+ 'floatColumn': 2,
126
+ 'floatColumns': 2,
127
+ 'newFloatColumns': 2,
128
+ 'intColumns': 2,
129
+ 'newIntColumns': 2,
130
+ 'newFloatColumn': 2,
131
+ 'newIntColumn': 2
132
+ };
133
+
134
+ // Get input for C++-function.
135
+ // This function takes specification of arguments (argsSpecification) & input data (inputVals)
136
+ // and returns input that will be further used in cpp/wasm-function.
137
+ function getCppInput(argsSpecification, inputVals) {
138
+ let cppFuncInput = [];
139
+ let ref;
140
+
141
+ // complete an input for cpp
142
+ let i = 0;
143
+ for(const key in argsSpecification) {
144
+ const arg = argsSpecification[key];
145
+ const type = arg.type;
146
+
147
+ // skip auxiliry element
148
+ if(key === CALL_RESULT)
149
+ continue;
150
+
151
+ // here, we consider each type of input
152
+ switch(type) {
153
+
154
+ // numbers
155
+ case NUM_TYPE:
156
+ case INT_TYPE:
157
+ case DOUBLE_TYPE:
158
+ arg.data = inputVals[i];
159
+ i++;
160
+ break;
161
+
162
+ // column
163
+ case INT_COLUMN_TYPE:
164
+ case FLOAT_COLUMN_TYPE:
165
+
166
+ let array;
167
+
168
+ // this is OK if type of column and target type coinside
169
+ //array = inputVals[i].getRawData();
170
+
171
+ const col = inputVals[i];
172
+ const len = col.length;
173
+
174
+ // here, we check types and perform an appropriate transform
175
+ if( ( (col.type === INT_TYPE) && (type === INT_COLUMN_TYPE) )
176
+ || ( (col.type === DOUBLE_TYPE) && (type === FLOAT_COLUMN_TYPE) ) )
177
+ array = col.getRawData().slice(0, len);
178
+ else
179
+ array = new typeMap[type](col.getRawData().slice(0, len));
180
+
181
+ /*if(((col.type == 'int') && (type == INT_COLUMN_TYPE))
182
+ || ((col.type == 'double') && (type == FLOAT_COLUMN_TYPE)))
183
+ array = col.getRawData();
184
+ else
185
+ array = new typeMap[type](col.getRawData());*/
186
+
187
+ // check types
188
+ arg.data = { 'array': array,
189
+ 'numOfRows': len};
190
+
191
+ i++;
192
+ break;
193
+
194
+ // new column
195
+ case NEW_INT_COLUMN_TYPE:
196
+ case NEW_FLOAT_COLUMN_TYPE:
197
+ let val = 0;
198
+
199
+ ref = arg[NUM_OF_ROWS][REF];
200
+
201
+ if (argsSpecification[ref].type === NUM_TYPE)
202
+ val = argsSpecification[ref].data;
203
+ else
204
+ val = argsSpecification[ref].data[arg[NUM_OF_ROWS][VALUE]];
205
+
206
+ arg.data = {'numOfRows': val};
207
+
208
+ i++;
209
+ break;
210
+
211
+ // columns or column_list
212
+ case INT_COLUMNS_TYPE:
213
+ case FLOAT_COLUMNS_TYPE:
214
+ let arrays = [];
215
+
216
+ // this is OK if type of columns and target type coinside
217
+ //for(let col of inputVals[i].toList())
218
+ // arrays.push(col.getRawData());
219
+
220
+ const rowCount = inputVals[i].byIndex(0).length;
221
+
222
+ // here, we check types and perform an appropriate transform
223
+ for(const col of inputVals[i].toList())
224
+ if( ( (col.type === INT_TYPE) && (type === INT_COLUMN_TYPE) )
225
+ || ( (col.type === DOUBLE_TYPE) && (type === FLOAT_COLUMN_TYPE) ) )
226
+ arrays.push(col.getRawData().slice(0, rowCount));
227
+ else
228
+ arrays.push(new typeMap[type](col.getRawData().slice(0, rowCount)));
229
+
230
+ /*for(let col of inputVals[i].toList())
231
+ if(((col.type == 'int') && (type == INT_COLUMN_TYPE))
232
+ || ((col.type == 'double') && (type == FLOAT_COLUMN_TYPE)))
233
+ arrays.push(col.getRawData());
234
+ else
235
+ arrays.push(new typeMap[type](col.getRawData()));*/
236
+
237
+ arg.data = { 'arrays': arrays,
238
+ 'numOfRows': rowCount,
239
+ 'numOfColumns': arrays.length};
240
+
241
+ i++;
242
+ break;
243
+
244
+ // new columns or new column_list
245
+ case NEW_INT_COLUMNS_TYPE:
246
+ case NEW_FLOAT_COLUMNS_TYPE:
247
+ let val1 = 0;
248
+ let val2 = 0;
249
+
250
+ ref = arg[NUM_OF_ROWS][REF];
251
+
252
+ if (argsSpecification[ref].type === NUM_TYPE)
253
+ val1 = argsSpecification[ref].data;
254
+ else
255
+ val1 = argsSpecification[ref].data[arg[NUM_OF_ROWS][VALUE]];
256
+
257
+ ref = arg[NUM_OF_COLUMNS][REF];
258
+
259
+ //console.log('Ref:');
260
+ //console.log(ref);
261
+ //console.log(argsSpecification[ref].data);
262
+
263
+ if (argsSpecification[ref].type === NUM_TYPE)
264
+ val2 = argsSpecification[ref].data;
265
+ else
266
+ val2 = argsSpecification[ref].data[arg[NUM_OF_COLUMNS][VALUE]];
267
+
268
+ arg.data = {'numOfRows': val1,
269
+ 'numOfColumns': val2};
270
+
271
+ i++;
272
+ break;
273
+
274
+ default:
275
+ return; // TODO: specify behaviour
276
+ } // switch
277
+
278
+ cppFuncInput.push(arg);
279
+ } // for key
280
+
281
+ //console.log('cppFuncInput:');
282
+ //console.log(cppFuncInput);
283
+
284
+ return cppFuncInput;
285
+ } // getCppInput
286
+
287
+ // Allocate memory for buffers for array data
288
+ function allocateMemoryForBuffer(module, inputs) {
289
+ for(const arg of inputs) {
290
+ const type = arg.type;
291
+
292
+ switch(type) { // Process each type of input
293
+
294
+ // numbers
295
+ case NUM_TYPE:
296
+ case INT_TYPE:
297
+ case DOUBLE_TYPE:
298
+ break;
299
+
300
+ // column & new column
301
+ case INT_COLUMN_TYPE:
302
+ case FLOAT_COLUMN_TYPE:
303
+ case NEW_FLOAT_COLUMN_TYPE:
304
+ case NEW_INT_COLUMN_TYPE:
305
+ arg.data.buf = module._malloc(arg.data.numOfRows * typeMap[type].BYTES_PER_ELEMENT);
306
+ break;
307
+
308
+ // columns & new columns
309
+ case INT_COLUMNS_TYPE:
310
+ case NEW_INT_COLUMNS_TYPE:
311
+ case FLOAT_COLUMNS_TYPE:
312
+ case NEW_FLOAT_COLUMNS_TYPE: // allocation memory for columns that are created
313
+ arg.data.buf = module._malloc(arg.data.numOfRows * arg.data.numOfColumns
314
+ * typeMap[type].BYTES_PER_ELEMENT);
315
+ break;
316
+
317
+ // TODO: process other cases and mistakes
318
+ default:
319
+ break;
320
+ }
321
+ }
322
+
323
+ //console.log('inputs after memory allocation:');
324
+ //console.log(inputs);
325
+ } // allocateMemoryForBuffer
326
+
327
+ // Get array of values that are put to wasm-function.
328
+ function getArrOfWasmParams(inputs) {
329
+ let params = [];
330
+
331
+ // Process each type of input
332
+ for(const arg of inputs) {
333
+ switch (arg.type) {
334
+
335
+ // numbers
336
+ case NUM_TYPE:
337
+ case INT_TYPE:
338
+ case DOUBLE_TYPE:
339
+ params.push(arg.data);
340
+ break;
341
+
342
+ // column & new column
343
+ case INT_COLUMN_TYPE:
344
+ case FLOAT_COLUMN_TYPE:
345
+ case NEW_FLOAT_COLUMN_TYPE:
346
+ case NEW_INT_COLUMN_TYPE:
347
+ params.push(arg.data.buf);
348
+ params.push(arg.data.numOfRows);
349
+ break;
350
+
351
+ // columns & new columns
352
+ case INT_COLUMNS_TYPE:
353
+ case NEW_INT_COLUMNS_TYPE:
354
+ case FLOAT_COLUMNS_TYPE:
355
+ case NEW_FLOAT_COLUMNS_TYPE:
356
+ params.push(arg.data.buf);
357
+ params.push(arg.data.numOfRows);
358
+ params.push(arg.data.numOfColumns);
359
+ break;
360
+
361
+ // TODO: process other cases and mistakes
362
+ default:
363
+ break;
364
+ }
365
+ }
366
+
367
+ return params;
368
+ } // getArrOfWasmParams
369
+
370
+ // Get array of types that are put to wasm-function.
371
+ function getArrOfWasmTypes(inputs) {
372
+ let types = [];
373
+
374
+ for(const arg of inputs) {
375
+ switch (arg.type) { // Process each type of input
376
+
377
+ // numbers
378
+ case NUM_TYPE:
379
+ case INT_TYPE:
380
+ case DOUBLE_TYPE:
381
+ types.push(NUMBER);
382
+ break;
383
+
384
+ // column & new column
385
+ case INT_COLUMN_TYPE:
386
+ case FLOAT_COLUMN_TYPE:
387
+ case NEW_FLOAT_COLUMN_TYPE:
388
+ case NEW_INT_COLUMN_TYPE:
389
+ types.push(NUMBER);
390
+ types.push(NUMBER);
391
+ break;
392
+
393
+ // columns & new columns
394
+ case INT_COLUMNS_TYPE:
395
+ case NEW_INT_COLUMNS_TYPE:
396
+ case FLOAT_COLUMNS_TYPE:
397
+ case NEW_FLOAT_COLUMNS_TYPE:
398
+ types.push(NUMBER);
399
+ types.push(NUMBER);
400
+ types.push(NUMBER);
401
+ break;
402
+
403
+ // TODO: process other cases and mistakes
404
+ default:
405
+ break;
406
+ }
407
+ }
408
+
409
+ return types;
410
+ } // getArrOfWasmTypes
411
+
412
+ // Put array data to buffer
413
+ function putDataToBuffer(module, inputs) {
414
+ let shift;
415
+ let heap;
416
+
417
+ for(const arg of inputs) {
418
+ const type = arg.type;
419
+
420
+ switch (type) { // Process each type of input
421
+
422
+ // numbers
423
+ case NUM_TYPE:
424
+ case INT_TYPE:
425
+ case DOUBLE_TYPE:
426
+ break;
427
+
428
+ // column
429
+ case INT_COLUMN_TYPE:
430
+ case FLOAT_COLUMN_TYPE:
431
+ shift = shiftMap[type];
432
+ heap = module[heapMap[type]];
433
+ heap.set(arg.data.array, arg.data.buf >> shift);
434
+ break;
435
+
436
+ // columns
437
+ case INT_COLUMNS_TYPE:
438
+ case FLOAT_COLUMNS_TYPE:
439
+ shift = shiftMap[type];
440
+ heap = module[heapMap[type]];
441
+ let numOfBytes = typeMap[type].BYTES_PER_ELEMENT;
442
+ let buf = arg.data.buf;
443
+ let numOfColumns = arg.data.numOfColumns;
444
+ let numOfRows = arg.data.numOfRows;
445
+ let arrays = arg.data.arrays;
446
+
447
+ for(let i = 0; i < numOfColumns; i++)
448
+ heap.set(arrays[i], (buf + i * numOfRows * numOfBytes) >> shift);
449
+
450
+ break;
451
+
452
+ // new column(s)
453
+ case NEW_INT_COLUMNS_TYPE:
454
+ case NEW_FLOAT_COLUMNS_TYPE:
455
+ case NEW_FLOAT_COLUMN_TYPE:
456
+ case NEW_INT_COLUMN_TYPE:
457
+ break;
458
+
459
+ // TODO: process other cases and mistakes
460
+ default:
461
+ break;
462
+ }
463
+ }
464
+ } // putDataToBuffer
465
+
466
+ // Get array data from buffer.
467
+ function getDataFromBuffer(module, inputs) {
468
+
469
+ let heap;
470
+ let numOfRows;
471
+ let numOfCols;
472
+ let numOfBytes;
473
+ let buf;
474
+
475
+ for(const arg of inputs) {
476
+ const type = arg.type;
477
+
478
+ switch (type) { // Process each type of input
479
+
480
+ // number
481
+ case NUM_TYPE:
482
+ case INT_TYPE:
483
+ case DOUBLE_TYPE:
484
+ break;
485
+
486
+ // column(s)
487
+ case INT_COLUMN_TYPE:
488
+ case FLOAT_COLUMN_TYPE:
489
+ case FLOAT_COLUMNS_TYPE:
490
+ case INT_COLUMNS_TYPE:
491
+ break;
492
+
493
+ // new column
494
+ case NEW_FLOAT_COLUMN_TYPE:
495
+ case NEW_INT_COLUMN_TYPE:
496
+ heap = module[heapMap[type]];
497
+ numOfRows = arg.data.numOfRows;
498
+ numOfBytes = typeMap[type].BYTES_PER_ELEMENT;
499
+ buf = arg.data.buf;
500
+ let array = new typeMap[type](numOfRows);
501
+
502
+ for(let j = 0; j < numOfRows; j++)
503
+ array[j] = heap[buf / numOfBytes + j];
504
+
505
+ arg.array = array;
506
+
507
+ break;
508
+
509
+ // new columns
510
+ case NEW_INT_COLUMNS_TYPE:
511
+ case NEW_FLOAT_COLUMNS_TYPE:
512
+ heap = module[heapMap[type]];
513
+ numOfRows = arg.data.numOfRows;
514
+ numOfCols = arg.data.numOfColumns;
515
+ numOfBytes = typeMap[type].BYTES_PER_ELEMENT;
516
+ buf = arg.data.buf;
517
+ let arrays = [];
518
+
519
+ for(let i = 0; i < numOfCols; i++) {
520
+ let arr = new typeMap[type](numOfRows);
521
+
522
+ for(let j = 0; j < numOfRows; j++)
523
+ arr[j] = heap[buf / numOfBytes + j + i * numOfRows];
524
+
525
+ arrays.push(arr);
526
+ }
527
+
528
+ arg.arrays = arrays;
529
+
530
+ break;
531
+
532
+ // TODO: process other cases and mistakes
533
+ default:
534
+ break;
535
+ }
536
+ }
537
+ } // getDataFromBuffer
538
+
539
+ // Clear memory allocated for array data
540
+ function clearMemoryForBuffer(module, inputs) {
541
+ for(const arg of inputs)
542
+ switch(arg.type) { // process each type of input
543
+
544
+ // number
545
+ case NUM_TYPE:
546
+ case INT_TYPE:
547
+ case DOUBLE_TYPE:
548
+ break;
549
+
550
+ // each non-number case
551
+ case INT_COLUMN_TYPE:
552
+ case FLOAT_COLUMN_TYPE:
553
+ case INT_COLUMNS_TYPE:
554
+ case NEW_INT_COLUMNS_TYPE:
555
+ case FLOAT_COLUMNS_TYPE:
556
+ case NEW_FLOAT_COLUMNS_TYPE:
557
+ case NEW_FLOAT_COLUMN_TYPE:
558
+ case NEW_INT_COLUMN_TYPE:
559
+ module._free(arg.data.buf);
560
+ break;
561
+
562
+ // TODO: process other cases and mistakes
563
+ default:
564
+ break;
565
+ }
566
+ } // clearMemoryForBuffer
567
+
568
+ // Extract newly created data: new column(s) are created
569
+ function extractNewlyCreatedData(funcSpecificationArgs, argsAfterWasmCall) {
570
+ // type-to-column_creator map
571
+ const typeToColumnCreatorMap = {'newFloatColumns': DG.Column.fromFloat32Array,
572
+ 'newIntColumns': DG.Column.fromInt32Array,
573
+ 'newFloatColumn': DG.Column.fromFloat32Array,
574
+ 'newIntColumn': DG.Column.fromInt32Array};
575
+
576
+ let i = 0;
577
+
578
+ for(const key in funcSpecificationArgs)
579
+ {
580
+ const arg = funcSpecificationArgs[key];
581
+
582
+ switch(arg.type){ // Process each type
583
+
584
+ // number
585
+ case NUM_TYPE:
586
+ case INT_TYPE:
587
+ case DOUBLE_TYPE:
588
+ break;
589
+
590
+ // column(s)
591
+ case INT_COLUMN_TYPE:
592
+ case FLOAT_COLUMN_TYPE:
593
+ case FLOAT_COLUMNS_TYPE:
594
+ case INT_COLUMNS_TYPE:
595
+ break;
596
+
597
+ // new column
598
+ case NEW_FLOAT_COLUMN_TYPE:
599
+ case NEW_INT_COLUMN_TYPE:
600
+ let name;
601
+
602
+ // specify name for column
603
+ if(arg.name == undefined)
604
+ name = (0).toString();
605
+ else
606
+ names = arg.name;
607
+
608
+ arg.column = typeToColumnCreatorMap[arg.type](name,
609
+ argsAfterWasmCall[i].array);
610
+ break;
611
+
612
+ // new columns
613
+ case NEW_INT_COLUMNS_TYPE:
614
+ case NEW_FLOAT_COLUMNS_TYPE:
615
+ let columns = [];
616
+ let length = argsAfterWasmCall[i].arrays.length;
617
+
618
+ let names = [];
619
+
620
+ // specify name for column
621
+ if(arg.names == undefined)
622
+ for(let k = 1; k <= length; k++)
623
+ names.push((k).toString());
624
+ else names = arg.names;
625
+
626
+ for(let j = 0; j < length; j++)
627
+ columns.push(typeToColumnCreatorMap[arg.type](names[j],
628
+ argsAfterWasmCall[i].arrays[j]));
629
+
630
+ arg.columns = columns;
631
+
632
+ break;
633
+
634
+ // TODO: process other cases and mistakes
635
+ default:
636
+ break;
637
+ }
638
+
639
+ i++;
640
+ }
641
+ } // extractNewlyCreatedData
642
+
643
+ // Get output data: overall output is created
644
+ function getOutput(funcSpecification) {
645
+ let output = funcSpecification.output;
646
+
647
+ const typeToDataFieldMap = {'newFloatColumns': 'columns',
648
+ 'newIntColumns': 'columns',
649
+ 'newFloatColumn': 'column',
650
+ 'newIntColumn': 'column'};
651
+
652
+ switch(output.type) {
653
+
654
+ case NUM_TYPE:
655
+ case INT_TYPE:
656
+ case DOUBLE_TYPE:
657
+ return funcSpecification.arguments[output.source];
658
+ // removed by dead control flow
659
+ {}
660
+
661
+ case COLUMN:
662
+ return funcSpecification.arguments[output.source].column;
663
+ // removed by dead control flow
664
+ {}
665
+
666
+ case TABLE_OF_COLUMNS:
667
+ return DG.DataFrame.fromColumns(funcSpecification.arguments[output.source].columns);
668
+ // removed by dead control flow
669
+ {}
670
+
671
+ case OBJECTS:
672
+ let arrayToReturn = [];
673
+
674
+ // push data of the required arguments
675
+ for(let name of output.source) {
676
+ let arg = funcSpecification.arguments[name];
677
+ arrayToReturn.push(arg[typeToDataFieldMap[arg.type]]);
678
+ }
679
+
680
+ return arrayToReturn;
681
+ // removed by dead control flow
682
+ {}
683
+
684
+ // TODO: process other cases and mistakes
685
+ default:
686
+ break;
687
+ }
688
+
689
+ } // getOutput
690
+
691
+ // Clear newly created data fields (new column(s))
692
+ function clearNewlyCreatedData(funcSpecificationArgs) {
693
+ for(const key in funcSpecificationArgs) {
694
+ const arg = funcSpecificationArgs[key];
695
+
696
+ switch (arg.type) {
697
+ case NUM_TYPE:
698
+ case INT_TYPE:
699
+ case DOUBLE_TYPE:
700
+ case INT_COLUMN_TYPE:
701
+ case FLOAT_COLUMN_TYPE:
702
+ case INT_COLUMNS_TYPE:
703
+ case FLOAT_COLUMNS_TYPE:
704
+ break;
705
+
706
+ case NEW_INT_COLUMN_TYPE:
707
+ case NEW_FLOAT_COLUMN_TYPE:
708
+ arg.column = null;
709
+ break;
710
+
711
+ case NEW_INT_COLUMNS_TYPE:
712
+ case NEW_FLOAT_COLUMNS_TYPE:
713
+ arg.columns = null;
714
+ break;
715
+
716
+ // TODO: process other cases and mistakes
717
+ default:
718
+ break;
719
+ }
720
+ }
721
+ } // clearNewlyCreatedData
722
+
723
+ // THE MAIN FUNCTION: a wrapper for C++-function call
724
+ function cppWrapper(module, args, cppFuncName, returnType) {
725
+ // allocate memory for arrays that are passed to C++-function
726
+ allocateMemoryForBuffer(module, args);
727
+
728
+ // put data (just column(s)) to allocated buffers
729
+ putDataToBuffer(module, args);
730
+
731
+ // create array of parameters that are passed to C++-function
732
+ let params = getArrOfWasmParams(args);
733
+
734
+ //console.log('params:');
735
+ //console.log(params);
736
+
737
+ // create array of parameters' types that are passed to C++-function
738
+ let types = getArrOfWasmTypes(args);
739
+
740
+ //console.log('types:');
741
+ //console.log(types);
742
+
743
+ // call wasm-function
744
+ let result = module.ccall(cppFuncName, returnType, types, params);
745
+
746
+ //console.log(result);
747
+
748
+ // get data from buffers (just column(s))
749
+ getDataFromBuffer(module, args);
750
+
751
+ // clear memory that was previousely allocated
752
+ clearMemoryForBuffer(module, args);
753
+
754
+ //console.log('done');
755
+
756
+ return result;
757
+ }
758
+
759
+ // Get the required output.
760
+ // It takes a specification of the function and the data computed
761
+ // and extracts the required results.
762
+ function getResult(funcSpecification, dataFromWebWorker) {
763
+ funcSpecification.arguments._callResult = dataFromWebWorker.callResult;
764
+
765
+ extractNewlyCreatedData(funcSpecification.arguments, dataFromWebWorker.args);
766
+
767
+ let outPut = getOutput(funcSpecification);
768
+
769
+ // Below, we remove newly created column(s), which are created at the extraction-step.
770
+ // It is especially required, when multiple call of wasm-functions in webworker.
771
+ clearNewlyCreatedData(funcSpecification.arguments);
772
+
773
+ return outPut;
774
+ }
775
+
776
+ /***/ })
777
+
778
+ }]);
779
+ //# sourceMappingURL=wasm_EDAForWebWorker_js-wasm_callWasmForWebWorker_js.js.map