By: ValentinHirschi <valentin.hirschi@gmail.com>
fix factorized tensor bookkeeping and numerator lookup Keep graph coefficients outside FORM, validate Lorentz domains before vacuum projection, and account for coefficient poles in analytic/numerical epsilon orders. Preserve complex PySecDec parameters and signed external components; combine numerical sectors into one estimator. Strengthen exact contraction oracles and explicitly exercise the fast numerical tests without enabling them by default. Reject failed sample comparisons early, cache zero-mask checks after symbolic matching, and lock accepted numerator classes per topology. Preserve each bucket's ordered search/insertion and remove redundant graph clones. Extend the covariant-cut warning to restrictive diagram filters and record the review and verification evidence. Reserve existing serialized indices before compact tensor parsing and keep canonical dummies distinct from external slots. Pin the minimal Symbolica nested-sum counter repair to the existing revision and regenerate Hakari source pins. Remove the summand workaround and numeric expansion from the UV comparator. Verify generic capture, nested sums, invalid contractions and the full slow ttH UV comparison without expanding numerators. Remove only proven-zero additive subexpressions from scalar coefficients, including zeros inside nonzero complex coefficients. Guard numerical-content collection to exact real rational coefficients and positive integer powers; use equal-coefficient grouping otherwise. Check scratch candidates for cycles and retain surviving factors. Regressions cover mixed angular products, complex coefficients, and unchanged fractional/inverse/float spectators, without graph-numerator expansion or a CFF fallback. User prompt (verbatim): Continue, and also: Launch a subagent to study the slowdown occurring during generation and comparison with numerators of 50k+ diagrams. It's not due to the evaluation time of a single numerator but it's during the lookup with all previous accepted entries (of course it's unavoidable to have this growth in lookup time but maybe an agent can find a non-invasive easy improvement/optimization in feyngen for this). User prompt (verbatim): Implement all not-too-invasive recommendations for the improvement in feyngen. User prompt (verbatim): Stop yourself temporarily as soon as you are at a good stopping point, getting out of quota. User prompt (verbatim): Run multiple agents (like 4) to cross-audit the code and the changes in depth User prompt (verbatim): Run multiple agents (like 4) to cross-audit the code and the changes in depth User prompt (verbatim): And once you've finished the audits and included all the changes you deemed necessary (make sure you do the quick fast pySecDec tests in vakint since you changed the pysecdec eval method and those corresponding tests are disabled by default (keep them disabled but run them once at least here, only those fast enough). Then make sure you commit+push a merge-ready PR (with all local gates and test ready) and then babysit the PR at a rate of one check every 30min. User prompt (verbatim): Continue as planned, but summarize what you've done in this last review pass. User prompt: Continue as planned, and get this PR in a merge-ready stat with green CI (once all local gates are green, babysit the PR at a 30min interval) User prompt: OK, and make sure the fix to `Idenso reports a Lorentz dummy contracted more than once` is generic. We really need a robust and generic gammaloop.