JohnCremona / eclib

The eclib package includes mwrank (for 2-descent on elliptic curves over Q) and modular symbol code used to create the elliptic curve database.
GNU General Public License v2.0
21 stars 15 forks source link

Fix log(CC) with libc++ >=16 #74

Closed isuruf closed 1 year ago

isuruf commented 1 year ago

libc++ 16 changed the definition of log(complex x) from

  complex<T>(log(abs(x)), arg(x));

to

  complex<T>(std::log(std::abs(x)), std::arg(x));

which means argument dependent lookup (ADL) does not work anymore. Defining CC = std::complex is undefined behaviour anyway according to the C++ standard. So, the change in libc++ is technically not a backwards incompatible change.

isuruf commented 1 year ago

This needs more patching

JohnCremona commented 1 year ago

Thanks, I ll take a look

isuruf commented 1 year ago
2023-04-19T05:34:59.3365900Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3370830Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3371790Z In file included from ./eclib/interface.h:37:
2023-04-19T05:34:59.3373070Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/iostream:43:
2023-04-19T05:34:59.3374250Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/ios:221:
2023-04-19T05:34:59.3375370Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/__locale:18:
2023-04-19T05:34:59.3382320Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/mutex:191:
2023-04-19T05:34:59.3383940Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/__memory/shared_ptr.h:42:
2023-04-19T05:34:59.3385110Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/atomic:2668:
2023-04-19T05:34:59.3386310Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:607:12: error: no matching function for call to 'isinf'
2023-04-19T05:34:59.3387290Z     return std::isinf(__lcpp_x);
2023-04-19T05:34:59.3388730Z            ^~~~~~~~~~
2023-04-19T05:34:59.3389940Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:598:29: note: in instantiation of function template specialization 'std::__constexpr_isinf<NTL::RR>' requested here
2023-04-19T05:34:59.3390960Z         bool __z_inf = std::__constexpr_isinf(__a) || std::__constexpr_isinf(__b);
2023-04-19T05:34:59.3391780Z                             ^
2023-04-19T05:34:59.3392840Z compproc.cc:53:19: note: in instantiation of function template specialization 'std::operator*<NTL::RR>' requested here
2023-04-19T05:34:59.3393740Z       y= sqrt(oldx*y);
2023-04-19T05:34:59.3394510Z                   ^
2023-04-19T05:34:59.3395660Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:429:87: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3396670Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isinf(float __x) _NOEXCEPT {
2023-04-19T05:34:59.3397510Z                                                                                       ^
2023-04-19T05:34:59.3398670Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:433:114: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3399690Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD bool isinf(double __x) _NOEXCEPT {
2023-04-19T05:34:59.3400550Z                                                                                                                  ^
2023-04-19T05:34:59.3401720Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:437:87: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3402730Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isinf(long double __x) _NOEXCEPT {
2023-04-19T05:34:59.3403570Z                                                                                       ^
2023-04-19T05:34:59.3404810Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:417:80: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR]
2023-04-19T05:34:59.3405860Z _LIBCPP_NODISCARD_EXT _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isinf(_A1 __x) _NOEXCEPT {
2023-04-19T05:34:59.3406820Z                                                                                ^
2023-04-19T05:34:59.3408500Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:424:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR]
2023-04-19T05:34:59.3409510Z     isinf(_A1) _NOEXCEPT {
2023-04-19T05:34:59.3410270Z     ^
2023-04-19T05:34:59.3411200Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3412030Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3412840Z In file included from ./eclib/interface.h:37:
2023-04-19T05:34:59.3413920Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/iostream:43:
2023-04-19T05:34:59.3415040Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/ios:221:
2023-04-19T05:34:59.3416150Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/__locale:18:
2023-04-19T05:34:59.3417290Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/mutex:191:
2023-04-19T05:34:59.3418440Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/__memory/shared_ptr.h:42:
2023-04-19T05:34:59.3419560Z In file included from /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/atomic:2668:
2023-04-19T05:34:59.3421050Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:587:12: error: no matching function for call to 'isnan'
2023-04-19T05:34:59.3421970Z     return std::isnan(__lcpp_x);
2023-04-19T05:34:59.3422750Z            ^~~~~~~~~~
2023-04-19T05:34:59.3423930Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:601:19: note: in instantiation of function template specialization 'std::__constexpr_isnan<NTL::RR>' requested here
2023-04-19T05:34:59.3425060Z             (std::__constexpr_isnan(__a) && std::__constexpr_isnan(__b))
2023-04-19T05:34:59.3425870Z                   ^
2023-04-19T05:34:59.3426920Z compproc.cc:53:19: note: in instantiation of function template specialization 'std::operator*<NTL::RR>' requested here
2023-04-19T05:34:59.3427800Z       y= sqrt(oldx*y);
2023-04-19T05:34:59.3428590Z                   ^
2023-04-19T05:34:59.3429740Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:455:87: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3430720Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnan(float __x) _NOEXCEPT {
2023-04-19T05:34:59.3431570Z                                                                                       ^
2023-04-19T05:34:59.3432730Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:459:114: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3433840Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD bool isnan(double __x) _NOEXCEPT {
2023-04-19T05:34:59.3434730Z                                                                                                                  ^
2023-04-19T05:34:59.3435900Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:463:87: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3436930Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnan(long double __x) _NOEXCEPT {
2023-04-19T05:34:59.3437870Z                                                                                       ^
2023-04-19T05:34:59.3442630Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:445:80: note: candidate template ignored: requirement 'std::is_floating_point<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR]
2023-04-19T05:34:59.3447890Z _LIBCPP_NODISCARD_EXT _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnan(_A1 __x) _NOEXCEPT {
2023-04-19T05:34:59.3448860Z                                                                                ^
2023-04-19T05:34:59.3453440Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:450:80: note: candidate template ignored: requirement 'std::is_integral<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR]
2023-04-19T05:34:59.3458200Z _LIBCPP_NODISCARD_EXT _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnan(_A1) _NOEXCEPT {
2023-04-19T05:34:59.3459060Z                                                                                ^
2023-04-19T05:34:59.3460040Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3465880Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3474320Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3478920Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3483950Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:637:19: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3485610Z             __a = std::__constexpr_copysign(std::__constexpr_isinf(__a) ? _Tp(1) : _Tp(0), __a);
2023-04-19T05:34:59.3486670Z                   ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3487960Z compproc.cc:53:19: note: in instantiation of function template specialization 'std::operator*<NTL::RR>' requested here
2023-04-19T05:34:59.3492980Z       y= sqrt(oldx*y);
2023-04-19T05:34:59.3497840Z                   ^
2023-04-19T05:34:59.3502920Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3508260Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3509420Z                                                      ^
2023-04-19T05:34:59.3510820Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3512040Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3513080Z                                                       ^
2023-04-19T05:34:59.3514500Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3515690Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3516700Z ^
2023-04-19T05:34:59.3518160Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3519380Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3520380Z     ^
2023-04-19T05:34:59.3521400Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3522410Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3523470Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3524510Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3525830Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:638:19: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3527030Z             __b = std::__constexpr_copysign(std::__constexpr_isinf(__b) ? _Tp(1) : _Tp(0), __b);
2023-04-19T05:34:59.3528610Z                   ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3529980Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3531200Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3536430Z                                                      ^
2023-04-19T05:34:59.3537810Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3542940Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3547910Z                                                       ^
2023-04-19T05:34:59.3549350Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3550560Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3551600Z ^
2023-04-19T05:34:59.3556800Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3558410Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3559420Z     ^
2023-04-19T05:34:59.3560410Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3561460Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3562480Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3563520Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3564880Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:640:23: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3566120Z                 __c = std::__constexpr_copysign(_Tp(0), __c);
2023-04-19T05:34:59.3567160Z                       ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3568570Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3569850Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3570900Z                                                      ^
2023-04-19T05:34:59.3572260Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3573470Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3574520Z                                                       ^
2023-04-19T05:34:59.3575910Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3577090Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3578110Z ^
2023-04-19T05:34:59.3579610Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3580830Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3581840Z     ^
2023-04-19T05:34:59.3583240Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3584300Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3585340Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3586370Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3587730Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:642:23: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3588880Z                 __d = std::__constexpr_copysign(_Tp(0), __d);
2023-04-19T05:34:59.3589900Z                       ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3591470Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3592840Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3593850Z                                                      ^
2023-04-19T05:34:59.3595140Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3596270Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3597520Z                                                       ^
2023-04-19T05:34:59.3598860Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3599950Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3600900Z ^
2023-04-19T05:34:59.3602240Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3603370Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3604280Z     ^
2023-04-19T05:34:59.3605210Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3606160Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3607150Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3608110Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3609440Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:647:19: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3610550Z             __c = std::__constexpr_copysign(std::__constexpr_isinf(__c) ? _Tp(1) : _Tp(0), __c);
2023-04-19T05:34:59.3611540Z                   ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3612810Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3613950Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3614920Z                                                      ^
2023-04-19T05:34:59.3616270Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3617400Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3618370Z                                                       ^
2023-04-19T05:34:59.3619670Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3621180Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3622120Z ^
2023-04-19T05:34:59.3623440Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3624580Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3625500Z     ^
2023-04-19T05:34:59.3626410Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3627370Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3628310Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3629280Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3630550Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:648:19: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3631640Z             __d = std::__constexpr_copysign(std::__constexpr_isinf(__d) ? _Tp(1) : _Tp(0), __d);
2023-04-19T05:34:59.3632630Z                   ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3633900Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3635320Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3636300Z                                                      ^
2023-04-19T05:34:59.3637580Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3638680Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3639730Z                                                       ^
2023-04-19T05:34:59.3641040Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3642130Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3643070Z ^
2023-04-19T05:34:59.3644380Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3645510Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3646440Z     ^
2023-04-19T05:34:59.3647340Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3648300Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3649260Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3650220Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3651480Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:650:23: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3652540Z                 __a = std::__constexpr_copysign(_Tp(0), __a);
2023-04-19T05:34:59.3653490Z                       ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3654790Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3655910Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3656860Z                                                      ^
2023-04-19T05:34:59.3658150Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3659610Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3660600Z                                                       ^
2023-04-19T05:34:59.3661930Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3663100Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3664030Z ^
2023-04-19T05:34:59.3665590Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3666760Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3667680Z     ^
2023-04-19T05:34:59.3668600Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3669600Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3670570Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3671530Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3672770Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:652:23: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3674150Z                 __b = std::__constexpr_copysign(_Tp(0), __b);
2023-04-19T05:34:59.3675080Z                       ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3676380Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3677510Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3678460Z                                                      ^
2023-04-19T05:34:59.3679850Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3681000Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3681960Z                                                       ^
2023-04-19T05:34:59.3683260Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3684360Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3685270Z ^
2023-04-19T05:34:59.3686610Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3687750Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3688650Z     ^
2023-04-19T05:34:59.3689580Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3690540Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3691490Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3692480Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3693720Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:659:23: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3694800Z                 __a = std::__constexpr_copysign(_Tp(0), __a);
2023-04-19T05:34:59.3695750Z                       ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3697420Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3698560Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3699540Z                                                      ^
2023-04-19T05:34:59.3700810Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3701940Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3702930Z                                                       ^
2023-04-19T05:34:59.3704230Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3705340Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3706270Z ^
2023-04-19T05:34:59.3707590Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3709020Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3710110Z     ^
2023-04-19T05:34:59.3711020Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3711990Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3712950Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3713890Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3715270Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:661:23: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3716320Z                 __b = std::__constexpr_copysign(_Tp(0), __b);
2023-04-19T05:34:59.3717280Z                       ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3718570Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3719680Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3720660Z                                                      ^
2023-04-19T05:34:59.3721960Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3723070Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3724060Z                                                       ^
2023-04-19T05:34:59.3725370Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3726450Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3727400Z ^
2023-04-19T05:34:59.3728730Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3729910Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3730840Z     ^
2023-04-19T05:34:59.3731760Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3732700Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3734060Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3735000Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3736260Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:663:23: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3737590Z                 __c = std::__constexpr_copysign(_Tp(0), __c);
2023-04-19T05:34:59.3738590Z                       ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3739970Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3741100Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3742050Z                                                      ^
2023-04-19T05:34:59.3743330Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3744470Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3745420Z                                                       ^
2023-04-19T05:34:59.3747180Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3750920Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3751890Z ^
2023-04-19T05:34:59.3753330Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3754920Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3755880Z     ^
2023-04-19T05:34:59.3756880Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3760050Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3761110Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3762110Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3763440Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:665:23: error: no matching function for call to '__constexpr_copysign'
2023-04-19T05:34:59.3765970Z                 __d = std::__constexpr_copysign(_Tp(0), __d);
2023-04-19T05:34:59.3767030Z                       ^~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-19T05:34:59.3768370Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:630:54: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3769560Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI float __constexpr_copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3770670Z                                                      ^
2023-04-19T05:34:59.3771990Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:634:55: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3773180Z _LIBCPP_CONSTEXPR inline _LIBCPP_HIDE_FROM_ABI double __constexpr_copysign(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3774190Z                                                       ^
2023-04-19T05:34:59.3775540Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:639:1: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3776700Z __constexpr_copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3777680Z ^
2023-04-19T05:34:59.3779930Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/cmath:647:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3781130Z     __constexpr_copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3782090Z     ^
2023-04-19T05:34:59.3783060Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3784070Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3785050Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3786050Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3787350Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:1120:95: error: no matching function for call to 'copysign'
2023-04-19T05:34:59.3788490Z             return complex<_Tp>(__x.real(), std::__constexpr_isnan(__x.imag()) ? __x.imag() : std::copysign(_Tp(0), __x.imag()));
2023-04-19T05:34:59.3789550Z                                                                                               ^~~~~~~~~~~~~
2023-04-19T05:34:59.3790780Z compproc.cc:53:10: note: in instantiation of function template specialization 'std::sqrt<NTL::RR>' requested here
2023-04-19T05:34:59.3791820Z       y= sqrt(oldx*y);
2023-04-19T05:34:59.3792780Z          ^
2023-04-19T05:34:59.3794160Z /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/math.h:526:15: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3795690Z extern double copysign(double, double);
2023-04-19T05:34:59.3796670Z               ^
2023-04-19T05:34:59.3797980Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:1046:58: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3799190Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI float copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3811750Z                                                          ^
2023-04-19T05:34:59.3821590Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:1050:64: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3851250Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI long double copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3867640Z                                                                ^
2023-04-19T05:34:59.3878470Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:1062:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3880230Z     copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3881430Z     ^
2023-04-19T05:34:59.3882410Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3888630Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3889870Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3890860Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3892390Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:1121:87: error: no matching function for call to 'copysign'
2023-04-19T05:34:59.3893610Z         return complex<_Tp>(std::__constexpr_isnan(__x.imag()) ? __x.imag() : _Tp(0), std::copysign(__x.real(), __x.imag()));
2023-04-19T05:34:59.3894770Z                                                                                       ^~~~~~~~~~~~~
2023-04-19T05:34:59.3896320Z /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/math.h:526:15: note: candidate function not viable: no known conversion from 'std::complex<NTL::RR>::value_type' (aka 'NTL::RR') to 'double' for 1st argument
2023-04-19T05:34:59.3898120Z extern double copysign(double, double);
2023-04-19T05:34:59.3899050Z               ^
2023-04-19T05:34:59.3901040Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:1046:58: note: candidate function not viable: no known conversion from 'std::complex<NTL::RR>::value_type' (aka 'NTL::RR') to 'float' for 1st argument
2023-04-19T05:34:59.3902490Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI float copysign(float __x, float __y) _NOEXCEPT {
2023-04-19T05:34:59.3903500Z                                                          ^
2023-04-19T05:34:59.3905070Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:1050:64: note: candidate function not viable: no known conversion from 'std::complex<NTL::RR>::value_type' (aka 'NTL::RR') to 'long double' for 1st argument
2023-04-19T05:34:59.3907100Z _LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI long double copysign(long double __x, long double __y) _NOEXCEPT {
2023-04-19T05:34:59.3909370Z                                                                ^
2023-04-19T05:34:59.3910880Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:1062:5: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3913070Z     copysign(_A1 __x, _A2 __y) _NOEXCEPT {
2023-04-19T05:34:59.3914010Z     ^
2023-04-19T05:34:59.3916840Z In file included from compproc.cc:24:
2023-04-19T05:34:59.3919050Z In file included from ./eclib/compproc.h:27:
2023-04-19T05:34:59.3920090Z In file included from ./eclib/interface.h:51:
2023-04-19T05:34:59.3921280Z In file included from ./eclib/templates.h:32:
2023-04-19T05:34:59.3922660Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:1123:23: error: no matching function for call to 'sqrt'
2023-04-19T05:34:59.3923830Z     return std::polar(std::sqrt(std::abs(__x)), std::arg(__x) / _Tp(2));
2023-04-19T05:34:59.3924870Z                       ^~~~~~~~~
2023-04-19T05:34:59.3926380Z /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/math.h:447:15: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3933610Z extern double sqrt(double);
2023-04-19T05:34:59.3934760Z               ^
2023-04-19T05:34:59.3936210Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:929:42: note: candidate function not viable: no known conversion from 'NTL::RR' to 'float' for 1st argument
2023-04-19T05:34:59.3937500Z inline _LIBCPP_HIDE_FROM_ABI float       sqrt(float __x) _NOEXCEPT       {return __builtin_sqrtf(__x);}
2023-04-19T05:34:59.3938460Z                                          ^
2023-04-19T05:34:59.3940050Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:932:30: note: candidate function not viable: no known conversion from 'NTL::RR' to 'double' for 1st argument
2023-04-19T05:34:59.3941390Z _LIBCPP_HIDE_FROM_ABI double sqrt(double __x) _NOEXCEPT {
2023-04-19T05:34:59.3942320Z                              ^
2023-04-19T05:34:59.3943820Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:936:42: note: candidate function not viable: no known conversion from 'NTL::RR' to 'long double' for 1st argument
2023-04-19T05:34:59.3945070Z inline _LIBCPP_HIDE_FROM_ABI long double sqrt(long double __x) _NOEXCEPT {return __builtin_sqrtl(__x);}
2023-04-19T05:34:59.3946160Z                                          ^
2023-04-19T05:34:59.3947600Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:942:1: note: candidate template ignored: requirement 'std::is_integral<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR]
2023-04-19T05:34:59.3948900Z sqrt(_A1 __x) _NOEXCEPT {return __builtin_sqrt((double)__x);}
2023-04-19T05:34:59.3951010Z ^
2023-04-19T05:34:59.3953400Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:1113:1: note: candidate template ignored: could not match 'complex<_Tp>' against 'NTL::RR'
2023-04-19T05:34:59.3954560Z sqrt(const complex<_Tp>& __x)
2023-04-19T05:34:59.3955600Z ^
2023-04-19T05:34:59.3956850Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/complex:939:12: error: no matching function for call to 'atan2'
2023-04-19T05:34:59.3958370Z     return std::atan2(__c.imag(), __c.real());
2023-04-19T05:34:59.3959340Z            ^~~~~~~~~~
2023-04-19T05:34:59.3960550Z compproc.cc:54:15: note: in instantiation of function template specialization 'std::arg<NTL::RR>' requested here
2023-04-19T05:34:59.3961030Z       theta = arg(y/x);
2023-04-19T05:34:59.3963340Z               ^
2023-04-19T05:34:59.3965450Z /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/math.h:335:15: note: candidate function not viable: no known conversion from 'std::complex<NTL::RR>::value_type' (aka 'NTL::RR') to 'double' for 1st argument
2023-04-19T05:34:59.3966670Z extern double atan2(double, double);
2023-04-19T05:34:59.3967560Z               ^
2023-04-19T05:34:59.3968350Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:612:42: note: candidate function not viable: no known conversion from 'std::complex<NTL::RR>::value_type' (aka 'NTL::RR') to 'float' for 1st argument
2023-04-19T05:34:59.3969420Z inline _LIBCPP_HIDE_FROM_ABI float       atan2(float __y, float __x) _NOEXCEPT             {return __builtin_atan2f(__y, __x);}
2023-04-19T05:34:59.3970540Z                                          ^
2023-04-19T05:34:59.3977380Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:615:30: note: candidate function not viable: no known conversion from 'std::complex<NTL::RR>::value_type' (aka 'NTL::RR') to 'double' for 1st argument
2023-04-19T05:34:59.3978640Z _LIBCPP_HIDE_FROM_ABI double atan2(double __x, double __y) _NOEXCEPT {
2023-04-19T05:34:59.3979750Z                              ^
2023-04-19T05:34:59.3981180Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:619:42: note: candidate function not viable: no known conversion from 'std::complex<NTL::RR>::value_type' (aka 'NTL::RR') to 'long double' for 1st argument
2023-04-19T05:34:59.3982430Z inline _LIBCPP_HIDE_FROM_ABI long double atan2(long double __y, long double __x) _NOEXCEPT {return __builtin_atan2l(__y, __x);}
2023-04-19T05:34:59.3983480Z                                          ^
2023-04-19T05:34:59.3984880Z /Users/runner/miniforge3/conda-bld/eclib_1681882183576/_build_env/bin/../include/c++/v1/math.h:630:1: note: candidate template ignored: requirement 'std::is_arithmetic<NTL::RR>::value' was not satisfied [with _A1 = NTL::RR, _A2 = NTL::RR]
2023-04-19T05:34:59.3986060Z atan2(_A1 __y, _A2 __x) _NOEXCEPT
JohnCremona commented 1 year ago

@isuruf I do not understand the error messages you post, which I do not see (I have applied your patch). I am testing with clang version 10.0.0-4ubuntu1 on Ubuntu 20.04.6 LTS. I am testing with both --enable-mpfp and --disable-mpfp options to configure.

For me, everythng builds OK and all tests pass.

If you look in interface.h lines 189ff there are some CC functions coded which -- for reasons I think may be similar to what you are reporting -- could not be instantiated automatically. These are abs(), exp(), log(), operator/() and operator /=(). Here log() is the one you added. The error output you posted looks as if it wants similar functions for sqrt() and arg() at least. But I don't know how I can test these given that on my computer clang is already happy.

JohnCremona commented 1 year ago

@isuruf Would I be better off defining my own bigcomplex (or CC) class on top of NTL's RR type? When I started this years ago it was helpful that there was apparently this template std::complex which handles the easier operations, but I already had to add functionality. That would mean not relying on std::complex except when in --disable-mpfp mode, where bigcomplex is typedef'd to std::complex.

isuruf commented 1 year ago

For testing you need libc++ 16 which usually comes with clang++-16 and you also need to rebuild your C++ dependencies with -stdlib=libc++. Otherwise clang++ will use the standard library from g++ (libstdc++).

Yes, I think you would be better off defining your own bigcomplex class instead of using std::complex.

JohnCremona commented 1 year ago

Thanks for he helpful answers.

For testing you need libc++ 16 which usually comes with clang++-16 and you also need to rebuild your C++ dependencies with -stdlib=libc++. Otherwise clang++ will use the standard library from g++ (libstdc++).

I wil try that for the future. For now...

Yes, I think you would be better off defining your own bigcomplex class instead of using std::complex.

I am doing that, nearly done.

JohnCremona commented 1 year ago

I cannot find a version of libc++-16 for the machines I have which are running ubuntu 20.04.6 LTS.

I will make a separate PR with my new bigcomplex class which does not use the template, when using --enable-mpfp. There is no change with the --disable-mpfp for which bigcomplex is the template complex. Then we'll see if the tests pass there, as they do on my computers.

JohnCremona commented 1 year ago

I'll close this as superseded by #75

JohnCremona commented 1 year ago

I have been trying to install newer clang versions and rebuilding, but I am totally confused. The latest ubuntu clang version available for 20.04 is clang-12 where 12 is just the number which comes after 11, but the 16 in linstdc++-16 refers to the year 2016?

I am quite close to the point where I will no longer be willing to spend time making changes to eclib, even for sage, in order to satisfy the never-ending requirements of new compilers.

JohnCremona commented 1 year ago

I have been trying to install newer clang versions and rebuilding, but I am totally confused. The latest ubuntu clang version available for 20.04 is clang-12 where 12 is just the number which comes after 11, but the 16 in linstdc++-16 refers to the year 2016?

I did manage to build eclib (the new version) with clang-12 and all seems well.

isuruf commented 1 year ago

The latest ubuntu clang version available for 20.04 is clang-12 where 12 is just the number which comes after 11, but the 16 in linstdc++-16 refers to the year 2016?

libc++-16 refers to the 16.0.1 release of libc++. You need clang++-16 as well. The issue is that ubuntu and most distributions build their packages with libstdc++, the C++ library from GCC instead of libc++, the C++ library from LLVM. So, to use libc++, you need to download flint, ntl with libc++.

Easiest way is to use macOS where packages are built with libc++ by default. I have sent a PR https://github.com/JohnCremona/eclib/pull/76 to do that in CI.

isuruf commented 1 year ago

I am quite close to the point where I will no longer be willing to spend time making changes to eclib, even for sage, in order to satisfy the never-ending requirements of new compilers.

Build issues with compilers are usually easy to deal with for outsiders like me. (I probably can't help much with the actual functionality of eclib) So, please let me or other maintainers of distro packages know and we can help with build issues.

JohnCremona commented 1 year ago

I am quite close to the point where I will no longer be willing to spend time making changes to eclib, even for sage, in order to satisfy the never-ending requirements of new compilers.

Build issues with compilers are usually easy to deal with for outsiders like me. (I probably can't help much with the actual functionality of eclib) So, please let me or other maintainers of distro packages know and we can help with build issues.

Thanks, appreciated. Ideal is when whoever notices the issue just provides a patch! This latest thing needed a bit more, and had a good result. One day I am likely to scrap the possibility of building eclib without multiprecision real and complex, since it is not the default, I no longer use it myself, and Sage does not. There was a time when I did use it as it was faster and sufficed for some purposes.