Boost logo

Boost :

Subject: Re: [boost] [math] Comeau can't match math::tools::fmod_workaround
From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2009-11-26 14:41:59


Mateusz Loskot wrote:
> Hi,
>
> I'm not sure if I should submit this issue directly to Trac, so I
> decided to post it here first. Compiling Boost.Math using Comeau +
> GCC on Linux throws error that suggests mismatch of dobule and long
> double where single type T is expected:

I've just found very similar issue in other place. It is std::pow
specialisations seem ambiguous for Comeau C/C++ compiler.

"../../../boost/math/special_functions/spherical_harmonic.hpp", line 39:
error:
          more than one instance of overloaded function "pow" matches the
          argument list:
            function "std::pow(const std::complex<long double> &, const long
                      double &)"
            function "std::pow(const double &, const
std::complex<double> &)"
            function "std::pow(long double, long double)"
            function "std::pow(double, int)"
            function "std::pow(double, double)"
            argument types are: (double, long double)
     T leg = detail::legendre_p_imp(n, m, x, pow(fabs(sin_theta), T(m)),
pol);
                                             ^
          detected during:
            instantiation of "T

boost::math::detail::spherical_harmonic_prefix(unsigned
                      int, unsigned int, T, const Policy &) [with T=long
                      double, Policy=c_policies::c_policy]" at line 71
            instantiation of "T
                      boost::math::detail::spherical_harmonic_r(unsigned
int,
                      int, T, T, const Policy &) [with T=long double,
                      Policy=c_policies::c_policy]" at line 172

I thought it may be of interest.

Best regards,

-- 
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk