32f27225

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

complete d-dimensional UV algebra in both Vakint input modes

Preserve the conservative Laurent depth, reject analytic gamma5 before cancellation, and finish projector-induced Dirac contractions before scalar integration truncates the result. Add projected and whole-numerator routes with shared dimensional closure and exact parity tests.

User instructions (verbatim):

Also note tha tin general my statement about the numerator not being expanded always has the one exception of that of the subgraph being integrated over analytically, there the expansion is necessary and desired precisely because it needs to be done in d-dimension, not 4, so it's necessary.

the tensor reduction in vaking is done in d-dimension, but any trace of a closed fermion loop for instance, would need to be done by gammaloop before supplying the input to vakint, and that trace will need to be computed in d-dimension!

Ok, use multiple subagent to thoroughly edit and vet the d-dimensional algebra needed within the complete analytically integrated subgraph. Numerator expansion is ok there, but we must really never afford to drop a d-dimensional term, i.e. the complete epsilon-expansion must be fully resolved before any truncation happen.
If a gamma5 is found anywhere in the UV subgraph being analytically integrated over for now, error cleanly (this is out of scope for now)

The complete numerator of the UV subgraph being integrated over by vaking can be expanded, it's fine, it needs to because it must be done in d-dimension. Any gamma5 within that UV subgraph should error cleanly for now (out of scope).
I believe there is no guarantee for now that he whole algebra is done in (d=4-2eps)-dimension within that subgraph, in particular after injecting vakint's result in there.
Fix and review this thoroughly with subagents, and also tell me why in the first place in this PR did you change the way you supplied the inputs to vakint (no longer one monolithic input).

I don't want you to tune the depth of vakint epsilon order asked for, just always set it to the more conservative value; even if there is an order-epsilon prefactor, it's ok to overshoot the target; it's ok the truncation will eventually take care of this. So there was a conservative bound before which you should keep as-is now. Confirm you understand.

Also I actually fear that you do something wrong here, so I want you to add a new generation mode in the uv settings, called "project_onto_tensor_integrals" (set to true by default, in which case you do what you're doing now), but then when set to false, you should do essentially the equivalent of what was done before (look into the branch you're based on to verify how it was done), i.e. pass the whole integrand at once to vakint at once.
In both cases I want you to make sure d-dimensional algebra is done consistently, and also add a couple tests to verify that both modes agree.

Continue as planned, but rename the option "`project_onto_tensor_integrals`" to "`project_integrated_uv_cts_onto_tensor_integrals`"

Also make sure you have all local gates passing before commiting+pushing and monitoring the PR at a 30min interval rate.

Continue as planned, but make sure that the pySecDec tests are really just run now because you modified something related to them, but they will not appear in CI or in any automatic test coverage in the future.

Total

4h17m28s

Time to Start Worker time Duration Time to finish Idle
Config 2m37s 5s 5s 2m42s 2m37s
Eval 2m43s 1m09s 1m09s 3m53s 0s
Build 3m49s 5h31m04s 4h10m43s 4h14m33s 2h20m36s
Test 3h12m25s 24m05s 1h07m32s 4h19m58s 0s
Deploy 4h19m59s 6s 6s 4h20m05s 1s
Suite 2m37s 5h56m31s 4h17m28s 4h20m05s 2h23m15s

Timeline

Config Eval Build Test Deploy Compressed gap
0s3m2h19m2h24m2h26m2h27m2h28m2h29m2h30m2h31m2h32m2h33m2h34m2h35m2h36m2h37m2h38m2h39m2h40m2h41m2h42m2h43m2h44m2h45m2h46m2h47m2h48m2h49m2h50m2h51m2h52m2h53m2h54m2h55m2h56m2h57m2h58m2h59m3h0m3h1m3h2m3h3m3h4m3h5m3h6m3h7m3h8m3h9m3h10m3h11m3h12m3h13m3h14m3h15m3h16m3h17m3h18m3h19m3h20m3h21m3h22m3h23m3h24m3h25m3h26m3h27m3h28m3h29m3h30m3h31m3h32m3h33m3h34m3h35m3h36m3h37m3h38m3h39m3h40m3h41m3h42m3h44m3h45m3h46m3h47m3h48m3h49m3h50m3h51m3h52m3h53m3h54m3h55m3h56m3h57m3h58m3h59m4h0m4h1m4h2m4h3m4h4m4h5m4h6m4h7m4h8m4h9m4h10m4h11m4h12m4h13m4h14m4h15m4h16m4h17m4h18m4h19m4h20m