Fast Square Root Calculation?
Can anyone make this faster?
VB Code:
Public Function SquareRoot(ByVal Number As Double) As Double
If Number < 0 Then Number = Number * -1
Dim i As Long
Dim Temp As Double
Dim Power As Long
Dim Estimate As Double
Temp = 1
'Calculate an initial Estimate
If Number >= 1 Then
Do While Number > Temp
Temp = Temp * 10
Power = Power + 1
Loop
Else
Do While Number < Temp
Temp = Temp / 10
Power = Power - 1
Loop
End If
Power = Power / -2
Estimate = 10 ^ Power * Number
'Calculate actual square root
Dim OldEstimate As Double
Do
OldEstimate = Estimate
Estimate = 0.5 * (Estimate + Number/Estimate)
Loop Until OldEstimate = Estimate
SquareRoot = Estimate
End Function
(Wrote this just now, so I haven't debugged it; I'll go check it now but I want to post it first just in case I get a BSOD.)