Python文档没有明确指定atan2(0,0),但CPython实现会尽力确保即使在基础C库没有的情况下,特殊情况也遵循C99。这包括一个处理atan2(0,0)返回0.0的代码路径:
if (Py_IS_INFINITY(x) || y == 0.) {
if (copysign(1., x) == 1.)
/* atan2(+-y, +inf) = atan2(+-0, +x) = +-0. */
return copysign(0., y);
...
Run Code Online (Sandbox Code Playgroud)
通常,math模块中提供的与C标准库功能相对应的功能应与C标准行为相匹配。有一些关于这种效果的概括性声明,例如靠近文档顶部的一个声明:
此模块始终可用。它提供对C标准定义的数学函数的访问。
而这个靠近底部的位置:
特殊情况下的行为应遵循C99标准的附录F。
尽管附件F不是定义atan2的标准的一部分。
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |