[Numpy-discussion] double-precision sqrt?

Nadav Horesh nadavh@visionsense....
Sat Oct 17 13:27:02 CDT 2009


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-bounces@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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/ms-tnef
Size: 3358 bytes
Desc: not available
Url : http://mail.scipy.org/pipermail/numpy-discussion/attachments/20091017/9d7fd8e8/attachment.bin 


More information about the NumPy-Discussion mailing list