Skip to content

Commit dd032d2

Browse files
committed
Replace the cyclic graph hash #34
1 parent fd94b73 commit dd032d2

11 files changed

Lines changed: 1484 additions & 124 deletions

File tree

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ the same argument using `=`. Boolean values must be exactly `0` (disabled) or
8787
| `--remove-hydrogens=<0\|1>` | Boolean | `1` | Remove explicit hydrogen atoms from molfile inputs before calculation. This has no effect on native graph inputs. |
8888
| `--compensate-disjoint=<0\|1>` | Boolean | `0` | Subtract one from final and intermediate assembly indices for every component after the first in the processed graph. For molfiles, components are counted after optional hydrogen removal. Empty graphs receive no adjustment. |
8989
| `--memory-report=<0\|1>` | Boolean | `0` | After the other calculation outputs are written successfully on Linux, write `/proc/self/status`'s peak virtual-memory value (`VmPeak`, in kB) to `memUsage` in the current working directory. The option has no output on other platforms. |
90-
| `--telemetry=<0\|1>` | Boolean | `0` | In a telemetry-enabled build, write retained-mask and matching counts, canonicalisation/VF2 activity, cache rates, and phase-specific memory to `INPUTTelemetry.json`. |
90+
| `--telemetry=<0\|1>` | Boolean | `0` | In a telemetry-enabled build, write retained-mask and matching counts, canonicalisation activity, legacy VF2 counters, cache rates, and phase-specific memory to `INPUTTelemetry.json`. The current exact cyclic canonicaliser does not invoke VF2, so those compatibility counters remain zero. |
9191
| `--write-intermediate-mas=<0\|1>` | Boolean | `0` | Write each newly found best assembly index and its elapsed `std::clock` tick to `INPUTIntermediateMAs`. |
9292

9393
The runtime and enumeration limits can stop an exhaustive search. `INPUTOut`

‎benchmarks/README.md‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,17 @@ cautiously when a suite contains millisecond-scale cases.
8989
JSON schema version 2 retains every timed sample, case metadata, aggregate
9090
summaries, the deterministic schedule, platform information, executable
9191
fingerprints, and optional candidate telemetry. Telemetry includes the raw
92-
processed graph size, retained masks, matching visits, canonicalisation and VF2
93-
calls, canonical/residual/assembly/pair-bound cache rates, and absolute resident
94-
peak memory for setup, initial enumeration, DAG conversion, assembly search,
95-
and output. A cache rate is `null` when no lookup occurred.
92+
processed graph size, retained masks, matching visits, canonicalisation activity,
93+
legacy VF2 counters, canonical/residual/assembly/pair-bound cache rates, and
94+
absolute resident peak memory for setup, initial enumeration, DAG conversion,
95+
assembly search, and output. A cache rate is `null` when no lookup occurred.
9696

9797
`retained_masks` counts unique initial-DAG masks accepted within the enumeration
9898
limit, including one-edge roots. `matching_visits` counts valid materialised
9999
duplicate pairs delivered to the search visitor. `canonicalisation_calls`
100-
includes canonical-mask cache hits, while `vf2_calls` counts actual exact graph
101-
isomorphism invocations. The residual lookup hit rate excludes first-occurrence,
100+
includes canonical-mask cache hits. `vf2_calls` and `vf2_matches` are retained for
101+
schema compatibility and remain zero now that exact cyclic canonical codes replace
102+
VF2. The residual lookup hit rate excludes first-occurrence,
102103
small-residual, and disabled-cache bypasses; the request hit rate includes them.
103104
Wide caches sample up to 6,144 residuals and return to direct decomposition when
104105
no hit demonstrates reuse, so unique workloads do not keep paying lookup cost.

‎unitTests/README.md‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,14 @@ the ordinary CLI and regression checks; telemetry-only checks are detected and
3030
skipped. Use a separately compiled portable executable on older x86-64 or
3131
non-x86 systems.
3232

33-
The build path also runs focused active-word mask and iterative tree-
34-
canonicalisation tests. On Linux the tree tests use a 64 KiB stack and include
35-
32,766- and 32,767-node labelled paths, preventing recursive traversal from
36-
returning unnoticed for either centroid shape.
33+
The build path also runs focused active-word mask, iterative tree-
34+
canonicalisation, and cyclic-canonicalisation tests. The cyclic tests compare
35+
the exact coloured-2-core form with VF2 across vertex permutations, atom and
36+
bond labels, pendant trees, disconnected fallbacks, multiedges, and regular
37+
graphs that colour refinement alone cannot distinguish. On Linux the tree
38+
tests use a 64 KiB stack and include 32,766- and 32,767-node labelled paths,
39+
preventing recursive traversal from returning unnoticed for either centroid
40+
shape.
3741

3842
Run the manifest and fixture integrity audit with:
3943

0 commit comments

Comments
 (0)