Visual Studio 2012中的立方根函数cbrt()

EJG89

我正在C / C ++中的Visual Studio 2012专业版(Windows)中编写程序,该程序包含使用计算许多幂的功能pow()我运行了探查器以查明为什么需要这么长时间才能运行,但我发现这pow()是瓶颈。

我已经改写了诸如

pow(x,1.5)x*sqrt(x)

pow(x,1.75)sqrt(x*x*x*sqrt(x))

这大大提高了程序的速度。

有几种功能可以使用,pow(x,1.0/3.0)因此我寻找了三次方根函数cbrt()来加快处理速度,但是我似乎无法想象它在Visual Studio中不可用,因此我的问题是:

我在哪里可以cbrt()在Visual Studio 2012 Professional中找到该功能,如果找不到,除了之外还有哪些替代方法pow(x,1.0/3.0)

亲切的问候,

恩斯特·扬

TypeIA

该站点探索了几种计算方法,可以在C语言中有效地计算多维数据集根,并提供了一些源代码可以下载。

编辑:谷歌搜索“快速立方根”的命中率更高。)

多维数据集根是一个有趣的主题,因为它们已在许多常用公式中使用,并且Microsoft Visual Studio不包含快速多维数据集根函数。

在没有特殊的立方根函数的情况下,一种典型的策略是通过幂函数(例如pow(x,1.0 / 3.0))进行计算。当负数处理不当时,这在速度和准确性方面可能会出现问题。

他的网站对所使用的方法有一些基准。所有这些都比速度快得多pow()

32-bit float tests
----------------------------------------
cbrt_5f      8.8 ms    5 mbp   6.223 abp
pow        144.5 ms   23 mbp  23.000 abp
halley x 1  31.8 ms   15 mbp  18.961 abp
halley x 2  59.0 ms   23 mbp  23.000 abp
newton x 1  23.4 ms   10 mbp  12.525 abp
newton x 2  48.9 ms   20 mbp  22.764 abp
newton x 3  72.0 ms   23 mbp  23.000 abp
newton x 4  89.6 ms   23 mbp  23.000 abp

请参阅该站点以获取可下载的源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章