[docs]@nb.njit("f8(f8,f8[:])",cache=True)defpnsm_reg(z,args):""" Regular :math:`P_{ns,-}` non-singlet valence-like splitting function (common to minus and valence). Parameters ---------- z : float partonic momentum fraction args : np.ndarray further arguments Returns ------- float the non-singlet valence-like splitting function :math:`P_{ns,-}(z)` """x=zNF=args[0]zeta2=special.zeta2S2=special.s2CF=constants.CFCA=constants.CAlnx=np.log(x)ln1mx=np.log(1-x)pqq=2/(1-x)-1-xpqqmx=2/(1+x)-1+xS2x=S2(x)DM=1/(1-x)# fmt: offGQQ1=(2*CF*NF*((-1.1111111111111112-(2*lnx)/3)*pqq-(4*(1-x))/3)+4*CA*CF*((3.7222222222222223+(11*lnx)/6+lnx**2/2-np.pi**2/6)*pqq+(20*(1-x))/3+lnx*(1+x))+4*CF**2*(((-3*lnx)/2-2*ln1mx*lnx)*pqq-5*(1-x)-(lnx**2*(1+x))/2-lnx*(1.5+(7*x)/2))-4*CF*(CF-CA/2)*(2*pqqmx*S2x+4*(1-x)+2*lnx*(1+x)))# fmt: on# The soft (`+'-distribution) part of the splitting functionA2=-40/9*CF*NF+268/9*CA*CF-8*zeta2*CA*CFGQQ1L=DM*A2# The regular piece of the coefficient functionX1NSMA=GQQ1-GQQ1LreturnX1NSMA
[docs]@nb.njit("f8(f8,f8[:])",cache=True)defpnsp_reg(z,args):""" Regular :math:`P_{ns,+}` non-singlet singlet-like splitting function. Parameters ---------- z : float partonic momentum fraction args : np.ndarray further arguments Returns ------- float the non-singlet singlet-like splitting function :math:`P_{ns,+}(z)` """x=zNF=args[0]zeta2=special.zeta2S2=special.s2CF=constants.CFCA=constants.CAlnx=np.log(x)ln1mx=np.log(1-x)pqq=2/(1-x)-1-xpqqmx=2/(1+x)-1+xS2x=S2(x)DM=1/(1-x)# fmt: offGQQ1=(2*CF*NF*((-1.1111111111111112-(2*lnx)/3)*pqq-(4*(1-x))/3)+4*CA*CF*((3.7222222222222223+(11*lnx)/6+lnx**2/2-np.pi**2/6)*pqq+(20*(1-x))/3+lnx*(1+x))+4*CF**2*(((-3*lnx)/2-2*ln1mx*lnx)*pqq-5*(1-x)-(lnx**2*(1+x))/2-lnx*(1.5+(7*x)/2))+4*CF*(CF-CA/2)*(2*pqqmx*S2x+4*(1-x)+2*lnx*(1+x)))# fmt: on# The soft (`+'-distribution) part of the splitting functionA2=-40/9*CF*NF+268/9*CA*CF-8*zeta2*CA*CFGQQ1L=DM*A2# The regular piece of the coefficient functionX1NSPA=GQQ1-GQQ1LreturnX1NSPA
[docs]@nb.njit("f8(f8,f8[:])",cache=True)defpns_sing(z,args):""" Singular :math:`P_{ns}` non-singlet splitting function (common to plus, minus, and valence). Parameters ---------- z : float partonic momentum fraction args : np.ndarray further arguments Returns ------- float the non-singlet splitting function :math:`P_{ns}(z)` """Y=zNF=args[0]zeta2=special.zeta2CF=constants.CFCA=constants.CAA2=-40/9*CF*NF+268/9*CA*CF-8*zeta2*CA*CFX1NSB=A2/(1-Y)returnX1NSB
[docs]@nb.njit("f8(f8,f8[:])",cache=True)defpns_loc(x,args):""" Local :math:`P_{ns}` non-singlet splitting function (common to plus, minus, and valence). Parameters ---------- x : float Bjorken :math:`x` args : np.ndarray further arguments Returns ------- float the non-singlet splitting function :math:`P_{ns}(z)` """Y=xNF=args[0]zeta2=special.zeta2zeta3=special.zeta3CF=constants.CFCA=constants.CA# fmt: offP1DELT=(-1/3*CF*NF+3/2*CF**2+17/6*CA*CF+24*zeta3*CF**2-12*zeta3*CA*CF-8/3*zeta2*CF*NF-12*zeta2*CF**2+44/3*zeta2*CA*CF)# fmt: on# The soft (`+'-distribution) part of the splitting functionA2=-40/9*CF*NF+268/9*CA*CF-8*zeta2*CA*CFX1NSC=np.log(1-Y)*A2+P1DELTreturnX1NSC