@graphty/webgpu-graph-algorithms 0.6.24 → 0.6.26

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 (64) hide show
  1. package/LICENSE +1 -1
  2. package/dist/browser.js +1 -1
  3. package/dist/chunks/{context-B40Z6lV_.js → context-BZY6SMsM.js} +41 -35
  4. package/dist/chunks/context-BZY6SMsM.js.map +1 -0
  5. package/dist/node.js +1 -1
  6. package/dist/src/algorithms/betweenness.d.ts +24 -9
  7. package/dist/src/algorithms/betweenness.d.ts.map +1 -1
  8. package/dist/src/algorithms/betweenness.js +105 -39
  9. package/dist/src/algorithms/betweenness.js.map +1 -1
  10. package/dist/src/constants.d.ts +11 -0
  11. package/dist/src/constants.d.ts.map +1 -1
  12. package/dist/src/constants.js +11 -0
  13. package/dist/src/constants.js.map +1 -1
  14. package/dist/src/kernel/prelude.d.ts.map +1 -1
  15. package/dist/src/kernel/prelude.js +4 -1
  16. package/dist/src/kernel/prelude.js.map +1 -1
  17. package/dist/src/kernels.d.ts +4 -4
  18. package/dist/src/kernels.d.ts.map +1 -1
  19. package/dist/src/kernels.js +43 -13
  20. package/dist/src/kernels.js.map +1 -1
  21. package/dist/src/layouts/seed.d.ts +3 -1
  22. package/dist/src/layouts/seed.d.ts.map +1 -1
  23. package/dist/src/layouts/seed.js +10 -1
  24. package/dist/src/layouts/seed.js.map +1 -1
  25. package/dist/src/types/betweenness.d.ts +5 -2
  26. package/dist/src/types/betweenness.d.ts.map +1 -1
  27. package/dist/src/wgsl/bc-backward.wgsl.d.ts +5 -2
  28. package/dist/src/wgsl/bc-backward.wgsl.d.ts.map +1 -1
  29. package/dist/src/wgsl/bc-backward.wgsl.js +12 -3
  30. package/dist/src/wgsl/bc-backward.wgsl.js.map +1 -1
  31. package/dist/src/wgsl/bc-count.wgsl.d.ts +22 -0
  32. package/dist/src/wgsl/bc-count.wgsl.d.ts.map +1 -0
  33. package/dist/src/wgsl/bc-count.wgsl.js +46 -0
  34. package/dist/src/wgsl/bc-count.wgsl.js.map +1 -0
  35. package/dist/src/wgsl/bc-edge-gather.wgsl.d.ts +3 -2
  36. package/dist/src/wgsl/bc-edge-gather.wgsl.d.ts.map +1 -1
  37. package/dist/src/wgsl/bc-edge-gather.wgsl.js +10 -2
  38. package/dist/src/wgsl/bc-edge-gather.wgsl.js.map +1 -1
  39. package/dist/src/wgsl/bc-finalize.wgsl.d.ts +4 -3
  40. package/dist/src/wgsl/bc-finalize.wgsl.d.ts.map +1 -1
  41. package/dist/src/wgsl/bc-finalize.wgsl.js +5 -3
  42. package/dist/src/wgsl/bc-finalize.wgsl.js.map +1 -1
  43. package/dist/src/wgsl/bc-forward-edge.wgsl.d.ts +2 -2
  44. package/dist/src/wgsl/bc-forward-edge.wgsl.js +2 -2
  45. package/dist/src/wgsl/bc-forward.wgsl.d.ts +4 -2
  46. package/dist/src/wgsl/bc-forward.wgsl.d.ts.map +1 -1
  47. package/dist/src/wgsl/bc-forward.wgsl.js +4 -2
  48. package/dist/src/wgsl/bc-forward.wgsl.js.map +1 -1
  49. package/dist/webgpu-graph-algorithms.js +176 -47
  50. package/dist/webgpu-graph-algorithms.js.map +1 -1
  51. package/package.json +3 -3
  52. package/src/algorithms/betweenness.ts +155 -48
  53. package/src/constants.ts +11 -0
  54. package/src/kernel/prelude.ts +4 -0
  55. package/src/kernels.ts +45 -13
  56. package/src/layouts/seed.ts +10 -1
  57. package/src/types/betweenness.ts +5 -2
  58. package/src/wgsl/bc-backward.wgsl.ts +12 -3
  59. package/src/wgsl/bc-count.wgsl.ts +45 -0
  60. package/src/wgsl/bc-edge-gather.wgsl.ts +10 -2
  61. package/src/wgsl/bc-finalize.wgsl.ts +5 -3
  62. package/src/wgsl/bc-forward-edge.wgsl.ts +2 -2
  63. package/src/wgsl/bc-forward.wgsl.ts +4 -2
  64. package/dist/chunks/context-B40Z6lV_.js.map +0 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Adam Powers
