pca-web 0.1.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.
Files changed (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +421 -0
  3. package/dist/base.d.ts +79 -0
  4. package/dist/base.d.ts.map +1 -0
  5. package/dist/base.js +358 -0
  6. package/dist/base.js.map +1 -0
  7. package/dist/incremental-pca.d.ts +86 -0
  8. package/dist/incremental-pca.d.ts.map +1 -0
  9. package/dist/incremental-pca.js +397 -0
  10. package/dist/incremental-pca.js.map +1 -0
  11. package/dist/index.d.ts +21 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +14 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/matrix.d.ts +44 -0
  16. package/dist/matrix.d.ts.map +1 -0
  17. package/dist/matrix.js +99 -0
  18. package/dist/matrix.js.map +1 -0
  19. package/dist/model.d.ts +86 -0
  20. package/dist/model.d.ts.map +1 -0
  21. package/dist/model.js +132 -0
  22. package/dist/model.js.map +1 -0
  23. package/dist/numeric/blas.d.ts +33 -0
  24. package/dist/numeric/blas.d.ts.map +1 -0
  25. package/dist/numeric/blas.js +130 -0
  26. package/dist/numeric/blas.js.map +1 -0
  27. package/dist/numeric/eigh.d.ts +21 -0
  28. package/dist/numeric/eigh.d.ts.map +1 -0
  29. package/dist/numeric/eigh.js +233 -0
  30. package/dist/numeric/eigh.js.map +1 -0
  31. package/dist/numeric/lanczos.d.ts +31 -0
  32. package/dist/numeric/lanczos.d.ts.map +1 -0
  33. package/dist/numeric/lanczos.js +287 -0
  34. package/dist/numeric/lanczos.js.map +1 -0
  35. package/dist/numeric/lu.d.ts +27 -0
  36. package/dist/numeric/lu.d.ts.map +1 -0
  37. package/dist/numeric/lu.js +149 -0
  38. package/dist/numeric/lu.js.map +1 -0
  39. package/dist/numeric/mle.d.ts +5 -0
  40. package/dist/numeric/mle.d.ts.map +1 -0
  41. package/dist/numeric/mle.js +67 -0
  42. package/dist/numeric/mle.js.map +1 -0
  43. package/dist/numeric/qr.d.ts +15 -0
  44. package/dist/numeric/qr.d.ts.map +1 -0
  45. package/dist/numeric/qr.js +88 -0
  46. package/dist/numeric/qr.js.map +1 -0
  47. package/dist/numeric/randomized.d.ts +54 -0
  48. package/dist/numeric/randomized.d.ts.map +1 -0
  49. package/dist/numeric/randomized.js +130 -0
  50. package/dist/numeric/randomized.js.map +1 -0
  51. package/dist/numeric/rng.d.ts +40 -0
  52. package/dist/numeric/rng.d.ts.map +1 -0
  53. package/dist/numeric/rng.js +127 -0
  54. package/dist/numeric/rng.js.map +1 -0
  55. package/dist/numeric/special.d.ts +2 -0
  56. package/dist/numeric/special.d.ts.map +1 -0
  57. package/dist/numeric/special.js +25 -0
  58. package/dist/numeric/special.js.map +1 -0
  59. package/dist/numeric/stats.d.ts +27 -0
  60. package/dist/numeric/stats.d.ts.map +1 -0
  61. package/dist/numeric/stats.js +110 -0
  62. package/dist/numeric/stats.js.map +1 -0
  63. package/dist/numeric/svd.d.ts +27 -0
  64. package/dist/numeric/svd.d.ts.map +1 -0
  65. package/dist/numeric/svd.js +374 -0
  66. package/dist/numeric/svd.js.map +1 -0
  67. package/dist/numeric/svdflip.d.ts +9 -0
  68. package/dist/numeric/svdflip.d.ts.map +1 -0
  69. package/dist/numeric/svdflip.js +32 -0
  70. package/dist/numeric/svdflip.js.map +1 -0
  71. package/dist/pca.d.ts +170 -0
  72. package/dist/pca.d.ts.map +1 -0
  73. package/dist/pca.js +649 -0
  74. package/dist/pca.js.map +1 -0
  75. package/dist/progress.d.ts +155 -0
  76. package/dist/progress.d.ts.map +1 -0
  77. package/dist/progress.js +173 -0
  78. package/dist/progress.js.map +1 -0
  79. package/dist/scheduling.d.ts +66 -0
  80. package/dist/scheduling.d.ts.map +1 -0
  81. package/dist/scheduling.js +160 -0
  82. package/dist/scheduling.js.map +1 -0
  83. package/dist/types.d.ts +10 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +11 -0
  86. package/dist/types.js.map +1 -0
  87. package/dist/validation.d.ts +17 -0
  88. package/dist/validation.d.ts.map +1 -0
  89. package/dist/validation.js +36 -0
  90. package/dist/validation.js.map +1 -0
  91. package/dist/webgpu/df64.d.ts +18 -0
  92. package/dist/webgpu/df64.d.ts.map +1 -0
  93. package/dist/webgpu/df64.js +42 -0
  94. package/dist/webgpu/df64.js.map +1 -0
  95. package/dist/webgpu/engine.d.ts +74 -0
  96. package/dist/webgpu/engine.d.ts.map +1 -0
  97. package/dist/webgpu/engine.js +326 -0
  98. package/dist/webgpu/engine.js.map +1 -0
  99. package/dist/webgpu/gpu-pca.d.ts +90 -0
  100. package/dist/webgpu/gpu-pca.d.ts.map +1 -0
  101. package/dist/webgpu/gpu-pca.js +407 -0
  102. package/dist/webgpu/gpu-pca.js.map +1 -0
  103. package/dist/webgpu/index.d.ts +19 -0
  104. package/dist/webgpu/index.d.ts.map +1 -0
  105. package/dist/webgpu/index.js +16 -0
  106. package/dist/webgpu/index.js.map +1 -0
  107. package/dist/webgpu/kernels.d.ts +47 -0
  108. package/dist/webgpu/kernels.d.ts.map +1 -0
  109. package/dist/webgpu/kernels.js +147 -0
  110. package/dist/webgpu/kernels.js.map +1 -0
  111. package/dist/worker/client.d.ts +174 -0
  112. package/dist/worker/client.d.ts.map +1 -0
  113. package/dist/worker/client.js +482 -0
  114. package/dist/worker/client.js.map +1 -0
  115. package/dist/worker/handler.d.ts +17 -0
  116. package/dist/worker/handler.d.ts.map +1 -0
  117. package/dist/worker/handler.js +404 -0
  118. package/dist/worker/handler.js.map +1 -0
  119. package/dist/worker/protocol.d.ts +192 -0
  120. package/dist/worker/protocol.d.ts.map +1 -0
  121. package/dist/worker/protocol.js +70 -0
  122. package/dist/worker/protocol.js.map +1 -0
  123. package/dist/worker/worker.d.ts +14 -0
  124. package/dist/worker/worker.d.ts.map +1 -0
  125. package/dist/worker/worker.js +20 -0
  126. package/dist/worker/worker.js.map +1 -0
  127. package/package.json +94 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pca.js","sourceRoot":"","sources":["../src/pca.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAuC,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAkB,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAGL,YAAY,EAGZ,kBAAkB,EAClB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAqD7F,MAAM,OAAO,GAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAClG,MAAM,WAAW,GAAwC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,IAAY,EACZ,WAAkC,EAClC,SAAoB;IAEpB,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IACvD,4EAA4E;IAC5E,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACtC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC;QAC3D,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,0CAA0C;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAkB,EAClB,CAAS,EACT,CAAS,EACT,MAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACtD,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,eAAe,EAAE,mDAAmD,MAAM,oBAAoB,MAAM,GAAG,CACxG,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,wCAAwC,MAAM,GAAG,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,eAAe,EAAE,8DAA8D,MAAM,oBAAoB,MAAM,GAAG,CACnH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,eAAe,EAAE,wDAAwD,MAAM,0BAA0B,CAC1G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,CAAa;IACpC,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACvE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAClD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,qDAAqD,WAAW,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CACb,+EAA+E,WAAW,EAAE,CAC7F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;IACxC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,SAAS,GAAG,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IACzB,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC;IAChD,IAAI,aAAa,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,KAAK,CAAC,wDAAwD,aAAa,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,wBAAwB,GAAG,CAAC,CAAC,wBAAwB,IAAI,MAAM,CAAC;IACtE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,2CAA2C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,wBAAwB,GAAG,CACvG,CAAC;IACJ,CAAC;IACD,OAAO;QACL,WAAW;QACX,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK;QACzB,SAAS;QACT,GAAG;QACH,aAAa;QACb,YAAY;QACZ,wBAAwB;QACxB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAI,SAAQ,OAAO;IACb,IAAI,CAAkB;IAE/B,SAAS,GAAG,CAAC,CAAC;IACd,aAAa,GAA+B,MAAM,CAAC;IAE3D,YAAY,UAAsB,EAAE;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ;QACV,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,qEAAqE;IACrE,IAAI,iBAAiB;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,qEAAqE;IACrE,UAAU;IACV,qEAAqE;IAErE,4EAA4E;IAC5E,GAAG,CAAC,CAAc,EAAE,QAAsB;QACxC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,YAAY,CAAC,CAAc,EAAE,QAAsB;QACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,CAAc,EAAE,UAA2B,EAAE;QAC1D,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;YACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,iBAAiB,CAAC,CAAc,EAAE,UAA2B,EAAE;QACnE,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;YACtD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,sEAAsE;IAC9D,sBAAsB,CAAC,CAAY;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjB,mDAAmD;YACnD,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3B,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3B,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,6CAA6C;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,CAAC,SAAS,CAAC,CAAS,EAAE,QAAsB;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;QACJ,CAAC;QACD,qEAAqE;QACrE,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,2BAA2B,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,iDAAiD,CAC9F,CAAC;QACJ,CAAC;QACD,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAErB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5E,MAAM,EAAE,GACN,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACvE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YAE5B,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE;gBACtC,SAAS,EAAE,KAAK;gBAChB,MAAM;gBACN,KAAK,EAAE,CAAC,CAAC,IAAI;gBACb,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;YAEH,IAAI,CAAY,CAAC;YACjB,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;gBACtD,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,mEAAmE;gBACnE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,CAAC,YAAY,CACnB,CAAS,EACT,EAAkB,EAClB,QAAiC,EACjC,OAAsB;QAEtB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAElC,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvC,IAAI,CAAsB,CAAC;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAe,CAAC;QACpB,IAAI,EAAgB,CAAC;QACrB,IAAI,iBAA+B,CAAC;QAEpC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpD,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACjC,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,KAAK,CAAC;YACN,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACV,KAAK,GAAG,MAAM,CAAC;YACf,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACV,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,iBAAiB,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,qEAAqE;YACrE,wDAAwD;YACxD,MAAM,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YACD,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,KAAK,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,qEAAqE;YACrE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;YACD,iBAAiB,GAAG,KAAK,CAAC;YAC1B,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YACxB,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YACD,CAAC,GAAG,IAAI,CAAC;QACX,CAAC;QAED,wEAAwE;QACxE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEpD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,QAAQ,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC7C,CAAC;QAED,IAAI,CAAS,CAAC;QACd,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,CAAC,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5B,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,CAAC,GAAG,EAAE,CAAC;QACT,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;YACf,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACK,CAAC,SAAS,CAChB,CAAS,EACT,QAAiC;QAEjC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;YAC3C,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACpD,KAAK,CAAC;QACR,CAAC;QACD,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,CAAC,iBAAiB,CACxB,CAAS,EACT,EAAkB,EAClB,MAA+B,EAC/B,QAAiC;QAEjC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9B,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,EAAY,CAAC;QAEvB,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAEjC,IAAI,GAAc,CAAC;QACnB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,oEAAoE;YACpE,iEAAiE;YACjE,GAAG,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBACtC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;gBACpC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;gBAC9B,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,wBAAwB;gBAC5D,GAAG;gBACH,aAAa,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;gBACvC,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YACH,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,CAAC;gBACN,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,iFAAiF;IACzE,eAAe,CACrB,CAAS,EACT,EAAc,EACd,OAAqB,EACrB,EAAU,EACV,GAAc;QAEd,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;QACzB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE/B,MAAM,iBAAiB,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,qEAAqE;QACrE,0EAA0E;QAC1E,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACf,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;QAElB,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;YAChB,IAAI,GAAG,GAAG,QAAQ,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,qEAAqE;IACrE,0EAA0E;IAC1E,qEAAqE;IAErE;;;;;OAKG;IACH,QAAQ,CAAC,CAAS,EAAE,OAAqB;QACvC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,CAAS,EAAE,EAAc,EAAE,OAAqB,EAAE,GAAc;QAC7E,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACpC,MAAM,EAAE,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7D,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAY,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,mEAAmE;IACnE,gBAAgB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,+DAA+D;IACvD,UAAU,CAAC,CAAS,EAAE,MAAkC;QAC9D,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,2BAA2B,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,iDAAiD,CAC9F,CAAC;QACJ,CAAC;QACD,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,aAAa,CACX,QAA0B,EAC1B,CAAS,EACT,CAAsB,EACtB,KAAa,EACb,CAAsB;QAEtB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB,CACtB,QAA0B,EAC1B,CAAS,EACT,CAAsB,EACtB,KAAa,EACb,CAAsB;QAEtB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAqB,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5B,MAAM,QAAQ,GAAmB;YAC/B,UAAU,EAAE,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,eAA6B,CAAC;YACjE,iBAAiB,EAAE,aAAa,CAAC,IAAI,CAAC,kBAAgC,CAAC;SACxE,CAAC;QACF,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC5B,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,QAAQ,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAgC,CAAC;gBACjD,QAAQ,CAAC,MAAM,GAAG,kBAAkB,CAClC,CAAC,CAAC,IAAI,EACN,CAAC,EACD,CAAC,EACD,IAAI,CAAC,IAAI,EACT,CAAC,EACD,IAAI,CAAC,KAAmB,EACxB,EAAE,EACF,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CACpB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,WAAW,CACjB,CAAS,EACT,OAAqB,EACrB,CAAS,EACT,EAAgB,EAChB,iBAA+B,EAC/B,KAAmB,EACnB,CAAe;QAEf,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,qEAAqE;IACrE,sBAAsB;IACtB,qEAAqE;IAErE;;;;OAIG;IACH,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,OAAO;YACL,GAAG,IAAI;YACP,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,SAAS,EAAE,IAAI,CAAC,aAAa;YAC7B,OAAO,EAAE;gBACP,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,wBAAwB,EAAE,CAAC,CAAC,wBAAwB;gBACpD,WAAW,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;aAC5C;SAC5B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,KAAe;QAC9B,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,qEAAqE;IACrE,8DAA8D;IAC9D,qEAAqE;IAErE,kFAAkF;IAClF,YAAY,CAAC,CAAc;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,eAAe,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACxC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAmB,CAAC;QACzC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAClB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAChE,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACZ,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;oBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,CAAc;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;QACD,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;IACzB,CAAC;CACF;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Progress reporting for fits: the public observer/event types and the
3
+ * internal reporter that turns solver checkpoints into `PCAFitProgress`
4
+ * events with optional intermediate model snapshots.
5
+ *
6
+ * Layering: solver modules under `src/numeric/` import ONLY types from this
7
+ * file (erased at compile time), keeping the numeric layer dependency-free.
8
+ * The estimators construct the concrete `ProgressReporter` and thread it
9
+ * through solver options as `SolverHooks`.
10
+ */
11
+ import { Matrix } from './matrix.js';
12
+ import type { SvdResult } from './numeric/svd.js';
13
+ import type { AbortSignalLike } from './scheduling.js';
14
+ import type { FloatArray } from './types.js';
15
+ /** The solver a progress event originates from. */
16
+ export type FitSolverId = 'full' | 'covariance_eigh' | 'arpack' | 'randomized' | 'incremental';
17
+ /** The stage of the fit a progress event belongs to. */
18
+ export type FitPhase = 'gram' | 'decompose' | 'power-iteration' | 'lanczos-step' | 'batch' | 'finalize';
19
+ /**
20
+ * An intermediate (or final) model snapshot: the evolving principal axes
21
+ * and, when requested, the embedding of the training rows. All arrays are
22
+ * fresh float64 copies owned by the callback — safe to keep, mutate, or
23
+ * transfer to another thread; they never alias solver or estimator state.
24
+ */
25
+ export interface PCAFitSnapshot {
26
+ /** k×p principal axes in sklearn's `svd_flip` sign convention. */
27
+ components: Matrix;
28
+ /** Singular values (length k, descending). */
29
+ singularValues: Float64Array;
30
+ /** Per-component variance, s²/(n−1) against the rows fitted so far. */
31
+ explainedVariance: Float64Array;
32
+ /**
33
+ * rows×k embedding of the training rows (U·S, or U·√(n−1) when
34
+ * whitening). Present only when `SnapshotOptions.scores` is set.
35
+ */
36
+ scores?: Matrix;
37
+ }
38
+ /** One progress event. Emitted synchronously from inside the fit. */
39
+ export interface PCAFitProgress {
40
+ estimator: 'PCA' | 'IncrementalPCA';
41
+ solver: FitSolverId;
42
+ phase: FitPhase;
43
+ /** Completed units of the current phase (0 marks entering a phase). */
44
+ step: number;
45
+ /** Units in the current phase, when known ahead of time. */
46
+ totalSteps: number | null;
47
+ /**
48
+ * Overall fit progress in [0, 1] — monotone within a fit, exactly 1 at
49
+ * `finalize` — or null while progress is indeterminate.
50
+ */
51
+ fraction: number | null;
52
+ /** Intermediate model, when requested through `SnapshotOptions`. */
53
+ snapshot?: PCAFitSnapshot;
54
+ /** Solver-specific extras (arpack: `{basisSize, jmax, maxResidual}`). */
55
+ detail?: Readonly<Record<string, number>>;
56
+ }
57
+ /** Opt-in intermediate model snapshots on progress events. */
58
+ export interface SnapshotOptions {
59
+ /** Attach evolving components/singularValues/explainedVariance. */
60
+ components?: boolean;
61
+ /** Also attach `scores` (implies `components`). */
62
+ scores?: boolean;
63
+ /**
64
+ * Attach snapshots only to every Nth step within a phase (default 1).
65
+ * The `finalize` event always carries a snapshot when snapshots are
66
+ * enabled. Snapshots cost roughly one extra solver step on the randomized
67
+ * solver, so `every: 2` halves that overhead.
68
+ */
69
+ every?: number;
70
+ }
71
+ /** Observer options accepted by the synchronous `fit`/`fitTransform`. */
72
+ export interface FitObserver {
73
+ onProgress?: (event: PCAFitProgress) => void;
74
+ snapshot?: SnapshotOptions;
75
+ signal?: AbortSignalLike;
76
+ }
77
+ /** Options accepted by `fitAsync`/`fitTransformAsync`. */
78
+ export interface FitAsyncOptions extends FitObserver {
79
+ /** Milliseconds of solver work per event-loop slice (default 12). */
80
+ budgetMs?: number;
81
+ }
82
+ /** @internal What a solver reports at a checkpoint. */
83
+ export interface SolverProgressEmit {
84
+ phase: FitPhase;
85
+ step: number;
86
+ totalSteps: number | null;
87
+ /**
88
+ * Fresh snapshot-only decomposition triplets, truncated to k, oriented
89
+ * like the input matrix, unflipped. Ownership transfers to the reporter,
90
+ * which applies the sign convention in place. Solvers must never pass
91
+ * arrays that the ongoing fit still reads.
92
+ */
93
+ dec?: SvdResult | null;
94
+ /** Pre-built snapshot (estimator-side emits: batches, finalize). */
95
+ snapshot?: PCAFitSnapshot;
96
+ detail?: Readonly<Record<string, number>>;
97
+ }
98
+ /**
99
+ * @internal Reporting channel threaded through solver options. Solvers call
100
+ * `wantSnapshot` before spending anything on a snapshot decomposition and
101
+ * `emit` at every checkpoint. Both are purely synchronous — suspension is
102
+ * the generators' job, not the reporter's.
103
+ */
104
+ export interface SolverHooks {
105
+ wantSnapshot(step: number): boolean;
106
+ emit(e: SolverProgressEmit): void;
107
+ }
108
+ /** @internal Fresh float64 copy of a possibly-float32 stored attribute. */
109
+ export declare function toFloat64Copy(a: FloatArray): Float64Array;
110
+ /**
111
+ * @internal Float64 embedding of the first `n` rows of `x` under a possibly
112
+ * intermediate model — `transform`'s math without the dtype casting:
113
+ * project, remove the projected mean, and whiten with an eps clip.
114
+ */
115
+ export declare function projectForSnapshot(x: FloatArray, n: number, p: number, components: FloatArray, k: number, mean: FloatArray, explainedVariance: FloatArray, whiten: boolean, evEps: number): Matrix;
116
+ /** @internal Context a reporter needs to shape events and snapshots. */
117
+ export interface ReporterContext {
118
+ estimator: 'PCA' | 'IncrementalPCA';
119
+ solver: FitSolverId;
120
+ /** Rows of the training matrix (variance scaling, score shapes). */
121
+ nRows: number;
122
+ whiten: boolean;
123
+ }
124
+ /**
125
+ * @internal Turns solver checkpoints into observer events: computes the
126
+ * overall fraction from the per-solver phase table and materializes
127
+ * snapshots from fresh solver triplets. Callback exceptions propagate —
128
+ * they abort the fit by design.
129
+ */
130
+ export declare class ProgressReporter implements SolverHooks {
131
+ private readonly onProgress;
132
+ private readonly wantComponents;
133
+ private readonly wantScores;
134
+ private readonly every;
135
+ private readonly ctx;
136
+ constructor(onProgress: (event: PCAFitProgress) => void, snapshot: SnapshotOptions | undefined, ctx: ReporterContext);
137
+ /** True when any event may carry a snapshot. */
138
+ get snapshotsEnabled(): boolean;
139
+ /** True when snapshots should include `scores`. */
140
+ get scoresRequested(): boolean;
141
+ wantSnapshot(step: number): boolean;
142
+ emit(e: SolverProgressEmit): void;
143
+ /**
144
+ * Builds a snapshot from fresh solver triplets, adopting their arrays:
145
+ * applies the deterministic sign convention in place, then derives the
146
+ * variances and (when requested) the U·S scores.
147
+ */
148
+ private snapshotFromDec;
149
+ }
150
+ /**
151
+ * @internal Constructs a reporter only when there is a callback to feed —
152
+ * a null reporter means solvers skip all snapshot work.
153
+ */
154
+ export declare function makeReporter(observer: FitObserver | undefined, ctx: ReporterContext): ProgressReporter | null;
155
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Progress reporting for fits: the public observer/event types and the
3
+ * internal reporter that turns solver checkpoints into `PCAFitProgress`
4
+ * events with optional intermediate model snapshots.
5
+ *
6
+ * Layering: solver modules under `src/numeric/` import ONLY types from this
7
+ * file (erased at compile time), keeping the numeric layer dependency-free.
8
+ * The estimators construct the concrete `ProgressReporter` and thread it
9
+ * through solver options as `SolverHooks`.
10
+ */
11
+ import { Matrix } from './matrix.js';
12
+ import { matmulTransB } from './numeric/blas.js';
13
+ import { svdFlipVBased } from './numeric/svdflip.js';
14
+ /**
15
+ * Static phase → [start, end] fraction spans per solver. A phase with known
16
+ * totalSteps interpolates linearly across its span; a single-shot span
17
+ * (start === end) pins the bar while an indeterminate stage runs; a phase
18
+ * with no span reports null (indeterminate). `finalize` is always 1.
19
+ */
20
+ const PHASE_SPANS = {
21
+ full: {},
22
+ covariance_eigh: { gram: [0, 0.85], decompose: [0.85, 0.85] },
23
+ arpack: {},
24
+ randomized: { 'power-iteration': [0, 0.9] },
25
+ incremental: { batch: [0, 1] },
26
+ };
27
+ function fractionFor(solver, phase, step, totalSteps) {
28
+ if (phase === 'finalize') {
29
+ return 1;
30
+ }
31
+ const span = PHASE_SPANS[solver][phase];
32
+ if (span === undefined) {
33
+ return null;
34
+ }
35
+ const [lo, hi] = span;
36
+ if (lo === hi) {
37
+ return lo;
38
+ }
39
+ if (totalSteps === null || totalSteps <= 0) {
40
+ return null;
41
+ }
42
+ const t = Math.min(1, Math.max(0, step / totalSteps));
43
+ return lo + (hi - lo) * t;
44
+ }
45
+ /** @internal Fresh float64 copy of a possibly-float32 stored attribute. */
46
+ export function toFloat64Copy(a) {
47
+ return a instanceof Float64Array ? a.slice() : new Float64Array(a);
48
+ }
49
+ /**
50
+ * @internal Float64 embedding of the first `n` rows of `x` under a possibly
51
+ * intermediate model — `transform`'s math without the dtype casting:
52
+ * project, remove the projected mean, and whiten with an eps clip.
53
+ */
54
+ export function projectForSnapshot(x, n, p, components, k, mean, explainedVariance, whiten, evEps) {
55
+ const xt = matmulTransB(x, components, n, p, k);
56
+ const meanProj = new Float64Array(k);
57
+ for (let c = 0; c < k; c++) {
58
+ let acc = 0;
59
+ const off = c * p;
60
+ for (let j = 0; j < p; j++) {
61
+ acc += mean[j] * components[off + j];
62
+ }
63
+ meanProj[c] = acc;
64
+ }
65
+ for (let i = 0; i < n; i++) {
66
+ for (let c = 0; c < k; c++) {
67
+ xt[i * k + c] -= meanProj[c];
68
+ }
69
+ }
70
+ if (whiten) {
71
+ for (let c = 0; c < k; c++) {
72
+ let scale = Math.sqrt(explainedVariance[c]);
73
+ if (scale < evEps) {
74
+ scale = evEps;
75
+ }
76
+ for (let i = 0; i < n; i++) {
77
+ xt[i * k + c] /= scale;
78
+ }
79
+ }
80
+ }
81
+ return new Matrix(xt, n, k);
82
+ }
83
+ /**
84
+ * @internal Turns solver checkpoints into observer events: computes the
85
+ * overall fraction from the per-solver phase table and materializes
86
+ * snapshots from fresh solver triplets. Callback exceptions propagate —
87
+ * they abort the fit by design.
88
+ */
89
+ export class ProgressReporter {
90
+ onProgress;
91
+ wantComponents;
92
+ wantScores;
93
+ every;
94
+ ctx;
95
+ constructor(onProgress, snapshot, ctx) {
96
+ this.onProgress = onProgress;
97
+ this.wantScores = snapshot?.scores === true;
98
+ this.wantComponents = snapshot?.components === true || this.wantScores;
99
+ const every = snapshot?.every ?? 1;
100
+ this.every = Number.isInteger(every) && every >= 1 ? every : 1;
101
+ this.ctx = ctx;
102
+ }
103
+ /** True when any event may carry a snapshot. */
104
+ get snapshotsEnabled() {
105
+ return this.wantComponents;
106
+ }
107
+ /** True when snapshots should include `scores`. */
108
+ get scoresRequested() {
109
+ return this.wantScores;
110
+ }
111
+ wantSnapshot(step) {
112
+ return this.wantComponents && step >= 1 && step % this.every === 0;
113
+ }
114
+ emit(e) {
115
+ const event = {
116
+ estimator: this.ctx.estimator,
117
+ solver: this.ctx.solver,
118
+ phase: e.phase,
119
+ step: e.step,
120
+ totalSteps: e.totalSteps,
121
+ fraction: fractionFor(this.ctx.solver, e.phase, e.step, e.totalSteps),
122
+ };
123
+ const snapshot = e.snapshot ?? (e.dec ? this.snapshotFromDec(e.dec) : undefined);
124
+ if (snapshot !== undefined) {
125
+ event.snapshot = snapshot;
126
+ }
127
+ if (e.detail !== undefined) {
128
+ event.detail = e.detail;
129
+ }
130
+ this.onProgress(event);
131
+ }
132
+ /**
133
+ * Builds a snapshot from fresh solver triplets, adopting their arrays:
134
+ * applies the deterministic sign convention in place, then derives the
135
+ * variances and (when requested) the U·S scores.
136
+ */
137
+ snapshotFromDec(dec) {
138
+ const n = this.ctx.nRows;
139
+ const k = dec.s.length;
140
+ const p = dec.vt.length / k;
141
+ svdFlipVBased(dec.u, n, dec.vt, k, p);
142
+ const explainedVariance = new Float64Array(k);
143
+ for (let i = 0; i < k; i++) {
144
+ explainedVariance[i] = (dec.s[i] * dec.s[i]) / (n - 1);
145
+ }
146
+ const snapshot = {
147
+ components: new Matrix(dec.vt, k, p),
148
+ singularValues: dec.s,
149
+ explainedVariance,
150
+ };
151
+ if (this.wantScores) {
152
+ const scores = new Float64Array(n * k);
153
+ const f = Math.sqrt(n - 1);
154
+ for (let i = 0; i < n; i++) {
155
+ for (let c = 0; c < k; c++) {
156
+ const u = dec.u[i * k + c];
157
+ scores[i * k + c] = this.ctx.whiten ? u * f : u * dec.s[c];
158
+ }
159
+ }
160
+ snapshot.scores = new Matrix(scores, n, k);
161
+ }
162
+ return snapshot;
163
+ }
164
+ }
165
+ /**
166
+ * @internal Constructs a reporter only when there is a callback to feed —
167
+ * a null reporter means solvers skip all snapshot work.
168
+ */
169
+ export function makeReporter(observer, ctx) {
170
+ const onProgress = observer?.onProgress;
171
+ return onProgress ? new ProgressReporter(onProgress, observer?.snapshot, ctx) : null;
172
+ }
173
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Cooperative scheduling for non-blocking fits: abort signalling, event-loop
3
+ * yielding, time-slice budgeting, and the two generator drivers (synchronous
4
+ * drain and time-sliced async). Environment-agnostic — browser main thread,
5
+ * Web Workers, and Node all work; every host global is feature-detected
6
+ * through `globalThis` (the build targets lib ES2022 only).
7
+ */
8
+ /**
9
+ * Structural subset of `AbortSignal` read by the fit drivers, so any object
10
+ * with an `aborted` flag works (no DOM lib required).
11
+ */
12
+ export interface AbortSignalLike {
13
+ readonly aborted: boolean;
14
+ readonly reason?: unknown;
15
+ }
16
+ /**
17
+ * Thrown (or rejected) when a fit is aborted through a signal that carries
18
+ * no `reason`. `name` is 'AbortError', matching the DOMException convention,
19
+ * so `err.name === 'AbortError'` identifies cancellations portably.
20
+ */
21
+ export declare class FitAbortError extends Error {
22
+ readonly name = "AbortError";
23
+ constructor(message?: string);
24
+ }
25
+ /** Throws `signal.reason` (or a `FitAbortError`) when the signal is aborted. */
26
+ export declare function throwIfAborted(signal?: AbortSignalLike | null): void;
27
+ /**
28
+ * Resolves in a later macrotask, giving the host a chance to process input,
29
+ * rendering, and — crucially for cancellation — incoming messages. Prefers
30
+ * `setImmediate` (Node), then a `MessageChannel` round-trip, then
31
+ * `setTimeout(0)`.
32
+ */
33
+ export declare function yieldToEventLoop(): Promise<void>;
34
+ /**
35
+ * Tracks a wall-clock budget per event-loop slice. `pause()` returns null
36
+ * while the current slice has budget left — callers skip awaiting entirely,
37
+ * avoiding microtask churn in the hot loop — or a promise that yields to the
38
+ * event loop and restarts the budget.
39
+ */
40
+ export declare class TimeSlicer {
41
+ private readonly budgetMs;
42
+ private readonly now;
43
+ private sliceStart;
44
+ constructor(budgetMs: number, nowFn?: () => number);
45
+ pause(): Promise<void> | null;
46
+ }
47
+ /**
48
+ * Drains a step generator synchronously — the classic blocking fit. The
49
+ * abort signal is checked before every step; on any exit before completion
50
+ * (abort, callback throw) the generator's `finally` blocks run via
51
+ * `gen.return`, releasing estimator state such as the re-entrancy flag.
52
+ */
53
+ export declare function driveSync<T>(gen: Generator<void, T, void>, signal?: AbortSignalLike | null): T;
54
+ export interface DriveAsyncOptions {
55
+ /** Milliseconds of solver work per event-loop slice (default 12). */
56
+ budgetMs?: number;
57
+ signal?: AbortSignalLike | null;
58
+ }
59
+ /**
60
+ * Drives a step generator cooperatively: runs steps until the slice's time
61
+ * budget is spent, then yields to the event loop. Yields once before the
62
+ * first step so callers can paint (a spinner, a disabled button) ahead of
63
+ * any heavy work. A `budgetMs` of 0 yields after every step.
64
+ */
65
+ export declare function driveAsync<T>(gen: Generator<void, T, void>, options?: DriveAsyncOptions): Promise<T>;
66
+ //# sourceMappingURL=scheduling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../src/scheduling.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAkB,IAAI,gBAAgB;gBAE1B,OAAO,SAA8B;CAGlD;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAIpE;AAuDD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGhD;AAUD;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,UAAU,CAAS;gBAEf,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,MAAM;IAMlD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAQ9B;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,CAAC,CAgB9F;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAC7B,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAwBZ"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Cooperative scheduling for non-blocking fits: abort signalling, event-loop
3
+ * yielding, time-slice budgeting, and the two generator drivers (synchronous
4
+ * drain and time-sliced async). Environment-agnostic — browser main thread,
5
+ * Web Workers, and Node all work; every host global is feature-detected
6
+ * through `globalThis` (the build targets lib ES2022 only).
7
+ */
8
+ /**
9
+ * Thrown (or rejected) when a fit is aborted through a signal that carries
10
+ * no `reason`. `name` is 'AbortError', matching the DOMException convention,
11
+ * so `err.name === 'AbortError'` identifies cancellations portably.
12
+ */
13
+ export class FitAbortError extends Error {
14
+ name = 'AbortError';
15
+ constructor(message = 'The operation was aborted') {
16
+ super(message);
17
+ }
18
+ }
19
+ /** Throws `signal.reason` (or a `FitAbortError`) when the signal is aborted. */
20
+ export function throwIfAborted(signal) {
21
+ if (signal?.aborted) {
22
+ throw signal.reason ?? new FitAbortError();
23
+ }
24
+ }
25
+ const GLOBALS = globalThis;
26
+ let yieldImpl = null;
27
+ /**
28
+ * Picks the best macrotask-yield mechanism available — once, lazily.
29
+ *
30
+ * Deliberately NOT `scheduler.yield()`: its continuation resumes at a
31
+ * priority above pending message events, so a slicing loop built on it
32
+ * starves incoming `postMessage` traffic — abort requests sent to a busy
33
+ * worker would only be seen after the fit finished. A MessageChannel
34
+ * round-trip queues behind already-arrived messages (same task source,
35
+ * FIFO), which is exactly the fairness cancellation needs, and it is not
36
+ * subject to setTimeout's >=4ms nesting clamp.
37
+ */
38
+ function pickYieldImpl() {
39
+ if (typeof GLOBALS.setImmediate === 'function') {
40
+ // Node: cheaper than a channel and fair with worker_threads messages.
41
+ const setImmediateFn = GLOBALS.setImmediate;
42
+ return () => new Promise((resolve) => setImmediateFn(resolve));
43
+ }
44
+ if (typeof GLOBALS.MessageChannel === 'function') {
45
+ // One long-lived channel; each posted message wakes one waiter (FIFO).
46
+ const channel = new GLOBALS.MessageChannel();
47
+ const waiters = [];
48
+ channel.port1.onmessage = () => {
49
+ waiters.shift()?.();
50
+ };
51
+ return () => new Promise((resolve) => {
52
+ waiters.push(resolve);
53
+ channel.port2.postMessage(null);
54
+ });
55
+ }
56
+ if (typeof GLOBALS.setTimeout === 'function') {
57
+ const setTimeoutFn = GLOBALS.setTimeout;
58
+ return () => new Promise((resolve) => setTimeoutFn(resolve, 0));
59
+ }
60
+ // Hosts without timers: a microtask still lets chained promises interleave.
61
+ return () => Promise.resolve();
62
+ }
63
+ /**
64
+ * Resolves in a later macrotask, giving the host a chance to process input,
65
+ * rendering, and — crucially for cancellation — incoming messages. Prefers
66
+ * `setImmediate` (Node), then a `MessageChannel` round-trip, then
67
+ * `setTimeout(0)`.
68
+ */
69
+ export function yieldToEventLoop() {
70
+ yieldImpl ??= pickYieldImpl();
71
+ return yieldImpl();
72
+ }
73
+ function defaultNow() {
74
+ const perf = GLOBALS.performance;
75
+ if (perf && typeof perf.now === 'function') {
76
+ return () => perf.now();
77
+ }
78
+ return () => Date.now();
79
+ }
80
+ /**
81
+ * Tracks a wall-clock budget per event-loop slice. `pause()` returns null
82
+ * while the current slice has budget left — callers skip awaiting entirely,
83
+ * avoiding microtask churn in the hot loop — or a promise that yields to the
84
+ * event loop and restarts the budget.
85
+ */
86
+ export class TimeSlicer {
87
+ budgetMs;
88
+ now;
89
+ sliceStart;
90
+ constructor(budgetMs, nowFn) {
91
+ this.budgetMs = budgetMs;
92
+ this.now = nowFn ?? defaultNow();
93
+ this.sliceStart = this.now();
94
+ }
95
+ pause() {
96
+ if (this.now() - this.sliceStart < this.budgetMs) {
97
+ return null;
98
+ }
99
+ return yieldToEventLoop().then(() => {
100
+ this.sliceStart = this.now();
101
+ });
102
+ }
103
+ }
104
+ /**
105
+ * Drains a step generator synchronously — the classic blocking fit. The
106
+ * abort signal is checked before every step; on any exit before completion
107
+ * (abort, callback throw) the generator's `finally` blocks run via
108
+ * `gen.return`, releasing estimator state such as the re-entrancy flag.
109
+ */
110
+ export function driveSync(gen, signal) {
111
+ let finished = false;
112
+ try {
113
+ for (;;) {
114
+ throwIfAborted(signal);
115
+ const step = gen.next();
116
+ if (step.done) {
117
+ finished = true;
118
+ return step.value;
119
+ }
120
+ }
121
+ }
122
+ finally {
123
+ if (!finished) {
124
+ gen.return(undefined);
125
+ }
126
+ }
127
+ }
128
+ /**
129
+ * Drives a step generator cooperatively: runs steps until the slice's time
130
+ * budget is spent, then yields to the event loop. Yields once before the
131
+ * first step so callers can paint (a spinner, a disabled button) ahead of
132
+ * any heavy work. A `budgetMs` of 0 yields after every step.
133
+ */
134
+ export async function driveAsync(gen, options = {}) {
135
+ const signal = options.signal;
136
+ let finished = false;
137
+ try {
138
+ throwIfAborted(signal);
139
+ await yieldToEventLoop();
140
+ const slicer = new TimeSlicer(options.budgetMs ?? 12);
141
+ for (;;) {
142
+ throwIfAborted(signal);
143
+ const step = gen.next();
144
+ if (step.done) {
145
+ finished = true;
146
+ return step.value;
147
+ }
148
+ const pause = slicer.pause();
149
+ if (pause !== null) {
150
+ await pause;
151
+ }
152
+ }
153
+ }
154
+ finally {
155
+ if (!finished) {
156
+ gen.return(undefined);
157
+ }
158
+ }
159
+ }
160
+ //# sourceMappingURL=scheduling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduling.js","sourceRoot":"","sources":["../src/scheduling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /** Floating-point storage used throughout the library. */
2
+ export type FloatArray = Float64Array | Float32Array;
3
+ /** Storage dtype. Mirrors sklearn's float64/float32 handling. */
4
+ export type Dtype = 'float64' | 'float32';
5
+ export type FloatArrayConstructor = Float64ArrayConstructor | Float32ArrayConstructor;
6
+ export declare function dtypeOf(a: FloatArray): Dtype;
7
+ export declare function constructorFor(dtype: Dtype): FloatArrayConstructor;
8
+ /** Machine epsilon for a dtype (numpy finfo(dtype).eps). */
9
+ export declare function epsFor(dtype: Dtype): number;
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,YAAY,CAAC;AAErD,iEAAiE;AACjE,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1C,MAAM,MAAM,qBAAqB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAEtF,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK,CAE5C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,qBAAqB,CAElE;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE3C"}