@graphty/webgpu-graph-algorithms 0.5.0 → 0.6.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 (264) hide show
  1. package/README.md +104 -52
  2. package/dist/browser.js +1 -1
  3. package/dist/chunks/{context-CRbw2Wyo.js → context-BXqgCifx.js} +225 -33
  4. package/dist/chunks/context-BXqgCifx.js.map +1 -0
  5. package/dist/node.js +1 -1
  6. package/dist/src/accelerator.d.ts +12 -10
  7. package/dist/src/accelerator.d.ts.map +1 -1
  8. package/dist/src/accelerator.js +32 -10
  9. package/dist/src/accelerator.js.map +1 -1
  10. package/dist/src/algorithms/components.d.ts.map +1 -1
  11. package/dist/src/algorithms/components.js +12 -13
  12. package/dist/src/algorithms/components.js.map +1 -1
  13. package/dist/src/algorithms/degree.d.ts +6 -8
  14. package/dist/src/algorithms/degree.d.ts.map +1 -1
  15. package/dist/src/algorithms/degree.js +58 -35
  16. package/dist/src/algorithms/degree.js.map +1 -1
  17. package/dist/src/algorithms/pagerank.d.ts.map +1 -1
  18. package/dist/src/algorithms/pagerank.js +16 -14
  19. package/dist/src/algorithms/pagerank.js.map +1 -1
  20. package/dist/src/algorithms/power-iteration.d.ts +2 -2
  21. package/dist/src/algorithms/power-iteration.d.ts.map +1 -1
  22. package/dist/src/algorithms/power-iteration.js +17 -14
  23. package/dist/src/algorithms/power-iteration.js.map +1 -1
  24. package/dist/src/constants.d.ts +85 -8
  25. package/dist/src/constants.d.ts.map +1 -1
  26. package/dist/src/constants.js +85 -8
  27. package/dist/src/constants.js.map +1 -1
  28. package/dist/src/errors.d.ts +3 -2
  29. package/dist/src/errors.d.ts.map +1 -1
  30. package/dist/src/errors.js +2 -1
  31. package/dist/src/errors.js.map +1 -1
  32. package/dist/src/index.d.ts +10 -5
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +14 -5
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/kernel/dispatch.d.ts +8 -3
  37. package/dist/src/kernel/dispatch.d.ts.map +1 -1
  38. package/dist/src/kernel/dispatch.js +18 -7
  39. package/dist/src/kernel/dispatch.js.map +1 -1
  40. package/dist/src/kernel/kernel.d.ts +30 -1
  41. package/dist/src/kernel/kernel.d.ts.map +1 -1
  42. package/dist/src/kernel/kernel.js +49 -5
  43. package/dist/src/kernel/kernel.js.map +1 -1
  44. package/dist/src/kernel/prelude.d.ts.map +1 -1
  45. package/dist/src/kernel/prelude.js +9 -1
  46. package/dist/src/kernel/prelude.js.map +1 -1
  47. package/dist/src/kernel/profiler.d.ts +15 -3
  48. package/dist/src/kernel/profiler.d.ts.map +1 -1
  49. package/dist/src/kernel/profiler.js +27 -4
  50. package/dist/src/kernel/profiler.js.map +1 -1
  51. package/dist/src/kernels.d.ts +18 -8
  52. package/dist/src/kernels.d.ts.map +1 -1
  53. package/dist/src/kernels.js +345 -22
  54. package/dist/src/kernels.js.map +1 -1
  55. package/dist/src/layouts/calibrate.d.ts +51 -0
  56. package/dist/src/layouts/calibrate.d.ts.map +1 -0
  57. package/dist/src/layouts/calibrate.js +172 -0
  58. package/dist/src/layouts/calibrate.js.map +1 -0
  59. package/dist/src/layouts/force-simulation.d.ts +42 -5
  60. package/dist/src/layouts/force-simulation.d.ts.map +1 -1
  61. package/dist/src/layouts/force-simulation.js +84 -22
  62. package/dist/src/layouts/force-simulation.js.map +1 -1
  63. package/dist/src/layouts/forceatlas2.d.ts +107 -38
  64. package/dist/src/layouts/forceatlas2.d.ts.map +1 -1
  65. package/dist/src/layouts/forceatlas2.js +297 -290
  66. package/dist/src/layouts/forceatlas2.js.map +1 -1
  67. package/dist/src/layouts/fruchterman-reingold.d.ts +241 -0
  68. package/dist/src/layouts/fruchterman-reingold.d.ts.map +1 -0
  69. package/dist/src/layouts/fruchterman-reingold.js +739 -0
  70. package/dist/src/layouts/fruchterman-reingold.js.map +1 -0
  71. package/dist/src/layouts/model-common.d.ts +140 -0
  72. package/dist/src/layouts/model-common.d.ts.map +1 -0
  73. package/dist/src/layouts/model-common.js +269 -0
  74. package/dist/src/layouts/model-common.js.map +1 -0
  75. package/dist/src/layouts/repulsion-grid.d.ts +152 -0
  76. package/dist/src/layouts/repulsion-grid.d.ts.map +1 -0
  77. package/dist/src/layouts/repulsion-grid.js +318 -0
  78. package/dist/src/layouts/repulsion-grid.js.map +1 -0
  79. package/dist/src/layouts/spring-electrical.d.ts +224 -0
  80. package/dist/src/layouts/spring-electrical.d.ts.map +1 -0
  81. package/dist/src/layouts/spring-electrical.js +665 -0
  82. package/dist/src/layouts/spring-electrical.js.map +1 -0
  83. package/dist/src/memory/residency.d.ts +6 -2
  84. package/dist/src/memory/residency.d.ts.map +1 -1
  85. package/dist/src/memory/residency.js +84 -14
  86. package/dist/src/memory/residency.js.map +1 -1
  87. package/dist/src/primitives/core-shape.d.ts +38 -2
  88. package/dist/src/primitives/core-shape.d.ts.map +1 -1
  89. package/dist/src/primitives/core-shape.js +71 -3
  90. package/dist/src/primitives/core-shape.js.map +1 -1
  91. package/dist/src/primitives/grid-pyramid.d.ts +71 -0
  92. package/dist/src/primitives/grid-pyramid.d.ts.map +1 -0
  93. package/dist/src/primitives/grid-pyramid.js +143 -0
  94. package/dist/src/primitives/grid-pyramid.js.map +1 -0
  95. package/dist/src/primitives/grid.d.ts +118 -0
  96. package/dist/src/primitives/grid.d.ts.map +1 -0
  97. package/dist/src/primitives/grid.js +225 -0
  98. package/dist/src/primitives/grid.js.map +1 -0
  99. package/dist/src/primitives/histogram.d.ts +67 -0
  100. package/dist/src/primitives/histogram.d.ts.map +1 -0
  101. package/dist/src/primitives/histogram.js +190 -0
  102. package/dist/src/primitives/histogram.js.map +1 -0
  103. package/dist/src/primitives/radix-sort.d.ts +75 -0
  104. package/dist/src/primitives/radix-sort.d.ts.map +1 -0
  105. package/dist/src/primitives/radix-sort.js +168 -0
  106. package/dist/src/primitives/radix-sort.js.map +1 -0
  107. package/dist/src/primitives/scan.d.ts +44 -0
  108. package/dist/src/primitives/scan.d.ts.map +1 -0
  109. package/dist/src/primitives/scan.js +151 -0
  110. package/dist/src/primitives/scan.js.map +1 -0
  111. package/dist/src/primitives/segmented-reduce.d.ts +25 -17
  112. package/dist/src/primitives/segmented-reduce.d.ts.map +1 -1
  113. package/dist/src/primitives/segmented-reduce.js +166 -47
  114. package/dist/src/primitives/segmented-reduce.js.map +1 -1
  115. package/dist/src/primitives/spmv.d.ts +18 -14
  116. package/dist/src/primitives/spmv.d.ts.map +1 -1
  117. package/dist/src/primitives/spmv.js +94 -58
  118. package/dist/src/primitives/spmv.js.map +1 -1
  119. package/dist/src/primitives/verify.d.ts +49 -0
  120. package/dist/src/primitives/verify.d.ts.map +1 -0
  121. package/dist/src/primitives/verify.js +229 -0
  122. package/dist/src/primitives/verify.js.map +1 -0
  123. package/dist/src/types/accelerator.d.ts +7 -3
  124. package/dist/src/types/accelerator.d.ts.map +1 -1
  125. package/dist/src/types/context.d.ts +53 -0
  126. package/dist/src/types/context.d.ts.map +1 -1
  127. package/dist/src/types/layout.d.ts +52 -0
  128. package/dist/src/types/layout.d.ts.map +1 -1
  129. package/dist/src/types/options.d.ts +43 -1
  130. package/dist/src/types/options.d.ts.map +1 -1
  131. package/dist/src/wgsl/counting-scatter.wgsl.d.ts +8 -0
  132. package/dist/src/wgsl/counting-scatter.wgsl.d.ts.map +1 -0
  133. package/dist/src/wgsl/counting-scatter.wgsl.js +17 -0
  134. package/dist/src/wgsl/counting-scatter.wgsl.js.map +1 -0
  135. package/dist/src/wgsl/fa2-attraction.wgsl.d.ts +23 -8
  136. package/dist/src/wgsl/fa2-attraction.wgsl.d.ts.map +1 -1
  137. package/dist/src/wgsl/fa2-attraction.wgsl.js +100 -17
  138. package/dist/src/wgsl/fa2-attraction.wgsl.js.map +1 -1
  139. package/dist/src/wgsl/fa2-integrate.wgsl.d.ts +7 -2
  140. package/dist/src/wgsl/fa2-integrate.wgsl.d.ts.map +1 -1
  141. package/dist/src/wgsl/fa2-integrate.wgsl.js +28 -2
  142. package/dist/src/wgsl/fa2-integrate.wgsl.js.map +1 -1
  143. package/dist/src/wgsl/fa2-repulsion-exact.wgsl.d.ts +4 -2
  144. package/dist/src/wgsl/fa2-repulsion-exact.wgsl.d.ts.map +1 -1
  145. package/dist/src/wgsl/fa2-repulsion-exact.wgsl.js +14 -5
  146. package/dist/src/wgsl/fa2-repulsion-exact.wgsl.js.map +1 -1
  147. package/dist/src/wgsl/fa2-stats-finalize.wgsl.d.ts +12 -1
  148. package/dist/src/wgsl/fa2-stats-finalize.wgsl.d.ts.map +1 -1
  149. package/dist/src/wgsl/fa2-stats-finalize.wgsl.js +54 -0
  150. package/dist/src/wgsl/fa2-stats-finalize.wgsl.js.map +1 -1
  151. package/dist/src/wgsl/grid-cell-key.wgsl.d.ts +8 -0
  152. package/dist/src/wgsl/grid-cell-key.wgsl.d.ts.map +1 -0
  153. package/dist/src/wgsl/grid-cell-key.wgsl.js +30 -0
  154. package/dist/src/wgsl/grid-cell-key.wgsl.js.map +1 -0
  155. package/dist/src/wgsl/grid-centroid-hub.wgsl.d.ts +8 -0
  156. package/dist/src/wgsl/grid-centroid-hub.wgsl.d.ts.map +1 -0
  157. package/dist/src/wgsl/grid-centroid-hub.wgsl.js +29 -0
  158. package/dist/src/wgsl/grid-centroid-hub.wgsl.js.map +1 -0
  159. package/dist/src/wgsl/grid-centroid.wgsl.d.ts +8 -0
  160. package/dist/src/wgsl/grid-centroid.wgsl.d.ts.map +1 -0
  161. package/dist/src/wgsl/grid-centroid.wgsl.js +29 -0
  162. package/dist/src/wgsl/grid-centroid.wgsl.js.map +1 -0
  163. package/dist/src/wgsl/grid-downsample.wgsl.d.ts +7 -0
  164. package/dist/src/wgsl/grid-downsample.wgsl.d.ts.map +1 -0
  165. package/dist/src/wgsl/grid-downsample.wgsl.js +28 -0
  166. package/dist/src/wgsl/grid-downsample.wgsl.js.map +1 -0
  167. package/dist/src/wgsl/grid-far-field.wgsl.d.ts +13 -0
  168. package/dist/src/wgsl/grid-far-field.wgsl.d.ts.map +1 -0
  169. package/dist/src/wgsl/grid-far-field.wgsl.js +98 -0
  170. package/dist/src/wgsl/grid-far-field.wgsl.js.map +1 -0
  171. package/dist/src/wgsl/grid-near-field.wgsl.d.ts +19 -0
  172. package/dist/src/wgsl/grid-near-field.wgsl.d.ts.map +1 -0
  173. package/dist/src/wgsl/grid-near-field.wgsl.js +129 -0
  174. package/dist/src/wgsl/grid-near-field.wgsl.js.map +1 -0
  175. package/dist/src/wgsl/histogram.wgsl.d.ts +7 -0
  176. package/dist/src/wgsl/histogram.wgsl.d.ts.map +1 -0
  177. package/dist/src/wgsl/histogram.wgsl.js +15 -0
  178. package/dist/src/wgsl/histogram.wgsl.js.map +1 -0
  179. package/dist/src/wgsl/indirect-finalize.wgsl.d.ts +8 -0
  180. package/dist/src/wgsl/indirect-finalize.wgsl.d.ts.map +1 -0
  181. package/dist/src/wgsl/indirect-finalize.wgsl.js +26 -0
  182. package/dist/src/wgsl/indirect-finalize.wgsl.js.map +1 -0
  183. package/dist/src/wgsl/radix-hist.wgsl.d.ts +9 -0
  184. package/dist/src/wgsl/radix-hist.wgsl.d.ts.map +1 -0
  185. package/dist/src/wgsl/radix-hist.wgsl.js +31 -0
  186. package/dist/src/wgsl/radix-hist.wgsl.js.map +1 -0
  187. package/dist/src/wgsl/radix-scatter.wgsl.d.ts +9 -0
  188. package/dist/src/wgsl/radix-scatter.wgsl.d.ts.map +1 -0
  189. package/dist/src/wgsl/radix-scatter.wgsl.js +40 -0
  190. package/dist/src/wgsl/radix-scatter.wgsl.js.map +1 -0
  191. package/dist/src/wgsl/scan-add.wgsl.d.ts +6 -0
  192. package/dist/src/wgsl/scan-add.wgsl.d.ts.map +1 -0
  193. package/dist/src/wgsl/scan-add.wgsl.js +14 -0
  194. package/dist/src/wgsl/scan-add.wgsl.js.map +1 -0
  195. package/dist/src/wgsl/scan-block.wgsl.d.ts +8 -0
  196. package/dist/src/wgsl/scan-block.wgsl.d.ts.map +1 -0
  197. package/dist/src/wgsl/scan-block.wgsl.js +30 -0
  198. package/dist/src/wgsl/scan-block.wgsl.js.map +1 -0
  199. package/dist/src/wgsl/segmented-reduce.wgsl.d.ts +22 -8
  200. package/dist/src/wgsl/segmented-reduce.wgsl.d.ts.map +1 -1
  201. package/dist/src/wgsl/segmented-reduce.wgsl.js +84 -15
  202. package/dist/src/wgsl/segmented-reduce.wgsl.js.map +1 -1
  203. package/dist/src/wgsl/spmv-pull.wgsl.d.ts +22 -11
  204. package/dist/src/wgsl/spmv-pull.wgsl.d.ts.map +1 -1
  205. package/dist/src/wgsl/spmv-pull.wgsl.js +110 -36
  206. package/dist/src/wgsl/spmv-pull.wgsl.js.map +1 -1
  207. package/dist/tsconfig.build.tsbuildinfo +1 -1
  208. package/dist/webgpu-graph-algorithms.js +5016 -1130
  209. package/dist/webgpu-graph-algorithms.js.map +1 -1
  210. package/package.json +10 -7
  211. package/src/accelerator.ts +46 -12
  212. package/src/algorithms/components.ts +12 -16
  213. package/src/algorithms/degree.ts +58 -43
  214. package/src/algorithms/pagerank.ts +20 -18
  215. package/src/algorithms/power-iteration.ts +19 -18
  216. package/src/constants.ts +108 -8
  217. package/src/errors.ts +3 -1
  218. package/src/index.ts +25 -5
  219. package/src/kernel/dispatch.ts +18 -7
  220. package/src/kernel/kernel.ts +59 -5
  221. package/src/kernel/prelude.ts +15 -0
  222. package/src/kernel/profiler.ts +28 -4
  223. package/src/kernels.ts +378 -24
  224. package/src/layouts/calibrate.ts +187 -0
  225. package/src/layouts/force-simulation.ts +111 -26
  226. package/src/layouts/forceatlas2.ts +346 -324
  227. package/src/layouts/fruchterman-reingold.ts +918 -0
  228. package/src/layouts/model-common.ts +323 -0
  229. package/src/layouts/repulsion-grid.ts +451 -0
  230. package/src/layouts/spring-electrical.ts +845 -0
  231. package/src/memory/residency.ts +126 -20
  232. package/src/primitives/core-shape.ts +91 -4
  233. package/src/primitives/grid-pyramid.ts +221 -0
  234. package/src/primitives/grid.ts +349 -0
  235. package/src/primitives/histogram.ts +273 -0
  236. package/src/primitives/radix-sort.ts +246 -0
  237. package/src/primitives/scan.ts +197 -0
  238. package/src/primitives/segmented-reduce.ts +214 -56
  239. package/src/primitives/spmv.ts +125 -65
  240. package/src/primitives/verify.ts +249 -0
  241. package/src/types/accelerator.ts +15 -3
  242. package/src/types/context.ts +56 -0
  243. package/src/types/layout.ts +58 -0
  244. package/src/types/options.ts +45 -1
  245. package/src/wgsl/counting-scatter.wgsl.ts +16 -0
  246. package/src/wgsl/fa2-attraction.wgsl.ts +100 -17
  247. package/src/wgsl/fa2-integrate.wgsl.ts +28 -2
  248. package/src/wgsl/fa2-repulsion-exact.wgsl.ts +14 -5
  249. package/src/wgsl/fa2-stats-finalize.wgsl.ts +54 -0
  250. package/src/wgsl/grid-cell-key.wgsl.ts +29 -0
  251. package/src/wgsl/grid-centroid-hub.wgsl.ts +28 -0
  252. package/src/wgsl/grid-centroid.wgsl.ts +28 -0
  253. package/src/wgsl/grid-downsample.wgsl.ts +27 -0
  254. package/src/wgsl/grid-far-field.wgsl.ts +97 -0
  255. package/src/wgsl/grid-near-field.wgsl.ts +128 -0
  256. package/src/wgsl/histogram.wgsl.ts +14 -0
  257. package/src/wgsl/indirect-finalize.wgsl.ts +25 -0
  258. package/src/wgsl/radix-hist.wgsl.ts +30 -0
  259. package/src/wgsl/radix-scatter.wgsl.ts +39 -0
  260. package/src/wgsl/scan-add.wgsl.ts +13 -0
  261. package/src/wgsl/scan-block.wgsl.ts +29 -0
  262. package/src/wgsl/segmented-reduce.wgsl.ts +84 -15
  263. package/src/wgsl/spmv-pull.wgsl.ts +110 -36
  264. package/dist/chunks/context-CRbw2Wyo.js.map +0 -1
