Source code for ekore.anomalous_dimensions.unpolarized.space_like.as4.fhmruvv.gnsv

r"""The unpolarized, space-like anomalous dimension
:math:`\gamma_{ns,v}^{(3)}`."""

import numba as nb

from ......harmonics import cache as c
from ......harmonics.log_functions import lm11m1, lm12m1, lm13m1
from .gnsm import gamma_nsm


[docs] @nb.njit(cache=True) def gamma_nss(n, nf, cache, variation): r"""Compute the |N3LO| sea non-single anomalous dimension. The routine is taken from :cite:`Moch:2017uml`. The :math:`nf^2` part is a high-accuracy (0.1% or better) parametrization of the exact expression obtained in :cite:`Davies:2016jie`, see xpns3m.f 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. Parameters ---------- n : complex Mellin moment nf : int Number of active flavors cache : numpy.ndarray Harmonic sum cache variation : int |N3LO| anomalous dimension variation Returns ------- complex |N3LO| sea non-singlet anomalous dimension :math:`\gamma_{ns,s}^{(3)}` """ S1 = c.get(c.S1, cache, n) S2 = c.get(c.S2, cache, n) S3 = c.get(c.S3, cache, n) # nf^1: two approximations P3NSA11 = ( 2880 / n**7 - 11672.4 / n**6 + 12802.560000000001 / n**5 - 7626.66 / n**4 + 6593.2 / n**3 - 3687.6 / n**2 + 4989.2 / (1 + n) - 6596.93 / (2 + n) + 1607.73 / (3 + n) + 60.4 * lm12m1(n, S1, S2) + 4.685 * lm13m1(n, S1, S2, S3) ) P3NSA12 = ( -2880 / n**7 + 4066.32 / n**6 - 5682.24 / n**5 + 5540.88 / n**4 + 546.1 / n**3 - 2987.83 / n**2 + 2533.54 / n - 1502.75 / (1 + n) - 2297.56 / (2 + n) + 1266.77 / (3 + n) - 254.63 * lm11m1(n, S1) - 0.28953 * lm13m1(n, S1, S2, S3) ) # nf^2 (parametrized) P3NSSA2 = ( 47.4074 / n**6 - 142.222 / n**5 + 32.1201 / n**4 - 132.824 / n**3 + 647.397 / n**2 + 19.7 * lm11m1(n, S1) - 3.43547 * lm12m1(n, S1, S2) - 1262.0951538579698 / n - 187.17000000000002 / (1 + n) ** 4 + 453.885 / (1 + n) ** 3 + 147.01749999999998 / (1 + n) ** 2 + 1614.1000000000001 / (1 + n) - 380.12500000000006 / (2 + n) - 42.575 / (3 + n) + (42.977500000000006 * S2) / n + (0.0900000000000047 * (477.52777777775293 + n) * S1) / (n**2 * (1 + n)) ) if variation == 1: P3NSSA = nf * P3NSA11 + nf**2 * P3NSSA2 elif variation == 2: P3NSSA = nf * P3NSA12 + nf**2 * P3NSSA2 else: P3NSSA = 0.5 * nf * (P3NSA11 + P3NSA12) + nf**2 * P3NSSA2 return -P3NSSA
[docs] @nb.njit(cache=True) def gamma_nsv(n, nf, cache, variation): r"""Compute the |N3LO| valence non-singlet anomalous dimension. Parameters ---------- n : complex Mellin moment nf : int Number of active flavors cache: numpy.ndarray Harmonic sum cache variation : int |N3LO| anomalous dimension variation Returns ------- complex |N3LO| valence non-singlet anomalous dimension :math:`\gamma_{ns,v}^{(3)}(N)` """ return gamma_nsm(n, nf, cache, variation) + gamma_nss(n, nf, cache, variation)