คำถามติดแท็ก square-root

5
รากที่สองผกผันอย่างรวดเร็วผิดปกติของ John Carmack (Quake III)
John Carmack มีฟังก์ชันพิเศษในซอร์สโค้ด Quake III ซึ่งคำนวณค่ารากที่สองผกผันของการลอยซึ่งเร็วกว่าปกติ 4 เท่า(float)(1.0/sqrt(x))รวมถึง0x5f3759dfค่าคงที่แปลก ๆ ดูโค้ดด้านล่าง ใครช่วยอธิบายทีละบรรทัดว่าเกิดอะไรขึ้นที่นี่และเหตุใดจึงทำงานได้เร็วกว่าการใช้งานปกติมาก float Q_rsqrt( float number ) { long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; i = 0x5f3759df - ( i >> …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.