fortran - fortran中幂函数的效率
问题描述
我正在编写一个代码,其中主要的时间瓶颈是功率函数的利用(显然是来自 glibc 的 w_pow.c)。我称它为主要计算能力2。
b=a**2
写起来会更快吗:
a*a
而不是一个**2?或者有另一个图书馆会更好吗?
谢谢
解决方案
对于许多编译器语言(包括 Fortran)的编译器来说,将一种语言转换为另一种是完全常见的,这取决于哪种语言更快。
在普通 CPU 上计算a^2
乘法a*a
速度更快,但编译器会在您编写a**2
. 无需担心这些细节。
您可以在https://godbolt.org/z/5Ebde4上试用方便的是,godbolt.org 上 Fortran 的默认示例是平方函数,因此您可以非常轻松地比较程序集x**2
并x*x
启用优化(例如-O3
)。
推荐阅读
- typescript - 如何在打字稿上将新值附加到 AWS DynamoDB 中的现有列表
- c# - C# 无法使用 Newtonsoft 修改 Json
- ios - iOS WebSocket 错误:默认 TLS 信任评估失败
- java - 如何全局修复android应用程序中的时区?
- r - 如何在显示单个数据的图上为数据组绘制标准偏差带?
- javascript - 智能合约不会部署到 goQuorum 区块链
- java - 为什么会出现 JDOUserException?
- python - 我在分配错误之前得到了引用
- postgresql - 故障排除错误:最后一个预期列之后的额外数据
- javascript - Fullcalendar 在事件下方添加一些元素