簡體   English   中英

計算平方根時,IEEE-754正確的結果是什么?

[英]What is accepted as the IEEE-754 correct result when computing this square root?

我有一個Newton-Raphson平方根算法,用於計算輸入值的單精度平方根。 但是,使用我輸入的測試平台,我發現某些輸入值未收斂到最接近實際平方根的答案。 當我說實際的平方根時,我的意思是您得到的結果將比32位IEEE-754更精確。 結果,我想知道在IEEE-754中執行平方根時,應該獲得什么正確的值。 這個論壇上的一些人告訴我,最接近的值不一定是最正確的,這就是我要問的原因。

計算單精度IEEE-754 32位值0x3f7fffff的平方根時,什么被認為是正確的結果,為什么?

此外,計算0x7F7FFFFF的平方根時,什么是正確的結果?

0x3f7fffff1.0 - u ,其中u = 2**-24 sqrt(1 + x)的泰勒級數為:

sqrt(1 + x) = 1 + x/2 - x^2/8 + O(x^3)

如果將-u插入x ,則會得到:

sqrt(1 - u) = 1 - u/2 - u^2/8 - O(u^3)

1 - u/2是兩個最接近的可表示浮點數1-u1之間的精確中間點; 由於泰勒級數的下一項為負,因此sqrt(1 - u)值僅小一點,因此結果四舍五入為1 - u

0x7f7fffff僅為2**128*(1-u) ,因此數學上精確的平方根為2**64*(1 - u/2 - u^2/8 - ...) 0x7f7fffff 2**64*(1 - u/2 - u^2/8 - ...) ,四舍五入為2**64 * (1-u) ,如上所述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM