什么是C#中最快的fabsf(浮点绝对值函数)实现?

时间:2019-06-29 20:50:55

标签: c# unity3d mathematical-optimization absolute-value math-functions

我正在优化Unity 3d游戏中最苛刻的功能。最昂贵的子例程是统一的Mathf.Abs方法,该方法在浮点值上被调用(NEVER DOUBLES)。在某些情况下,对此函数的调用会使帧渲染延迟增加数毫秒。代码库是机密的,因此您必须相信Abs调用对于算法至关重要。

在深入分析时,我发现了mathf。 Abs只是一个包装,它调用用于双打的更快的system.math.abs。看来,如果我可以完全避免使用包装器,而只需调用等效于system.Math.Abs​​的float32设计,我将免费获得显着的加速。

有人可以向我解释为什么很难找到它吗?我在NuGet上测试的float库也将转换为双精度版本的结果。

我研究了使用float_long联合结构和屏蔽操作的GNU实现。有人可以引导我朝着正确的方向发展,以在我自己的命名空间中实现它,还是找到一个可以帮助我的东西?

0 个答案:

没有答案