摘要:
演算法:這個程式的主要演算法是牛頓迭代法。他首先得到乙個平方根的初始值,然後使用牛頓迭代法逐步求精,在計算過程中,始終用兩個整數的比表示整數平方根的值。最後,它轉換分數表示的平方根為10進製字串。
說明: 該文有待完善。
效能分析:
對比pifast,它的效能仍然不是很好,我特意分析了這個程式各個部分的時間開銷,發現主要瓶頸在最後輸出部分。下表給出計算2的平方根的時間花費。
steps
time(seconds)
percentage
calc
0.308532
10.92%
x=pow(10,d)
0.094357
3.34%
p*= (10^d)
0.371915
13.17%
p/q0.708144
25.07%
tostring
1.177165
41.68%
print to file
0.164422
5.82%
total
2.824535
100.00%
整數平方根2
sqrt的快速演算法 參考 2009年10月26日 星期一 21 04 在3d圖形程式設計中,經常要求平方根或平方根的倒數,例如 求向量的長度或將向量歸一化。c數學函式庫中的sqrt具有理想的精度,但對於3d遊戲程式來說速度太慢。我們希望能夠在保證足夠的精度的同時,進一步提高速度。carmack在q...
快速計算平方根
在3d圖形程式設計中,經常要求平方根或平方根的倒數,例如 求向量的長度或將向量歸一化。c數學函式庫中的sqrt具有理想的精度,但對於3d遊戲程式來說速度太慢。我們希望能夠在保證足夠的精度的同時,進一步提高速度。carmack在quake3中使用了下面的演算法,它第一次在公眾場合出現的時候,幾乎震住了...
計算平方根的演算法
總結一下一些常用的計算平方根的方法 1.牛頓法 具體的做法如下 計算公式如下 具體的計算程式如下 double sqrt double x return g 2.利用級數進行逼近 微積分中的泰勒級數如下 這樣,有了這個公式我們可以得到求平方根公式的展開式 這樣我們可以進行在一定精度內的逼近。但是這兒...