德州仪器CLA浮点反向技巧-其目的是什么
我有一段代码是由其他人编写的,它运行在TI TMS320命令法加速器上。因此,它的尺寸和速度都得到了优化 为了得到1/x,代码总是这样做德州仪器CLA浮点反向技巧-其目的是什么,c,embedded,C,Embedded,我有一段代码是由其他人编写的,它运行在TI TMS320命令法加速器上。因此,它的尺寸和速度都得到了优化 为了得到1/x,代码总是这样做 float32 y = __meinvf32(x); y = y * (2.0f - y*x); y = y * (2.0f - y*x); 我发现他们提出了一些类似的建议,但在我的例子中,最后没有夹紧 seomebody能帮助我理解这背后的意图吗?y=e+1/x,其中e是一些小错误 所以(2.0-y*x)接近于1.0,并且在每次传递中都有减少e的效果。
float32 y = __meinvf32(x);
y = y * (2.0f - y*x);
y = y * (2.0f - y*x);
我发现他们提出了一些类似的建议,但在我的例子中,最后没有夹紧
seomebody能帮助我理解这背后的意图吗?y=e+1/x,其中e是一些小错误
所以(2.0-y*x)接近于1.0,并且在每次传递中都有减少e的效果。艾萨克·牛顿发现了这一点
\uuu meinvf32(x)
给出了1/x的近似值,比如1/x•(1+e),其中e是一些较小的相对误差
设y=1/x•(1+e)。那么,当我们计算y•(2− y•x),我们有:
- y•(2)− y•x)=
- (1/x•(1+e))•(2− (1/x•(1+e))•x)=
- 1/x•(1+e)•(2)− (1+e))=
- 1/x•(2+2e)− (1+e)− e(1+e))=
- 1/x•(2+2e)− 1.− E− E− (e2)=
- 1/x•(1)− e2)