From 72f6b2e07456efcd6190252c20a8df4fc9764cb6 Mon Sep 17 00:00:00 2001 From: giacomomagni Date: Wed, 10 Jan 2024 14:08:17 +0100 Subject: [PATCH] address review comments --- doc/source/shared/abbreviations.rst | 5 ++++- extras/lh_bench_23/run-n3lo.py | 2 +- src/eko/evolution_operator/__init__.py | 6 +++--- src/eko/io/runcards.py | 2 +- .../unpolarized/space_like/__init__.py | 16 +++++++--------- .../unpolarized/space_like/as4/__init__.py | 4 ++-- .../__init__.py | 4 ++-- .../{fhmruvv_approximations => fhmruvv}/ggg.py | 4 ++-- .../{fhmruvv_approximations => fhmruvv}/ggq.py | 8 +------- .../{fhmruvv_approximations => fhmruvv}/gnsm.py | 6 +++--- .../{fhmruvv_approximations => fhmruvv}/gnsp.py | 6 +++--- .../{fhmruvv_approximations => fhmruvv}/gnsv.py | 4 ++-- .../{fhmruvv_approximations => fhmruvv}/gps.py | 2 +- .../{fhmruvv_approximations => fhmruvv}/gqg.py | 2 +- .../unpolarized/space_like/test_as4_fhmv.py | 2 +- 15 files changed, 34 insertions(+), 39 deletions(-) rename src/ekore/anomalous_dimensions/unpolarized/space_like/as4/{fhmruvv_approximations => fhmruvv}/__init__.py (85%) rename src/ekore/anomalous_dimensions/unpolarized/space_like/as4/{fhmruvv_approximations => fhmruvv}/ggg.py (98%) rename src/ekore/anomalous_dimensions/unpolarized/space_like/as4/{fhmruvv_approximations => fhmruvv}/ggq.py (92%) rename src/ekore/anomalous_dimensions/unpolarized/space_like/as4/{fhmruvv_approximations => fhmruvv}/gnsm.py (96%) rename src/ekore/anomalous_dimensions/unpolarized/space_like/as4/{fhmruvv_approximations => fhmruvv}/gnsp.py (96%) rename src/ekore/anomalous_dimensions/unpolarized/space_like/as4/{fhmruvv_approximations => fhmruvv}/gnsv.py (95%) rename src/ekore/anomalous_dimensions/unpolarized/space_like/as4/{fhmruvv_approximations => fhmruvv}/gps.py (98%) rename src/ekore/anomalous_dimensions/unpolarized/space_like/as4/{fhmruvv_approximations => fhmruvv}/gqg.py (98%) diff --git a/doc/source/shared/abbreviations.rst b/doc/source/shared/abbreviations.rst index 7c415269b..8a03601f5 100644 --- a/doc/source/shared/abbreviations.rst +++ b/doc/source/shared/abbreviations.rst @@ -77,6 +77,7 @@ .. |BFKL| replace:: :abbr:`BFKL (Balitsky-Fadin-Kuraev-Lipatov)` + .. external .. |yadism| replace:: @@ -91,7 +92,6 @@ .. |pineko| replace:: :pineko:`\ ` - .. |APFEL| raw:: html APFEL @@ -108,6 +108,9 @@ QCDNUM +.. |FHMRUVV| replace:: + :abbr:`FHMRUVV (Falcioni, Herzog, Moch, Ruijl, Ueda, Vermaseren and Vogt)` + .. |T| raw:: html diff --git a/extras/lh_bench_23/run-n3lo.py b/extras/lh_bench_23/run-n3lo.py index 59743c9f0..4ee00d520 100644 --- a/extras/lh_bench_23/run-n3lo.py +++ b/extras/lh_bench_23/run-n3lo.py @@ -35,7 +35,7 @@ parser.add_argument("sv", help="scale variation: up, central, or down") parser.add_argument( "ad_variation", - help="n3lo anomalous dimension variation: (gg_var, gq_var, qg_var, qq_var, nsp_var, nsm_var, nsv_var)", + help="n3lo anomalous dimension variation: (gg, gq, qg, qq, nsp, nsm, nsv)", nargs="*", type=int, ) diff --git a/src/eko/evolution_operator/__init__.py b/src/eko/evolution_operator/__init__.py index 0584ff87f..cdd87ed11 100644 --- a/src/eko/evolution_operator/__init__.py +++ b/src/eko/evolution_operator/__init__.py @@ -262,7 +262,7 @@ def quad_ker( is_time_like : boolean is time-like evolution ? use_fhmruvv : bool - if True use the Falcioni, Herzog, Moch, Ruijl, Ueda, Vermaseren, Vogt N3LO anomalous dimension + if True use the |FHMRUVV| |N3LO| anomalous dimension Returns ------- @@ -371,7 +371,7 @@ def quad_ker_qcd( n3lo_ad_variation : tuple |N3LO| anomalous dimension variation ``(gg, gq, qg, qq, nsp, nsm, nsv)`` use_fhmruvv : bool - if True use the Falcioni, Herzog, Moch, Ruijl, Ueda, Vermaseren, Vogt N3LO anomalous dimensions + if True use the |FHMRUVV| |N3LO| anomalous dimensions Returns ------- @@ -501,7 +501,7 @@ def quad_ker_qed( is_threshold : boolean is this an itermediate threshold operator? n3lo_ad_variation : tuple - |N3LO| anomalous dimension variation ``(gg_var, gq_var, qg_var, qq_var)`` + |N3LO| anomalous dimension variation ``(gg, gq, qg, qq)`` Returns ------- diff --git a/src/eko/io/runcards.py b/src/eko/io/runcards.py index 4087afbac..755fcaf72 100644 --- a/src/eko/io/runcards.py +++ b/src/eko/io/runcards.py @@ -48,7 +48,7 @@ class TheoryCard(DictLike): n3lo_ad_variation: N3LOAdVariation """|N3LO| anomalous dimension variation: ``(gg, gq, qg, qq, nsp, nsm, nsv)``.""" use_fhmruvv: Optional[bool] = False - """If True use the Falcioni, Herzog, Moch, Ruijl, Ueda, Vermaseren, Vogt N3LO anomalous dimensions""" + """If True use the |FHMRUVV| |N3LO| anomalous dimensions""" matching_order: Optional[Order] = None """Matching conditions perturbative order tuple, ``(QCD, QED)``.""" diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/__init__.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/__init__.py index 932b7e985..09f78e861 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/__init__.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/__init__.py @@ -41,7 +41,7 @@ def gamma_ns(order, mode, n, nf, n3lo_ad_variation, use_fhmruvv=False): n3lo_ad_variation : tuple |N3LO| anomalous dimension variation ``(gg, gq, qg, qq, nsp, nsm, nsv)`` use_fhmruvv: bool - if True use the Falcioni Herzog Moch Vogt N3LO anomalous dimensions + if True use the |FHMRUVV| N3LO anomalous dimensions Returns ------- @@ -76,15 +76,15 @@ def gamma_ns(order, mode, n, nf, n3lo_ad_variation, use_fhmruvv=False): if order[0] >= 4: if use_fhmruvv: if mode == 10101: - gamma_ns_3 = as4.fhmruvv_approximations.gamma_nsp( + gamma_ns_3 = as4.fhmruvv.gamma_nsp( n, nf, cache, variation=n3lo_ad_variation[4] ) elif mode == 10201: - gamma_ns_3 = as4.fhmruvv_approximations.gamma_nsm( + gamma_ns_3 = as4.fhmruvv.gamma_nsm( n, nf, cache, variation=n3lo_ad_variation[5] ) elif mode == 10200: - gamma_ns_3 = as4.fhmruvv_approximations.gamma_nsv( + gamma_ns_3 = as4.fhmruvv.gamma_nsv( n, nf, cache, variation=n3lo_ad_variation[6] ) else: @@ -113,7 +113,7 @@ def gamma_singlet(order, n, nf, n3lo_ad_variation, use_fhmruvv=False): n3lo_ad_variation : tuple |N3LO| anomalous dimension variation ``(gg, gq, qg, qq, nsp, nsm, nsv)`` use_fhmruvv: bool - if True use the Falcioni Herzog Moch Vogt N3LO anomalous dimensions + if True use the |FHMRUVV| N3LO anomalous dimensions Returns ------- @@ -130,9 +130,7 @@ def gamma_singlet(order, n, nf, n3lo_ad_variation, use_fhmruvv=False): gamma_s[2] = as3.gamma_singlet(n, nf, cache) if order[0] >= 4: if use_fhmruvv: - gamma_s[3] = as4.fhmruvv_approximations.gamma_singlet( - n, nf, cache, n3lo_ad_variation - ) + gamma_s[3] = as4.fhmruvv.gamma_singlet(n, nf, cache, n3lo_ad_variation) else: gamma_s[3] = as4.gamma_singlet(n, nf, cache, n3lo_ad_variation) return gamma_s @@ -293,7 +291,7 @@ def gamma_singlet_qed(order, n, nf, n3lo_ad_variation): nf : int Number of active flavors n3lo_ad_variation : tuple - |N3LO| anomalous dimension variation ``(gg_var, gq_var, qg_var, qq_var)`` + |N3LO| anomalous dimension variation ``(gg, gq, qg, qq)`` Returns ------- diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/__init__.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/__init__.py index ebde171b1..9b3b37517 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/__init__.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/__init__.py @@ -6,7 +6,7 @@ import numba as nb import numpy as np -from . import fhmruvv_approximations +from . import fhmruvv from .ggg import gamma_gg from .ggq import gamma_gq from .gnsm import gamma_nsm @@ -35,7 +35,7 @@ def gamma_singlet(N, nf, cache, variation): cache: numpy.ndarray Harmonic sum cache variation : tuple - |N3LO| anomalous dimension variation ``(gg_var, gq_var, qg_var, qq_var)`` + |N3LO| anomalous dimension variation ``(gg, gq, qg, qq)`` Returns ------- diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/__init__.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/__init__.py similarity index 85% rename from src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/__init__.py rename to src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/__init__.py index cd1edcae9..29f584cf0 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/__init__.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/__init__.py @@ -1,4 +1,4 @@ -"""The |N3LO| Altarelli-Parisi splitting kernels, from Falcioni, Herzog, Moch, Ruijl, Ueda, Vermaseren, Vogt approximations.""" +"""The |FHMRUVV| |N3LO| Altarelli-Parisi splitting kernels approximations.""" import numba as nb import numpy as np @@ -30,7 +30,7 @@ def gamma_singlet(N, nf, cache, variation): cache: numpy.ndarray Harmonic sum cache variation : tuple - |N3LO| anomalous dimension variation ``(gg_var, gq_var, qg_var, qq_var)`` + |N3LO| anomalous dimension variation ``(gg, gq, qg, qq)`` Returns ------- diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/ggg.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/ggg.py similarity index 98% rename from src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/ggg.py rename to src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/ggg.py index 2eb538c44..d9ed86bfd 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/ggg.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/ggg.py @@ -1,4 +1,4 @@ -r"""The unpolarized, space-like anomalous dimension :math:`\gamma_{qg}^{(3)}`.""" +r"""The unpolarized, space-like anomalous dimension :math:`\gamma_{gg}^{(3)}`.""" import numba as nb from ......harmonics import cache as c @@ -116,7 +116,7 @@ def gamma_gg(n, nf, cache, variation): + 34362.0 * lm13m1(n, S1, S2, S3) ) else: - raise NotImplementedError("nf^6 is not available at N3LO") + raise NotImplementedError("nf=6 is not available at N3LO") # We return (for now) one of the two error-band representatives # or the present best estimate, their average diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/ggq.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/ggq.py similarity index 92% rename from src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/ggq.py rename to src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/ggq.py index 02cf34e7b..c6d8f160d 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/ggq.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/ggq.py @@ -84,12 +84,6 @@ def gamma_gq(n, nf, cache, variation): ) P3gqApp2 = ( P3GQ01 - # + 5.0*bfkl1* (-(1 / (-1 + n) ** 2)) - # - 469533.* 1/((-1 + n) * n) - # - 26199.2 * 1/n - # - 294828.* (-(1/n**2)) - # + 9089.9* lm12(n, S1, S2) - # + 2440.9* lm13(n, S1, S2, S3) + 5.4 * bfkl1 * (-(1 / (-1 + n) ** 2)) - 547215.0 * 1 / ((-1 + n) * n) - 41523.0 * 1 / n @@ -117,7 +111,7 @@ def gamma_gq(n, nf, cache, variation): + 2727.3 * lm13(n, S1, S2, S3) ) else: - raise NotImplementedError("nf^6 is not available at N3LO") + raise NotImplementedError("nf=6 is not available at N3LO") # We return (for now) one of the two error-band representatives # or the present best estimate, their average diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsm.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsm.py similarity index 96% rename from src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsm.py rename to src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsm.py index 6e9a3cf6a..5d80c9c75 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsm.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsm.py @@ -13,11 +13,11 @@ def gamma_nsm(n, nf, cache, variation): The routine is taken from :cite:`Moch:2017uml`. - The nf^{0,1} leading large-nc contributions and the nf^2 part are + The :math:`nf^{0,1}` leading large-nc contributions and the :math:`nf^2` part are high-accuracy (0.1% or better) parametrizations of the exact - results. The nf^3 expression is exact up to numerical truncations. + results. The :math:`nf^3` expression is exact up to numerical truncations. - The remaining nf^{0,1} terms are approximations based on the first + The remaining :math:`nf^{0,1}` terms are approximations based on the first eight odd moments together with small-x and large-x constraints. The two sets spanning the error estimate are called via IMOD = 1 and IMOD = 2. Any other value of IMOD invokes their average. diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsp.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsp.py similarity index 96% rename from src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsp.py rename to src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsp.py index bcdcdf079..de69d5313 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsp.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsp.py @@ -13,11 +13,11 @@ def gamma_nsp(n, nf, cache, variation): The routine is taken from :cite:`Moch:2017uml`. - The nf^{0,1} leading large-nc contributions and the nf^2 part + The :math:`nf^{0,1}` leading large-nc contributions and the :math:`nf^2` part are high-accuracy (0.1% or better) parametrizations of the exact - results. The nf^3 expression is exact up to numerical truncations. + results. The :math:`nf^3` expression is exact up to numerical truncations. - The remaining nf^{0,1} terms are approximations based on the first + The remaining :math:`nf^{0,1}` terms are approximations based on the first eight even moments together with small-x and large-x constraints. The two sets spanning the error estimate are called via IMOD = 1 and IMOD = 2. Any other value of IMOD invokes their average. diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsv.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsv.py similarity index 95% rename from src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsv.py rename to src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsv.py index 9d1b87da1..df5bf7d07 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gnsv.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gnsv.py @@ -12,10 +12,10 @@ def gamma_nss(n, nf, cache, variation): The routine is taken from :cite:`Moch:2017uml`. - The nf^2 part is a high-accuracy (0.1% or better) parametrization + The :math:`nf^2` part is a high-accuracy (0.1% or better) parametrization of the exact expression obtained in arXiv:1610.07477, see xpns3m.f - The nf^1 part is an approximation based on the first 9 odd moments. + The :math:`nf^1` part is an approximation based on the first 9 odd moments. The two sets spanning the error estimate are called via IMOD = 1 and IMOD = 2. Any other value of IMOD invokes their average. diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gps.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gps.py similarity index 98% rename from src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gps.py rename to src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gps.py index 6267943a9..87a8ba15d 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gps.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gps.py @@ -152,7 +152,7 @@ def gamma_ps(n, nf, cache, variation): - 10295.0 * lm12m2(n, S1, S2) ) else: - raise NotImplementedError("nf^6 is not available at N3LO") + raise NotImplementedError("nf=6 is not available at N3LO") # We return (for now) one of the two error-band boundaries # or the present best estimate, their average diff --git a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gqg.py b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gqg.py similarity index 98% rename from src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gqg.py rename to src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gqg.py index cb5b92518..dd3244fd7 100644 --- a/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv_approximations/gqg.py +++ b/src/ekore/anomalous_dimensions/unpolarized/space_like/as4/fhmruvv/gqg.py @@ -151,7 +151,7 @@ def gamma_qg(n, nf, cache, variation): + 385995.0 * (S1 - n * (np.pi**2 / 6 - S2)) / n**2 ) else: - raise NotImplementedError("nf^6 is not available at N3LO") + raise NotImplementedError("nf=6 is not available at N3LO") # We return one of the two error-band representatives # or the present best estimate, their average diff --git a/tests/ekore/anomalous_dimensions/unpolarized/space_like/test_as4_fhmv.py b/tests/ekore/anomalous_dimensions/unpolarized/space_like/test_as4_fhmv.py index 51bbe4c1c..8bef494c7 100644 --- a/tests/ekore/anomalous_dimensions/unpolarized/space_like/test_as4_fhmv.py +++ b/tests/ekore/anomalous_dimensions/unpolarized/space_like/test_as4_fhmv.py @@ -3,7 +3,7 @@ import pytest from ekore import harmonics as h -from ekore.anomalous_dimensions.unpolarized.space_like.as4.fhmruvv_approximations import ( +from ekore.anomalous_dimensions.unpolarized.space_like.as4.fhmruvv import ( gamma_singlet, ggg, ggq,