<boost/math/special_functions/erf.hpp>
在我们的标题中
result = z * 1.125 + z * 0.003379167095512573896158903121545171688L;
在下面附加的代码片段中。我的问题是:为什么没有
大号
此添加的第一个组件中的长后缀,而第二个组件中有一个?它背后的基本原理是什么,它带来了什么影响?
template <class T, class Policy>
T erf_imp(T z, bool invert, const Policy& pol, const mpl::int_<113>& t)
{
BOOST_MATH_STD_USING
BOOST_MATH_INSTRUMENT_CODE("113-bit precision erf_imp called");
if(z < 0){
if(!invert)
return -erf_imp(-z, invert, pol, t);
else if(z < -0.5)
return 2 - erf_imp(-z, invert, pol, t);
else
return 1 + erf_imp(-z, false, pol, t);
}
T result;
// Big bunch of selection statements now
if(z < 0.5){
// We're going to calculate erf:
if(z == 0){
result = 0;
}else if(z < 1e-20){
result = z * 1.125 + z * 0.003379167095512573896158903121545171688L;
^^^ no L? ^^^