def getdtype(dtype, a=None, default=None): """Function used to simplify argument processing. If 'dtype' is not specified (is None), returns a.dtype; otherwise returns a np.dtype object created from the specified dtype argument. If 'dtype' and 'a' are both None, construct a data type out of the 'default' parameter. Furthermore, 'dtype' must be in 'allowed' set. """ #TODO is this really what we want? canCast = True if dtype is None: try: newdtype = a.dtype except AttributeError: if default is not None: newdtype = np.dtype(default) canCast = False else: raise TypeError, "could not interpret data type" else: newdtype = np.dtype(dtype) return newdtype
def asfptype(self): """Upcast matrix to a floating point format (if necessary)""" fp_types = ['f','d','F','D'] if self.dtype.char in fp_types: return self else: for fp_type in fp_types: if self.dtype <= np.dtype(fp_type): return self.astype(fp_type) raise TypeError,'cannot upcast [%s] to a floating \ point format' % self.dtype.name