@@ -7,12 +7,13 @@
7
7
  * and fa2-speed-finalize (K4) together with every generated block of contract 3.10.2; P2-T2 lands
8
8
  * segmented-reduce; P3-T2 adds fa2-stats-finalize (K1), fa2-attraction (K2), fa2-integrate (K5) and
9
9
  * fa2-to-scene; M8b-T3 adds the seven P7 entries: spmv-pull, pr-scale, pr-finalize, wcc-link-sample,
10
- * wcc-link-edges, wcc-compress and wcc-sample. This file is the only importer of src/wgsl/** (spec 3.2;
11
- * test/layers.test.ts).
10
+ * wcc-link-edges, wcc-compress and wcc-sample. P4-T1 adds indirect-finalize; the other P4 entries follow, one task
11
+ * each (the P4 plan, PD-1). This file is the only importer of src/wgsl/** (spec 3.2; test/layers.test.ts).
12
12
  */
13
13
  import { STATE_HEADER_BYTES } from "./constants.js";
14
14
  import { WebGpuGraphError } from "./errors.js";
15
15
  import { UniformBlock } from "./kernel/struct-block.js";
16
+ import { countingScatterWgsl } from "./wgsl/counting-scatter.wgsl.js";
16
17
  import { degreeWgsl } from "./wgsl/degree.wgsl.js";
