34e24707

By: ValentinHirschi <valentin.hirschi@gmail.com>

cli: address review of the hand-written DOT preparation

- Expand single-vertex fermion lines (bare gamma/gamma5/projm/projp/gamma0
  between two spinors) and loop vectors carrying an open Lorentz index;
  each index is summed with the metric across lines and vectors. Validated
  against slashed-momentum trace projectors for the e- mu- vertex
  correction and vacuum polarization. A leftover spinor structure is named
  when every fermion leg is bound.
- Check chain_in/chain_out: (out, in) factors are transposed, anything
  else is rejected.
- Join open color slots automatically only when they belong to two
  distinct colored external legs; dangling indices stay an error.
- Derive the generator's graph factors in ninjars-graph's prepare_dot, so
  every DOT path (prepare, reduce, numerator-bench, pipeline-bench, ...)
  shares the rule; PreparedIntegrand records the factors and whether they
  were applied. Report open fermion lines and warn when two or more leave
  the external-ordering sign underived; correct the docs on that sign.
- The fast engine also reports repeated_propagator, from an exact check of
  the prepared sample.
- Library test of the repeated-propagator donor branch in every precision,
  with and without a supplied S-matrix; update the reference-codegen test
  to the earlier rejection; record color_dimension_invariants in the JSON.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GitHub
configure