首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >假设atan2( 0 ,0)返回0,安全吗?

假设atan2( 0 ,0)返回0,安全吗?
EN

Stack Overflow用户
提问于 2019-03-07 06:43:37
回答 2查看 699关注 0票数 4

C中的atan2(0,0)似乎是定义为这边请的。Python只是将常见的三角函数委托给底层的C实现,对吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-07 06:51:10

Python没有显式地指定atan2(0,0),但是CPython实现会做出特定的努力,以确保特殊情况遵循C99,即使底层C库没有这样做。这包括一个处理使atan2(0,0)返回0.0的代码路径:

代码语言:javascript
复制
if (Py_IS_INFINITY(x) || y == 0.) {
    if (copysign(1., x) == 1.)
        /* atan2(+-y, +inf) = atan2(+-0, +x) = +-0. */
        return copysign(0., y);
    ...

通常,math模块中提供的与C标准库函数相对应的函数应该与C标准行为相匹配。在这方面有一些笼统的说明,例如在文档顶部附近的一条:

这个模块总是可用的。它提供了对C标准定义的数学函数的访问。

这个靠近底部的:

特殊情况下的行为在适当情况下遵循C99标准附件F。

虽然附件F不是定义atan2的标准的一部分。

票数 5
EN

Stack Overflow用户

发布于 2019-03-07 06:54:37

正如@ said 2357112所述,docs没有指定这一点。如果您需要一些详细的文档-使用numpy.arctan2 -参见https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.arctan2.html中的备注部分

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55037585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档