14
14
#include < random>
15
15
#include < vector>
16
16
17
- #ifndef M_PI
18
- #define M_PI 3.1415926535897932
19
- #endif
20
-
21
17
#ifdef ENABLE_GSL
22
18
23
19
#include < gsl/gsl_sf_dilog.h>
@@ -36,22 +32,7 @@ std::complex<double> gsl_Li2(std::complex<double> z) {
36
32
37
33
#endif
38
34
39
- #define CHECK_CLOSE (a,b,eps ) CHECK((a) == doctest::Approx(b).epsilon(eps))
40
- #define CHECK_CLOSE_COMPLEX (a,b,eps ) do { \
41
- CHECK_CLOSE (std::real (a), std::real (b), (eps)); \
42
- CHECK_CLOSE (std::imag (a), std::imag (b), (eps)); \
43
- } while (0 )
44
- #define CHECK_SMALL (a,eps ) CHECK(std::abs(a) < (eps))
45
-
46
35
const std::complex<double > omega (0.5 , std::sqrt(3 .)/2.);
47
- const std::complex<double > zero (0 .,0 .);
48
-
49
- template <class T > T sqr (T x) { return x*x; }
50
-
51
- bool is_unity (std::complex<long double > z, long double eps)
52
- {
53
- return std::abs (std::real (z) - 1 .0L ) <= eps && std::imag (z) == 0 .0L ;
54
- }
55
36
56
37
// / special values to be checked
57
38
const std::vector<std::complex<double >> special_values = {
@@ -81,12 +62,6 @@ std::complex<double> clog(std::complex<double> z) {
81
62
return std::log (zf);
82
63
}
83
64
84
- template <typename T, typename U>
85
- std::complex<T> to (std::complex<U> z)
86
- {
87
- return std::complex<T>(static_cast <T>(std::real (z)), static_cast <T>(std::imag (z)));
88
- }
89
-
90
65
std::complex<double > hdecay_Li2 (std::complex<double > z) {
91
66
double li2_re{}, li2_im{};
92
67
hdecay_dilog (std::real (z), std::imag (z), &li2_re, &li2_im);
@@ -180,7 +155,7 @@ const auto Relation_2 = [](std::complex<double> z) {
180
155
using polylogarithm::Li2;
181
156
182
157
if (std::abs (z) < 1e-10 || std::real (z) < 0 .) {
183
- return zero ;
158
+ return std::complex< double >( 0.0 , 0.0 ) ;
184
159
}
185
160
186
161
return Li2 (1 .-z) + Li2 (1 .-1 ./z) + clog (z)*clog (z)/2 .;
@@ -190,7 +165,7 @@ const auto Relation_3 = [](std::complex<double> z) {
190
165
using polylogarithm::Li2;
191
166
192
167
if (std::abs (z) < 1e-10 || std::abs (std::real (z) - 1 .) < 1e-10 ) {
193
- return zero ;
168
+ return std::complex< double >( 0.0 , 0.0 ) ;
194
169
}
195
170
196
171
return Li2 (z) + Li2 (1 .-z)
@@ -202,7 +177,7 @@ const auto Relation_4 = [](std::complex<double> z) {
202
177
203
178
if (std::abs (z) < 1e-10 || std::abs (std::real (z) + 1 .) < 1e-10
204
179
|| std::real (z) < 0 . || std::imag (z) < 0 .) {
205
- return zero ;
180
+ return std::complex< double >( 0.0 , 0.0 ) ;
206
181
}
207
182
208
183
return Li2 (-z) - Li2 (1 .-z) + Li2 (1 .-z*z)/2 .
@@ -214,7 +189,7 @@ const auto Relation_5 = [](std::complex<double> z) {
214
189
215
190
if (std::abs (z) < 1e-10
216
191
|| (std::real (z) > 0 . && std::real (z) < 1 .)) {
217
- return zero ;
192
+ return std::complex< double >( 0.0 , 0.0 ) ;
218
193
}
219
194
220
195
return Li2 (z) + Li2 (1 ./z)
0 commit comments