17
18
  import { fa2AttractionWgsl } from "./wgsl/fa2-attraction.wgsl.js";
18
19
  import { fa2IntegrateWgsl } from "./wgsl/fa2-integrate.wgsl.js";
@@ -21,9 +22,21 @@ import { fa2SpeedFinalizeWgsl } from "./wgsl/fa2-speed-finalize.wgsl.js";
21
22
  import { fa2StatsFinalizeWgsl } from "./wgsl/fa2-stats-finalize.wgsl.js";
22
23
  import { fa2ToSceneWgsl } from "./wgsl/fa2-to-scene.wgsl.js";
23
24
  import { fillWgsl } from "./wgsl/fill.wgsl.js";
25
+ import { gridCellKeyWgsl } from "./wgsl/grid-cell-key.wgsl.js";
26
+ import { gridCentroidWgsl } from "./wgsl/grid-centroid.wgsl.js";
27
+ import { gridCentroidHubWgsl } from "./wgsl/grid-centroid-hub.wgsl.js";
28
+ import { gridDownsampleWgsl } from "./wgsl/grid-downsample.wgsl.js";
29
+ import { gridFarFieldWgsl } from "./wgsl/grid-far-field.wgsl.js";
30
+ import { gridNearFieldWgsl } from "./wgsl/grid-near-field.wgsl.js";
31
+ import { histogramWgsl } from "./wgsl/histogram.wgsl.js";
32
+ import { indirectFinalizeWgsl } from "./wgsl/indirect-finalize.wgsl.js";
24
33
  import { prFinalizeWgsl } from "./wgsl/pr-finalize.wgsl.js";
25
34
  import { prScaleWgsl } from "./wgsl/pr-scale.wgsl.js";
35
+ import { radixHistWgsl } from "./wgsl/radix-hist.wgsl.js";
36
+ import { radixScatterWgsl } from "./wgsl/radix-scatter.wgsl.js";
26
37
  import { reduceWgsl } from "./wgsl/reduce.wgsl.js";
38
+ import { scanAddWgsl } from "./wgsl/scan-add.wgsl.js";
39
+ import { scanBlockWgsl } from "./wgsl/scan-block.wgsl.js";
27
40
  import { segmentedReduceWgsl } from "./wgsl/segmented-reduce.wgsl.js";
28
41
  import { spmvPullWgsl } from "./wgsl/spmv-pull.wgsl.js";
29
42
  import { wccCompressWgsl } from "./wgsl/wcc-compress.wgsl.js";
