In [1]:
from pymule import *
Populating the interactive namespace from numpy and matplotlib

The momentum configuration and other raw data for these tests can be found here and here.

Quad precision in OpenLoops

OpenLoops has an option for full quad precision calculations. The numbers obtained using it represent the highest available precision in OpenLoops. As we will see, numbers obtained in quad precision (qp) match our benchmark (exact result obtained from analytical calculation).

Thanks to M. Zoller and J-N. Lang for providing us with this.

Load and parse file

In [2]:
import re
def load_file(fn):
    with open('eb2eb_daphne/' + fn) as fp:
        txt = fp.read()
        xis = np.array([
            float(i)
            for i in re.findall(r' xi  *([-\.\dE]*)', txt)
        ])
        valuesPre = re.findall(
            r' xi\*\*2\*([^ ]*)  *([-\.\dE]*)',
            txt
        )
        datOL = np.array([float(v) for k,v in valuesPre if k=='OL'])
        datOLqp = np.array([float(v) for k,v in valuesPre if k=='OL_QP'])
        datLS = np.array([float(v) for k,v in valuesPre if k=='S'])
        datNTS = np.array([float(v) for k,v in valuesPre if k=='NTS'])
        datExact = np.array([float(v) for k,v in valuesPre if k=='exact'])
    return xis, datOL, datOLqp, datLS, datNTS, datExact

xis, datROL, datROLqp, datRLS, datRNTS, datRExact = load_file('softlimit_matels_rand.txt')
xis, datCOL, datCOLqp, datCLS, datCNTS, datCExact = load_file('softlimit_matels_collinitial.txt')

Make plots

Arbitrary phase space point

In [3]:
figure()
plot(xis[:9], abs(datROL  / datRExact - 1)[:9], 'C0o--')
plot(xis[:9], abs(datROLqp/ datRExact - 1)[:9], 'C3o--')
plot(xis[:9], abs(datRLS  / datRExact - 1)[:9], 'C1o--')
plot(xis[:9], abs(datRNTS / datRExact - 1)[:9], 'C2o--')
xscale('log') ; xlim(3e-9,2)
yscale('log') ; ylim(2e-14,2.5)
xlabel(r'$\xi$')
ylabel(r'$\Big|1-\mathcal{M}/\mathcal{M}_\text{exact}\Big|$')
legend(['OpenLoops dp', 'OpenLoops qp', 'Soft', 'Next-to-soft'])
Out[3]:
<matplotlib.legend.Legend at 0x7f5087116a60>

Collinear phase space point

In [4]:
figure()
plot(xis[:9], abs(datCOL  / datCExact - 1)[:9], 'C0o--')
plot(xis[:9], abs(datCOLqp/ datCExact - 1)[:9], 'C3o--')
plot(xis[:9], abs(datCLS  / datCExact - 1)[:9], 'C1o--')
plot(xis[:9], abs(datCNTS / datCExact - 1)[:9], 'C2o--')
xscale('log') ; xlim(3e-9,2)
yscale('log') ; ylim(1.5e-13,15)
xlabel(r'$\xi$')
ylabel(r'$\Big|1-\mathcal{M}/\mathcal{M}_\text{exact}\Big|$')
legend(['OpenLoops dp', 'OpenLoops qp', 'Soft', 'Next-to-soft'])
Out[4]:
<matplotlib.legend.Legend at 0x7f50921b9160>