c7d55522

By: Lucien Huber <im@lcnbr.ch>

decide filter_zero_color on isolated color products

Without numerator grouping, the zero-color filter ran color-only
simplify_algebra over each complete numerator and accepted only a literal
zero. Whether that pass reduced the color factor depended on term order,
i.e. on the symbol ids of cooked index labels, whose registration order
follows the thread schedule and varies between processes. g > g at four
loops (four_loop_numerator) therefore removed between 283 and 302 of its
306 color zeros, and the removed set changed from process to process,
also at one thread.

Restore Ben Ruijl's isolated proof (e8f777eb, refined in 2e5115221) in
the form 86cbfc31 replaced: collect the complete color products with
their Lorentz and momentum coefficients as opaque aliases, simplify each
product on its own, recollect by color structure and test the resolved
coefficients for an exact zero. It removes the same 306 diagrams at 1, 8
and 32 threads and under permuted registration orders, the count
2e5115221 records, and costs 0.75x the instructions on g > g at three
loops. Grouped modes keep their shared reduction and coefficient proof.

A test relabels the dummies of f(a,b,c) f(a,b,d) f(c,d,e) times an
indexed momentum spectator in twelve ways; on the old proof four copies
survive.

nix-ci.nix: enable = false during review.

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

Total

1s

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 2s 0s
Eval - - - - -
Build - - - - -
Suite 0s 1s 1s 2s 0s

Timeline

Config
0s