如何实施以下行动?
if( boost::math:: +is_inf (x) )
x= max double;
else if( boost::math:: -is_inf (x) )
x= min double;
我想保留x的标志。
答案 0 :(得分:5)
此处的关键是,您可以将+inf
或-inf
与<
和>
进行比较,因此测试符号非常简单。
if(std::isinf(x))
{
if(x>0)
x = std::numeric_limits<double>::max();
else
x = -std::numeric_limits<double>::max();
}
如果您使用的是c ++ 11
,则无需提升