diff options
author | Travis Oliphant <oliphant@enthought.com> | 2006-08-05 01:20:56 +0000 |
---|---|---|
committer | Travis Oliphant <oliphant@enthought.com> | 2006-08-05 01:20:56 +0000 |
commit | 9d8e2024ff9014fa2fd9a29812cec615dff6feb9 (patch) | |
tree | e6353aeb1f9f90e6011ad830a5f3b140b1120435 /numpy/oldnumeric/precision.py | |
parent | 9d98d9d5e3668d3b8da3bb3019a28d6e945d6fad (diff) | |
download | numpy-9d8e2024ff9014fa2fd9a29812cec615dff6feb9.tar.gz |
More fixes to backward compatibility
Diffstat (limited to 'numpy/oldnumeric/precision.py')
-rw-r--r-- | numpy/oldnumeric/precision.py | 167 |
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' |