|
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;
59 if ( is_equal(a, b, std::numeric_limits<T>::epsilon())) {
63 const T min = std::min(std::abs(a), std::abs(b));
65 if (min < std::numeric_limits<T>::epsilon()) {
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
82 if ( is_zero(x, 10.0*std::numeric_limits<double>::epsilon())) {
95 return x * std::log(x);
98 void sort( double& x, double& y, double& z) noexcept
107double F1( double x) noexcept
109 const double eps = std::numeric_limits<double>::epsilon();
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);
123 return x*std::log(x2)/(x2 - 1);
126double F2( double x) noexcept
128 const double eps = std::numeric_limits<double>::epsilon();
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
147 const double eps = std::numeric_limits<double>::epsilon();
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
165 const double eps = std::numeric_limits<double>::epsilon();
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);
179 return 2*x*(x2 - 1 - std::log(x2))/ sqr(x2 - 1);
182double F5( double x) noexcept
184 const double eps = std::numeric_limits<double>::epsilon();
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);
205 return 3*x*(1 - x4 + 2*x2*std::log(x2))/ cube(1 - x2);
208double F6( double x) noexcept
210 const double eps = std::numeric_limits<double>::epsilon();
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
228 const double eps = std::numeric_limits<double>::epsilon();
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))
244 + 3*x4*(x2 - 3)/ cube(x2 - 1)*std::log(x2);
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);
283 const double lx22 = std::log(x22);
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);
298 const double lx22 = std::log(x22);
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;
315 const double lx22 = std::log(x22);
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
326 const double eps = 10.*std::numeric_limits<double>::epsilon();
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)*(
365 + x14/(x12 - 1)*std::log(x12)
366 - x24/(x22 - 1)*std::log(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);
402 const double lx22 = std::log(x22);
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);
421 return 2*std::log(x22)/(-1 + x22);
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;
436 const double lx22 = std::log(x22);
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)*(
478 + x12/(x12 - 1)*std::log(x12)
479 - x22/(x22 - 1)*std::log(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;
509 return 6*( r2 + 3)* r2/(7*d2) + 6*( r2 - 5)* sqr( r2)*std::log( r2)/(7*d3);
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;
529 return 2*( r2 + 11)* r2/(9*d2) + 2*(5* r2 - 17)* sqr( r2)*std::log( r2)/(9*d3);
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;
549 return 2*(r4 + 9* r2 + 2)/(3*d2) + 2*(r4 - 7* r2 - 6)* r2*std::log( r2)/(3*d3);
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);
641 const double lr22 = std::log(r22);
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);
655 const double lr22 = std::log(r22);
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;
678 const double lr22 = std::log(r22);
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 = 1e-4;
691 const double eps_one = 1e-2;
725 const double r12 = sqr(r1);
726 const double r22 = sqr( r2);
729 = (1 + sqr(r1 + r2) - r12*r22)/((r12 - 1)*(r22 - 1))
730 + ( cube(r1)*(r12 + 1)*std::log(r12))/( sqr(r12 - 1)*(r1 - r2))
731 - ( cube( r2)*(r22 + 1)*std::log(r22))/((r1 - r2)* sqr(r22 - 1));
733 return 0.75 * result;
743 const double r22 = sqr( r2);
744 const double lr22 = std::log(r22);
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);
792 const double lr22 = std::log(r22);
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);
819 const double lr22 = std::log(r22);
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;
843 const double lr22 = std::log(r22);
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 = 1e-4;
891 const double r12 = sqr(r1);
892 const double r22 = sqr( r2);
895 = (r12 + r22 + r1* r2 - r12*r22)/((r12 - 1)*(r22 - 1))
896 + (pow5(r1)*std::log(r12))/( sqr(r12 - 1)*(r1 - r2))
897 - (pow5( r2)*std::log(r22))/((r1 - r2)* sqr(r22 - 1));
899 return 6./7. * result;
909 if (std::abs(r1) > std::abs( r2)) {
913 const double r22 = sqr( r2);
914 const double lr22 = std::log(r22);
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);
971 const double lr22 = std::log(r22);
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);
986 const double lr22 = std::log(r22);
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;
1013 const double lr22 = std::log(r22);
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 = 1e-4;
1028 const double eps_one = 2e-2;
1062 const double r12 = sqr(r1);
1063 const double r22 = sqr( r2);
1066 = (1 + r1* r2)/((r12 - 1)*(r22 - 1))
1067 + ( cube(r1)*std::log(r12))/( sqr(r12 - 1)*(r1 - r2))
1068 - ( cube( r2)*std::log(r22))/((r1 - r2)* sqr(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);
1151 const double lr22 = std::log(r22);
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);
1166 const double lr22 = std::log(r22);
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;
1191 const double lr22 = std::log(r22);
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 = 5e-5;
1204 const double eps_one = 1e-2;
1238 const double r12 = sqr(r1);
1239 const double r22 = sqr( r2);
1242 = (r1 + r2)/((r12 - 1)*(r22 - 1))
1243 + (quad(r1)*std::log(r12))/( sqr(r12 - 1)*(r1 - r2))
1244 - (quad( r2)*std::log(r22))/((r1 - r2)* sqr(r22 - 1));
1246 return 1.5 * result;
1251 const double eps = 10.*std::numeric_limits<double>::epsilon();
1257 if ( is_equal(std::abs(y), 1.0, eps)) {
1262 const double y2 = sqr(y);
1264 return y2*std::log(y2) / (1. - y2);
1272 const double eps = 10.*std::numeric_limits<double>::epsilon();
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);
1293 const double eps = 10.*std::numeric_limits<double>::epsilon();
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);
1307 const double ly = std::log(y2);
1309 return (-1. + 2*y2 + 2*y4)
1310 *(-z2 - y2*ly + ly*std::log(1. - y2) + Li2(y2))
1321 return (5 - 8*x + 3* sqr(x))/6.;
1324 return (2*(-1 + sqr(x)) - std::log( sqr(x))*(1 + sqr(x)))/ sqr(-1 + sqr(x));
1331 return (133 - 326*x - 138* cube(x) + 25*quad(x) + 306* sqr(x))/35.;
1334 return (-12*x*(3 - 3*quad(x) + std::log( sqr(x))*(1 + quad(x) + 4* sqr(x)))) /
1342 return (1541 - 2048*x - 256* cube(x) + 15*quad(x) + 1098* sqr(x))/630.;
1345 return (-2*(7 - 13*quad(x) + 6* sqr(x) + std::log( sqr(x))*(1 + 4*quad(x)
1353 return -0.3333333333333333 - (2* cube(-1 + x))/3. + (11*quad(-1 + x))/14.
1354 + (2* sqr(-1 + x))/5.;
1357 return (-2*(-3 + quad(x) + 2* sqr(x)) + std::log( sqr(x))*(2 + 6* sqr(x))) /
1365 return (3*(70 - 176*x - 80* cube(x) + 15*quad(x) + 171* sqr(x)))/70.;
1368 return (-3*(-1 + pow6(x) + 9*quad(x) - 9* sqr(x) - 6*std::log( sqr(x))*(quad(x)
1369 + sqr(x))))/quad(-1 + sqr(x));
1376 return (204 - 11*x + 87* cube(x) - 20*quad(x) - 120* sqr(x))/210.;
1379 return (x*(3 + 2*std::log( sqr(x)) + quad(x) - 4* sqr(x)))/ cube(-1 + sqr(x));
1386 return (-3*(-14 - 80*x - 51* cube(x) + 10*quad(x) + 100* sqr(x)))/35.;
1389 return (6*x*(2 + pow6(x) - 6*quad(x) + 3* sqr(x)
1390 + 6*std::log( sqr(x))* sqr(x)))/quad(-1 + sqr(x));
1397 return (3*(70 - 176*x - 80* cube(x) + 15*quad(x) + 171* sqr(x)))/70.;
1400 return (-3*(-1 + pow6(x) + 9*quad(x) - 9* sqr(x) - 6*std::log( sqr(x))*(quad(x)
1401 + sqr(x))))/quad(-1 + sqr(x));
1408 return (-3*(-14 - 80*x - 51* cube(x) + 10*quad(x) + 100* sqr(x)))/35.;
1411 return (6*x*(2 + pow6(x) - 6*quad(x) + 3* sqr(x)
1412 + 6*std::log( sqr(x))* sqr(x)))/quad(-1 + sqr(x));
1419 return (-2*(-71 - 315*x - 225* cube(x) + 45*quad(x) + 426* sqr(x)))/245.;
1422 return (12*x*(3 + pow6(x) - 11*quad(x) + 7* sqr(x)
1423 + 2*std::log( sqr(x))* sqr(x)*(5 + sqr(x))))/(7.*quad(-1 + sqr(x)));
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)
1434 + 2*std::log( sqr(x))* sqr(x)*(17 + sqr(x))))/(9.*quad(-1 + sqr(x)));
1441 return (-2*(386 - 1143*x - 495* cube(x) + 90*quad(x) + 1092* sqr(x)))/315.;
1444 return (4*x*(19 + pow6(x) - 19*quad(x) - sqr(x)
1445 + std::log( sqr(x))*(6 + 4*quad(x) + 26* sqr(x))))/(3.*quad(-1 + sqr(x)));
1452 return (-2*(1184 - 3099*x - 1323* cube(x) + 240*quad(x) + 2928* sqr(x)))/735.;
1455 return (4*x*(55 + pow6(x) - 55*quad(x) - sqr(x)
1456 + 2*std::log( sqr(x))*(9 + 8*quad(x) + 37* sqr(x))))/(7.*quad(-1 + sqr(x)));
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.;
1467 return (30* cube(y)*std::log( sqr(y))*(1 + sqr(y))*(6 + 2*x*(-4 + y) - 4*y +
1468 3* sqr(x) + sqr(y)) - (-1 + sqr(y))*(-12 + 71*y + 306* cube(y) +
1469 43*pow5(y) - 164*quad(y) + 3* sqr(x)*(-4 + 17*y + 42* cube(y) + pow5(y)
1470 + 12*quad(y) - 8* sqr(y)) - 64* sqr(y) + 2*x*(17 - 76*y - 176* cube(y) +
1471 12*pow5(y) - 11*quad(y) + 54* sqr(y))))/(40.*pow6(-1 + y)* sqr(1 + y));
1474 return (-6*std::log( sqr(x))* sqr(x)*(y*pow5(x) + 3* cube(x)*(-5 + sqr(y)) + 3*(3 -
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 +
1479 30* sqr(y)) + quad(x)*(75 - 76*y + 37* sqr(y))))/(8.* cube(1 +
1483 return (6*y*std::log( sqr(y))*(y + 9* cube(y) + 205*pow5(y) + 247*pow7(y) +
1484 18*pow9(y) - 2*x*(-1 + 203*pow6(y) + 12*pow8(y) + 245*quad(y) +
1485 21* sqr(y)) + 3*y* sqr(x)*(15 + 3*pow6(y) + 57*quad(y) + 85* sqr(y))) +
1486 (-1 + sqr(y))*(3* sqr(x)*(-3 - 92*pow6(y) + pow8(y) - 590*quad(y) -
1487 276* sqr(y)) + (-7 - 548*pow6(y) + 13*pow8(y) - 2022*quad(y) -
1488 316* sqr(y))* sqr(y) + 2*x*y*(-25 + 364*pow6(y) - 5*pow8(y) +
1489 1950*quad(y) + 596* sqr(y))))/(8.*y*pow6(-1 + sqr(y)));
1491 return (3*((-1 + sqr(x))*(-2*( cube(y) + cube(y)*quad(x) + 2*y* sqr(x)*(-2 +
1492 sqr(y)) - 3* cube(x)*(-1 + sqr(y)) - pow5(x)*(-1 + sqr(y)))*(-1 +
1494 std::log( sqr(x))* sqr(x)*(2*x - 3*y + 6* cube(x) + y*quad(x) -
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.;
1507 return (-6*std::log( sqr(y))* sqr(y)*(9 - 3*y - 15* cube(y) + 6*quad(y) + x*(-9 -
1508 5*y + pow5(y) - 3*quad(y) - 24* sqr(y)) + 23* sqr(y) + sqr(x)*(3 + 3*y
1509 + 3* cube(y) + 2*quad(y) + 9* sqr(y))) + (-1 + sqr(y))*(3 + y -
1510 74* cube(y) - 35*pow5(y) + 12*pow6(y) + 75*quad(y) + 4*x*(-1 - y -
1511 10* cube(y) + 5*pow5(y) - 19*quad(y) - 34* sqr(y)) + 138* sqr(y) +
1512 sqr(x)*(1 + 3*y + 30* cube(y) + 3*pow5(y) + 37*quad(y) +
1513 46* sqr(y))))/(8.* cube(1 + y)*pow6(-1 + y));
1516 return (30* cube(x)*std::log( sqr(x))*(1 + sqr(x))*(6 + 2*x*(-2 + y) - 8*y +
1517 sqr(x) + 3* sqr(y)) - (-1 + sqr(x))*(pow5(x)*(43 + 24*y + 3* sqr(y)) -
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));
1523 return ((-1 + sqr(y))*( sqr(x)*(-3 - 92*pow6(y) + pow8(y) - 590*quad(y) -
1524 276* sqr(y)) - 4*x*y*(7 - 68*pow6(y) + pow8(y) - 340*quad(y) -
1525 80* sqr(y)) + sqr(y)*(-35 - 276*pow6(y) + 9*pow8(y) - 662*quad(y) +
1526 4* sqr(y))) + 6*y*std::log( sqr(y))*(y*(2 + 101*pow6(y) + 9*pow8(y) +
1527 45*quad(y) + 3* sqr(y)) - x*(-1 + 146*pow6(y) + 9*pow8(y) +
1528 160*quad(y) + 6* sqr(y)) + y* sqr(x)*(15 + 3*pow6(y) + 57*quad(y) +
1529 85* sqr(y))))/(8.*y*pow6(-1 + sqr(y)));
1532 sqr(x))*(std::log( sqr(y))* sqr(y)*(-2*(y + 3* cube(y)) + 2*(y +
1534 quad(y) + 6* sqr(y))) + 2*(-1 + sqr(y))*(-4*x* sqr(y) + cube(y)*(3 +
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.;
1547 return (30*std::log( sqr(y))*pow5(y)*(6 + 2*x*(-4 + y) - 4*y + 3* sqr(x) + sqr(y))
1548 + (-1 + sqr(y))*(-14 + 32*y - 223* cube(y) - 19*pow5(y) + 82*quad(y) +
1549 52* sqr(y) + sqr(x)*(6 - 33*y - 63* cube(y) + 6*pow5(y) - 78*quad(y) +
1550 72* sqr(y)) - 2*x*(6 - 38*y - 108* cube(y) + 26*pow5(y) - 73*quad(y) +
1551 97* sqr(y))))/(35.*pow6(-1 + y)* sqr(1 + y));
1554 return (-6*std::log( sqr(x))*quad(x)*(y* cube(x) + 5*(3 - 3*y + sqr(y)) + 3*x*(-3
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
1558 + 19* sqr(y)) + quad(x)*(56 - 75*y + 34* sqr(y))))/(7.* cube(1 +
1562 return (6*y*std::log( sqr(y))*(3* sqr(x)*(5 + 2*pow6(y) + 33*quad(y) + 40* sqr(y))
1563 + sqr(y)*(5 + 12*pow6(y) + 141*quad(y) + 82* sqr(y)) - 2*x*y*(5 +
1564 8*pow6(y) + 117*quad(y) + 110* sqr(y))) + (-1 +
1565 sqr(y))*(3*y* sqr(x)*(-107 + pow6(y) - 61*quad(y) - 313* sqr(y)) +
1566 y*(-6 - 375*pow6(y) + 13*pow8(y) - 975*quad(y) - 97* sqr(y)) + x*(-12
1567 + 486*pow6(y) - 10*pow8(y) + 2022*quad(y) + 394* sqr(y))))/(7.*pow6(-1
1570 return (6*((-1 + sqr(x))*(-((-1 + sqr(y))*( cube(y) + y* sqr(x)*(-3 + sqr(y))
1571 - 2* cube(x)*(-1 + sqr(y)) - 2*pow5(x)*(-1 + sqr(y)) + y*quad(x)*(-1 +
1572 2* sqr(y)))) + std::log( sqr(y))*pow5(y)* sqr(-1 + sqr(x))) -
1573 std::log( sqr(x))*quad(x)*(4*x - 5*y + y* sqr(x))* sqr(-1 +
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.;
1585 return (-6*std::log( sqr(y))*quad(y)*(15 - 9*y + x*(-15 - 3*y + cube(y) -
1586 3* sqr(y)) + 4* sqr(y) + sqr(x)*(5 + 3*y + 2* sqr(y))) + (-1 +
1587 sqr(y))*(-1 - 9*y - 9* cube(y) - 36*pow5(y) + 12*pow6(y) + 56*quad(y)
1588 + x*(-3 + 17*y - 46* cube(y) + 17*pow5(y) - 75*quad(y) - 30* sqr(y)) +
1589 47* sqr(y) + sqr(x)*(1 - 5*y + 19* cube(y) + 4*pow5(y) + 34*quad(y) +
1590 7* sqr(y))))/(7.* cube(1 + y)*pow6(-1 + y));
1593 return (30*std::log( sqr(x))*pow5(x)*(6 + 2*x*(-2 + y) - 8*y + sqr(x) + 3* sqr(y))
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 +
1597 36* sqr(y))))/(35.*pow6(-1 + x)* sqr(1 + x));
1600 return (6*std::log( sqr(y))*( cube(y)*(5 + 6*pow6(y) + 57*quad(y) + 12* sqr(y)) +
1601 y* sqr(x)*(5 + 2*pow6(y) + 33*quad(y) + 40* sqr(y)) - 2*x*quad(y)*(35 +
1602 3*quad(y) + 42* sqr(y))) + (-1 + sqr(y))*(y* sqr(x)*(-107 + pow6(y) -
1603 61*quad(y) - 313* sqr(y)) + y*(-12 - 193*pow6(y) + 9*pow8(y) -
1604 277*quad(y) - 7* sqr(y)) + x*(-6 + 182*pow6(y) - 4*pow8(y) +
1605 698*quad(y) + 90* sqr(y))))/(7.*pow6(-1 + sqr(y)));
1607 return (6*( cube(-1 + sqr(y))*std::log( sqr(x))*pow5(x) - (-1 +
1608 sqr(x))*(std::log( sqr(y))*quad(y)*(-1 + sqr(x))*(4*y + x*(-5 + sqr(y))) +
1609 (-1 + sqr(y))*(2*( cube(y) + pow5(y)) - 2*( cube(y) + pow5(y))* sqr(x) -
1610 x* sqr(y)*(3 + sqr(y)) + cube(x)*(1 + 2*quad(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.;
1622 return (30* cube(y)*std::log( sqr(y))*(6 + 2*x*(-4 + y) - 4*y + 3* sqr(x) + sqr(y))
1623 - (-1 + sqr(y))*(-26 + 103*y + 83* cube(y) + 24*pow5(y) - 82*quad(y) -
1624 12* sqr(y) + 3* sqr(x)*(-2 + 6*y + 21* cube(y) + 3*pow5(y) - 14*quad(y)
1625 + 16* sqr(y)) - 2*x*(-11 + 38*y + 68* cube(y) + 14*pow5(y) - 62*quad(y)
1626 + 43* sqr(y))))/(5.*pow6(-1 + y)* sqr(1 + y));
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)) +
1631 quad(x)*(-19 + y - 3* sqr(y)) + pow5(x)*(-1 - 3*y + sqr(y))) +
1632 6*std::log( sqr(x))* sqr(x)*(3*(-2 + y)* cube(x) + 2*quad(x) + 3*(3 - 3*y +
1633 sqr(y)) + x*(-3 - 5*y + 3* sqr(y)) + sqr(x)*(8 - 9*y +
1634 4* sqr(y))))/( cube(1 + x)*pow6(-1 + x)));
1637 return (6*y*std::log( sqr(y))*(y + 4* cube(y) + 123*pow5(y) + 106*pow7(y) +
1638 6*pow9(y) - 2*x*(-1 + 86*pow6(y) + 4*pow8(y) + 135*quad(y) +
1639 16* sqr(y)) + 3*y* sqr(x)*(10 + pow6(y) + 24*quad(y) + 45* sqr(y))) -
1640 (-1 + sqr(y))*(1047*pow6(y) + 173*pow8(y) + 219*quad(y) + sqr(y) -
1641 2*x*y*(-19 + 121*pow6(y) + 939*quad(y) + 399* sqr(y)) + sqr(x)*(9 +
1642 93*pow6(y) + 831*quad(y) + 507* sqr(y))))/(y*pow6(-1 + sqr(y)));
1644 return (6*((-1 + sqr(x))*(-((-1 + sqr(y))*( cube(y) + y*quad(x) -
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.;
1659 return -((6*std::log( sqr(y))* sqr(y)*(9 - 3*y - 6* cube(y) + 2*quad(y) + x*(-9 -
1661 + (-1 + sqr(y))*(-4 - 10*y + 65* cube(y) - pow5(y) - 19*quad(y) +
1662 y* sqr(x)*(-8 - 39*y - 3* cube(y) + quad(y) - 11* sqr(y)) - 91* sqr(y) +
1663 x*(1 + 21*y - 6* cube(y) - 3*pow5(y) + quad(y) + 106* sqr(y))))/( cube(1
1664 + y)*pow6(-1 + y)));
1667 return (30* cube(x)*std::log( sqr(x))*(6 + 2*x*(-2 + y) - 8*y + sqr(x) + 3* sqr(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 +
1671 63* sqr(y))))/(5.*pow6(-1 + x)* sqr(1 + x));
1674 return (6*y*std::log( sqr(y))*(y*(2 + 44*pow6(y) + 3*pow8(y) + 33*quad(y) -
1675 2* sqr(y)) - x*(-1 + 62*pow6(y) + 3*pow8(y) + 90*quad(y) + 6* sqr(y)) +
1676 y* sqr(x)*(10 + pow6(y) + 24*quad(y) + 45* sqr(y))) - (-1 +
1677 sqr(y))*((23 + 83*pow6(y) + 385*quad(y) - 11* sqr(y))* sqr(y) -
1678 2*x*y*(-11 + 45*pow6(y) + 331*quad(y) + 115* sqr(y)) + sqr(x)*(3 +
1679 31*pow6(y) + 277*quad(y) + 169* sqr(y))))/(y*pow6(-1 + sqr(y)));
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 +
1697 67*y - 43* cube(y) + 6*pow5(y) + 2*quad(y) - 108* sqr(y)) +
1698 3* sqr(x)*(-3 + 14*y - 16* cube(y) + 2*pow5(y) - 6*quad(y) - 21* sqr(y))
1699 - 223* sqr(y))*(-1 + sqr(y)) + 30*std::log( sqr(y))*quad(y)*(6 + 2*x*(-4 +
1700 y) - 4*y + 3* sqr(x) + sqr(y)))/(20.*pow6(-1 + y)* sqr(1 + y));
1703 return (-6* cube(x)*std::log( sqr(x))*((-3 + 2*y)* cube(x) + quad(x) + 4*(3 - 3*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 +
1711 return (6*std::log( sqr(y))*(153*pow6(y) + 52*pow8(y) + 34*quad(y) + sqr(y) +
1712 3* sqr(x)*(1 + 10*pow6(y) + 45*quad(y) + 24* sqr(y)) - 2*x*y*(-1 +
1713 38*pow6(y) + 147*quad(y) + 56* sqr(y))) - (-1 + sqr(y))*(6 +
1714 771*pow6(y) + 23*pow8(y) + 651*quad(y) - 11* sqr(y) - 2*x*y*(17 +
1715 13*pow6(y) + 615*quad(y) + 795* sqr(y)) + sqr(x)*(93 + 9*pow6(y) +
1716 507*quad(y) + 831* sqr(y))))/(4.*pow6(-1 + sqr(y)));
1718 return (-3*(-((-1 + sqr(x))*(-((-1 + sqr(y))*( sqr(x)*(1 - 3* sqr(y)) +
1719 quad(x)*(3 - 2* sqr(y)) + 2*x*y*(-1 + sqr(y)) + 2*y* cube(x)*(-1 +
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.;
1733 return (-6* cube(y)*std::log( sqr(y))*(12 - 6*y - 3* cube(y) + quad(y) + 2*x*(-6 -
1735 (-1 + sqr(y))*(-6 + 26*y + 71* cube(y) + 17*pow5(y) - 51*quad(y) +
1736 2*x*(2 - 7*y - 49* cube(y) + 2*pow5(y) + 5*quad(y) - 13* sqr(y)) +
1737 3* sqr(y) + sqr(x)*(-1 + 3*y + 39* cube(y) + 8*quad(y) +
1738 11* sqr(y))))/(4.* cube(1 + y)*pow6(-1 + y));
1741 return (30*std::log( sqr(x))*quad(x)*(6 + 2*x*(-2 + y) - 8*y + sqr(x) + 3* sqr(y))
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 +
1745 21* sqr(y))))/(20.*pow6(-1 + x)* sqr(1 + x));
1748 return (6*std::log( sqr(y))*( sqr(y)*(3 + 24*pow6(y) + 51*quad(y) + 2* sqr(y)) -
1749 2*x*y*(-1 + 14*pow6(y) + 51*quad(y) + 16* sqr(y)) + sqr(x)*(1 +
1750 10*pow6(y) + 45*quad(y) + 24* sqr(y))) - (-1 + sqr(y))*(6 +
1751 325*pow6(y) + 13*pow8(y) + 133*quad(y) + 3* sqr(y) - 2*x*y*(-7 +
1752 5*pow6(y) + 223*quad(y) + 259* sqr(y)) + sqr(x)*(31 + 3*pow6(y) +
1753 169*quad(y) + 277* sqr(y))))/(4.*pow6(-1 + sqr(y)));
1755 return (-3*(-( cube(-1 + sqr(y))*std::log( sqr(x))*quad(x)) + (-1 + sqr(x))*((-1 +
1757 sqr(x)*(1 - 2*quad(y) - 3* sqr(y)) + sqr(y)) +
1766 return -1.3333333333333333 + x + 2* cube(-1 + x) - (31*quad(-1 + x))/14.
1767 - (8* sqr(-1 + x))/5.;
1770 return (2 - 6*quad(x) + 4* sqr(x) + 2*std::log( sqr(x))* sqr(x)*(3 +
1778 return (-381 + 832*x + 320* cube(x) - 55*quad(x) - 744* sqr(x))/35.;
1781 return (12*(5 - 11*pow6(x) - 21*quad(x) + 27* sqr(x) + std::log( sqr(x))*(1 +
1782 3*pow6(x) + 25*quad(x) + 19* sqr(x))))/pow5(-1 + sqr(x));
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) +
1793 2*std::log( sqr(x))* sqr(x)*(9 + 2*quad(x) + 19* sqr(x))))/(3.*x*quad(-1 +
1801 return (-2*(174 - 529*x - 335* cube(x) + 70*quad(x) + 620* sqr(x)))/35.;
1804 return (4*(-1 + pow6(x) + 9*quad(x) - 9* sqr(x) - 6*std::log( sqr(x))*(quad(x) +
1805 sqr(x))))/(x*quad(-1 + sqr(x)));
1812 return (-334 + 793*x + 370* cube(x) - 70*quad(x) - 780* sqr(x))/35.;
1815 return (6*x*(-19 + pow6(x) + 27*quad(x) - 9* sqr(x) - 6*std::log( sqr(x))*(1 +
1816 2*quad(x) + 5* sqr(x))))/pow5(-1 + sqr(x));
1823 return (109 - 720*x - 560* cube(x) + 120*quad(x) + 981* sqr(x))/210.;
1826 return (-7 - pow6(x) + 7*quad(x) + sqr(x) - 2*std::log( sqr(x))*(1 +
1827 5* sqr(x)))/quad(-1 + sqr(x));
1834 return 10 - (208*x)/7. - 16* cube(x) + (22*quad(x))/7. + (1119* sqr(x))/35.;
1837 return (-6*(2 + pow8(x) - 11*pow6(x) - 27*quad(x) + 35* sqr(x) +
1838 6*std::log( sqr(x))* sqr(x)*(3 + 5* sqr(x))))/pow5(-1 + sqr(x));
1844double I0y( double y) noexcept {
1845 if (is_close(y, 1, 10*std::numeric_limits<double>::epsilon())) {
1846 const double d = y - 1;
1847 return 1 + d*(-0.5 + d/3);
1850 return std::log(y)/(y - 1);
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);
1859 const double yly = y*std::log(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;
1870 if (is_close(y, 1, eps_eq)) {
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;
1884 const double ly = std::log(y);
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;
1895 if ( is_zero(y, 10*std::numeric_limits<double>::epsilon())) {
1899 if ( is_zero(x, 10*std::numeric_limits<double>::epsilon())) {
1903 if (is_close(x/y, 1, eps_eq)) {
1907 if (is_close(x, 1, eps_eq)) {
1911 if (is_close(y, 1, eps_eq)) {
1915 const double lx = std::log(x);
1916 const double ly = std::log(y);
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 {
1925 if ( is_zero(z, 10*std::numeric_limits<double>::epsilon())) {
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));
1965 return (- sqr(std::log(u))
1966 + 2* sqr(std::log(0.5*(1 - lambda)))
1967 - 4* Li2(0.5*(1 - lambda))
1971 return (- std::log(u)*std::log(v)
1972 + 2*std::log(0.5*(1 - lambda + u - v))*std::log(0.5*(1 - lambda - u + v))
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
2099 const double eps = 10.*std::numeric_limits<double>::epsilon();
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
2181 const double eps = 10.*std::numeric_limits<double>::epsilon();
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);
2197 return (- 2*std::log(Q2/m12)
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.
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 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
float Li2(float x) noexcept Real dilogarithm .
double Cl2(double x) noexcept Clausen function .
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 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
|