3
+ Copyright (c) 2026 Adam Powers
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/dist/browser.js CHANGED
@@ -1,4 +1,4 @@
1
- import { G as GpuContext, W as WebGpuGraphError } from "./chunks/context-B40Z6lV_.js";
1
+ import { G as GpuContext, W as WebGpuGraphError } from "./chunks/context-BZY6SMsM.js";
2
2
  function navigatorGpu() {
3
3
  if (typeof navigator === "undefined") {
4
4
  return void 0;
@@ -105,6 +105,8 @@ const F32_INF_BITS = 2139095040;
105
105
  const BC_BATCH_BUDGET_FRACTION = 0.25;
106
106
  const BC_MAX_BATCH = 64;
107
107
  const BC_EDGE_PARALLEL_GAMMA = 2;
108
+ const BC_SIGMA_EXPONENT_CAP = 100;
109
+ const BC_COUNT_MAX_GROUPS = 256;
108
110
  const BC_BACKWARD_LEVELS_PER_SUBMIT = 64;
109
111
  const APSP_TILE = 32;
110
112
  const APSP_MAX_DISPATCHES_PER_SUBMIT = 4096;
@@ -940,6 +942,7 @@ const RADIX_DIGIT_MASK: u32 = ${RADIX_BINS - 1}u;
940
942
  const APSP_TILE: u32 = ${APSP_TILE}u;
941
943
  const GROUP_HASH_LOAD_FACTOR: u32 = ${GROUP_HASH_LOAD_FACTOR}u;
942
944
  const TRIANGLE_BINARY_SEARCH_RATIO: u32 = ${TRIANGLE_BINARY_SEARCH_RATIO}u;
945
+ const BC_SIGMA_EXPONENT_CAP: i32 = ${BC_SIGMA_EXPONENT_CAP}i;
943
946
  const F32_MAX: f32 = 0x1.fffffep+127;
944
947
  override WG: u32 = ${WORKGROUP_SIZE}u;
945
948
  override USE_PERM: bool = false;
@@ -949,6 +952,8 @@ override SUBGROUP_MAX: u32 = 0u;
949
952
 
950
953
  fn linear_id(wid: vec3<u32>, lid: u32) -> u32 { return (wid.x + wid.y * MAX_WORKGROUPS_PER_DIM) * WG + lid; }
951
954
  fn group_id(wid: vec3<u32>) -> u32 { return wid.x + wid.y * MAX_WORKGROUPS_PER_DIM; }
955
+ // betweenness: the power of two the counts of depth L + 1 are divided by, from the f32 bits of depth L's largest count
956
+ fn sigma_shift(maxBits: u32) -> i32 { return max(0i, i32((maxBits >> 23u) & 0xffu) - 127i - BC_SIGMA_EXPONENT_CAP); }
952
957
  fn lowbias32(x0: u32) -> u32 {
953
958
  var x = x0;
954
959
  x = x ^ (x >> 16u);
@@ -3545,41 +3550,42 @@ class GpuContext {
3545
3550
  }
3546
3551
  }
3547
3552
  export {
3548
- SETTLE_FLOOR_REFERENCE_NODES as $,
3553
+ SE_DEFAULTS as $,
3549
3554
  APSP_MAX_DISPATCHES_PER_SUBMIT as A,
3550
3555
  BufferUsage as B,
3551
- GRID_HUB_CELL as C,
3552
- LAYOUT_TUNING_DEFAULTS as D,
3556
+ PARTIAL_BYTES as C,
3557
+ GRID_HUB_CELL as D,
3553
3558
  EXACT_TILES_PER_PASS as E,
3554
3559
  FUSED_FRONTIER_MAX as F,
3555
3560
  GpuContext as G,
3556
- EXACT_MAX_NODES as H,
3561
+ LAYOUT_TUNING_DEFAULTS as H,
3557
3562
  INDIRECT_ARGS_STRIDE as I,
3558
- SETTLE_FLOOR_UNBOUNDED as J,
3559
- GRID_BBOX_MARGIN as K,
3563
+ EXACT_MAX_NODES as J,
3564
+ SETTLE_FLOOR_UNBOUNDED as K,
3560
3565
  LABEL_PROP_PASSES_PER_SUBMIT as L,
3561
3566
  MAX_WORKGROUPS_PER_DIM as M,
3562
- GRID_EXTENT_FLOOR as N,
3563
- FR_ADAPTIVE_MAX_ITERATIONS as O,
3567
+ GRID_BBOX_MARGIN as N,
3568
+ GRID_EXTENT_FLOOR as O,
3564
3569
  PARALLEL_MERGE_LIMIT as P,
3565
- FR_START_TEMPERATURE as Q,
3570
+ FR_ADAPTIVE_MAX_ITERATIONS as Q,
3566
3571
  RADIX_BINS as R,
3567
3572
  STATE_HEADER_BYTES as S,
3568
3573
  TRACE_RECORD_BYTES as T,
3569
3574
  UNIFORM_SLOT_BYTES as U,
3570
- FA2_FLAG_ADAPTIVE as V,
3575
+ FR_START_TEMPERATURE as V,
3571
3576
  WebGpuGraphError as W,
3572
- SETTLE_FLOOR_FRACTION as X,
3573
- FR_REHEAT_FRACTION as Y,
3574
- FR_DEFAULTS as Z,
3575
- SE_DEFAULTS as _,
3577
+ FA2_FLAG_ADAPTIVE as X,
3578
+ SETTLE_FLOOR_FRACTION as Y,
3579
+ FR_REHEAT_FRACTION as Z,
3580
+ FR_DEFAULTS as _,
3576
3581
  WGSL_RESERVED_WORDS as a,
3577
- SE_SCALE_REFERENCE_NODES as a0,
3578
- ARC_WINDOW_ALIGN as a1,
3579
- PASSTHROUGH_FORMAT_CODES as a2,
3580
- STORAGE_ALIGN as a3,
3581
- WORKGROUP_SIZE as a4,
3582
- isSoftwareAdapter as a5,
3582
+ SETTLE_FLOOR_REFERENCE_NODES as a0,
3583
+ SE_SCALE_REFERENCE_NODES as a1,
3584
+ ARC_WINDOW_ALIGN as a2,
3585
+ PASSTHROUGH_FORMAT_CODES as a3,
3586
+ STORAGE_ALIGN as a4,
3587
+ WORKGROUP_SIZE as a5,
3588
+ isSoftwareAdapter as a6,
3583
3589
  U32_MAX as b,
3584
3590
  MAX_LEVELS_PER_SUBMIT as c,
3585
3591
  deviceLostError as d,
@@ -3591,19 +3597,19 @@ export {
3591
3597
  BC_BATCH_BUDGET_FRACTION as j,
3592
3598
  BC_MAX_BATCH as k,
3593
3599
  BC_BACKWARD_LEVELS_PER_SUBMIT as l,
3594
- APSP_TILE as m,
3595
- GROUP_ROW_THREAD_MAX as n,
3596
- GROUP_ROW_THREAD_LIMIT as o,
3597
- GROUP_HASH_LOAD_FACTOR as p,
3598
- BORUVKA_ROUNDS_PER_SUBMIT as q,
3599
- GRID_COARSEST_SIDE as r,
3600
- GRID_MIN_SIDE as s,
3601
- GRID_SORT_BITS as t,
3602
- FA2_DEFAULTS as u,
3603
- MAX_ITERATIONS_PER_STEP as v,
3604
- MAX_1D_ITEMS as w,
3605
- hasErrorCode as x,
3606
- FA2_FLAG_FIRST as y,
3607
- PARTIAL_BYTES as z
3600
+ BC_COUNT_MAX_GROUPS as m,
3601
+ APSP_TILE as n,
3602
+ GROUP_ROW_THREAD_MAX as o,
3603
+ GROUP_ROW_THREAD_LIMIT as p,
3604
+ GROUP_HASH_LOAD_FACTOR as q,
3605
+ BORUVKA_ROUNDS_PER_SUBMIT as r,
3606
+ GRID_COARSEST_SIDE as s,
3607
+ GRID_MIN_SIDE as t,
3608
+ GRID_SORT_BITS as u,
3609
+ FA2_DEFAULTS as v,
3610
+ MAX_ITERATIONS_PER_STEP as w,
3611
+ MAX_1D_ITEMS as x,
3612
+ hasErrorCode as y,
3613
+ FA2_FLAG_FIRST as z
3608
3614
  };
3609
- //# sourceMappingURL=context-B40Z6lV_.js.map
3615
+ //# sourceMappingURL=context-BZY6SMsM.js.map