Skip to content

Prepare coherent bare scalar loops entirely through native providers - #16

Open
huashengshao wants to merge 2 commits into
codex/native-provider-integrationfrom
codex/native-scalar-loop-pr
Open

huashengshao wants to merge 2 commits into
codex/native-provider-integrationfrom
codex/native-scalar-loop-pr

Conversation

@huashengshao

Copy link
Copy Markdown

Add fresh native preparation and evaluation of coherent bare one-loop amplitudes for color-singlet scalar theories with momentum-independent local numerators. FeynKit owns diagram generation, model and symmetry factors, momentum routing and quadratic-pole extraction; exact coefficient instructions feed the existing NinjaRS/OneLOop reduction path. All complex diagram amplitudes are retained and summed before any Born contraction.

ScalarLoopProgram accepts typed models/processes and exact parameter specialization. Internal poles must be monic simple zero-width vacuum poles with real bound masses. Repeated poles, derivative/tensor/dimension-dependent numerators and nontrivial projectors fail explicitly. Tadpoles and zero-flow bridges remain present unless the caller explicitly filters them; singular evaluations never expose partial diagram sums. There are no process-specific branches, Python execution or process-specific compilation.

Outputs are complex Laurent coefficients in the existing MadLoop/BLHA C-epsilon-stripped bare convention, including i/(16*pi²). They do not include UV counterterms or infrared remainder conversion: the finite entry is not an NSC R1, and its square is not a finite one-loop norm. Flux, external-state averages and final-state phase-space factorials belong to consumers. Callers own signed momentum conservation and any scattering on-shell checks; off-shell Green functions are supported.

The explicit-bit evaluator constructor passes the same working precision through coefficients, normalization, sampling and reduction, using the existing native carriers. It extends PolynomialPlan with the same bit-precision contract as the coefficient evaluator. Cancellation may reduce tracked reliability; no decimal round-trip or hidden guard bits are introduced.

Validation: ten native scalar-loop tests pass, covering analytic complex tadpole/bubble Laurent coefficients, distinct masses and coherent sums, retained bridges, unsupported poles/numerators, ordinary nonzero masses named ZERO, exact 2^-80 momentum sensitivity at 173 working bits, cross-lane precision isolation, and malformed/empty input recovery. The prebuilt binary passed the same ten tests with PATH=/nonexistent, preparing fresh models/processes without Python or external compiler lookup. Source review independently checked routing, normalization, factors, precision and failure handling.

cargo test --offline --locked -p rusticol-loop-reduction scalar_loop:: --lib -j2 -- --test-threads=1

The tested dependency pair is FeynKit 4b8569c0, NinjaRS de858c88, OneLOop 8ec256fc and Symbolica/Numerica/Graphica 9cdc2949. This PR stacks on the separately validated native-provider integration branch; broader QCD-loop preparation and renormalized finite remainders remain separate capabilities.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants