The default precision is double unless yue specify otherwise (float32 or long 
double (float128 or float96))

You can see this from:

f(fsolve(f,1.01))
# 1.7763568394002505e-15

The last line should be:

>>> fsolve(f,1.01) - float64(1.034324523462345)
8.8817841970012523e-16

  Nadav



-----הודעה מקורית-----
מאת: numpy-discussion-boun...@scipy.org בשם Adam Ginsburg
נשלח: ש 17-אוקטובר-09 20:08
אל: numpy-discussion@scipy.org
נושא: [Numpy-discussion] double-precision sqrt?
 
Hi folks,
   I'm trying to write a ray-tracing code for which high precision is
required.  I also "need" to use square roots.  However, math.sqrt and
numpy.sqrt seem to only use single-precision floats.  Is there a
simple way to make sqrt use higher precision?  Alternately, am I
simply being obtuse?

Thanks,
Adam

Example code:
from scipy.optimize.minpack import fsolve
from numpy import sqrt

sqrt(float64(1.034324523462345))
# 1.0170174646791199
f=lambda x: x**2-float64(1.034324523462345)**2

f(sqrt(float64(1.034324523462345)))
# -0.03550269637326231

fsolve(f,1.01)
# 1.0343245234623459

f(fsolve(f,1.01))
# 1.7763568394002505e-15

fsolve(f,1.01) - sqrt(float64(1.034324523462345))
# 0.017307058783226026
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

<<winmail.dat>>

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to