首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用pow()

不使用pow()
EN

Stack Overflow用户
提问于 2014-03-13 21:46:00
回答 3查看 175关注 0票数 1

今天,我的同事斥责我使用pow(x, 2.0)。他(这个网站上的一个相当高的用户)坚持我写x * x,因为他声称它会更快更清晰。

但是为什么呢?pow难道不知道如何优化吗?我的方法肯定更清楚了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-13 21:55:15

我可以建议你一件事吗?当你有好的编译器和适当的优化水平时,pow( x, 2.0 )可能和x * x一样快。不过,这不会更快。可能会慢一些。由于这个特殊的原因,我仍然会做x * x

票数 3
EN

Stack Overflow用户

发布于 2014-03-13 22:36:26

如果明确是最大的标准(而且可能是应该的),我认为squared(x)甚至比pow(x, 2.0)x*x更易读。这是一个简单的函数,您可以使用编译器和机器上最快的实现基准测试。

代码语言:javascript
复制
inline double squared(double x) { return x*x; } // or return pow(x, 2.0);
票数 1
EN

Stack Overflow用户

发布于 2014-03-13 22:03:16

也许他们想说调用pow(x,2.0)意味着堆栈操作来保存参数和注册表,以及程序计数器的移动,所以如果您必须计算x^2,那么做x*x就更好、更简单。但是我认为这是一个非常极端的优化。

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

https://stackoverflow.com/questions/22391642

复制
相关文章

相似问题

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