I checked the size of a pointer in my python terminal (in Enthought Canopy IDE) via
import ctypes
print (ctypes.sizeof(ctypes.c_voidp) * 8)
I've a 64bit architecture and working with numpy.float64
is just fine. But I cannot use np.float128
?
np.array([1,1,1],dtype=np.float128)
or
np.float128(1)
results in:
AttributeError: 'module' object has no attribute 'float128'
I'm running the following version:
sys.version_info(major=2, minor=7, micro=6, releaselevel='final', serial=0)
Update: From the comments, it seems pointless to even have a 128 bit float on a 64 bit system.
I am using anaconda
on a 64-bit Ubuntu 14.04 system with
sys.version_info(major=2, minor=7, micro=9, releaselevel='final', serial=0)
and 128 bit floats work fine:
import numpy
a = numpy.float128(3)
This might be an distribution problem. Try:
EDIT: Update from the comments:
Not my downvote, but this post doesn't really answer the "why doesn't np.float128 exist on my machine" implied question. The true answer is that this is platform specific: float128 exists on some platforms but not others, and on those platforms where it does exist it's almost certainly simply the 80-bit x87 extended precision type, padded to 128 bits. – Mark Dickinson