@@ -167,5 +167,30 @@ TEST_CASE("test_real_fixed_values")
167167 CHECK_CLOSE (cl128_li4 , cl128_expected, 2 *eps128);
168168 CHECK_CLOSE (cl128_poly , cl128_expected, 2 *eps128);
169169 CHECK_CLOSE (cl128_poly_c, cl128_expected, 2 *eps128);
170+
171+ // test symmetries
172+ if (std::abs (std::fmod (x64, 2 *M_PI)) > 0.1 && std::abs (x64 - 2 *M_PI) > 0.1 ) {
173+ CHECK_CLOSE ( polylogarithm::Cl4 (x64 + 2 *M_PI), cl64_expected , 10 *eps64);
174+ CHECK_CLOSE ( polylogarithm::Cl4 (x64 - 2 *M_PI), cl64_expected , 10 *eps64);
175+ CHECK_CLOSE ( polylogarithm::Cl4 (-x64 ), -cl64_expected , 10 *eps64);
176+ CHECK_CLOSE ( polylogarithm::Cl4 (-x64 ), -cl64_expected , 10 *eps64);
177+
178+ CHECK_CLOSE ( cl4 (x64 + 2 *M_PI), cl64_expected , 10 *eps64);
179+ CHECK_CLOSE ( cl4 (x64 - 2 *M_PI), cl64_expected , 10 *eps64);
180+ CHECK_CLOSE ( cl4 (-x64 ), -cl64_expected , 10 *eps64);
181+ CHECK_CLOSE ( cl4 (-x64 ), -cl64_expected , 10 *eps64);
182+
183+ #ifdef ENABLE_FORTRAN
184+ CHECK_CLOSE ( poly_Cl4_fortran (x64 + 2 *M_PI), cl64_expected , 10 *eps64);
185+ CHECK_CLOSE ( poly_Cl4_fortran (x64 - 2 *M_PI), cl64_expected , 10 *eps64);
186+ CHECK_CLOSE ( poly_Cl4_fortran (-x64 ), -cl64_expected , 10 *eps64);
187+ CHECK_CLOSE ( poly_Cl4_fortran (-x64 ), -cl64_expected , 10 *eps64);
188+ #endif
189+
190+ CHECK_CLOSE (polylogarithm::Cl4 (x128 + 2 *M_PIL), cl128_expected, 10 *eps128);
191+ CHECK_CLOSE (polylogarithm::Cl4 (x128 - 2 *M_PIL), cl128_expected, 10 *eps128);
192+ CHECK_CLOSE (polylogarithm::Cl4 (-x128 ), -cl128_expected, 10 *eps128);
193+ CHECK_CLOSE (polylogarithm::Cl4 (-x128 ), -cl128_expected, 10 *eps128);
194+ }
170195 }
171196}
0 commit comments