[Numpy-svn] r3812 - trunk/numpy/lib
numpy-svn at scipy.org
numpy-svn at scipy.org
Wed May 23 18:03:48 EDT 2007
Author: oliphant
Date: 2007-05-23 17:03:42 -0500 (Wed, 23 May 2007)
New Revision: 3812
Modified:
trunk/numpy/lib/getlimits.py
Log:
Fix up getlimits to work with Python2.3
Modified: trunk/numpy/lib/getlimits.py
===================================================================
--- trunk/numpy/lib/getlimits.py 2007-05-23 20:32:17 UTC (rev 3811)
+++ trunk/numpy/lib/getlimits.py 2007-05-23 22:03:42 UTC (rev 3812)
@@ -124,10 +124,14 @@
"""
+ _min_vals = {}
+ _max_vals = {}
+
def __init__(self, type):
self.dtype = N.dtype(type)
self.kind = self.dtype.kind
self.bits = self.dtype.itemsize * 8
+ self.key = "%s%d" % (self.kind, self.bits)
if not self.kind in 'iu':
raise ValueError("Invalid integer data type.")
@@ -136,16 +140,26 @@
if self.kind == 'u':
return 0
else:
- return -(1 << (self.bits-1))
+ try:
+ val = iinfo._min_vals[self.key]
+ except KeyError:
+ val = int(-(1L << (self.bits-1)))
+ iinfo._min_vals[self.key] = val
+ return val
min = property(min)
def max(self):
"""Maximum value of given dtype."""
- if self.kind == 'u':
- return (1 << self.bits) - 1
- else:
- return (1 << (self.bits-1)) - 1
+ try:
+ val = iinfo._max_vals[self.key]
+ except KeyError:
+ if self.kind == 'u':
+ val = int((1L << self.bits) - 1)
+ else:
+ val = int((1L << (self.bits-1)) - 1)
+ iinfo._max_vals[self.key] = val
+ return val
max = property(max)
More information about the Numpy-svn
mailing list