求平方根倒数

本文介绍了一种名为FastInverseSquareRoot的算法,该算法可在计算机图形处理中高效计算浮点数的平方根倒数。算法由一系列位操作和一次迭代改进组成,能够快速获得准确结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

平方根倒数速算法英语: Fast Inverse Square Root,亦常以“Fast InvSqrt()”或其使用的 十六进制 常数 0x5f3759df代称)是用于快速计算 \scriptstyle x^{-\tfrac{1}{2}}(即 \scriptstyle x平方根倒数,在此 \scriptstyle x需取符合 IEEE 754标准格式的32位 浮点数)的一种 算法。此算法最早被认为是由 约翰·卡马克所发明。
float Q_rsqrt ( float number )
{
long i ;
float x2 , y ;
const float threehalfs = 1.5F ;

x2 = number * 0.5F ;
= number ;
= * ( long * ) &y ;                       // evil floating point bit level hacking(对浮点数的邪恶位级hack)
= 0x5f3759df - ( i >> 1 ) ;               // what the fuck?(这他妈的是怎么回事?)
= * ( float * ) &i ;
= y * ( threehalfs - ( x2 * y * y ) ) ;   // 1st iteration (第一次牛顿迭代)
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed(第二次迭代,可以删除)


return y ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值