在我正在分析的应用程序中,我发现在某些情况下,此函数能够占用总执行时间的 10% 以上。
正在使用 MSVC++ 2008 编译器,以供参考……我不记得 modf 是否映射到单个指令,或者是否有任何方法可以使其更快。
有关 sqrt 函数的类似问题,请参见此处
与 sqrt 不同,我真的不知道 modf 是如何工作的。有组装操作吗?例如你可以这样做:
modf(float input,int &intPart, float &floatPart)
{
intPart= (int)input;
floatPart= input - intPart;
}
但我认为这会导致强制转换/转换等的惩罚。快速实现如何工作?