32 for (
int i = 1; i <= n; ++i) {
33 const double s_n = 2. * Pi * v;
34 const double v_n = s / i;
41 double Wm1(
double a) {
52 const std::complex<double> ca(a, 0.);
53 const std::complex<double> l1 =
Log(ca);
54 const std::complex<double> l2 =
Log(l1);
55 const std::complex<double> sum = l1 - l2
57 + 0.5 * l2 * (-2. + l2) / std::pow(l1, 2)
58 + l2 * (6. - 9. * l2 + 2. * std::pow(l2, 2)) / (6. * std::pow(l1, 3))
59 + l2 * (-12. + 36. * l2 - 22. * std::pow(l2, 2) + 3. * std::pow(l2, 2)) / (12. * std::pow(l1, 4));
66 return Sqrt(6. * (a - 1.));
69 return -
Wm1(-0.5 / a);
84 return 2. * a + 3. * std::pow(a, 3) / 10. + 321. * std::pow(a, 5) / 2800. + 3197. * std::pow(a, 7) / 56000. +
85 445617. * std::pow(a, 9) / 13798400. + 1766784699. * std::pow(a, 11) / 89689600000. +
86 317184685563. * std::pow(a, 13) / 25113088000000. +
87 14328608561991. * std::pow(a, 15) / 1707689984000000. +
88 6670995251837391. * std::pow(a, 17) / 1165411287040000000. +
89 910588298588385889. * std::pow(a, 19) / 228420612259840000000.;
102 const double arg = - 2. / 3. * std::pow(2. / Pi, 1. / 3.)
103 / std::pow(1. + 2. * a, 2. / 3.);
104 return -1.5 *
Wm1(arg);
double approx_root_neg_4(double a)
double approx_root_pos_4(double a)
double area_n_sphere(int n)
Numerical functions for one-dimensional shooting method and area of -sphere.