Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么赢了';t boost';用复杂输入编译贝塞尔函数?_C++_Boost_C++11_Complex Numbers_Bessel Functions - Fatal编程技术网

C++ 为什么赢了';t boost';用复杂输入编译贝塞尔函数?

C++ 为什么赢了';t boost';用复杂输入编译贝塞尔函数?,c++,boost,c++11,complex-numbers,bessel-functions,C++,Boost,C++11,Complex Numbers,Bessel Functions,根据boost文档,boost特殊功能贝塞尔功能(特别是修改后的贝塞尔功能)应能够接受复杂输入 然而,当我尝试为它提供一个时,我得到一个编译错误,抱怨没有什么是工具::epsilon()其中T=复杂的?作为猜测,它是一个小的复合体。如果是这样,请专门化tools::epsilon以返回一个可以比较的对象不幸的是,这段代码本身就在boost中,因此修改它是不可能的。如果boost文档是正确的(我认为这是一个合理的假设),那么问题应该是我如何使用这个函数。不幸的是,问题出在我发布的三行代码中,这似乎

根据boost文档,boost特殊功能贝塞尔功能(特别是修改后的贝塞尔功能)应能够接受复杂输入


然而,当我尝试为它提供一个时,我得到一个编译错误,抱怨没有
什么是
工具::epsilon()
其中
T
=
复杂的
?作为猜测,它是一个小的
复合体
。如果是这样,请专门化
tools::epsilon
以返回一个可以比较的对象
不幸的是,这段代码本身就在boost中,因此修改它是不可能的。如果boost文档是正确的(我认为这是一个合理的假设),那么问题应该是我如何使用这个函数。不幸的是,问题出在我发布的三行代码中,这似乎足够合理。为您的一种用户类型专门化traits函数不是不可能的。它可能正在调用默认实现,该实现使用一个小的浮点或双精度值构造复合体。
using namespace boost::math;    
std::complex<float> cpxTerm = std::complex<float>(m_u1 * cos(az), -wbar * cos(sin(lim)));
std::complex<float> besselTerm = cyl_bessel_i(0, cpxTerm);
boost.1.50.0/include/boost/math/special_functions/detail/bessel_ik.hpp(108): error: no operator "<" matches these operands
     operand types are: float < std::complex<float>
  d = abs(sigma) < tools::epsilon<T>() ?
                 ^
      detected during: