summaryrefslogtreecommitdiff
path: root/numpy/oldnumeric/precision.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/oldnumeric/precision.py')
-rw-r--r--numpy/oldnumeric/precision.py167
1 files changed, 167 insertions, 0 deletions
diff --git a/numpy/oldnumeric/precision.py b/numpy/oldnumeric/precision.py
new file mode 100644
index 000000000..82bcfe2e1
--- /dev/null
+++ b/numpy/oldnumeric/precision.py
@@ -0,0 +1,167 @@
+# Lifted from Precision.py. This is for compatibility only. Notice that the
+# capitalized names have their old character strings
+
+__all__ = ['Character', 'Complex', 'Float',
+ 'PrecisionError', 'PyObject', 'Int', 'UInt',
+ 'UnsignedInteger', 'string', 'typecodes', 'zeros']
+
+import string
+from olddefaults import zeros
+
+typecodes = {'Character':'c', 'Integer':'1sil', 'UnsignedInteger':'bwu', 'Float':'fd', 'Complex':'FD'}
+
+def _get_precisions(typecodes):
+ lst = []
+ for t in typecodes:
+ lst.append( (zeros( (1,), t ).itemsize*8, t) )
+ return lst
+
+def _fill_table(typecodes, table={}):
+ for key, value in typecodes.items():
+ table[key] = _get_precisions(value)
+ return table
+
+_code_table = _fill_table(typecodes)
+
+class PrecisionError(Exception):
+ pass
+
+def _lookup(table, key, required_bits):
+ lst = table[key]
+ for bits, typecode in lst:
+ if bits >= required_bits:
+ return typecode
+ raise PrecisionError, key+" of "+str(required_bits)+" bits not available on this system"
+
+Character = 'c'
+
+try:
+ UnsignedInt8 = _lookup(_code_table, "UnsignedInteger", 8)
+ UInt8 = UnsignedInt8
+ __all__.extend(['UnsignedInt8', 'UInt8'])
+except(PrecisionError):
+ pass
+try:
+ UnsignedInt16 = _lookup(_code_table, "UnsignedInteger", 16)
+ UInt16 = UnsignedInt16
+ __all__.extend(['UnsignedInt16', 'UInt16'])
+except(PrecisionError):
+ pass
+try:
+ UnsignedInt32 = _lookup(_code_table, "UnsignedInteger", 32)
+ UInt32 = UnsignedInt32
+ __all__.extend(['UnsignedInt32', 'UInt32'])
+except(PrecisionError):
+ pass
+try:
+ UnsignedInt64 = _lookup(_code_table, "UnsignedInteger", 64)
+ UInt64 = UnsignedInt64
+ __all__.extend(['UnsignedInt64', 'UInt64'])
+except(PrecisionError):
+ pass
+try:
+ UnsignedInt128 = _lookup(_code_table, "UnsignedInteger", 128)
+ UInt128 = UnsignedInt128
+ __all__.extend(['UnsignedInt128', 'UInt128'])
+except(PrecisionError):
+ pass
+UnsignedInteger = 'u'
+UInt = UnsignedInteger
+
+try:
+ Int0 = _lookup(_code_table, 'Integer', 0)
+ __all__.append('Int0')
+except(PrecisionError):
+ pass
+try:
+ Int8 = _lookup(_code_table, 'Integer', 8)
+ __all__.append('Int8')
+except(PrecisionError):
+ pass
+try:
+ Int16 = _lookup(_code_table, 'Integer', 16)
+ __all__.append('Int16')
+except(PrecisionError):
+ pass
+try:
+ Int32 = _lookup(_code_table, 'Integer', 32)
+ __all__.append('Int32')
+except(PrecisionError):
+ pass
+try:
+ Int64 = _lookup(_code_table, 'Integer', 64)
+ __all__.append('Int64')
+except(PrecisionError):
+ pass
+try:
+ Int128 = _lookup(_code_table, 'Integer', 128)
+ __all__.append('Int128')
+except(PrecisionError):
+ pass
+Int = 'l'
+
+try:
+ Float0 = _lookup(_code_table, 'Float', 0)
+ __all__.append('Float0')
+except(PrecisionError):
+ pass
+try:
+ Float8 = _lookup(_code_table, 'Float', 8)
+ __all__.append('Float8')
+except(PrecisionError):
+ pass
+try:
+ Float16 = _lookup(_code_table, 'Float', 16)
+ __all__.append('Float16')
+except(PrecisionError):
+ pass
+try:
+ Float32 = _lookup(_code_table, 'Float', 32)
+ __all__.append('Float32')
+except(PrecisionError):
+ pass
+try:
+ Float64 = _lookup(_code_table, 'Float', 64)
+ __all__.append('Float64')
+except(PrecisionError):
+ pass
+try:
+ Float128 = _lookup(_code_table, 'Float', 128)
+ __all__.append('Float128')
+except(PrecisionError):
+ pass
+Float = 'd'
+
+try:
+ Complex0 = _lookup(_code_table, 'Complex', 0)
+ __all__.append('Complex0')
+except(PrecisionError):
+ pass
+try:
+ Complex8 = _lookup(_code_table, 'Complex', 16)
+ __all__.append('Complex8')
+except(PrecisionError):
+ pass
+try:
+ Complex16 = _lookup(_code_table, 'Complex', 32)
+ __all__.append('Complex16')
+except(PrecisionError):
+ pass
+try:
+ Complex32 = _lookup(_code_table, 'Complex', 64)
+ __all__.append('Complex32')
+except(PrecisionError):
+ pass
+try:
+ Complex64 = _lookup(_code_table, 'Complex', 128)
+ __all__.append('Complex64')
+except(PrecisionError):
+ pass
+try:
+ Complex128 = _lookup(_code_table, 'Complex', 256)
+ __all__.append('Complex128')
+except(PrecisionError):
+ pass
+Complex = 'D'
+
+PyObject = 'O'