@@ -56,7 +69,7 @@ export const FILL_PARAMS = UniformBlock.define("FillParams", [
56
69
  ["mode", "u32"],
57
70
  ["pad0", "u32"],
58
71
  ]);
59
- /** `Fa2Params` (uniform, 96 B; spec 7.3): the per-iteration ForceAtlas2 parameters -- `n` @0, `dim` @4, `flags` @8 (bit 0 = FA2_FLAG_FIRST), `tierStart` @12, `tierEnd` @16, `iterationIndex` @20, `seed` @24, `nearMax` @28, `scalingRatio` @32, `gravity` @36, `jitterTolerance` @40, `scale` @44, `center` @48 (xyz, w 0), `settleThreshold` @64, `extentFactor` @68, `gridMax` @72, `levels` @76, `pad` @80 (reserved for the P4 GridSpec). */
72
+ /** `Fa2Params` (uniform, 128 B; spec 7.3): the per-iteration ForceAtlas2 parameters -- `n` @0, `dim` @4, `flags` @8 (bit 0 = FA2_FLAG_FIRST), `tierStart` @12, `tierEnd` @16, `iterationIndex` @20, `seed` @24, `nearMax` @28, `scalingRatio` @32, `gravity` @36, `jitterTolerance` @40, `scale` @44, `center` @48 (xyz, w 0), `settleThreshold` @64, `extentFactor` @68, `gridMax` @72, `levels` @76, `arcBase` @80 / `arcEnd` @84 (the bound arc window of K2, 0 and arcCount in the layout), `accumulate` @88 (1 combines into `force`: the windowed pattern), `hiEnd` @92 / `midEnd` @124 (the degreeOrder tier boundaries, PD-7; both 0 without a permutation); the P5 model fields (PD-3): `frK` @96 (the FR optimal distance), `temperature` @100 (the FR temperature of this iteration), `springLength` @104, `springCoefficient` @108, `coulomb` @112 (ngraph's `gravity`, negative repels), `dragCoefficient` @116, `timeStep` @120; 128 B. */
60
73
  export const FA2_PARAMS = UniformBlock.define("Fa2Params", [
61
74
  ["n", "u32"],
62
75
  ["dim", "u32"],
@@ -75,9 +88,20 @@ export const FA2_PARAMS = UniformBlock.define("Fa2Params", [
75
88
  ["extentFactor", "f32"],
76
89
  ["gridMax", "u32"],
77
90
  ["levels", "u32"],
78
- ["pad", "vec4f"],
91
+ ["arcBase", "u32"],
92
+ ["arcEnd", "u32"],
93
+ ["accumulate", "u32"],
94
+ ["hiEnd", "u32"],
95
+ ["frK", "f32"],
96
+ ["temperature", "f32"],
97
+ ["springLength", "f32"],
98
+ ["springCoefficient", "f32"],
99
+ ["coulomb", "f32"],
100
+ ["dragCoefficient", "f32"],
101
+ ["timeStep", "f32"],
102
+ ["midEnd", "u32"],
79
103
  ]);
80
- /** `Fa2State` (storage, padded to STATE_HEADER_BYTES = 256; spec 7.3): the device-resident controller state the finalize kernels write and the host reads back for stats -- `speed` @0, `speedEfficiency` @4, `swing` @8, `traction` @12, `centroid` @16, `rmsRadius` @32, `radius` @36, `meanDisplacement` @40, `iteration` @44, `min` @48, `max` @64, `gridMin` @80 (P4), `eps` @96 (P4), `settledCount` @100, `outsideGrid` @104 (P4), `maxCellOccupancy` @108 (P4), `reserved0` .. `reserved8` @112 .. @240. */
104
+ /** `Fa2State` (storage, padded to STATE_HEADER_BYTES = 256; spec 7.3): the device-resident controller state the finalize kernels write and the host reads back for stats -- `speed` @0, `speedEfficiency` @4, `swing` @8, `traction` @12, `centroid` @16, `rmsRadius` @32, `radius` @36, `meanDisplacement` @40, `iteration` @44, `min` @48, `max` @64, `gridMin` @80 (P4), `eps` @96 (P4), `settledCount` @100, `outsideGrid` @104 (P4), `maxCellOccupancy` @108 (P4), `temperature` @112 (FR, written by K1 under STATS_MODE 1), `kineticEnergy` @116 (the preset, K1 under STATS_MODE 2), `frEnergy` @120 / `frProgress` @124 (the FR adaptive cooling), `invCellSize` @128 (P4, PD-10: `1 / cellSize`, written by K1 beside `cellSize` in `gridMin.w`; G1 multiplies by it so every key is bitwise reproducible), `reserved0` @132 (f32), `reserved1` @136 (vec2f), `reserved2` .. `reserved8` @144 .. @240. */
81
105
  export const FA2_STATE = UniformBlock.define("Fa2State", [
82
106
  ["speed", "f32"],
83
107
  ["speedEfficiency", "f32"],
@@ -95,8 +119,13 @@ export const FA2_STATE = UniformBlock.define("Fa2State", [
95
119
  ["settledCount", "u32"],
96
120
  ["outsideGrid", "u32"],
97
121
  ["maxCellOccupancy", "u32"],
98
- ["reserved0", "vec4f"],
99
- ["reserved1", "vec4f"],
122
+ ["temperature", "f32"],
123
+ ["kineticEnergy", "f32"],
124
+ ["frEnergy", "f32"],
125
+ ["frProgress", "u32"],
126
+ ["invCellSize", "f32"],
127
+ ["reserved0", "f32"],
128
+ ["reserved1", "vec2f"],
100
129
  ["reserved2", "vec4f"],
101
130
  ["reserved3", "vec4f"],
102
131
  ["reserved4", "vec4f"],
@@ -105,7 +134,7 @@ export const FA2_STATE = UniformBlock.define("Fa2State", [
105
134
  ["reserved7", "vec4f"],
106
135
  ["reserved8", "vec4f"],
107
136
  ], { layout: "storage", padTo: STATE_HEADER_BYTES });
108
- /** `Fa2Trace` (storage record, 32 B; spec 7.3): one per-iteration trace record -- `swing` @0, `traction` @4, `speed` @8, `speedEfficiency` @12 (written by K4), `meanDisplacement` @16, `settledCount` @20, `iteration` @24 (written by K1), `pad0` @28; the trace region is `array<Fa2Trace>` at byte offset STATE_HEADER_BYTES of the state buffer. */
137
+ /** `Fa2Trace` (storage record, 32 B; spec 7.3): one per-iteration trace record -- `swing` @0, `traction` @4, `speed` @8, `speedEfficiency` @12 (written by K4), `meanDisplacement` @16, `settledCount` @20, `iteration` @24 (written by K1), `modelScalar` @28 (K1: the temperature under STATS_MODE 1, the kinetic energy under 2, 0 under 0); the trace region is `array<Fa2Trace>` at byte offset STATE_HEADER_BYTES of the state buffer. */
109
138
  export const FA2_TRACE = UniformBlock.define("Fa2Trace", [
110
139
  ["swing", "f32"],
111
140
  ["traction", "f32"],
@@ -114,7 +143,7 @@ export const FA2_TRACE = UniformBlock.define("Fa2Trace", [
114
143
  ["meanDisplacement", "f32"],
115
144
  ["settledCount", "u32"],
116
145
  ["iteration", "u32"],
117
- ["pad0", "u32"],
146
+ ["modelScalar", "f32"],
118
147
  ], { layout: "storage" });
119
148
  /** `Fa2Partial` (storage record, 64 B; spec 7.3): one per-workgroup partial -- `sum` @0 (xyz = sum of positions, w = sum of |p - centroid|^2), `min` @16, `max` @32 (w = max of |p - centroid|^2, the exact layoutRadius source), written by K5; `swingTraction` @48 (written by K3's epilogue); `dispFree` @56 (x = sum |dp| over free rows, y = the free count as an f32 <= 256, written by K5). */
120
149
  export const FA2_PARTIAL = UniformBlock.define("Fa2Partial", [
@@ -124,7 +153,7 @@ export const FA2_PARTIAL = UniformBlock.define("Fa2Partial", [
124
153
  ["swingTraction", "vec2f"],
125
154
  ["dispFree", "vec2f"],
126
155
  ], { layout: "storage" });
127
- /** `SpmvParams` (uniform, 32 B; spec 8.2): `n` @0 rows of the pull, the bound arc window `[arcBase, arcEnd)` @4 / @8 (0 and arcCount when not windowed), the grid-stride step `stride` @12, `alpha` @16, `beta` @20 (the `1 - alpha` term), `uniformP` @24 (the uniform personalization mass `1 / n`, 0 for a pure SpMV), `pad0` @28. */
156
+ /** `SpmvParams` (uniform, 32 B; spec 8.2): `n` @0 rows of the pull, the bound arc window `[arcBase, arcEnd)` @4 / @8 (0 and arcCount when not windowed), the grid-stride step `stride` @12, `alpha` @16, `beta` @20 (the `1 - alpha` term), `uniformP` @24 (the uniform personalization mass `1 / n`, 0 for a pure SpMV), `start` @28 (the first row of the dispatch; TIER 0 strides from it, the tiers index from it). */
128
157
  export const SPMV_PARAMS = UniformBlock.define("SpmvParams", [
129
158
  ["n", "u32"],
130
159
  ["arcBase", "u32"],
@@ -133,7 +162,7 @@ export const SPMV_PARAMS = UniformBlock.define("SpmvParams", [
133
162
  ["alpha", "f32"],
134
163
  ["beta", "f32"],
135
164
  ["uniformP", "f32"],
136
- ["pad0", "u32"],
165
+ ["start", "u32"],
137
166
  ]);
138
167
  /** `PrParams` (uniform, 32 B; spec 8.2): `n` @0, `groups` @4 (the per-workgroup partial count the finalize folds), `iteration` @8 (1-based), `trackConvergence` @12 (1 records firstConverged), `convergeThreshold` @16 (`tolerance * n`, the design's `delta < tol * n`), `pad0` @20, `pad1` @24, `pad2` @28. */
139
168
  export const PR_PARAMS = UniformBlock.define("PrParams", [
@@ -174,6 +203,45 @@ export const WCC_PARAMS = UniformBlock.define("WccParams", [
174
203
  ["maxSteps", "u32"],
175
204
  ["pad0", "u32"],
176
205
  ]);
206
+ /** `IndirectParams` (uniform, 16 B; spec 5.4): `countIndex` @0 (the word of `counters` holding the count), `wg` @4 (the consumer's workgroup size), `slot` @8 (the 16-byte args slot to write), `pad0` @12. */
207
+ export const INDIRECT_PARAMS = UniformBlock.define("IndirectParams", [
208
+ ["countIndex", "u32"],
209
+ ["wg", "u32"],
210
+ ["slot", "u32"],
211
+ ["pad0", "u32"],
212
+ ]);
213
+ /** `ScanParams` (uniform, 16 B; spec 6 row 2): `count` @0 (the u32 words of the level), `pad0` @4, `pad1` @8, `pad2` @12. */
214
+ export const SCAN_PARAMS = UniformBlock.define("ScanParams", [
215
+ ["count", "u32"],
216
+ ["pad0", "u32"],
217
+ ["pad1", "u32"],
218
+ ["pad2", "u32"],
219
+ ]);
220
+ /** `GridLevelParams` (uniform, 32 B; spec 7.7 G5, P4-T9): `childBase` @0 and `parentBase` @4 (the first cell of the child / parent level inside the pyramid), `parentSide` @8, `parentCells` @12 (`parentSide^dim`), `depth` @16 (1 in 2D, 2 in 3D), `pad0` @20, `pad1` @24, `pad2` @28. */
221
+ export const GRID_LEVEL_PARAMS = UniformBlock.define("GridLevelParams", [
222
+ ["childBase", "u32"],
223
+ ["parentBase", "u32"],
224
+ ["parentSide", "u32"],
225
+ ["parentCells", "u32"],
226
+ ["depth", "u32"],
227
+ ["pad0", "u32"],
228
+ ["pad1", "u32"],
229
+ ["pad2", "u32"],
230
+ ]);
231
+ /** `HistParams` (uniform, 16 B; spec 6 row 5): `count` @0 (the keys), `bins` @4 (a key >= bins is not counted), `pad0` @8, `pad1` @12. */
232
+ export const HIST_PARAMS = UniformBlock.define("HistParams", [
233
+ ["count", "u32"],
234
+ ["bins", "u32"],
235
+ ["pad0", "u32"],
236
+ ["pad1", "u32"],
237
+ ]);
238
+ /** `RadixParams` (uniform, 16 B; spec 6 row 6): `count` @0 (the pairs), `shift` @4 (the pass's digit shift, 8 x pass), `groups` @8 (ceil(count / WG), the stride of the digit-major table), `pad0` @12. */
239
+ export const RADIX_PARAMS = UniformBlock.define("RadixParams", [
240
+ ["count", "u32"],
241
+ ["shift", "u32"],
242
+ ["groups", "u32"],
243
+ ["pad0", "u32"],
244
+ ]);
177
245
  // ---- the entries (contract 3.10.1; group 0 = graph, 1 = state, 2 = params, 3 = cold)
178
246
  /**
179
247
  * One binding declaration of contract 3.9, so the tables below read like the rows of 3.10.1.
@@ -238,7 +306,7 @@ const FILL = {
238
306
  snippetSlots: [],
239
307
  phase: "P1",
240
308
  };
241
- /** `segmented-reduce` (3.10.1): the per-row fold of the VALUE snippet over the CSR rows; OP 0 sum / 1 min / 2 max, TIER 0 (thread-per-row; the degreeOrder tiers land at P4) plus the standard USE_PERM / HAS_WEIGHTS; 5 storage bindings; one snippet slot. */
309
+ /** `segmented-reduce` (3.10.1): the per-row fold of the VALUE snippet over the CSR rows; OP 0 sum / 1 min / 2 max, TIER 0 thread-per-row / 1 32-lanes-per-row / 2 workgroup-per-row (the degreeOrder tiers, P4 PD-6) plus the standard USE_PERM / HAS_WEIGHTS; 5 storage bindings; one snippet slot; calls the reduction helpers (TIER 2). */
242
310
  const SEGMENTED_REDUCE = {
243
311
  id: "segmented-reduce",
244
312
  body: segmentedReduceWgsl,
@@ -249,11 +317,11 @@ const SEGMENTED_REDUCE = {
249
317
  { name: "TIER", type: "u32", default: 0 },
250
318
  ],
251
319
  uniforms: [RANGE_PARAMS],
252
- needs: [],
320
+ needs: ["subgroups"],
253
321
  snippetSlots: ["VALUE"],
254
322
  phase: "P2",
255
323
  };
256
- /** `fa2-stats-finalize` (K1, 3.10.1): the one-workgroup fold of the previous integrate's partials into the state block and the K1 half of the trace record; 3 storage bindings; calls the reduction helpers. */
324
+ /** `fa2-stats-finalize` (K1, 3.10.1): the one-workgroup fold of the previous integrate's partials into the state block and the K1 half of the trace record; STATS_MODE 0 FA2 / 1 FR temperature / 2 kinetic energy (P5); the grid frame, counts and hub-counter reset under `P.gridMax > 0` (P4-T10, PD-14: `cellHist` and `hubCounters` are bound to dummies on the exact tier); 5 storage bindings; calls the reduction helpers. */
257
325
  const FA2_STATS_FINALIZE = {
258
326
  id: "fa2-stats-finalize",
259
327
  body: fa2StatsFinalizeWgsl,
@@ -262,15 +330,17 @@ const FA2_STATS_FINALIZE = {
262
330
  decl(1, 0, "partials", "storage-ro", "array<Fa2Partial>"),
263
331
  decl(1, 1, "S", "storage", "Fa2State"),
264
332
  decl(1, 2, "T", "storage", "array<Fa2Trace>"),
333
+ decl(1, 3, "cellHist", "storage-ro", "array<u32>"),
334
+ decl(1, 4, "hubCounters", "storage", "array<atomic<u32>>"),
265
335
  decl(2, 0, "P", "uniform", "Fa2Params"),
266
336
  ],
267
- overrideDecls: [],
337
+ overrideDecls: [{ name: "STATS_MODE", type: "u32", default: 0 }],
268
338
  uniforms: [FA2_PARAMS, FA2_STATE, FA2_TRACE, FA2_PARTIAL],
269
339
  needs: ["subgroups"],
270
340
  snippetSlots: [],
271
341
  phase: "P3",
272
342
  };
273
- /** `fa2-attraction` (K2, 3.10.1): the thread-per-row attraction gather over the CSR rows (the first writer of `force` each iteration); LINLOG / DISTRIBUTED / TIER 0 plus the standard USE_PERM / HAS_WEIGHTS; 6 storage bindings. */
343
+ /** `fa2-attraction` (K2, 3.10.1): the attraction gather over the CSR rows (the first writer of `force` each iteration); LINLOG / DISTRIBUTED / TIER 0 thread-per-row / 1 32-lanes-per-row / 2 workgroup-per-row (P4 PD-6) plus the standard USE_PERM / HAS_WEIGHTS; LAW 0 FA2 / 1 FR / 2 spring (P5); 6 storage bindings; calls the reduction helpers (TIER 2). */
274
344
  const FA2_ATTRACTION = {
275
345
  id: "fa2-attraction",
276
346
  body: fa2AttractionWgsl,
@@ -280,13 +350,14 @@ const FA2_ATTRACTION = {
280
350
  { name: "LINLOG", type: "bool", default: false },
281
351
  { name: "DISTRIBUTED", type: "bool", default: false },
282
352
  { name: "TIER", type: "u32", default: 0 },
353
+ { name: "LAW", type: "u32", default: 0 },
283
354
  ],
284
355
  uniforms: [FA2_PARAMS],
285
- needs: [],
356
+ needs: ["subgroups"],
286
357
  snippetSlots: [],
287
358
  phase: "P3",
288
359
  };
289
- /** `fa2-repulsion-exact` (K3, 3.10.1): the tiled all-pairs repulsion with the gravity and swing / traction epilogue; 6 storage bindings (`oldForce` read-only: it only calls load_old); calls the reduction helpers. */
360
+ /** `fa2-repulsion-exact` (K3, 3.10.1): the tiled all-pairs repulsion with the gravity and swing / traction epilogue; LAW 0 FA2 / 1 FR / 2 coulomb (P5); 6 storage bindings (`oldForce` read-only: it only calls load_old); calls the reduction helpers. */
290
361
  const FA2_REPULSION_EXACT = {
291
362
  id: "fa2-repulsion-exact",
292
363
  body: fa2RepulsionExactWgsl,
@@ -304,6 +375,7 @@ const FA2_REPULSION_EXACT = {
304
375
  { name: "SWING_MODE", type: "u32", default: 0 },
305
376
  { name: "STRONG_GRAVITY", type: "bool", default: false },
306
377
  { name: "GRAVITY_CENTER", type: "u32", default: 0 },
378
+ { name: "LAW", type: "u32", default: 0 },
307
379
  ],
308
380
  uniforms: [FA2_PARAMS, FA2_STATE, FA2_PARTIAL],
309
381
  needs: ["subgroups"],
@@ -327,7 +399,7 @@ const FA2_SPEED_FINALIZE = {
327
399
  snippetSlots: [],
328
400
  phase: "P1",
329
401
  };
330
- /** `fa2-integrate` (K5, 3.10.1): the per-node speed factor and position update (no clamp, D25), `oldForce` stored in SWING_MODE 0, and the partials A / C of the next K1; 6 storage bindings; calls the reduction helpers. */
402
+ /** `fa2-integrate` (K5, 3.10.1): the per-node speed factor and position update (no clamp, D25), `oldForce` stored in SWING_MODE 0, and the partials A / C of the next K1; APPLY 0 FA2 / 1 FR temperature cap / 2 ngraph Euler (P5); 6 storage bindings; calls the reduction helpers. */
331
403
  const FA2_INTEGRATE = {
332
404
  id: "fa2-integrate",
333
405
  body: fa2IntegrateWgsl,
@@ -341,7 +413,10 @@ const FA2_INTEGRATE = {
341
413
  decl(1, 5, "partials", "storage", "array<Fa2Partial>"),
342
414
  decl(2, 0, "P", "uniform", "Fa2Params"),
343
415
  ],
344
- overrideDecls: [{ name: "SWING_MODE", type: "u32", default: 0 }],
416
+ overrideDecls: [
417
+ { name: "SWING_MODE", type: "u32", default: 0 },
418
+ { name: "APPLY", type: "u32", default: 0 },
419
+ ],
345
420
  uniforms: [FA2_PARAMS, FA2_STATE, FA2_PARTIAL],
346
421
  needs: ["subgroups"],
347
422
  snippetSlots: [],
@@ -363,7 +438,7 @@ const FA2_TO_SCENE = {
363
438
  snippetSlots: [],
364
439
  phase: "P3",
365
440
  };
366
- /** `spmv-pull` (spec 8.10): the grid-stride pull SpMV over the reverse adjacency; HAS_PERSONALIZATION / USE_DANGLING plus the standard USE_PERM / HAS_WEIGHTS; 8 storage bindings (the design's count). */
441
+ /** `spmv-pull` (spec 8.10): the pull SpMV over the reverse adjacency; HAS_PERSONALIZATION / USE_DANGLING / TIER 0 grid-stride / 1 32-lanes-per-row / 2 workgroup-per-row (the reverseDegreeOrder tiers, P4 PD-6) plus the standard USE_PERM / HAS_WEIGHTS; 8 storage bindings (the design's count); calls the reduction helpers (TIER 2). */
367
442
  const SPMV_PULL = {
368
443
  id: "spmv-pull",
369
444
  body: spmvPullWgsl,
@@ -372,9 +447,10 @@ const SPMV_PULL = {
372
447
  overrideDecls: [
373
448
  { name: "HAS_PERSONALIZATION", type: "bool", default: false },
374
449
  { name: "USE_DANGLING", type: "bool", default: false },
450
+ { name: "TIER", type: "u32", default: 0 },
375
451
  ],
376
452
  uniforms: [SPMV_PARAMS, PR_PARTIAL],
377
- needs: [],
453
+ needs: ["subgroups"],
378
454
  snippetSlots: [],
379
455
  phase: "P7",
380
456
  };
@@ -466,6 +542,240 @@ const WCC_SAMPLE = {
466
542
  snippetSlots: [],
467
543
  phase: "P7",
468
544
  };
545
+ /** `indirect-finalize` (spec 5.4; P4-T1): the one-lane count -> (x, y, 1, count) finalize; 2 storage bindings. */
546
+ const INDIRECT_FINALIZE = {
547
+ id: "indirect-finalize",
548
+ body: indirectFinalizeWgsl,
549
+ entryPoint: "indirect_finalize",
550
+ bindings: [
551
+ decl(1, 0, "counters", "storage-ro", "array<u32>"),
552
+ decl(1, 1, "args", "storage", "array<u32>"),
553
+ decl(2, 0, "P", "uniform", "IndirectParams"),
554
+ ],
555
+ overrideDecls: [],
556
+ uniforms: [INDIRECT_PARAMS],
557
+ needs: [],
558
+ snippetSlots: [],
559
+ phase: "P4",
560
+ };
561
+ /** `scan-block` (spec 6 row 2 steps (a) / (b); P4-T2, PD-3): the Hillis-Steele exclusive scan of one WG-wide block into `out` and its total into `blockSums[group]`; 3 storage bindings; no subgroup variant. */
562
+ const SCAN_BLOCK = {
563
+ id: "scan-block",
564
+ body: scanBlockWgsl,
565
+ entryPoint: "scan_block",
566
+ bindings: [
567
+ decl(1, 0, "src", "storage-ro", "array<u32>"),
568
+ decl(1, 1, "out", "storage", "array<u32>"),
569
+ decl(1, 2, "blockSums", "storage", "array<u32>"),
570
+ decl(2, 0, "P", "uniform", "ScanParams"),
571
+ ],
572
+ overrideDecls: [],
573
+ uniforms: [SCAN_PARAMS],
574
+ needs: [],
575
+ snippetSlots: [],
576
+ phase: "P4",
577
+ };
578
+ /** `scan-add` (spec 6 row 2 step (c); P4-T2): adds `blockOffsets[group]` to every element of the block; 2 storage bindings. */
579
+ const SCAN_ADD = {
580
+ id: "scan-add",
581
+ body: scanAddWgsl,
582
+ entryPoint: "scan_add",
583
+ bindings: [
584
+ decl(1, 0, "out", "storage", "array<u32>"),
585
+ decl(1, 1, "blockOffsets", "storage-ro", "array<u32>"),
586
+ decl(2, 0, "P", "uniform", "ScanParams"),
587
+ ],
588
+ overrideDecls: [],
589
+ uniforms: [SCAN_PARAMS],
590
+ needs: [],
591
+ snippetSlots: [],
592
+ phase: "P4",
593
+ };
594
+ /** `histogram` (spec 6 row 5; P4-T3, PD-4): one global atomicAdd per key into `hist` (zeroed by a `fill` dispatch earlier in the pass); 2 storage bindings; one path, no PRIVATE override. */
595
+ const HISTOGRAM = {
596
+ id: "histogram",
597
+ body: histogramWgsl,
598
+ entryPoint: "histogram",
599
+ bindings: [
600
+ decl(1, 0, "keys", "storage-ro", "array<u32>"),
601
+ decl(1, 1, "hist", "storage", "array<atomic<u32>>"),
602
+ decl(2, 0, "P", "uniform", "HistParams"),
603
+ ],
604
+ overrideDecls: [],
605
+ uniforms: [HIST_PARAMS],
606
+ needs: [],
607
+ snippetSlots: [],
608
+ phase: "P4",
609
+ };
610
+ /** `counting-scatter` (spec 6 row 5; P4-T3): the scatter of a counting sort, `outIndex[start[k] + atomicAdd(&cursor[k], 1u)] = i`; 4 storage bindings; set-deterministic (the order inside a bin follows the schedule). */
611
+ const COUNTING_SCATTER = {
612
+ id: "counting-scatter",
613
+ body: countingScatterWgsl,
614
+ entryPoint: "counting_scatter",
615
+ bindings: [
616
+ decl(1, 0, "keys", "storage-ro", "array<u32>"),
617
+ decl(1, 1, "start", "storage-ro", "array<u32>"),
618
+ decl(1, 2, "cursor", "storage", "array<atomic<u32>>"),
619
+ decl(1, 3, "outIndex", "storage", "array<u32>"),
620
+ decl(2, 0, "P", "uniform", "HistParams"),
621
+ ],
622
+ overrideDecls: [],
623
+ uniforms: [HIST_PARAMS],
624
+ needs: [],
625
+ snippetSlots: [],
626
+ phase: "P4",
627
+ };
628
+ /** `radix-hist` (spec 6 row 6; P4-T4, PD-5): the per-workgroup 256-bin digit histogram, privatised in workgroup memory and stored digit-major `hist[digit * groups + group]`; 2 storage bindings. */
629
+ const RADIX_HIST = {
630
+ id: "radix-hist",
631
+ body: radixHistWgsl,
632
+ entryPoint: "radix_hist",
633
+ bindings: [
634
+ decl(1, 0, "keys", "storage-ro", "array<u32>"),
635
+ decl(1, 1, "hist", "storage", "array<u32>"),
636
+ decl(2, 0, "P", "uniform", "RadixParams"),
637
+ ],
638
+ overrideDecls: [],
639
+ uniforms: [RADIX_PARAMS],
640
+ needs: [],
641
+ snippetSlots: [],
642
+ phase: "P4",
643
+ };
644
+ /** `radix-scatter` (spec 6 row 6; P4-T4, PD-5): the stable scatter of one LSD pass, ranked serially by lane 0, written at `offsets[digit * groups + group] + rank`; 5 storage bindings. */
645
+ const RADIX_SCATTER = {
646
+ id: "radix-scatter",
647
+ body: radixScatterWgsl,
648
+ entryPoint: "radix_scatter",
649
+ bindings: [
650
+ decl(1, 0, "keys", "storage-ro", "array<u32>"),
651
+ decl(1, 1, "vals", "storage-ro", "array<u32>"),
652
+ decl(1, 2, "offsets", "storage-ro", "array<u32>"),
653
+ decl(1, 3, "keysOut", "storage", "array<u32>"),
654
+ decl(1, 4, "valsOut", "storage", "array<u32>"),
655
+ decl(2, 0, "P", "uniform", "RadixParams"),
656
+ ],
657
+ overrideDecls: [],
658
+ uniforms: [RADIX_PARAMS],
659
+ needs: [],
660
+ snippetSlots: [],
661
+ phase: "P4",
662
+ };
663
+ /** `grid-cell-key` (G1, spec 7.7; P4-T8, PD-10): the finest cell key of every node, `floor((p - gridMin) * invCellSize)` linearised, or the outside pseudo-cell `G^dim`; `cellVal[i] = i`; 4 storage bindings (the state read-only: K1 writes it). */
664
+ const GRID_CELL_KEY = {
665
+ id: "grid-cell-key",
666
+ body: gridCellKeyWgsl,
667
+ entryPoint: "grid_cell_key",
668
+ bindings: [
669
+ decl(1, 0, "pos", "storage-ro", "array<vec4f>"),
670
+ decl(1, 1, "S", "storage-ro", "Fa2State"),
671
+ decl(1, 2, "cellKey", "storage", "array<u32>"),
672
+ decl(1, 3, "cellVal", "storage", "array<u32>"),
673
+ decl(2, 0, "P", "uniform", "Fa2Params"),
674
+ ],
675
+ overrideDecls: [],
676
+ uniforms: [FA2_PARAMS, FA2_STATE],
677
+ needs: [],
678
+ snippetSlots: [],
679
+ phase: "P4",
680
+ };
681
+ /** `grid-centroid` (G4, spec 7.7; P4-T9, PD-13): thread per finest cell (the pseudo-cell included), the serial mass-weighted sum in sorted order into level 0, the occupancy max into `hubCounters[1]`, hub cells (> GRID_HUB_CELL) appended to `hubList`; 6 storage bindings. */
682
+ const GRID_CENTROID = {
683
+ id: "grid-centroid",
684
+ body: gridCentroidWgsl,
685
+ entryPoint: "grid_centroid",
686
+ bindings: [
687
+ decl(1, 0, "sortedIdx", "storage-ro", "array<u32>"),
688
+ decl(1, 1, "cellStart", "storage-ro", "array<u32>"),
689
+ decl(1, 2, "pos", "storage-ro", "array<vec4f>"),
690
+ decl(1, 3, "pyramid", "storage", "array<vec4f>"),
691
+ decl(1, 4, "hubList", "storage", "array<u32>"),
692
+ decl(1, 5, "hubCounters", "storage", "array<atomic<u32>>"),
693
+ decl(2, 0, "P", "uniform", "Fa2Params"),
694
+ ],
695
+ overrideDecls: [],
696
+ uniforms: [FA2_PARAMS],
697
+ needs: [],
698
+ snippetSlots: [],
699
+ phase: "P4",
700
+ };
701
+ /** `grid-centroid-hub` (G4b, spec 7.7; P4-T9, PD-13, DEP-P4-L): one workgroup per hub cell, dispatched indirectly, a WG-strided sum through `wg_reduce_vec4` guarded by `h < hubCount[0]`; 6 storage bindings (`hubCount` is a read-only view of `hubCounters`). */
702
+ const GRID_CENTROID_HUB = {
703
+ id: "grid-centroid-hub",
704
+ body: gridCentroidHubWgsl,
705
+ entryPoint: "grid_centroid_hub",
706
+ bindings: [
707
+ decl(1, 0, "sortedIdx", "storage-ro", "array<u32>"),
708
+ decl(1, 1, "cellStart", "storage-ro", "array<u32>"),
709
+ decl(1, 2, "pos", "storage-ro", "array<vec4f>"),
710
+ decl(1, 3, "pyramid", "storage", "array<vec4f>"),
711
+ decl(1, 4, "hubList", "storage-ro", "array<u32>"),
712
+ decl(1, 5, "hubCount", "storage-ro", "array<u32>"),
713
+ decl(2, 0, "P", "uniform", "Fa2Params"),
714
+ ],
715
+ overrideDecls: [],
716
+ uniforms: [FA2_PARAMS],
717
+ needs: ["subgroups"],
718
+ snippetSlots: [],
719
+ phase: "P4",
720
+ };
721
+ /** `grid-downsample` (G5, spec 7.7; P4-T9): one dispatch per coarser level, every parent the sum of its 4 / 8 children at `P.childBase`, written at `P.parentBase`; 1 storage binding. */
722
+ const GRID_DOWNSAMPLE = {
723
+ id: "grid-downsample",
724
+ body: gridDownsampleWgsl,
725
+ entryPoint: "grid_downsample",
726
+ bindings: [decl(1, 0, "pyramid", "storage", "array<vec4f>"), decl(2, 0, "P", "uniform", "GridLevelParams")],
727
+ overrideDecls: [],
728
+ uniforms: [GRID_LEVEL_PARAMS],
729
+ needs: [],
730
+ snippetSlots: [],
731
+ phase: "P4",
732
+ };
733
+ /** `grid-far-field` (G6, spec 7.7; P4-T10, PD-16, DEP-P4-G): per node in sorted order, the coarsest level minus its 3x3 (3x3x3) and, per finer level, the parent's 3x3 refined minus the level's own 3x3, plus the pseudo-cell; the loop bounds are `P.levels` / `P.gridMax`; LAW 0 FA2 / 1 FR / 2 coulomb per cell (P4-T13, PD-22); 5 storage bindings. */
734
+ const GRID_FAR_FIELD = {
735
+ id: "grid-far-field",
736
+ body: gridFarFieldWgsl,
737
+ entryPoint: "grid_far_field",
738
+ bindings: [
739
+ decl(1, 0, "pos", "storage-ro", "array<vec4f>"),
740
+ decl(1, 1, "sortedIdx", "storage-ro", "array<u32>"),
741
+ decl(1, 2, "pyramid", "storage-ro", "array<vec4f>"),
742
+ decl(1, 3, "S", "storage-ro", "Fa2State"),
743
+ decl(1, 4, "force", "storage", "array<f32>"),
744
+ decl(2, 0, "P", "uniform", "Fa2Params"),
745
+ ],
746
+ overrideDecls: [{ name: "LAW", type: "u32", default: 0 }],
747
+ uniforms: [FA2_PARAMS, FA2_STATE],
748
+ needs: [],
749
+ snippetSlots: [],
750
+ phase: "P4",
751
+ };
752
+ /** `grid-near-field` (G7, spec 7.7; P4-T10, PD-15): per node in sorted order, K3's exact pair law over the 9 (27) finest cells, a cell above `nearMax` sampled through the hashed window and scaled by `others / sampled`, then K3's fused epilogue (gravity, `force +=`, the swing / traction reduction); SWING_MODE / STRONG_GRAVITY / GRAVITY_CENTER / LAW as K3 (LAW 0 FA2 / 1 FR / 2 coulomb, P4-T13, PD-22); 8 storage bindings; calls the reduction helpers. */
753
+ const GRID_NEAR_FIELD = {
754
+ id: "grid-near-field",
755
+ body: gridNearFieldWgsl,
756
+ entryPoint: "grid_near_field",
757
+ bindings: [
758
+ decl(1, 0, "pos", "storage-ro", "array<vec4f>"),
759
+ decl(1, 1, "sortedIdx", "storage-ro", "array<u32>"),
760
+ decl(1, 2, "cellStart", "storage-ro", "array<u32>"),
761
+ decl(1, 3, "S", "storage", "Fa2State"),
762
+ decl(1, 4, "force", "storage", "array<f32>"),
763
+ decl(1, 5, "oldForce", "storage-ro", "array<f32>"),
764
+ decl(1, 6, "fixedMask", "storage-ro", "array<u32>"),
765
+ decl(1, 7, "partials", "storage", "array<Fa2Partial>"),
766
+ decl(2, 0, "P", "uniform", "Fa2Params"),
767
+ ],
768
+ overrideDecls: [
769
+ { name: "SWING_MODE", type: "u32", default: 0 },
770
+ { name: "STRONG_GRAVITY", type: "bool", default: false },
771
+ { name: "GRAVITY_CENTER", type: "u32", default: 0 },
772
+ { name: "LAW", type: "u32", default: 0 },
773
+ ],
774
+ uniforms: [FA2_PARAMS, FA2_STATE, FA2_PARTIAL],
775
+ needs: ["subgroups"],
776
+ snippetSlots: [],
777
+ phase: "P4",
778
+ };
469
779
  /**
470
780
  * The entries by id, in dispatch order. PLAN DECISION: `KernelId` is declared in full (contract 3.10) while the
471
781
  * entries landed phase by phase, so the table is built as a Partial record and exported below through the
@@ -493,6 +803,19 @@ const REGISTRY = Object.freeze({
493
803
  "wcc-link-edges": WCC_LINK_EDGES,
494
804
  "wcc-compress": WCC_COMPRESS,
495
805
  "wcc-sample": WCC_SAMPLE,
806
+ "indirect-finalize": INDIRECT_FINALIZE,
807
+ "scan-block": SCAN_BLOCK,
808
+ "scan-add": SCAN_ADD,
809
+ histogram: HISTOGRAM,
810
+ "counting-scatter": COUNTING_SCATTER,
811
+ "radix-hist": RADIX_HIST,
812
+ "radix-scatter": RADIX_SCATTER,
813
+ "grid-cell-key": GRID_CELL_KEY,
814
+ "grid-centroid": GRID_CENTROID,
815
+ "grid-centroid-hub": GRID_CENTROID_HUB,
816
+ "grid-downsample": GRID_DOWNSAMPLE,
817
+ "grid-far-field": GRID_FAR_FIELD,
818
+ "grid-near-field": GRID_NEAR_FIELD,
496
819
  });
497
820
  /** THE registry (spec 3.5): every entry, keyed by id. */
498
821
  export const KERNELS = REGISTRY;
@@ -1 +1 @@
1
- {"version":3,"file":"kernels.js","sourceRoot":"","sources":["../../src/kernels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernels.js","sourceRoot":"","sources":["../../src/kernels.ts"],"names":[],"mappings":"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"}