Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ome.ps.as2 benchmark vs. Pegasus #373

Merged
merged 3 commits into from
May 17, 2024
Merged

Conversation

felixhekhorn
Copy link
Contributor

@felixhekhorn felixhekhorn commented May 16, 2024

@igborsa is it okay if I copy your implementation of the polarized NNLO OME here?

As will be visible in the CI the benchmark fails in the last line - commenting that line out, we pass

The error will be

E           AssertionError: 
E           Not equal to tolerance rtol=1e-07, atol=0
E           hg,N=2
E           Mismatched elements: 1 / 1 (100%)
E           Max absolute difference: 0.2584379
E           Max relative difference: 0.02809631
E            x: array(-9.456725+0.j)
E            y: array(-9.198287)

@felixhekhorn felixhekhorn added the bug Something isn't working label May 16, 2024
@felixhekhorn felixhekhorn requested a review from giacomomagni May 16, 2024 12:21
@felixhekhorn felixhekhorn added the benchmarks Benchmark (or infrastructure) related label May 16, 2024
@igborsa
Copy link

igborsa commented May 16, 2024

@felixhekhorn Yes, no problem at all.

@felixhekhorn
Copy link
Contributor Author

The problem is somewhere in the CA part (i.e. putting that to 0 in both side, makes the test pass)

@felixhekhorn
Copy link
Contributor Author

@igborsa as the CI shows with the last commit we are now passing the benchmark - so I think you should do the same on your side.

Just to rephrase what @giacomomagni already said on #368 : we are using two different representation of the same object and your fix for ACG3 is not needed. You are using the lhs of Eq. 131 of 2211.15337, specifically Eq. 113 as written, which requires all objects, i.e. $g_3$ and $\beta$, to be evaluated at $N+1$ (this is what my fix is doing here and the bug you introduced changed) - we are using the rhs of Eq. 131 (and do not use Eq. 113 as written), but call the linear independent $S_{-2,1}$ eventually at $N$.

In practice you just need to revert that line.

@felixhekhorn felixhekhorn removed the bug Something isn't working label May 16, 2024
@igborsa
Copy link

igborsa commented May 16, 2024

Hi @felixhekhorn.

Actually, the fix is needed. The routine ACG3(N) returns the Mellin transform already evaluated in N+1, so using ACG3(N1) would return the result evaluated in N+2 (that's what confused me when I listed the potential bugs). The correct "translation" to the eko routines is indeed

ACG3(N) = h.g_functions.mellin_g3(N1, S11)

and that's why your last modification worked.

@felixhekhorn
Copy link
Contributor Author

Hi @felixhekhorn.

Actually, the fix is needed. The routine ACG3(N) returns the Mellin transform already evaluated in N+1, so using ACG3(N1) would return the result evaluated in N+2 (that's what confused me when I listed the potential bugs). The correct "translation" to the eko routines is indeed

ACG3(N) = h.g_functions.mellin_g3(N1, S11)

and that's why your last modification worked.

I see ... but this means the remaining difference we have between us must come from somewhere else then $A_{hg},A_{hq},A_{gg},A_{gq}$, which would have been the prime candidates ...

@igborsa
Copy link

igborsa commented May 16, 2024

It seems that (at least part of) the difference we have is actually coming from the term \beta''(N+1) in A_Hg.
I was using the implementation from the code ANCONT (BET2) that apparently is not precise enough.

Replacing BET2(N+1) -> (DPSI((N1+1)/2.d0,2) - DPSI(N1/2.d0,2))/8.d0,

where DPSI(N,2) corresponds to the second derivative of the Digamma, seems to improve the agreement between eko and pol-pegasus

@felixhekhorn felixhekhorn merged commit 628ddd9 into master May 17, 2024
6 checks passed
@felixhekhorn felixhekhorn deleted the extend-pegasus-bench branch May 17, 2024 07:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
benchmarks Benchmark (or infrastructure) related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants