|
Go to the documentation of this file.
31namespace threshold_loop_functions {
34 template < typename T> constexpr T sqr(T x) noexcept { return x*x; }
35 template < typename T> constexpr T cube(T x) noexcept { return x*x*x; }
36 template < typename T> constexpr T quad(T x) noexcept { return sqr( sqr(x)); }
37 template < typename T> constexpr T pow5(T x) noexcept { return x* quad(x); }
38 template < typename T> constexpr T pow6(T x) noexcept { return sqr( cube(x)); }
39 template < typename T> constexpr T pow7(T x) noexcept { return x* pow6(x); }
40 template < typename T> constexpr T pow8(T x) noexcept { return sqr( quad(x)); }
41 template < typename T> constexpr T pow9(T x) noexcept { return x* pow8(x); }
47 return std::fabs(a) < prec;
63 const T min = std::min(std::abs(a), std::abs(b));
69 const double max = std::max(std::fabs(a), std::fabs(b));
74 bool is_close( double a, double b, double prec) noexcept
76 const double max = std::max(std::abs(a), std::abs(b));
77 return is_zero(a - b, prec*(1.0 + max));
80 double logx( double x) noexcept
98 void sort( double& x, double& y, double& z) noexcept
107double F1( double x) noexcept
116 const double d = x - 1;
117 const double d2 = sqr(d);
118 return 1 + d2*(-1/6. + d*(1/6. - 2/15.*d));
121 const double x2 = sqr(x);
126double F2( double x) noexcept
135 const double d = (x - 1)*(x + 1);
136 const double d2 = sqr(d);
137 return 1 + d2*(-0.1 + d*(0.1 - 3/35.*d));
140 const double x2 = sqr(x);
142 return 6*x2*(2 - 2*x2 + (1 + x2)* std::log(x2))/ cube(x2 - 1);
145double F3( double x) noexcept
154 const double d = x - 1;
155 return 1 + d*(5/9. + d*(-4/9. + d*(2/9. - 7/90.*d)));
158 const double x2 = sqr(x);
160 return 2*x*(5*(1 - x2) + (1 + 4*x2)* std::log(x2))/(3* sqr(x2 - 1));
163double F4( double x) noexcept
172 const double d = x - 1;
173 const double d2 = sqr(d);
174 return 1 + d*(-1/3. + d2*(2/15. - d/6.));
177 const double x2 = sqr(x);
182double F5( double x) noexcept
191 const double d = x - 1;
192 const double d2 = sqr(d);
193 return 1 + d2*(-0.3 + d*(0.3 - 3/14.*d));
197 const double d = x + 1;
198 const double d2 = sqr(d);
199 return -1 + d2*(0.3 + d*(0.3 + 3/14.*d));
202 const double x2 = sqr(x);
203 const double x4 = sqr(x2);
208double F6( double x) noexcept
216 const double x2 = sqr(x);
219 const double d = (x - 1)*(x + 1);
220 return d*(1/3. + d*(-1/8. + d*(1/15. + d/24.)));
223 return (x2 - 3)/(4*(1 - x2)) + x2*(x2 - 2)/(2* sqr(1 - x2))* std::log(x2);
226double F7( double x) noexcept
234 const double x2 = sqr(x);
237 const double d = (x - 1)*(x + 1);
238 return 1 + d*(3/2. + d*(-9/20. + d*(0.2 - 3/28.*d)));
241 const double x4 = sqr(x2);
243 return -3*(x4 - 6*x2 + 1)/(2* sqr(x2 - 1))
248static double F8_1_1( double x1, double x2) noexcept
250 const double d1 = (x1 - 1)*(x1 + 1);
251 const double d2 = (x2 - 1)*(x2 + 1);
252 const double d12 = sqr(d1);
253 const double d22 = sqr(d2);
254 const double d13 = d1*d12;
255 const double d23 = d2*d22;
256 const double d14 = sqr(d12);
257 const double d24 = sqr(d22);
259 return 1 + 2/3.*(d1 + d2) + 1/6.*(-d12 - d1*d2 - d22)
260 + (d13 + d12*d2 + d1*d22 + d23)/15.
261 + (-d14 - d13*d2 - d12*d22 - d1*d23 - d24)/30.;
265static double F8_1_x2( double x1, double x2) noexcept
267 const double x22 = sqr(x2);
268 const double d = (x1 - 1)*(x1 + 1);
271 return 2*x22 + d*(1 - x22 + d*(-1/3. + 2/3.*x22));
274 const double d2 = sqr(d);
275 const double d3 = d*d2;
276 const double d4 = sqr(d2);
277 const double y = (x2 - 1)*(x2 + 1);
278 const double y2 = sqr(y);
279 const double y3 = y*y2;
280 const double y4 = sqr(y2);
281 const double y5 = y2*y3;
282 const double y6 = sqr(y3);
286 - 2 + 2*(1 + x22*(-1 + lx22*x22))/y2
287 + d*(-1 + x22*(4 + x22*(-3 + 2*lx22)))/y3
288 + d2*(-1 + x22*(6 + x22*(-3 + 6*lx22 + -2*x22)))/(3*y4)
289 + d3*(-1 + x22*(8 + x22*(12*lx22 + x22*(-8 + x22))))/(6*y5)
290 + d4*(-3 + x22*(30 + x22*(20 + 60*lx22 + x22*(-60 + x22*(15 - 2*x22)))))/(30*y6);
294static double F8_0_x2( double x1, double x2) noexcept
296 const double x12 = sqr(x1);
297 const double x22 = sqr(x2);
300 return 2*(1 - x22 + (x12 + x22)*lx22)/(-1 + x22);
304static double F8_x1_x2( double x1, double x2) noexcept
306 const double x22 = sqr(x2);
307 const double d = (x1 - x2)*(x1 + x2);
308 const double d2 = sqr(d);
309 const double d3 = d*d2;
310 const double y = (x2 - 1)*(x2 + 1);
311 const double y2 = sqr(y);
312 const double y3 = y*y2;
313 const double y4 = sqr(y2);
314 const double y5 = y2*y3;
318 + 2*((-2 + x22)*x22*lx22 + y)/y2
319 + d*(3 + x22*(-4 + x22) + 2*lx22)/y3
320 + d2*(-2 + x22*(-3 - 6*lx22 + x22*(6 - x22)))/(3*x22*y4)
321 + d3*(-1 + x22*(8 + x22*(12*lx22 + x22*(-8 + x22))))/(6*x22*x22*y5);
324double F8( double x1, double x2) noexcept
332 const double ax1 = std::fabs(x1);
333 const double ax2 = std::fabs(x2);
359 const double x12 = sqr(x1);
360 const double x22 = sqr(x2);
361 const double x14 = sqr(x12);
362 const double x24 = sqr(x22);
364 return -2. + 2./(x12 - x22)*(
370static double F9_1_1( double x1, double x2) noexcept
372 const double d1 = (x1 - 1)*(x1 + 1);
373 const double d2 = (x2 - 1)*(x2 + 1);
374 const double d12 = sqr(d1);
375 const double d22 = sqr(d2);
376 const double d13 = d1*d12;
377 const double d23 = d2*d22;
378 const double d14 = sqr(d12);
379 const double d24 = sqr(d22);
383 + 1/6.*(d12 + d1*d2 + d22)
384 + 1/10.*(-d13 - d12*d2 - d1*d22 - d23)
385 + 1/15.*(d14 + d13*d2 + d12*d22 + d1*d23 + d24);
389static double F9_1_x2( double x1, double x2) noexcept
391 const double x22 = sqr(x2);
392 const double d = (x1 - 1)*(x1 + 1);
393 const double d2 = sqr(d);
394 const double d3 = d*d2;
395 const double d4 = sqr(d2);
396 const double y = (x2 - 1)*(x2 + 1);
397 const double y2 = sqr(y);
398 const double y3 = y*y2;
399 const double y4 = sqr(y2);
400 const double y5 = y2*y3;
401 const double y6 = sqr(y3);
409 + 2*(1 + x22*(-1 + lx22))/y2
410 + d*(1 + x22*(2*lx22 - x22))/y3
411 + d2*(2 + x22*(3 + 6*lx22 + x22*(-6 + x22)))/(3*y4)
412 + d3*(3 + x22*(10 + 12*lx22 + x22*(-18 + x22*(6 - x22))))/(6*y5)
413 + d4*(12 + x22*(65 + 60*lx22 + x22*(-120 + x22*(60 + x22*(-20 + 3*x22)))))/(30*y6);
417static double F9_0_x2( double , double x2) noexcept
419 const double x22 = sqr(x2);
425static double F9_x1_x2( double x1, double x2) noexcept
427 const double x22 = sqr(x2);
428 const double d = (x1 - x2)*(x1 + x2);
429 const double d2 = sqr(d);
430 const double d3 = d*d2;
431 const double y = (x2 - 1)*(x2 + 1);
432 const double y2 = sqr(y);
433 const double y3 = y*y2;
434 const double y4 = sqr(y2);
435 const double y5 = y2*y3;
440 + d*(1 + x22*(2*lx22 - x22))/(x22*y3)
441 + d2*(1 + x22*(-6 + x22*(3 - 6*lx22 + 2*x22)))/(3*x22*x22*y4)
442 + d3*(1 + x22*(-6 + x22*(18 + x22*(-10 + 12*lx22 - 3*x22))))/(6*x22*x22*x22*y5);
445double F9( double x1, double x2) noexcept
447 const double ax1 = std::fabs(x1);
448 const double ax2 = std::fabs(x2);
474 const double x12 = sqr(x1);
475 const double x22 = sqr(x2);
477 return 2/(x12 - x22)*(
482double f( double r) noexcept
487double g( double r) noexcept
492double f1( double r) noexcept
494 const double r2 = sqr(r);
500 const double d = r2 - 1;
502 if ( is_equal(std::fabs(r), 1., 0.01)) {
503 return 1 + d*(4/7. + d*(-13/70. + d*(3/35. - 23/490.*d)));
506 const double d2 = sqr(d);
507 const double d3 = d*d2;
512double f2( double r) noexcept
514 const double r2 = sqr(r);
520 const double d = r2 - 1;
522 if ( is_equal(std::fabs(r), 1., 0.01)) {
523 return 1 + d*(16/27. + d*(-49/270. + d*(11/135. - 83/1890.*d)));
526 const double d2 = sqr(d);
527 const double d3 = d*d2;
532double f3( double r) noexcept
538 const double r2 = sqr(r);
539 const double d = r2 - 1;
541 if ( is_equal(std::fabs(r), 1., 0.01)) {
542 return 1 + d*(2/9. + d*(1/90. + d*(-2/45. + 29/630.*d)));
545 const double r4 = sqr( r2);
546 const double d2 = sqr(d);
547 const double d3 = d*d2;
552double f4( double r) noexcept
558 const double r2 = sqr(r);
559 const double d = r2 - 1;
561 if ( is_equal(std::fabs(r), 1., 0.01)) {
562 return 1 + d*(2/21. + d*(13/210. + d*(-8/105. + 101/1470.*d)));
565 const double r4 = sqr( r2);
566 const double d2 = sqr(d);
567 const double d3 = d*d2;
569 return 2*(5*r4 + 25* r2 + 6)/(7*d2) + 2*(r4 - 19* r2 - 18)* r2* std::log( r2)/(7*d3);
579 if (std::abs(r1) > std::abs( r2)) {
583 const double r12 = sqr(r1);
584 const double r22 = sqr( r2);
585 const double r2lr2 = xlogx( r2);
586 const double lr2 = logx( r2);
595 + r12*(2 + 2*lr2 + r2*(2* r2 + 6*r2lr2))
596 + r1*r22*(6*r2lr2 + 2* r2)
603 const double d1 = r1 - 1;
604 const double d2 = r2 - 1;
605 const double d12 = sqr(d1);
606 const double d22 = sqr(d2);
607 const double d13 = d1*d12;
608 const double d23 = d2*d22;
609 const double d14 = sqr(d12);
610 const double d24 = sqr(d22);
614 + 1./40.*(d12 + d1*d2 + d22)
615 + 1./20.*(-d13 - d12*d2 - d1*d22 - d23)
616 + 1./280.*(9*(d14 + d13*d2 + d12*d22 + d1*d23 + d24));
623 const double d = r1 - 1;
624 return 0.75*(1 + d*(1./3. + d/6. + r2/3.));
627 const double d1 = r1 - 1;
628 const double d2 = r2 - 1;
629 const double d12 = sqr(d1);
630 const double d13 = d12*d1;
631 const double d14 = d13*d1;
632 const double d22 = sqr(d2);
633 const double d23 = d22*d2;
634 const double d24 = d23*d2;
635 const double d25 = d24*d2;
636 const double d26 = d25*d2;
637 const double d27 = d26*d2;
638 const double y = 1 + r2;
639 const double y2 = sqr(y);
640 const double r22 = sqr( r2);
644 + (-3 + r2*(3 + r2*(6 + r2*(3*lr22 + r2*(-3 + (-3 + 3*lr22)* r2)))))/(4.*d23*y2)
645 + d1*(1 + r2*(-1 + r2*(-2 + r2*(8 + 3*lr22 + r2*(1 + (-7 + 3*lr22)* r2)))))/(4.*d24*y2)
646 + d12*(-1 + r2*(4 + r2*(-1 + r2*(4 + 6*lr22 + r2*(5 + (-8 + 6*lr22 - 3* r2)* r2)))))/(8.*d25*y2)
647 + d13*(-4 + r2*(17 + r2*(-4 + r2*(25 + 30*lr22 + r2*(20 + r2*(-41 + 30*lr22 + (-12 - r2)* r2))))))/(40.*d26*y2)
648 + d14*(-2 + r2*(9 + r2*(4 + r2*(33 + 30*lr22 + r22*(-33 + 30*lr22 + r2*(-4 + r2*(-9 + 2* r2)))))))/(40.* d27*y2);
654 const double r22 = sqr( r2);
660 (1 + r22*(lr22 + (-1 + lr22)*r22)
661 + r1*(r1*(2 + lr22 + (-2 + lr22)*r22) + r2*(2 + lr22 + (-2 + lr22)*r22)))/ sqr(-1 + r22);
669 const double d = r1 - r2;
670 const double d2 = sqr(d);
671 const double d3 = d2*d;
672 const double r22 = sqr( r2);
673 const double y = r22 - 1;
674 const double y3 = sqr(y)*y;
675 const double y4 = y3*y;
676 const double y5 = y4*y;
677 const double y6 = y5*y;
681 + (-1 + r22*(-5 - 3*lr22 + r22*(5 - 6*lr22 + (1 + lr22)*r22)))/y3
682 + d* r2*(11 + 3*lr22 + r22*(3 + 18*lr22 + r22*(-15 + 3*lr22 + r22)))/y4
683 + d2*(-17 - 3*lr22 + r22*(-116 - 75*lr22 + r22*(90 - 105*lr22 + r22*(44 - 9*lr22 - r22))))/(3.*y5)
684 + d3*(3 + r22*(273 + 90*lr22 + r22*(314 + 510*lr22 + r22*(-498 + 342*lr22 + r22*(-93 + 18*lr22 + r22)))))/(6.* r2*y6)
688double f5( double r1, double r2) noexcept
690 const double eps_zero = 1 e-4;
691 const double eps_one = 1 e-2;
725 const double r12 = sqr(r1);
726 const double r22 = sqr( r2);
729 = (1 + sqr(r1 + r2) - r12*r22)/((r12 - 1)*(r22 - 1))
733 return 0.75 * result;
743 const double r22 = sqr( r2);
747 r22*(1 + (1 + lr22)*r22)
748 + r1*( r2*(1 + (1 + lr22)*r22)
749 + r1*(1 + r22*(1 + lr22 + (1 + 2*lr22)*r22)
750 + r1*( r2*(1 + lr22 + (1 + 2*lr22)*r22)
751 + r1*(1 + lr22 + r22*(1 + 2*lr22 + (1 + 3*lr22)*r22)))));
759 const double d1 = r1 - 1;
760 const double d2 = r2 - 1;
763 1 + d2*(4./7 + d2*(-2./35 + (-1./70 + 9.*d2/490)*d2)) +
764 d1*(4./7 + d2*(-2./35 + d2*(-1./70 + (9./490 - 3.*d2/245)*d2)) +
765 d1*(-2./35 + d2*(-1./70 + d2*(9./490 + (-3./245 + d2/147)*d2)) +
766 d1*(-1./70 + d2*(9./490 + d2*(-3./245 + (1./147 - d2/294)*d2)) +
767 d1*(9./490 + d2*(-3./245 + d2*(1./147 + (-1./294 + 5.*d2/3234)*d2))))));
773 const double d2 = r2 - 1;
774 const double d22 = sqr(d2);
777 + 3./7 + d2*(4./7 + (-2./35 + 3.*d2/70)*d22)
778 + r1*(3./7 + d2*(1./7 + d2*(-1./7 + (3./35 - 3.*d2/70)*d2))
779 + r1*(3./7 + d2*(-2./7 + d2*(1./7 + (-2./35 + d2/70)*d2))
780 + r1*(-3./7 + d2*(1./7 + (-2./35 + d2/14)*d22)
781 + r1*(-3./7 + d2*(4./7 + d2*(-4./7 + (18./35 - 31.*d2/70)*d2))))));
791 const double r22 = sqr( r2);
793 const double y = 1 + r2;
794 const double y2 = sqr(y);
795 const double z = r2 - 1;
796 const double z2 = sqr(z);
797 const double z3 = z2*z;
798 const double z4 = z3*z;
799 const double z5 = z4*z;
800 const double z6 = z5*z;
801 const double z7 = z6*z;
802 const double d = r1 - 1;
803 const double d2 = sqr(d);
804 const double d3 = d2*d;
805 const double d4 = d3*d;
808 (-3 + r22*(6 + r2*(6 + r2*(-3 + r2*(-6 + 6*lr22)))))/(7.*z3*y2)
809 + d*(4 + r2*(-7 + r2*(-8 + r2*(20 + r2*(4 + r2*(-13 + 6*lr22))))))/(7.*z4*y2)
810 + d2* r2*(1 + r2*(-4 + r2*(4 + r2*(8 + r2*(-5 - 4* r2 + 6*lr22)))))/(7.*z5*y2)
811 + d3*(-2 + r2*(11 + r2*(-22 + r2*(10 + r2*(50 + r2*(-23 + r2*(-26 + 2* r2) + 30*lr22))))))/(35.*z6*y2)
812 + d4*(-3 + r2*(18 + r2*(-40 + r2*(24 + r2*(90 + r2*(-42 + r2*(-48 + r22) + 60*lr22))))))/(70.*z7*y2);
818 const double r22 = sqr( r2);
822 6./7.*(r22*(1 + (-1 + lr22)*r22)
823 + r1*( r2*(1 + (-1 + lr22)*r22)
824 + r1*(1 + (-1 + lr22)*r22
825 + r1*(r1*(1 + lr22 - r22) + r2*(1 + lr22 - r22)))))/ sqr(-1 + r22);
831 const double d = r1 - r2;
832 const double d2 = sqr(d);
833 const double d3 = d2*d;
834 const double d4 = d3*d;
835 const double r22 = sqr( r2);
836 const double y = r22 - 1;
837 const double y2 = sqr(y);
838 const double y3 = y2*y;
839 const double y4 = y3*y;
840 const double y5 = y4*y;
841 const double y6 = y5*y;
842 const double y7 = y6*y;
847 r22*(-3 + r22*(2 - 5*lr22 + (1 + lr22)*r22))/y3
848 + d* r2*(3 + r22*(7 + 10*lr22 + r22*(-11 + 2*lr22 + r22)))/y4
849 + d2*(-3 + r22*(-62 - 30*lr22 + r22*(36 - 60*lr22 + r22*(30 - 6*lr22 - r22))))/(3.*y5)
850 + d3* r2*(107 + 30*lr22 + r22*(206 + 240*lr22 + r22*(-252 + 198*lr22 + r22*(-62 + 12*lr22 + r22))))/(6.*y6)
851 + d4*(-167 - 30*lr22 + r22*(-2215 - 1050*lr22 + r22*(-510 - 3150*lr22 + r22*(2570 - 1470*lr22 + r22*(325 - 60*lr22 - 3*r22)))))/(30.*y7)
855double f6( double r1, double r2) noexcept
857 const double eps_zero = 1 e-4;
891 const double r12 = sqr(r1);
892 const double r22 = sqr( r2);
895 = (r12 + r22 + r1* r2 - r12*r22)/((r12 - 1)*(r22 - 1))
899 return 6./7. * result;
909 if (std::abs(r1) > std::abs( r2)) {
913 const double r22 = sqr( r2);
918 + r1*((1 + lr22)* r2 + r1*(1 + lr22 + (1 + 2*lr22)*r22));
926 const double d1 = r1 - 1;
927 const double d2 = r2 - 1;
930 1 + d2*(-1 + d2*(3./5 + (-3./10 + 9.*d2/70)*d2))
931 + d1*(-1 + d2*(3./5 + d2*(-3./10 + (9./70 - 3.*d2/70)*d2))
932 + d1*(3./5 + d2*(-3./10 + d2*(9./70 + (-3./70 + d2/210)*d2))
933 + d1*(-3./10 + d2*(9./70 + d2*(-3./70 + (1./210 + d2/105)*d2))
934 + d1*(9./70 + d2*(-3./70 + d2*(1./210 + (1./105 - d2/77)*d2))))));
940 const double d = r2 - 1;
941 const double r12 = sqr(r1);
943 return 3 + r1*(-4 - 3*r1 + r2)
946 + d*(-0.4 + r1*(-0.4 + (18*r1)/5.)
947 + d*(0.1 + (0.5 - (31*r1)/10.)*r1))));
957 const double d = r1 - 1;
958 const double d2 = sqr(d);
959 const double d3 = d2*d;
960 const double d4 = d3*d;
961 const double y = r2 - 1;
962 const double y2 = sqr(y);
963 const double y3 = y2*y;
964 const double y4 = y3*y;
965 const double y5 = y4*y;
966 const double y6 = y5*y;
967 const double y7 = y6*y;
968 const double z = 1 + r2;
969 const double z2 = sqr(z);
970 const double r22 = sqr( r2);
974 (-3 + r2*(6 + r2*(6 + (-6 + 6*lr22 - 3* r2)* r2)))/(y3*z2)
975 + d*(-2 + r2*(5 + r2*(4 + r2*(-4 + 6*lr22 + (-2 - r2)* r2))))/(y4*z2)
976 + d2*(-1 + r2*(3 + r2*(3 + r2*(6*lr22 + r2*(-3 + (-3 + r2)* r2)))))/(y5*z2)
977 + d3*(-2 + r2*(6 + r2*(18 + r2*(15 + 30*lr22 + r2*(-30 + r2*(-18 + (14 - 3* r2)* r2))))))/(5.*y6*z2)
978 + d4*(-1 + r22*(48 + r2*(42 + 60*lr22 + r2*(-90 + r2*(-24 + r2*(40 + r2*(-18 + 3* r2)))))))/(10.*y7*z2);
984 const double r12 = sqr(r1);
985 const double r22 = sqr( r2);
987 const double r12lr12 = xlogx(r12);
991 + r22*(1 + (-1 + lr22)*r22)
992 + r1*( r2*(-r12lr12 + r22*(1 + lr22 + 2*r12lr12 + (-1 - r12lr12)*r22))
993 + r1*(-r12lr12 + r22*(1 + lr22 + 2*r12lr12 + (-1 - r12lr12)*r22)
994 + r1*(r1*(lr22 + r22*(1 - r22)) + r2*(lr22 + r22*(1 - r22)))))
995 )/(r22* sqr(-1 + r22));
1001 const double d = r1 - r2;
1002 const double d2 = sqr(d);
1003 const double d3 = d2*d;
1004 const double d4 = d3*d;
1005 const double r22 = sqr( r2);
1006 const double y = r22 - 1;
1007 const double y2 = sqr(y);
1008 const double y3 = y2*y;
1009 const double y4 = y3*y;
1010 const double y5 = y4*y;
1011 const double y6 = y5*y;
1012 const double y7 = y6*y;
1016 (-1 + r22*(-2 - 3*lr22 + (3 - lr22)*r22))/y3
1017 + d* r2*(8 + 3*lr22 + r22*(-4 + 8*lr22 + (-4 + lr22)*r22))/y4
1018 + d2*(-14 - 3*lr22 + r22*(-54 - 45*lr22 + r22*(54 - 45*lr22 + (14 - 3*lr22)*r22)))/(3.*y5)
1019 + d3*(3 + r22*(166 + 60*lr22 + r22*(108 + 270*lr22 + r22*(-246 + 144*lr22 + (-31 + 6*lr22)*r22))))/(6.* r2*y6)
1020 + d4*(3 + r22*(-325 - 60*lr22 + r22*(-2570 - 1470*lr22 + r22*(510 - 3150*lr22 + r22*(2215 - 1050*lr22 + (167 - 30*lr22)*r22)))))/(30.*r22*y7);
1025double f7( double r1, double r2) noexcept
1027 const double eps_zero = 1 e-4;
1028 const double eps_one = 2 e-2;
1062 const double r12 = sqr(r1);
1063 const double r22 = sqr( r2);
1066 = (1 + r1* r2)/((r12 - 1)*(r22 - 1))
1080 if (std::abs(r1) > std::abs( r2)) {
1084 const double r22 = sqr( r2);
1085 const double lr22 = logx(r22);
1086 const double r2lr22 = r2*lr22;
1087 const double r22lr22 = r2*r2lr22;
1092 + r1*(1.5 + (3*r22)/2. + (3*r22lr22)/2.
1093 + r1*((3* r2)/2. + (3*r2lr22)/2.));
1097 r2*(1.5 + (3*r22)/2. + (3*r22lr22)/2.)
1098 + r1*(1.5 + (3*r22)/2. + (3*r22lr22)/2.
1099 + r1*( r2*(1.5 + (3*r22)/2. + 3*r22lr22)
1100 + r1*(1.5 + (3*lr22)/2. + (3*r22)/2. + 3*r22lr22) + (3*r2lr22)/2.));
1106 const double d1 = r1 - 1;
1107 const double d2 = r2 - 1;
1108 const double d22 = sqr(d2);
1111 1 + d22*(-1./10 + (3./40 - 3.*d2/70)*d2)
1112 + d1*(d2*(-1./10 + d2*(3./40 + (-3./70 + 3.*d2/140)*d2))
1113 + d1*(-1./10 + d2*(3./40 + d2*(-3./70 + (3./140 - d2/105)*d2))
1114 + d1*(3./40 + d2*(-3./70 + d2*(3./140 + (-1./105 + d2/280)*d2))
1115 + d1*(-3./70 + d2*(3./140 + d2*(-1./105 + (1./280 - d2/1155)*d2))))));
1121 const double r12 = sqr(r1);
1122 const double d2 = r2 - 1;
1124 return 0.75 + r1*(0.75 + r1*(-0.75 + r1*(-1.75 + r2)))
1125 + d2*(0.25 + (-0.5 + r1/4.)*r1
1126 + d2*(-0.25 + r1*(0.25 - r12)
1127 + d2*(0.15 + r1*(-0.1 + (-0.1 + (9*r1)/10.)*r1))));
1137 const double d1 = r1 - 1;
1138 const double d12 = sqr(d1);
1139 const double d13 = d12*d1;
1140 const double d14 = d13*d1;
1141 const double y = 1 + r2;
1142 const double y2 = sqr(y);
1143 const double d2 = r2 - 1;
1144 const double d22 = sqr(d2);
1145 const double d23 = d22*d2;
1146 const double d24 = d23*d2;
1147 const double d25 = d24*d2;
1148 const double d26 = d25*d2;
1149 const double d27 = d26*d2;
1150 const double r22 = sqr( r2);
1154 (-3 + r22*(12 + (-9 + 6*lr22)*r22))/(4.*d23*y2)
1155 + d1*(1 + r2*(-4 + r2*(4 + r2*(8 + (-5 + 6*lr22 - 4* r2)* r2))))/(4.*d24*y2)
1156 + d12*(1 + r2*(-4 + r2*(4 + r2*(8 + (-5 + 6*lr22 - 4* r2)* r2))))/(4.*d25*y2)
1157 + d13*(3 + r2*(-14 + r2*(18 + r2*(30 + r2*(-15 + 30*lr22 + r2*(-18 + r2*(-6 + 2* r2)))))))/(20.*d26*y2)
1158 + d14*(3 + r2*(-16 + r2*(24 + r2*(48 + r2*(60*lr22 + r2*(-48 + r2*(-24 + (16 - 3* r2)* r2)))))))/(40.* d27*y2);
1164 const double r12 = sqr(r1);
1165 const double r22 = sqr( r2);
1167 const double r12lr12 = xlogx(r12);
1170 (r22*(3 + (-3 + 3*lr22)*r22)
1171 + r1*( r2*(3 + (-3 + 3*lr22)*r22)
1172 + r1*(-3*r12lr12 + r22*(3 + 3*lr22 + 6*r12lr12 + (-3 - 3*r12lr12)*r22)
1173 + r1*( r2*(3 + 3*lr22 - 3*r22) + r1*(3*lr22 + r22*(3 - 3*r22))))))/(2* r2* sqr(-1 + r22));
1179 const double d = r1 - r2;
1180 const double d2 = sqr(d);
1181 const double d3 = d2*d;
1182 const double d4 = d3*d;
1183 const double r22 = sqr( r2);
1184 const double y = r22 - 1;
1185 const double y2 = sqr(y);
1186 const double y3 = y2*y;
1187 const double y4 = y3*y;
1188 const double y5 = y4*y;
1189 const double y6 = y5*y;
1190 const double y7 = y6*y;
1194 ( r2*(-3 + r22*(-6*lr22 + 3*r22)))/y3
1195 + d*(3 + r22*(27 + 18*lr22 + r22*(-27 + 18*lr22 - 3*r22)))/(2.*y4)
1196 + d2* r2*(-19 - 6*lr22 + r22*(-9 - 30*lr22 + r22*(27 - 12*lr22 + r22)))/y5
1197 + d3*(31 + 6*lr22 + r22*(246 + 144*lr22 + r22*(-108 + 270*lr22 + r22*(-166 + 60*lr22 - 3*r22))))/(4.*y6)
1198 + d4*(-3 + r22*(-285 - 90*lr22 + r22*(-570 - 630*lr22 + r22*(570 - 630*lr22 + r22*(285 - 90*lr22 + 3*r22)))))/(5.* r2*y7);
1201double f8( double r1, double r2) noexcept
1203 const double eps_zero = 5 e-5;
1204 const double eps_one = 1 e-2;
1238 const double r12 = sqr(r1);
1239 const double r22 = sqr( r2);
1242 = (r1 + r2)/((r12 - 1)*(r22 - 1))
1246 return 1.5 * result;
1257 if ( is_equal(std::abs(y), 1.0, eps)) {
1262 const double y2 = sqr(y);
1264 return y2* std::log(y2) / (1. - y2);
1278 if ( is_equal(std::abs(y), 1.0, eps)) {
1283 const double y2 = sqr(y);
1285 return (1. + y2* std::log(y2) / (1. - y2)) / (1 - y2);
1294 const double z2 = 1.644934066848226;
1300 if ( is_equal(std::abs(y), 1.0, eps)) {
1305 const double y2 = sqr(y);
1306 const double y4 = sqr(y2);
1309 return (-1. + 2*y2 + 2*y4)
1321 return (5 - 8*x + 3* sqr(x))/6.;
1331 return (133 - 326*x - 138* cube(x) + 25* quad(x) + 306* sqr(x))/35.;
1342 return (1541 - 2048*x - 256* cube(x) + 15* quad(x) + 1098* sqr(x))/630.;
1353 return -0.3333333333333333 - (2* cube(-1 + x))/3. + (11* quad(-1 + x))/14.
1354 + (2* sqr(-1 + x))/5.;
1365 return (3*(70 - 176*x - 80* cube(x) + 15* quad(x) + 171* sqr(x)))/70.;
1376 return (204 - 11*x + 87* cube(x) - 20* quad(x) - 120* sqr(x))/210.;
1386 return (-3*(-14 - 80*x - 51* cube(x) + 10* quad(x) + 100* sqr(x)))/35.;
1397 return (3*(70 - 176*x - 80* cube(x) + 15* quad(x) + 171* sqr(x)))/70.;
1408 return (-3*(-14 - 80*x - 51* cube(x) + 10* quad(x) + 100* sqr(x)))/35.;
1419 return (-2*(-71 - 315*x - 225* cube(x) + 45* quad(x) + 426* sqr(x)))/245.;
1430 return (-2*(-239 - 1275*x - 837* cube(x) + 165* quad(x) + 1626* sqr(x)))/945.;
1433 return (4*x*(11 + 5* pow6(x) - 35* quad(x) + 19* sqr(x)
1441 return (-2*(386 - 1143*x - 495* cube(x) + 90* quad(x) + 1092* sqr(x)))/315.;
1452 return (-2*(1184 - 3099*x - 1323* cube(x) + 240* quad(x) + 2928* sqr(x)))/735.;
1460double D10f5( double x, double y) noexcept
1463 return (-117 + 306*y - 91* sqr(y) - 3* sqr(x)*(55 - 36*y + 9* sqr(y))
1464 + x*(450 - 344*y + 90* sqr(y)))/560.;
1468 3* sqr(x) + sqr(y)) - (-1 + sqr(y))*(-12 + 71*y + 306* cube(y) +
1470 + 12* quad(y) - 8* sqr(y)) - 64* sqr(y) + 2*x*(17 - 76*y - 176* cube(y) +
1475 3*y + sqr(y)) + quad(x)*(6 - 3*y + 2* sqr(y)) + x*(-3 - 5*y +
1476 3* sqr(y)) + sqr(x)*(23 - 24*y + 9* sqr(y))) + (-1 + sqr(x))*(3 - 4*y +
1477 12* pow6(x) + sqr(y) + x*(1 - 4*y + 3* sqr(y)) + pow5(x)*(-35 + 20*y +
1478 3* sqr(y)) + 2* sqr(x)*(69 - 68*y + 23* sqr(y)) + cube(x)*(-74 - 40*y +
1500double D01f5( double x, double y) noexcept
1503 return ( sqr(x)*(-91 + 90*y - 27* sqr(y)) + 2*x*(153 - 172*y + 54* sqr(y))
1504 - 3*(39 - 150*y + 55* sqr(y)))/560.;
1518 4* sqr(x)*(16 - 27*y + 6* sqr(y)) - 2*(6 - 17*y + 6* sqr(y)) +
1519 2* quad(x)*(-82 - 11*y + 18* sqr(y)) + x*(71 - 152*y + 51* sqr(y)) +
1520 2* cube(x)*(153 - 176*y + 63* sqr(y))))/(40.* pow6(-1 + x)* sqr(1 + x));
1540double D10f6( double x, double y) noexcept
1543 return (259 + 99*y - 43* sqr(y) - 3* sqr(x)*(22 - 21*y + 6* sqr(y))
1544 + 2*x*(54 - 88*y + 27* sqr(y)))/490.;
1555 - y + sqr(y)) + sqr(x)*(4 - 3*y + 2* sqr(y))) + (-1 + sqr(x))*(-1 -
1556 3*y + 12* pow6(x) + x*(-9 + 17*y - 5* sqr(y)) + sqr(y) + pow5(x)*(-36 +
1557 17*y + 4* sqr(y)) + sqr(x)*(47 - 30*y + 7* sqr(y)) + cube(x)*(-9 - 46*y
1570 return (6*((-1 + sqr(x))*(-((-1 + sqr(y))*( cube(y) + y* sqr(x)*(-3 + sqr(y))
1578double D01f6( double x, double y) noexcept
1581 return (259 + 108*y + sqr(x)*(-43 + 54*y - 18* sqr(y)) - 66* sqr(y)
1582 + x*(99 - 176*y + 63* sqr(y)))/490.;
1586 3* sqr(y)) + 4* sqr(y) + sqr(x)*(5 + 3*y + 2* sqr(y))) + (-1 +
1594 + (-1 + sqr(x))*( quad(x)*(82 + 146*y - 78* sqr(y)) + cube(x)*(-223 +
1595 216*y - 63* sqr(y)) + x*(32 + 76*y - 33* sqr(y)) + 2*(-7 - 6*y +
1596 3* sqr(y)) + pow5(x)*(-19 - 52*y + 6* sqr(y)) + 2* sqr(x)*(26 - 97*y +
1615double D10f7( double x, double y) noexcept
1618 return (-376 + 207*y - 48* sqr(y) - 9* sqr(x)*(11 - 5*y + sqr(y))
1619 + 6*x*(57 - 28*y + 6* sqr(y)))/70.;
1629 return -(((-1 + sqr(x))*(-4 + y + sqr(x)*(-91 + 106*y - 39* sqr(y)) +
1630 cube(x)*(65 - 6*y - 11* sqr(y)) + x*(-10 + 21*y - 8* sqr(y)) +
1633 sqr(y)) + x*(-3 - 5*y + 3* sqr(y)) + sqr(x)*(8 - 9*y +
1641 2*x*y*(-19 + 121* pow6(y) + 939* quad(y) + 399* sqr(y)) + sqr(x)*(9 +
1652double D01f7( double x, double y) noexcept
1655 return (-376 + 342*y + sqr(x)*(-48 + 36*y - 9* sqr(y)) - 99* sqr(y)
1656 + 3*x*(69 - 56*y + 15* sqr(y)))/70.;
1664 + y)* pow6(-1 + y)));
1668 - (-1 + sqr(x))*(-26 + 22*y - 6* sqr(y) + pow5(x)*(24 - 28*y +
1669 9* sqr(y)) + x*(103 - 76*y + 18* sqr(y)) - 2* quad(x)*(41 - 62*y +
1670 21* sqr(y)) + 2* sqr(x)*(-6 - 43*y + 24* sqr(y)) + cube(x)*(83 - 136*y +
1678 2*x*y*(-11 + 45* pow6(y) + 331* quad(y) + 115* sqr(y)) + sqr(x)*(3 +
1689double D10f8( double x, double y) noexcept
1692 return (288 - 232*y + x*(-356 + 234*y - 60* sqr(y)) + 63* sqr(y)
1693 + 9* sqr(x)*(13 - 8*y + 2* sqr(y)))/280.;
1696 return ((-24 + 122*y + 12* cube(y) - 14* pow5(y) + 37* quad(y) - 2*x*(-14 +
1700 y) - 4*y + 3* sqr(x) + sqr(y)))/(20.* pow6(-1 + y)* sqr(1 + y));
1704 sqr(y)) + 3* sqr(x)*(2 - 2*y + sqr(y)) + x*(-6 - 4*y + 3* sqr(y))) +
1705 (-1 + sqr(x))*(-6 + 4*y + (17 + 4*y)* pow5(x) - sqr(y) + x*(26 - 14*y
1706 + 3* sqr(y)) + quad(x)*(-51 + 10*y + 8* sqr(y)) + sqr(x)*(3 - 26*y +
1718 return (-3*(-((-1 + sqr(x))*(-((-1 + sqr(y))*( sqr(x)*(1 - 3* sqr(y)) +
1726double D01f8( double x, double y) noexcept
1729 return (288 - 356*y + x*(-232 + 234*y - 72* sqr(y)) + 117* sqr(y)
1730 + 3* sqr(x)*(21 - 20*y + 6* sqr(y)))/280.;
1742 + (-1 + sqr(x))*(-24 + 28*y + sqr(x)*(-223 + 216*y - 63* sqr(y)) +
1743 cube(x)*(12 + 86*y - 48* sqr(y)) + quad(x)*(37 - 4*y - 18* sqr(y)) -
1744 9* sqr(y) + 2* pow5(x)*(-7 - 6*y + 3* sqr(y)) + 2*x*(61 - 67*y +
1766 return -1.3333333333333333 + x + 2* cube(-1 + x) - (31* quad(-1 + x))/14.
1767 - (8* sqr(-1 + x))/5.;
1778 return (-381 + 832*x + 320* cube(x) - 55* quad(x) - 744* sqr(x))/35.;
1789 return (2*(-392 + 69*x - 465* cube(x) + 120* quad(x) + 528* sqr(x)))/315.;
1792 return (4*(1 - 17* pow6(x) - 25* quad(x) + 41* sqr(x) +
1801 return (-2*(174 - 529*x - 335* cube(x) + 70* quad(x) + 620* sqr(x)))/35.;
1812 return (-334 + 793*x + 370* cube(x) - 70* quad(x) - 780* sqr(x))/35.;
1823 return (109 - 720*x - 560* cube(x) + 120* quad(x) + 981* sqr(x))/210.;
1834 return 10 - (208*x)/7. - 16* cube(x) + (22* quad(x))/7. + (1119* sqr(x))/35.;
1844double I0y( double y) noexcept {
1846 const double d = y - 1;
1847 return 1 + d*(-0.5 + d/3);
1854double I1y( double x, double y) noexcept {
1855 const double dy = y - 1;
1856 const double dy2 = sqr(dy);
1857 const double dx = (x - 1)/dy2;
1858 const double y2 = sqr(y);
1861 return (1 - y + yly)/dy2
1862 + dx*(0.5 - y2/2 + yly)/dy
1863 + sqr(dx)*(1./3 + y/2 + yly + y2*(y/6 - 1));
1867double Ixx( double x, double y) noexcept {
1868 const double eps_eq = 0.001;
1871 const double dx = x - 1;
1872 const double dy = y - 1;
1873 const double dy2 = sqr(dy);
1875 return 0.5 + dx*(-1./6 + dy/12 - dy2/20)
1876 + sqr(dx)*(1./12 - dy/20 + dy2/30)
1880 const double y2 = sqr(y);
1881 const double dy = y - 1;
1882 const double dy2 = sqr(dy);
1883 const double dxy = (x - y)/dy2;
1886 return (dy - ly)/dy2
1887 + dxy*(0.5 - y2/2 + y*ly)/(dy*y)
1888 + sqr(dxy)*(1./6 - y + y2*(0.5 + y/3 - ly))/y2;
1892double Ixy( double x, double y) noexcept {
1893 const double eps_eq = 0.001;
1918 return (x*(y - 1)*lx - y*(x - 1)*ly)/((x - 1)*(x - y)*(y - 1));
1922double Ixyz( double x, double y, double z) noexcept {
1929 return Ixy(x/z, y/z)/z;
1934double Iabc( double a, double b, double c) noexcept {
1941 return sqr(x)+ sqr(y)+ sqr(z)-2*(x*y+x*z+y*z);
1948 return sqr(1 - u - v) - 4*u*v;
1955 const double eps = 1.0e-7;
1958 return 2.343907238689459;
1961 const double pi23 = 3.2898681336964529;
1962 const auto lambda = std::sqrt( lambda_2(u,v));
1967 - 4* Li2(0.5*(1 - lambda))
1973 - 2* Li2(0.5*(1 - lambda + u - v))
1974 - 2* Li2(0.5*(1 - lambda - u + v))
1981 return Cl2(2*std::acos(x));
1994 const double eps = 1.0e-7;
1998 return 2.343907238689459;
2001 const auto lambda = std::sqrt(- lambda_2(u,v));
2004 return 4* Cl2(2*std::asin(std::sqrt(0.25/u)))/lambda;
2015 const auto sqrtu = std::sqrt(u);
2016 const auto sqrtv = std::sqrt(v);
2018 return 2*(+ cl2acos(0.5*(1 + u - v)/sqrtu)
2019 + cl2acos(0.5*(1 - u + v)/sqrtv)
2020 + cl2acos(0.5*(-1 + u + v)/(sqrtu*sqrtv)))/lambda;
2040 if (u <= 1 && v <= 1) {
2043 const auto oou = 1/u;
2044 const auto vou = v/u;
2045 if (u >= 1 && vou <= 1) {
2049 const auto oov = 1/v;
2050 return phi_pos(oov,1/vou)*oov;
2069double phi_xyz( double x, double y, double z) noexcept
2071 const auto u = x/z, v = y/z;
2084double B0( double m1, double m2, double scale) noexcept
2097double DB0( double m1, double m2) noexcept
2100 const double m12 = sqr(m1);
2101 const double m14 = sqr(m12);
2102 const double m22 = sqr(m2);
2103 const double m24 = sqr(m22);
2110 return 1./(6. * m22);
2113 return (m14 - m24 + 2*m12*m22* std::log(m22/m12))/
2114 (2* cube(m12 - m22));
2128double C0( double m1, double m2, double m3) noexcept
2133double D0( double m1, double m2, double m3, double m4) noexcept
2148double D2t( double m1, double m2, double m3, double m4) noexcept
2150 return C0(m2, m3, m4) + m1*m1 * D0(m1, m2, m3, m4);
2164double D4t( double m1, double m2, double m3, double m4, double scale) noexcept
2166 return B0(m3, m4, scale) + (m1*m1 + m2*m2) * C0(m2, m3, m4)
2167 + quad(m1) * D0(m1, m2, m3, m4);
2179double W( double m1, double m2, double scale) noexcept
2182 const double m12 = sqr(m1);
2183 const double m14 = sqr(m12);
2184 const double m22 = sqr(m2);
2185 const double m24 = sqr(m22);
2186 const double m26 = m24 * m22;
2187 const double Q2 = sqr(scale);
2194 return 2./3. - 2. * std::log(Q2/m22);
2198 - std::log(m22/m12)*(2*m26 - 6*m12*m24)/ cube(m12 - m22)
2199 - (m14 - 6*m22*m12 + m24)/ sqr(m12 - m22));
static looplibrary::Loop_library_interface & get()
double cl2acos(double x) noexcept Cl2(2*acos(x))
constexpr T pow5(T x) noexcept
double phi_neg(double u, double v) noexcept
double I0y(double y) noexcept Ixy(0,y), squared arguments, y != 0.
bool is_close(double a, double b, double prec) noexcept
constexpr T pow7(T x) noexcept
double Ixy(double x, double y) noexcept I(x,y), x < y, x and y are squared arguments.
double phi_pos(double u, double v) noexcept
constexpr T pow8(T x) noexcept
double Ixx(double x, double y) noexcept I(x,y), squared arguments, x == y, x != 0, y != 0.
double phi_neg_1v(double v) noexcept lambda^2(u,v) < 0, u = 1
double Ixyz(double x, double y, double z) noexcept I(x,y,z), x, y and z are squared arguments.
constexpr T quad(T x) noexcept
double lambda_2(double u, double v) noexcept lambda^2(u,v)
constexpr T pow6(T x) noexcept
constexpr T pow9(T x) noexcept
double logx(double x) noexcept
double I1y(double x, double y) noexcept I(x,y), squared arguments, x == 1, y != 0.
double phi_uv(double u, double v) noexcept
double F2(double x) noexcept
static double f6_1_1(double r1, double r2) noexcept f6(r1,r2) in the limit r1 -> 1 and r2 -> 1
double f4(double r) noexcept
static double F8_1_x2(double x1, double x2) noexcept F8(x1,x2) in the limit x1 -> 1, x2 != 1.
double D10f8(double x, double y) noexcept First derivative of f8 w.r.t. 1st argument.
double D1F4(double x) noexcept First derivative of F4.
static double f5_0_r2(double r1, double r2) noexcept f5(r1,r2) in the limit r1 -> 0
static double f7_1_1(double r1, double r2) noexcept f7(r1,r2) in the limit r1 -> 1 and r2 -> 1
double f6(double r1, double r2) noexcept
static double f8_0_r2(double r1, double r2) noexcept f8(r1,r2) in the limit r1 -> 0
double D1F6(double x) noexcept First derivative of F6.
double W(double m1, double m2, double scale) noexcept (arguments are interpreted as unsquared)
double f(double r) noexcept
static double f6_1_r2(double r1, double r2) noexcept f6(r1,r2) in the limit r1 -> 1
double C0(double m1, double m2, double m3) noexcept (arguments are interpreted as unsquared)
double D2F6(double x) noexcept Second derivative of F6.
double D2F4(double x) noexcept Second derivative of F4.
double D2F5(double x) noexcept Second derivative of F5.
static double f7_1_r2(double r1, double r2) noexcept f7(r1,r2) in the limit r1 -> 1
static double f6_0_1(double r1, double r2) noexcept f6(r1,r2) in the limit r1 -> 0 and r2 -> 1
double f3(double r) noexcept
double D1f2(double x) noexcept First derivative of f2.
double D1F5(double x) noexcept First derivative of F5.
double fth3(double y) noexcept
static double f8_0_0(double r1, double r2) noexcept f8(r1,r2) in the limit r1 -> 0 and r2 -> 0
double F3(double x) noexcept
double D2t(double m1, double m2, double m3, double m4) noexcept (arguments are interpreted as unsquared)
double D01f5(double x, double y) noexcept First derivative of f5 w.r.t. 2nd argument.
double D1F7(double x) noexcept First derivative of F7.
double fth1(double y) noexcept
static double F9_0_x2(double, double x2) noexcept F9(x1,x2) in the limit x1 -> 0, x2 != 1, x2 != 0.
double DB0(double m1, double m2) noexcept (arguments are interpreted as unsquared)
static double f7_0_1(double r1, double r2) noexcept f7(r1,r2) in the limit r1 -> 0 and r2 -> 1
static double f8_1_1(double r1, double r2) noexcept f8(r1,r2) in the limit r1 -> 1 and r2 -> 1
double f7(double r1, double r2) noexcept
double D10f5(double x, double y) noexcept First derivative of f5 w.r.t. 1st argument.
static double f5_1_1(double r1, double r2) noexcept f5(r1,r2) in the limit r1 -> 1 and r2 -> 1
static double F9_1_x2(double x1, double x2) noexcept F9(x1,x2) in the limit x1 -> 1.
double D4t(double m1, double m2, double m3, double m4, double scale) noexcept (arguments are interpreted as unsquared)
double D01f8(double x, double y) noexcept First derivative of f8 w.r.t. 2nd argument.
double phi_xyz(double x, double y, double z) noexcept (arguments are interpreted as squared masses)
double D10f6(double x, double y) noexcept First derivative of f6 w.r.t. 1st argument.
static double f8_0_1(double r1, double r2) noexcept f8(r1,r2) in the limit r1 -> 0 and r2 -> 1
static double F9_1_1(double x1, double x2) noexcept F9(x1,x2) in the limit x1 -> 1 and x2 -> 1.
double D1F3(double x) noexcept First derivative of F3.
double f2(double r) noexcept
static double f5_r1_r2(double r1, double r2) noexcept f5(r1,r2) in the limit r1 -> r2
double D1g(double x) noexcept First derivative of g.
double D2F2(double x) noexcept Second derivative of F2.
double delta_xyz(double x, double y, double z) noexcept Delta function from hep-ph/0907.47682v1.
double g(double r) noexcept
double D01f7(double x, double y) noexcept First derivative of f7 w.r.t. 2nd argument.
double D2F1(double x) noexcept Second derivative of F1.
double D0(double m1, double m2, double m3, double m4) noexcept (arguments are interpreted as unsquared)
double D1f1(double x) noexcept First derivative of f1.
static double f7_r1_r2(double r1, double r2) noexcept f7(r1,r2) in the limit r1 -> r2
double D2F3(double x) noexcept Second derivative of F3.
double f5(double r1, double r2) noexcept
double D1f4(double x) noexcept First derivative of f4.
double B0(double m1, double m2, double scale) noexcept (arguments are interpreted as unsquared)
double F5(double x) noexcept
double D1F2(double x) noexcept First derivative of F2.
double Iabc(double a, double b, double c) noexcept (arguments are interpreted as unsquared)
static double F9_x1_x2(double x1, double x2) noexcept F9(x1,x2) in the limit x1 -> x2, x2 != 0.
double F6(double x) noexcept
double f1(double r) noexcept
static double f8_1_r2(double r1, double r2) noexcept f8(r1,r2) in the limit r1 -> 1
double D1F1(double x) noexcept First derivative of F1.
double D01f6(double x, double y) noexcept First derivative of f6 w.r.t. 2nd argument.
static double f7_0_0(double r1, double r2) noexcept f7(r1,r2) in the limit r1 -> 0, r2 -> 0
static double F8_0_x2(double x1, double x2) noexcept F8(x1,x2) in the limit x1 -> 0, x2 != 0.
static double f6_0_0(double r1, double r2) noexcept f6(r1,r2) in the limit r1 -> 0 and r2 -> 0
double D2F7(double x) noexcept Second derivative of F7.
double F1(double x) noexcept
double F8(double x1, double x2) noexcept
double f8(double r1, double r2) noexcept
static double f5_1_r2(double r1, double r2) noexcept f5(r1,r2) in the limit r1 -> 1, r2 != 1
double F4(double x) noexcept
double D10f7(double x, double y) noexcept First derivative of f7 w.r.t. 1st argument.
static double F8_x1_x2(double x1, double x2) noexcept
static double f8_r1_r2(double r1, double r2) noexcept f8(r1,r2) in the limit r1 -> r2
static double f6_r1_r2(double r1, double r2) noexcept
double F9(double x1, double x2) noexcept
static double f6_0_r2(double r1, double r2) noexcept f6(r1,r2) in the limit r1 -> 0
double D1f3(double x) noexcept First derivative of f3.
static double f7_0_r2(double r1, double r2) noexcept f7(r1,r2) in the limit r1 -> 0
static double f5_0_0(double r1, double r2) noexcept f5(r1,r2) in the limit r1 -> 0, r2 -> 0
double fth2(double y) noexcept
static double F8_1_1(double x1, double x2) noexcept F8(x1,x2) in the limit x1 -> 1 and x2 -> 1.
double F7(double x) noexcept
double D1f(double x) noexcept First derivative of f.
bool is_equal(T a, T b, T prec=std::numeric_limits< T >::epsilon()) noexcept compares two numbers for (absolute) equality
std::enable_if_t< std::is_unsigned< T >::value, bool > is_zero(T a, T prec=std::numeric_limits< T >::epsilon()) noexcept compares a number for being close to zero
double Li2(double x) noexcept Real dilogarithm .
double Cl2(double x) noexcept Clausen function .
Complex< T > log(const Complex< T > &z) noexcept
bool is_equal_rel(const Eigen::PlainObjectBase< Derived > &a, const Eigen::PlainObjectBase< Derived > &b, double eps)
void sort(Eigen::Array< double, N, 1 > &v) sorts an Eigen array
double c0(double m1, double m2, double m3) noexcept
double d27(double m1, double m2, double m3, double m4) noexcept
double d0(double m1, double m2, double m3, double m4) noexcept
void swap(nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass > &j1, nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass > &j2) noexcept(//NOLINT(readability-inconsistent-declaration-parameter-name, cert-dcl58-cpp) is_nothrow_move_constructible< nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass > >::value &&//NOLINT(misc-redundant-expression, cppcoreguidelines-noexcept-swap, performance-noexcept-swap) is_nothrow_move_assignable< nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass > >::value) exchanges the values of two JSON objects
|