Andrew Hundt
76565f3592
feat(architecture): expose Leiden resolution as a config-tunable knob (#41)
cbm_store_get_architecture hardcoded Leiden resolution (gamma) = 1.0 at both
cbm_leiden call sites (arch_clusters + the cbm_louvain wrapper). gamma
controls cluster granularity (>1 -> smaller/more clusters, <1 -> larger).
- store: add a `double leiden_resolution` param to cbm_store_get_architecture
(after hotspot_limit, matching its existing config-threaded-param pattern)
and to arch_clusters; cbm_louvain keeps its 1.0 default (separate low-level
API). NaN/non-positive clamps to 1.0 (same hardening as the PageRank NaN
fix, #44).
- mcp: CBM_CONFIG_ARCH_RESOLUTION ("architecture_resolution") read via
cbm_config_get_double (default 1.0) and passed through handle_get_architecture.
- test_store_arch: arch_clusters_resolution_knob verifies the knob is threaded
(multiple resolutions succeed + valid output) and NaN clamps. 14 existing
callers updated to pass 1.0 (compiler-enforced). store_arch 52 pass.
Signed-off-by: Andrew Hundt <ATHundt@gmail.com>
2026-06-26 21:27:12 -04:00
..
2026-06-05 21:53:25 +02:00
2026-06-05 21:53:25 +02:00
2026-03-22 18:33:10 -05:00
2026-03-15 22:37:34 +01:00
2026-05-30 18:26:44 +02:00
2026-06-22 14:46:29 -07:00
2026-06-05 21:53:25 +02:00
2026-06-22 22:03:37 +02:00
2026-04-01 23:22:44 +02:00
2026-06-07 18:29:05 +02:00
2026-06-06 22:16:04 +02:00
2026-06-05 21:53:25 +02:00
2026-05-19 22:47:53 +02:00
2026-06-14 20:12:04 +00:00
2026-06-24 22:00:24 -04:00
2026-06-23 23:46:24 +02:00
2026-06-24 17:03:07 -04:00
2026-06-23 06:38:45 +09:00
2026-03-25 09:28:11 +01:00
2026-06-07 13:00:55 +02:00
2026-06-07 13:00:55 +02:00
2026-06-23 03:59:45 +00:00
2026-06-07 12:35:53 +02:00
2026-06-08 22:55:23 +02:00
2026-06-22 19:56:46 -04:00
2026-05-31 17:22:02 +02:00
2026-06-05 21:53:25 +02:00
2026-06-22 23:51:49 +02:00
2026-03-15 22:37:34 +01:00
2026-06-05 21:53:25 +02:00
2026-06-12 02:17:39 +02:00
2026-06-07 19:13:01 +02:00
2026-06-07 19:13:01 +02:00
2026-06-07 19:13:01 +02:00
2026-06-07 20:05:24 +02:00
2026-06-07 20:05:24 +02:00
2026-06-07 20:05:24 +02:00
2026-06-08 22:55:23 +02:00
2026-06-12 02:17:39 +02:00
2026-06-26 19:07:26 -04:00
2026-05-21 22:52:16 +02:00
2026-03-31 20:04:11 +02:00
2026-06-12 02:17:25 +02:00
2026-04-01 23:22:44 +02:00
2026-06-22 23:28:03 +02:00
2026-06-22 22:04:31 +02:00
2026-06-24 22:00:24 -04:00
2026-06-22 22:05:18 +02:00
2026-06-02 18:52:37 +02:00
2026-06-02 18:52:37 +02:00
2026-06-03 01:33:25 +02:00
2026-06-24 19:34:23 -04:00
2026-06-12 02:17:39 +02:00
2026-06-06 22:30:38 +02:00
2026-06-07 14:16:36 +02:00
2026-03-15 22:37:34 +01:00
2026-06-26 21:27:12 -04:00
2026-06-08 22:55:23 +02:00
2026-06-07 18:29:05 +02:00
2026-06-24 22:00:24 -04:00
2026-06-05 21:53:25 +02:00
2026-06-12 02:17:39 +02:00
2026-06-26 19:39:26 -04:00
2026-06-16 13:26:25 +03:00
2026-06-06 22:30:38 +02:00
2026-05-29 04:20:20 +02:00
2026-05-09 16:05:45 +02:00
2026-06-24 16:12:00 -04:00
2026-05-30 20:15:30 +02:00
2026-06-05 21:53:25 +02:00
2026-05-09 15:44:09 +02:00
2026-05-09 14:16:15 +02:00
2026-05-31 03:14:17 +02:00
2026-06-22 22:04:06 +02:00
2026-06-23 13:52:08 -03:00
2026-06-03 02:13:30 +02:00
2026-05-08 22:26:56 +02:00
2026-06-24 03:15:36 +02:00
2026-05-10 20:43:45 +02:00
2026-06-05 21:53:25 +02:00
2026-06-26 19:07:26 -04:00
2026-06-24 17:30:04 -04:00
2026-06-26 21:27:12 -04:00
2026-04-11 09:22:23 -04:00
2026-05-29 03:37:56 +02:00
2026-03-24 23:48:23 +01:00
2026-06-25 05:11:12 -04:00
2026-05-29 03:37:56 +02:00
2026-06-24 16:12:00 -04:00
2026-03-24 23:48:23 +01:00
2026-03-25 09:47:59 +01:00
2026-03-26 01:59:37 -04:00
2026-06-26 19:08:19 -04:00
2026-03-24 23:48:23 +01:00
2026-06-12 10:51:11 +02:00
2026-06-10 12:11:02 +02:00
2026-04-01 23:22:44 +02:00
2026-04-09 23:15:10 -04:00
2026-06-05 21:53:25 +02:00
2026-06-24 16:12:00 -04:00
2026-06-06 19:48:48 +02:00
2026-04-10 20:09:37 -04:00
2026-04-15 23:56:03 +02:00