1

当我转换powf为它时,__powf它会给我带来性能改进。但如果我转换sqrtf为其中之一,__fsqrt_[rn,rz,ru,rd]它会减慢速度。我认为它们的运行速度至少应该和 sqrtf 一样快。可能是什么问题?

问候

4

1 回答 1

2

如果您需要对整数进行平方(或浮点数),那么您可以将值与自身相乘,即代替;

y = powf(x, 2);

利用:

y = x * x;

这避免了使用昂贵的超越函数(连同其相关的函数调用开销),并且在大多数情况下只生成单个乘法指令。

平方根可能无法避免,但您可以使用fsqrtf而不是sqrtf只需要单精度 - 这通常要快得多。

于 2013-04-15T15:11:17.183 回答