52 const double y = r - 1.0;
55 }
else if (std::abs(y) < 0.23) {
57 return (1.0000000000000000000 -
58 0.4000000000000000000 * y +
59 0.2000000000000000000 * y * y -
60 0.11428571428571428571 * y * y * y +
61 0.07142857142857142857 * y * y * y * y -
62 0.04761904761904761905 * y * y * y * y * y +
63 0.03333333333333333333 * y * y * y * y * y * y -
64 0.02424242424242424242 * y * y * y * y * y * y * y +
65 0.0181818181818181818 * y * y * y * y * y * y * y * y -
66 0.01398601398601398601 * y * y * y * y * y * y * y * y * y +
67 0.01098901098901098901 * y * y * y * y * y * y * y * y * y * y -
68 0.0087912087912087912 * y * y * y * y * y * y * y * y * y * y * y +
69 0.00714285714285714286 * y * y * y * y * y * y * y * y * y * y * y * y -
70 0.0058823529411764706 * y * y * y * y * y * y * y * y * y * y * y * y * y +
71 0.0049019607843137255 * y * y * y * y * y * y * y * y * y * y * y * y * y * y -
72 0.0041279669762641899 * y * y * y * y * y * y * y * y * y * y * y * y * y * y * y);
75 (1.0 - 6.0 * r + 3.0 * r * r + 2.0 * r * r * r -
76 6.0 * r * r * std::log(r)) /
84 const double y = r - 1.0;
87 }
else if (std::isinf(r)) {
89 }
else if (std::abs(y) < 0.185) {
91 return (1.0000000000000000000 -
92 0.50000000000000000000 * y +
93 0.30000000000000000000 * y * y -
94 0.2000000000000000000 * y * y * y +
95 0.14285714285714285714 * y * y * y * y -
96 0.10714285714285714286 * y * y * y * y * y +
97 0.08333333333333333333 * y * y * y * y * y * y -
98 0.06666666666666666667 * y * y * y * y * y * y * y +
99 0.05454545454545454545 * y * y * y * y * y * y * y * y -
100 0.0454545454545454545 * y * y * y * y * y * y * y * y * y +
101 0.0384615384615384615 * y * y * y * y * y * y * y * y * y * y -
102 0.03296703296703296703 * y * y * y * y * y * y * y * y * y * y * y +
103 0.0285714285714285714 * y * y * y * y * y * y * y * y * y * y * y * y -
104 0.02500000000000000000 * y * y * y * y * y * y * y * y * y * y * y * y * y +
105 0.0220588235294117647 * y * y * y * y * y * y * y * y * y * y * y * y * y * y -
106 0.0196078431372549020 * y * y * y * y * y * y * y * y * y * y * y * y * y * y * y);
108 return 3. * (1.0 - r * r + 2.0 * r * std::log(r)) /
Power3(1.0 - r);
129 const double y = r - 1.0;
132 }
else if (std::abs(y) < 0.21) {
134 return (1.0000000000000000000 -
135 0.60000000000000000000 * y +
136 0.40000000000000000000 * y * y -
137 0.28571428571428571429 * y * y * y +
138 0.21428571428571428571 * y * y * y * y -
139 0.16666666666666666667 * y * y * y * y * y +
140 0.13333333333333333333 * y * y * y * y * y * y -
141 0.10909090909090909091 * y * y * y * y * y * y * y +
142 0.090909090909090909091 * y * y * y * y * y * y * y * y -
143 0.076923076923076923077 * y * y * y * y * y * y * y * y * y +
144 0.065934065934065934066 * y * y * y * y * y * y * y * y * y * y -
145 0.057142857142857142857 * y * y * y * y * y * y * y * y * y * y * y +
146 0.050000000000000000000 * y * y * y * y * y * y * y * y * y * y * y * y -
147 0.044117647058823529412 * y * y * y * y * y * y * y * y * y * y * y * y * y +
148 0.039215686274509803922 * y * y * y * y * y * y * y * y * y * y * y * y * y * y -
149 0.035087719298245614035 * y * y * y * y * y * y * y * y * y * y * y * y * y * y * y);
152 (2.0 + 3.0 * r - 6.0 * r * r + r * r * r + 6.0 * r * std::log(r)) /
160 const double y = r - 1.0;
161 if (std::abs(y) < 0.155) {
166 0.50000000000000000000 * y * y * y +
167 0.4285714285714285714 * y * y * y * y -
168 0.37500000000000000000 * y * y * y * y * y +
169 0.33333333333333333333 * y * y * y * y * y * y -
170 0.3000000000000000000 * y * y * y * y * y * y * y +
171 0.2727272727272727273 * y * y * y * y * y * y * y * y -
172 0.2500000000000000000 * y * y * y * y * y * y * y * y * y +
173 0.23076923076923076923 * y * y * y * y * y * y * y * y * y * y -
174 0.21428571428571428571 * y * y * y * y * y * y * y * y * y * y * y +
175 0.2000000000000000000 * y * y * y * y * y * y * y * y * y * y * y * y -
176 0.1875000000000000000 * y * y * y * y * y * y * y * y * y * y * y * y * y +
177 0.1764705882352941176 * y * y * y * y * y * y * y * y * y * y * y * y * y * y -
178 0.16666666666666666667 * y * y * y * y * y * y * y * y * y * y * y * y * y * y * y);
180 return 3. / 2. * (-3.0 + 4.0 * r - r * r - 2.0 * std::log(r)) /