标准的数学函数能正确处理无穷大吗?
Can the standard math functions handle infinity correctly?
int main() {
double inf = INFINITY;
double pi = acos(-1.0);
printf("[1]: %f %fn", atan(inf) / pi, atan(-inf) / pi);
printf("[2]: %f %fn", tan(inf) / pi, tan(-inf) / pi);
return 0;
}
输出[1]: 0.500000 -0.500000
[2]: -nan -nan
这种行为是由标准定义的吗?[2]
是未定义行为吗?未指明的吗?
我想确保至少[1]
是一个有保证的结果。
都是定义良好的行为。引用自http://en.cppreference.com
- 谭
如果参数为±0,则返回未经修改的值。
如果参数为±∞,则返回NaN并引发FE_INVALID。
如果参数为NaN,则返回NaN。- 每股
如果参数为±0,则返回未经修改的值。
如果参数为+∞,则返回+π/2。
如果参数为-∞,则返回-π/2。
如果参数为NaN,则返回NaN。
相关文章:
- arm-none-eabi-g++ 不能使用 -flto 正确处理弱别名
- 如何避免 boost 的野兽body_limit错误并正确处理大消息
- 如何正确处理渲染大小为 >= 2B 的 utf-8 字符?
- 是否正确处理了此代码异常?
- 为什么 CSpinButtonCtrl 不能正确处理大于 1000 的数字?
- 自定义迭代器:如果 a 和 b 的行为不同,如何正确处理距离计算和相等比较
- 编译器在 C/C++ 中通过指针调用函数时如何正确处理 ABI
- 如何在 Python 3 中正确处理用于嵌入的字符串
- 如何正确处理OpenSSL错误(BIO)
- 为什么我的模板专业检查不足以正确处理相应的类型
- 在子类过程中正确处理WM_PASTE
- 如何正确处理此SFINAE
- 如何在 c++ 中正确处理常量字符*
- 如何在多线程程序中使用 boost::asio 正确处理 fork()
- 类的静态实例无法在程序退出时正确处理资源删除
- 正确处理字节对齐问题 - 通过UDP在16位嵌入式系统和32位桌面之间
- 如何确保二元布尔操作员正确处理其论点的构造
- FSNF 无法正确处理字符串
- VS2010 未正确处理预处理器条件下的"includes"
- 标准的数学函数能正确处理无穷大吗?