相关疑难解决方法(0)

_ftol2_sse,有更快的选择吗?

我有很多代码

int myNumber = (int)(floatNumber);
Run Code Online (Sandbox Code Playgroud)

总共约占我CPU时间的10%(根据分析器).虽然我可以把它留在那里,但我想知道是否有更快的选择,所以我试着四处寻找,偶然发现

http://devmaster.net/forums/topic/7804-fast-int-float-conversion-routines/ http://stereopsis.com/FPU.html

我尝试实现那里给出的Real2Int()函数,但它给我错误的结果,并且运行速度较慢.现在我想知道,是否有更快的实现将double/float值置于整数,或SSE2版本的速度是否达到最快?我找到的页面可以追溯到一点,所以它可能只是过时了,更新的STL更快.

目前的实施方式:

013B1030  call        _ftol2_sse (13B19A0h)

013B19A0  cmp         dword ptr [___sse2_available (13B3378h)],0  
013B19A7  je          _ftol2 (13B19D6h)  
013B19A9  push        ebp  
013B19AA  mov         ebp,esp  
013B19AC  sub         esp,8  
013B19AF  and         esp,0FFFFFFF8h  
013B19B2  fstp        qword ptr [esp]  
013B19B5  cvttsd2si   eax,mmword ptr [esp]  
013B19BA  leave  
013B19BB  ret  
Run Code Online (Sandbox Code Playgroud)

相关问题我发现:

ARM(iPhone 3GS/4)上的快速浮点到int转换和浮点精度

在x86上将float转换为int的最快方法是什么

由于两者都是旧的,或者基于ARM,我想知道目前是否有这样的方法.请注意,它说最好的转换是不会发生的转换,但我需要它,所以这是不可能的.

c++ floating-point

5
推荐指数
1
解决办法
2642
查看次数

标签 统计

c++ ×1

floating-point ×1