32 constexpr double eps = 10.0*std::numeric_limits<double>::epsilon();
33 const double qdrt_eps = std::pow(eps, 0.25);
36 void shift(
double& x,
double& y,
double rel_diff)
noexcept
39 const double mid = 0.5*std::abs(y + x);
41 x = (1 - rel_diff)*mid;
42 y = (1 + rel_diff)*mid;
44 x = (1 + rel_diff)*mid;
45 y = (1 - rel_diff)*mid;
50 void sort(
double& x,
double& y)
noexcept
52 if (x > y) { std::swap(x, y); }
55 void sort(
double& x,
double& y,
double& z)
noexcept
57 if (x > y) { std::swap(x, y); }
58 if (y > z) { std::swap(y, z); }
59 if (x > y) { std::swap(x, y); }
64 double phi_over_y(
double xu,
double xd)
noexcept
66 const double sqrtxd = std::sqrt(xd);
67 const double ixd = 1/xd;
68 constexpr double eps = 1e-8;
71 if (std::abs((xu - 1)*ixd + 2/sqrtxd - 1) < eps) {
72 return -std::log(std::abs(-1 + sqrtxd))/sqrtxd + std::log(xd)/(2*(-1 + sqrtxd));
73 }
else if (std::abs((xu - 1)*ixd - 2/sqrtxd - 1) < eps) {
74 return std::log(1 + sqrtxd)/sqrtxd - std::log(xd)/(2*(1 + sqrtxd));
77 const double y =
sqr(xu - xd) - 2*(xu + xd) + 1;
78 const double phi =
Phi(xd, xu, 1);
84 double lambda_2(
double u,
double v)
noexcept
86 return sqr(1 - u -
v) - 4*u*
v;
90 double l00(
double u,
double v)
noexcept
92 return v*(1 + u*(1 + u*(1 + u)) +
v*(u*(1 + u*(3 + 6*u)) + u*(1 + u*(6 + 20*u))*
v));
96 double l0v(
double u,
double v)
noexcept
98 const double a = 1 -
v;
99 const double a2 = a*a;
100 const double a3 = a2*a;
101 return u*(0.5*(1 + (1 +
v)/a) + u*(
v + u*
v*(1 +
v)/a2)/a3);
105 double lv0(
double u,
double v)
noexcept
107 const double a = 1 -
v;
108 const double a2 = a*a;
109 const double a3 = a2*a;
110 return v + u*(0.5*(-1 + (1 +
v)/a) + u*(
v + u*
v*(1 +
v)/a2)/a3);
114 std::tuple<double,double> luv(
double lambda,
double u,
double v)
noexcept
117 return std::make_tuple(l00(u,
v), l00(
v, u));
118 }
else if (u < qdrt_eps) {
119 return std::make_tuple(l0v(u,
v), lv0(u,
v));
121 return std::make_tuple(0.5*(1 -
lambda + u -
v),
126 double phi_pos(
double u,
double v)
noexcept
129 return 2.343907238689459;
132 const double pi23 = 3.2898681336964529;
136 const double x = u < qdrt_eps ? u*(1 + u*(1 + u*(2 + 5*u))) : 0.5*(1 -
lambda);
138 return (-
sqr(std::log(u)) + 2*
sqr(std::log(x))
143 std::tie(x, y) = luv(
lambda, u,
v);
145 return (- std::log(u)*std::log(
v) + 2*std::log(x)*std::log(y)
150 double cl2acos(
double x)
noexcept
156 double phi_neg_1v(
double v)
noexcept
158 return 2*(cl2acos(1 - 0.5*
v) + 2*cl2acos(0.5*std::sqrt(
v)));
162 double phi_neg(
double u,
double v)
noexcept
166 return 2.343907238689459;
180 return phi_neg_1v(u)/
lambda;
183 const auto sqrtu = std::sqrt(u);
184 const auto sqrtv = std::sqrt(
v);
186 return 2*(+ cl2acos(0.5*(1 + u -
v)/sqrtu)
187 + cl2acos(0.5*(1 - u +
v)/sqrtv)
188 + cl2acos(0.5*(-1 + u +
v)/(sqrtu*sqrtv)))/
lambda;
197 double phi_uv(
double u,
double v)
noexcept
208 if (u <= 1 &&
v <= 1) {
211 const auto vou =
v/u;
212 if (u >= 1 && vou <= 1) {
213 const auto oou = 1/u;
214 return phi_pos(oou,vou)*oou;
217 const auto oov = 1/
v;
218 return phi_pos(oov,1/vou)*oov;
226double F1C(
double x)
noexcept {
231 const double d = x - 1.0;
234 return 1.0 + d*(-0.6 + d*(0.4 + d*(-2.0/7.0
235 + d*(3.0/14.0 + d*(-1.0/6.0
239 return 2.0/
pow4(d)*(2.0 + x*(3.0 + 6.0*std::log(x) + x*(-6.0 + x)));
242double F2C(
double x)
noexcept {
248 const double d = x - 1.0;
250 return 1.0 + d*(-0.75 + d*(0.6 + d*(-0.5 + d*(3.0/7.0
251 + d*(-0.375 + 1.0/3.0*d)))));
254 return 3.0/(2.0*
pow3(1.0 - x))*(-3.0 - 2.0*std::log(x) + x*(4.0 - x));
257double F3C(
double x)
noexcept {
258 const double d = x - 1.0;
265 + d*(-265541.0/230300.0
266 + d*(+48919.0/46060.0
267 - 80755.0/82908.0*d)))));
270 const double lx = std::log(x);
271 const double x2 =
sqr(x);
273 return 4.0/(141.0*
pow4(d)) * (
274 + (1.0 - x) * (151.0 * x2 - 335.0 * x + 592.0)
275 + 6.0 * (21.0 *
pow3(x) - 108.0 * x2 - 93.0 * x + 50.0) * lx
276 - 54.0 * x * (x2 - 2.0 * x - 2.0) *
sqr(lx)
277 - 108.0 * x * (x2 - 2.0 * x + 12.0) *
dilog(1.0 - x)
281double F4C(
double x)
noexcept {
287 const double d = x - 1.0;
294 + d*(+177.0/6832.0 - 47021.0/1076040.0*d)))));
297 const double lx = std::log(x);
298 const double x2 =
sqr(x);
300 return -9.0/(122.0 *
pow3(1.0 - x)) * (
301 + 8.0 * (x2 - 3.0 * x + 2.0)
302 + (11.0 * x2 - 40.0 * x + 5.0) * lx
303 - 2.0 * (x2 - 2.0 * x - 2.0) *
sqr(lx)
304 - 4.0 * (x2 - 2.0 * x + 9.0) *
dilog(1.0 - x)
308double F1N(
double x)
noexcept {
313 const double d = x - 1.0;
316 return 1.0 + d*(-0.4 + d*(0.2 + d*(-4.0/35.0
317 + d*(1.0/14.0 + d*(-1.0/21.0 + 1.0/30.0*d)))));
320 return 2.0/
pow4(d)*(1.0 + x*(-6.0 + x*(+3.0 - 6.0 * std::log(x) + 2.0 * x)));
323double F2N(
double x)
noexcept {
329 const double d = x - 1.0;
331 return 1. + d*(-0.5 + d*(0.3 + d*(-0.2
332 + d*(1.0/7.0 + d*(-3.0/28.0 + 1.0/12.0*d)))));
335 return 3.0/
pow3(1.0 - x) * (1.0 + x*(2.0 * std::log(x) - x));
338double F3N(
double x)
noexcept {
343 const double d = x - 1.0;
346 return 1.0 + d*(76/875.0 + d*(-431/2625.0 + d*(5858/42875.0
347 + d*(-3561/34300.0 + d*(23/294.0 - 4381/73500.0*d)))));
350 const double x2 =
sqr(x);
352 return 4.0/105.0/
pow4(d) * (
353 + (1.0 - x) * (-97.0 * x2 - 529.0 * x + 2.0)
354 + 6.0 * x2 * (13.0 * x + 81.0) * std::log(x)
355 + 108.0 * x * (7.0 * x + 4.0) *
dilog(1.0 - x)
359double F4N(
double x)
noexcept {
360 const double PI2 = 9.8696044010893586;
363 return -3.0/4.0*(-9.0 + PI2);
367 const double d = x - 1.0;
369 return 1.0 +
sqr(d)*(-111.0/800.0 + d*(59.0/400.0 + d*(-129.0/980.0
370 + d*(177.0/1568.0 - 775.0/8064.0*d))));
373 return -2.25/
pow3(1.0 - x) * (
374 + (x + 3.0) * (x * std::log(x) + x - 1.0)
375 + (6.0 * x + 2.0) *
dilog(1.0 - x)
382double Fb11(
double x,
double y)
noexcept {
383 const double x1 = x - 1;
384 const double y1 = y - 1;
387 + 1.0/12 + (-0.05 + 1.0/30*y1)*y1
388 + x1*(-0.05 + (1.0/30 - 1.0/42*y1)*y1
389 + x1*(1.0/30 + (-1.0/42 + 1.0/56*y1)*y1));
393double Fbx(
double x,
double y)
noexcept {
395 const double d = x - 1;
396 return 1.0/12 + d*(-0.1 + d*(0.1 + d*(-2.0/21 + d*(5.0/56 + d*(-1.0/12 + d*(7.0/90 - 4.0/55*d))))));
399 const double x1 = x - 1.0;
400 const double d = y - x;
401 const double lx = std::log(x);
402 const double x14 =
pow4(x1);
403 const double x15 = x14*x1;
404 const double x16 = x15*x1;
406 return (-5 - 2*lx + x*(4 - 4*lx + x))/(2*x14)
407 - d*(-1 + x*(-9 - 6*lx + x*(9 - 6*lx + x)))/(2*x15*x)
408 -
sqr(d)*(-1 + x*(12 + x*(36 + 36*lx + x*(-44 + 24*lx - 3*x))))/(6*x16*
sqr(x));
413double Fb(
double x,
double y)
noexcept {
414 if (x < 0 || y < 0) {
415 ERROR(
"Fb: x and y must not be negative!");
416 return std::numeric_limits<double>::quiet_NaN();
433 return (
G4(y) -
G4(x))/(x - y);
439double Fa11(
double x,
double y)
noexcept {
440 const double x1 = x - 1;
441 const double y1 = y - 1;
444 0.25 + (-0.2 + 1.0/6*y1)*y1
445 + x1*(-0.2 + (1.0/6 - 1.0/7*y1)*y1
446 + x1*(1.0/6 + (-1.0/7 + 1.0/8*y1)*y1));
450double Fax(
double x,
double y)
noexcept {
452 const double d = x - 1;
453 return 0.25 + d*(-0.4 + d*(0.5 + d*(-4.0/7 + d*(5.0/8 + d*(-2./3 + d*(0.7 - 8.0/11*d))))));
456 const double x1 = x - 1.0;
457 const double d = y - x;
458 const double lx = std::log(x);
459 const double x14 =
pow4(x1);
460 const double x15 = x14*x1;
461 const double x16 = x15*x1;
462 const double x2 =
sqr(x);
463 const double x3 = x2*x;
465 return (2 + x*(3 + 6*lx + x*(-6 + x)))/(2*x14*x)
466 - d*(-1 + x*(8 + x*(12*lx + x*(-8 + x))))/(2*x15*x2)
467 -
sqr(d)*(-2 + x*(15 + x*(-60 + x*(20 - 60*lx + x*(30 - 3*x)))))/(6*x16*x3);
472double Fa(
double x,
double y)
noexcept {
473 if (x < 0 || y < 0) {
474 ERROR(
"Fa: x and y must not be negative!");
475 return std::numeric_limits<double>::quiet_NaN();
492 return (
G3(y) -
G3(x))/(x - y);
495double G3(
double x)
noexcept {
497 const double d = x - 1;
498 return 1.0/3 + d*(-0.25 + d*(0.2 + d*(-1.0/6 + d*(1.0/7 + d*(-1.0/8
499 + d*(1.0/9 + d*(-0.1 + 1.0/11*d)))))));
502 return ((x - 1)*(x - 3) + 2*std::log(x))/(2*
pow3(x - 1));
505double G4(
double x)
noexcept {
507 const double d = x - 1;
508 return 1.0/6 + d*(-1.0/12 + d*(0.05 + d*(-1.0/30 + d*(1.0/42
509 + d*(-1.0/56 + d*(1.0/72 + d*(-1.0/90 + 1.0/110*d)))))));
512 return ((x - 1)*(x + 1) - 2*x*std::log(x))/(2*
pow3(x - 1));
518double I0y(
double y)
noexcept {
520 const double d = y - 1;
521 return 1 + d*(-0.5 + 1./3*d);
524 return std::log(y)/(y - 1);
528double I1y(
double x,
double y)
noexcept {
529 const double dy = y - 1;
530 const double dy2 =
sqr(dy);
531 const double dx = (x - 1)/dy2;
532 const double y2 =
sqr(y);
533 const double yly = y*std::log(y);
535 return (1 - y + yly)/dy2
536 + dx*(0.5 - 0.5*y2 + yly)/dy
537 +
sqr(dx)*(1./3 + 0.5*y + yly + y2*(1./6*y - 1));
541double Ixx(
double x,
double y)
noexcept {
542 const double eps_eq = 0.0001;
545 const double dx = x - 1;
546 const double dy = y - 1;
547 const double dy2 =
sqr(dy);
549 return 0.5 + dx*(-1./6 + 1./12*dy - 1./20*dy2)
550 +
sqr(dx)*(1./12 - 1./20*dy + 1./30*dy2)
551 - 1./6*dy + 1./12*dy2;
554 const double y2 =
sqr(y);
555 const double dy = y - 1;
556 const double dy2 =
sqr(dy);
557 const double dxy = (x - y)/dy2;
558 const double ly = std::log(y);
561 + dxy*(0.5 - 0.5*y2 + y*ly)/(dy*y)
562 +
sqr(dxy)*(1./6 - y + y2*(0.5 + 1./3*y - ly))/y2;
566double Ixy(
double x,
double y)
noexcept {
567 const double eps_eq = 0.0001;
589 const double lx = std::log(x);
590 const double ly = std::log(y);
592 return (x*(y - 1)*lx - y*(x - 1)*ly)/((x - 1)*(x - y)*(y - 1));
596double Ixyz(
double x,
double y,
double z)
noexcept {
603 return Ixy(x/z, y/z)/z;
608double Iabc(
double a,
double b,
double c)
noexcept {
616double f_PS(
double z)
noexcept {
618 ERROR(
"f_PS: z must not be negative!");
619 return std::numeric_limits<double>::quiet_NaN();
620 }
else if (z == 0.0) {
622 }
else if (z < std::numeric_limits<double>::epsilon()) {
623 const double pi23 = 3.2898681336964529;
624 const double lz = std::log(z);
625 return z*(pi23 + lz*lz);
626 }
else if (z < 0.25) {
627 const double y = std::sqrt(1 - 4*z);
628 const double c = -9.8696044010893586;
629 const double q = (1 + y)/(1 - y);
630 const double lq = std::log(q);
631 return z/y*(4*
dilog(1 + q) - lq*(2*std::log(z) - lq) + c);
632 }
else if (z == 0.25) {
633 return 1.3862943611198906;
637 const double y = std::sqrt(-1 + 4*z);
638 const double theta = std::atan2(y, 2*z - 1);
645double f_S(
double z)
noexcept {
647 ERROR(
"f_S: z must not be negative!");
648 return std::numeric_limits<double>::quiet_NaN();
649 }
else if (z == 0.0) {
652 const double lz = std::log(z);
653 const double iz = 1/z;
654 return (-13./9 - 2./3*lz) + iz*(-26./150 - 15./150*lz
655 + iz*(-673./22050 - 420./22050*lz + iz*(-971./158760 - 630./158760*lz)));
658 return (2*z - 1)*
f_PS(z) - 2*z*(2 + std::log(z));
666 ERROR(
"f_sferm: z must not be negative!");
667 return std::numeric_limits<double>::quiet_NaN();
668 }
else if (z == 0.0) {
672 return 0.5*z*(2 + std::log(z) -
f_PS(z));
682 ERROR(
"f_CSl: z must not be negative!");
683 return std::numeric_limits<double>::quiet_NaN();
688 constexpr double pi26 = 1.6449340668482264;
690 return z*(z + z*(z - 1)*(
dilog(1 - 1/z) - pi26) + (z - 0.5)*std::log(z));
699double f_CSd(
double xu,
double xd,
double qu,
double qd)
noexcept
701 if (xd < 0.0 || xu < 0.0) {
702 ERROR(
"f_CSd: xu and xd must not be negative!");
703 return std::numeric_limits<double>::quiet_NaN();
704 }
else if (xd == 0.0) {
708 const double s = 0.25*(
qu +
qd);
709 const double c =
sqr(xu - xd) -
qu*xu +
qd*xd;
710 const double cbar = (xu -
qu)*xu - (xd +
qd)*xd;
711 const double lxu = std::log(xu);
712 const double lxd = std::log(xd);
713 const double phiy = phi_over_y(xu, xd);
715 return xd*(-(xu - xd) + (cbar - c*(xu - xd)) * phiy
716 + c*(
dilog(1.0 - xd/xu) - 0.5*lxu*(lxd - lxu))
717 + (s + xd)*lxd + (s - xu)*lxu);
721double f_CSu(
double xu,
double xd,
double qu,
double qd)
noexcept
723 if (xd < 0.0 || xu < 0.0) {
724 ERROR(
"f_CSu: xu and xd must not be negative!");
725 return std::numeric_limits<double>::quiet_NaN();
728 const double s = 1 + 0.25*(
qu +
qd);
729 const double c =
sqr(xu - xd) - (
qu + 2)*xu + (
qd + 2)*xd;
730 const double cbar = (xu -
qu - 2)*xu - (xd +
qd + 2)*xd;
731 const double lxu = std::log(xu);
732 const double lxd = std::log(xd);
733 const double phiy = phi_over_y(xu, xd);
734 const double fCSd = -(xu - xd) + (cbar - c*(xu - xd)) * phiy
735 + c*(
dilog(1.0 - xd/xu) - 0.5*lxu*(lxd - lxu))
736 + (s + xd)*lxd + (s - xu)*lxu;
738 return xu*(fCSd - 4.0/3*(xu - xd - 1)*phiy
739 - 1.0/3*(lxd + lxu)*(lxd - lxu));
745double F1(
double w)
noexcept {
747 ERROR(
"F1: w must not be negative!");
748 return std::numeric_limits<double>::quiet_NaN();
749 }
else if (w == 0.0) {
751 }
else if (w == 0.25) {
755 return (w - 0.5)*
f_PS(w) - w*(2 + std::log(w));
761double F1t(
double w)
noexcept {
768double F2(
double w)
noexcept {
770 ERROR(
"F2: w must not be negative!");
771 return std::numeric_limits<double>::quiet_NaN();
772 }
else if (w == 0.25) {
773 return -0.38629436111989062;
776 return 1 + 0.5*(std::log(w) -
f_PS(w));
783double F3(
double w)
noexcept {
785 ERROR(
"F3: w must not be negative!");
786 return std::numeric_limits<double>::quiet_NaN();
787 }
else if (w == 0.25) {
790 const double lw = std::log(w);
791 const double iw = 1/w;
792 return 89./12 + 42./12*lw + iw*(284./360 + 165./360*lw
793 + iw*(6199./44100 + 3885./44100*lw
794 + iw*(30017./1.0584e6 + 19530./1.0584e6*lw
795 + iw*(83351./1.37214e7 + 55440./1.37214e7*lw
796 + iw*(34978051./2.597186592e10 + 23603580./2.597186592e10*lw)))));
799 return (0.5 + 7.5*w)*(2 + std::log(w)) + (4.25 - 7.5*w)*
f_PS(w);
809double FPZ(
double x,
double y)
noexcept
811 if (x < 0 || y < 0) {
812 ERROR(
"FPZ: arguments must not be negative.");
813 return std::numeric_limits<double>::quiet_NaN();
818 constexpr double eps = 1e-8;
820 if (x == 0 || y == 0) {
822 }
else if (std::abs(1 - x/y) < eps) {
823 if (std::abs(x - 0.25) < eps) {
825 return -0.79543145370663021 - 1.7453806518612167*(x - 0.25);
827 return 2*x*(
f_PS(x) + std::log(x))/(1 - 4*x);
830 return (y*
f_PS(x) - x*
f_PS(y))/(x - y);
840double FSZ(
double x,
double y)
noexcept
842 if (x < 0 || y < 0) {
843 ERROR(
"FSZ: arguments must not be negative.");
844 return std::numeric_limits<double>::quiet_NaN();
849 constexpr double eps = 1e-8;
851 if (x == 0 || y == 0) {
853 }
else if (std::abs(1 - x/y) < eps) {
854 if (std::abs(x - 0.25) < eps) {
856 return 0.59086290741326041 + 1.2361419555836500*(x - 0.25);
857 }
else if (x >= 1e3) {
858 const double ix = 1/x;
859 const double lx = std::log(x);
860 return 7./9 + 2./3*lx
861 + ix*(37./150 + 1./5*lx
862 + ix*(533./7350 + 2./35*lx
863 + ix*(1627./79380 + 1./63*lx
864 + ix*(18107./3201660 + 1./231*lx))));
866 return 2*x*(1 - 4*x + 2*x*
f_PS(x) + std::log(x)*(1 - 2*x))/(4*x - 1);
869 return (y*
f_S(x) - x*
f_S(y))/(x - y);
879double FCWl(
double x,
double y)
noexcept
881 if (x < 0 || y < 0) {
882 ERROR(
"FCWl: arguments must not be negative.");
883 return std::numeric_limits<double>::quiet_NaN();
888 constexpr double eps = 1e-8;
890 if (x == 0 || y == 0) {
892 }
else if (std::abs(1 - x/y) < eps) {
893 const double pi26 = 1.6449340668482264;
894 return -
f_CSl(x) + x*(-0.5 + x*(3 + (3*x - 2)*(
dilog(1 - 1/x) - pi26))
895 + (3*x - 0.5)*std::log(x));
912double FCWu(
double xu,
double xd,
double yu,
double yd,
double qu,
double qd)
noexcept
914 if (xu < 0 || xd < 0 || yu < 0 || yd < 0) {
915 ERROR(
"FCWu: arguments must not be negative.");
916 return std::numeric_limits<double>::quiet_NaN();
919 constexpr double eps = 1e-8;
922 if (std::abs(1 - xu/yu) < eps) {
941double FCWd(
double xu,
double xd,
double yu,
double yd,
double qu,
double qd)
noexcept
943 if (xu < 0 || xd < 0 || yu < 0 || yd < 0) {
944 ERROR(
"FCWd: arguments must not be negative.");
945 return std::numeric_limits<double>::quiet_NaN();
948 constexpr double eps = 1e-8;
951 if (std::abs(1 - xu/yu) < eps) {
969double lambda_2(
double x,
double y,
double z)
noexcept
987double Phi(
double x,
double y,
double z)
noexcept
990 const auto u = x/z,
v = y/z;
double qu
electromagnetic charge of down-type fermion
double qd
electromagnetic charge of up-type fermion
double F1N(double x) noexcept
, Eq (52) arXiv:hep-ph/0609168
T pow4(T x) noexcept
returns number to the 4th power
double clausen_2(double x) noexcept
Clausen function .
double Phi(double x, double y, double z) noexcept
function from arxiv:1607.06292 Eq.
T sqr(T x) noexcept
returns number squared
double Fa(double x, double y) noexcept
, Eq (6.3a) arXiv:1311.1775
double FSZ(double x, double y) noexcept
Barr-Zee 2-loop function with fermion loop and scalar and Z boson mediators.
double f_CSl(double z) noexcept
Calculates Barr-Zee 2-loop function for diagram with lepton loop and charged Higgs and W boson mediat...
double G4(double x) noexcept
, Eq (6.4b) arXiv:1311.1775
double f_sferm(double z) noexcept
Calculates , Eq (72) arXiv:hep-ph/0609168.
double f_S(double z) noexcept
Calculates , Eq (71) arXiv:hep-ph/0609168.
double F4N(double x) noexcept
, Eq (40) arXiv:1003.5820
double FCWl(double x, double y) noexcept
Barr-Zee 2-loop function with lepton loop and charge scalar and W boson mediators.
double F4C(double x) noexcept
, Eq (38) arXiv:1003.5820
double F2N(double x) noexcept
, Eq (53) arXiv:hep-ph/0609168
bool is_zero(const Eigen::ArrayBase< Derived > &a, double eps)
T pow3(T x) noexcept
returns number to the third power
double f_CSu(double xu, double xd, double qu, double qd) noexcept
Eq (62), arxiv:1607.06292, with extra global prefactor xu.
double F3C(double x) noexcept
, Eq (37) arXiv:1003.5820
double Iabc(double a, double b, double c) noexcept
(arguments are interpreted as unsquared)
double F2(double w) noexcept
, Eq (27) arxiv:1502.04199
double f_CSd(double xu, double xd, double qu, double qd) noexcept
Eq (61), arxiv:1607.06292, with extra global prefactor xd.
double F3N(double x) noexcept
, Eq (39) arXiv:1003.5820
double G3(double x) noexcept
, Eq (6.4a) arXiv:1311.1775
double FCWu(double xu, double xd, double yu, double yd, double qu, double qd) noexcept
Barr-Zee 2-loop function with up-type quark loop and charge scalar and W boson mediators.
double Fb(double x, double y) noexcept
, Eq (6.3b) arXiv:1311.1775
double FPZ(double x, double y) noexcept
Barr-Zee 2-loop function with fermion loop and pseudoscalar and Z boson mediators.
double F1C(double x) noexcept
, Eq (54) arXiv:hep-ph/0609168
double F1t(double w) noexcept
, Eq (26) arxiv:1502.04199
double F1(double w) noexcept
, Eq (25) arxiv:1502.04199
double F2C(double x) noexcept
, Eq (55) arXiv:hep-ph/0609168
double lambda_2(double x, double y, double z) noexcept
Källén lambda function .
double f_PS(double z) noexcept
Calculates , Eq (70) arXiv:hep-ph/0609168.
bool is_equal_rel(T a, T b, T eps) noexcept
double FCWd(double xu, double xd, double yu, double yd, double qu, double qd) noexcept
Barr-Zee 2-loop function with down-type quark loop and charge scalar and W boson mediators.
double dilog(double x) noexcept
Real dilogarithm .
double F3(double w) noexcept
, Eq (28) arxiv:1502.04199