def plotvector(self, vector, amp=None, color='red', device='/XWIN', step=0): """ dftvector.plotvector(vector, amp=None, color='red', device='/XWIN', step=0) Plot 'vector' in the complex plane. """ x = Numeric.zeros(self.numvect+1, 'd') y = Numeric.zeros(self.numvect+1, 'd') x[1:] = vector.real y[1:] = vector.imag if not amp: amp = 1.1 * umath.maximum(max(umath.absolute(x)), max(umath.absolute(y))) if step: for ii in range(self.numvect): sleep(0.01) plotxy(y[ii:ii+2], x[ii:ii+2], rangex=[-amp, amp], rangey=[-amp, amp], labx='Real Amplitude', laby='Imaginary Amplitude', color=color, aspect=1.0) else: plotxy(y, x, rangex=[-amp, amp], rangey=[-amp, amp], labx='Real Amplitude', laby='Imaginary Amplitude', color=color, aspect=1.0)
def plotvector(self, vector, amp=None, color='red', device='/XWIN', step=0): """ dftvector.plotvector(vector, amp=None, color='red', device='/XWIN', step=0) Plot 'vector' in the complex plane. """ x = Numeric.zeros(self.numvect+1, 'd') y = Numeric.zeros(self.numvect+1, 'd') x[1:] = vector.real y[1:] = vector.imag if not amp: amp = 1.1 * umath.maximum(max(umath.absolute(x)), max(umath.absolute(y))) if step: for ii in xrange(self.numvect): sleep(0.01) plotxy(y[ii:ii+2], x[ii:ii+2], rangex=[-amp, amp], rangey=[-amp, amp], labx='Real Amplitude', laby='Imaginary Amplitude', color=color, aspect=1.0) else: plotxy(y, x, rangex=[-amp, amp], rangey=[-amp, amp], labx='Real Amplitude', laby='Imaginary Amplitude', color=color, aspect=1.0)
def _floatFormat(data, precision, suppress_small, sign=0): exp_format = 0 errstate = _gen.seterr(all='ignore') non_zero = _uf.absolute(data.compress(_uf.not_equal(data, 0))) ##non_zero = _numeric_compress(data) ## if len(non_zero) == 0: max_val = 0. min_val = 0. else: max_val = max_reduce(non_zero) min_val = min_reduce(non_zero) if max_val >= 1.e8: exp_format = 1 if not suppress_small and (min_val < 0.0001 or max_val / min_val > 1000.): exp_format = 1 _gen.seterr(**errstate) if exp_format: large_exponent = 0 < min_val < 1e-99 or max_val >= 1e100 max_str_len = 8 + precision + large_exponent if sign: format = '%+' else: format = '%' format = format + str(max_str_len) + '.' + str(precision) + 'e' if large_exponent: format = format + '3' else: format = '%.' + str(precision) + 'f' precision = min(precision, max([_digits(x, precision, format) for x in data])) max_str_len = len(str(int(max_val))) + precision + 2 if sign: format = '%#+' else: format = '%#' format = format + str(max_str_len) + '.' + str(precision) + 'f' return format
def _floatFormat(data, precision, suppress_small, sign = 0): exp_format = 0 errstate = _gen.seterr(all='ignore') non_zero = _uf.absolute(data.compress(_uf.not_equal(data, 0))) ##non_zero = _numeric_compress(data) ## if len(non_zero) == 0: max_val = 0. min_val = 0. else: max_val = max_reduce(non_zero) min_val = min_reduce(non_zero) if max_val >= 1.e8: exp_format = 1 if not suppress_small and (min_val < 0.0001 or max_val/min_val > 1000.): exp_format = 1 _gen.seterr(**errstate) if exp_format: large_exponent = 0 < min_val < 1e-99 or max_val >= 1e100 max_str_len = 8 + precision + large_exponent if sign: format = '%+' else: format = '%' format = format + str(max_str_len) + '.' + str(precision) + 'e' if large_exponent: format = format + '3' else: format = '%.' + str(precision) + 'f' precision = min(precision, max([_digits(x, precision, format) for x in data])) max_str_len = len(str(int(max_val))) + precision + 2 if sign: format = '%#+' else: format = '%#' format = format + str(max_str_len) + '.' + str(precision) + 'f' return format
def fillFormat(self, data): import numeric as _nc errstate = _nc.seterr(all='ignore') try: special = isnan(data) | isinf(data) | isna(data) special[isna(data)] = False valid = not_equal(data, 0) & ~special valid[isna(data)] = False non_zero = absolute(data.compress(valid)) if len(non_zero) == 0: max_val = 0. min_val = 0. else: max_val = maximum.reduce(non_zero, skipna=True) min_val = minimum.reduce(non_zero, skipna=True) if max_val >= 1.e8: self.exp_format = True if not self.suppress_small and (min_val < 0.0001 or max_val/min_val > 1000.): self.exp_format = True finally: _nc.seterr(**errstate) if self.exp_format: self.large_exponent = 0 < min_val < 1e-99 or max_val >= 1e100 self.max_str_len = 8 + self.precision if self.large_exponent: self.max_str_len += 1 if self.sign: format = '%+' else: format = '%' format = format + '%d.%de' % (self.max_str_len, self.precision) else: format = '%%.%df' % (self.precision,) if len(non_zero): precision = max([_digits(x, self.precision, format) for x in non_zero]) else: precision = 0 precision = min(self.precision, precision) self.max_str_len = len(str(int(max_val))) + precision + 2 if _nc.any(special): self.max_str_len = max(self.max_str_len, len(_nan_str), len(_inf_str)+1, len(_na_str)) if self.sign: format = '%#+' else: format = '%#' format = format + '%d.%df' % (self.max_str_len, precision) self.special_fmt = '%%%ds' % (self.max_str_len,) self.format = format
def fillFormat(self, data): import numeric as _nc errstate = _nc.seterr(all='ignore') try: special = isnan(data) | isinf(data) | isna(data) special[isna(data)] = False valid = not_equal(data, 0) & ~special valid[isna(data)] = False non_zero = absolute(data.compress(valid)) if len(non_zero) == 0: max_val = 0. min_val = 0. else: max_val = maximum.reduce(non_zero, skipna=True) min_val = minimum.reduce(non_zero, skipna=True) if max_val >= 1.e8: self.exp_format = True if not self.suppress_small and (min_val < 0.0001 or max_val / min_val > 1000.): self.exp_format = True finally: _nc.seterr(**errstate) if self.exp_format: self.large_exponent = 0 < min_val < 1e-99 or max_val >= 1e100 self.max_str_len = 8 + self.precision if self.large_exponent: self.max_str_len += 1 if self.sign: format = '%+' else: format = '%' format = format + '%d.%de' % (self.max_str_len, self.precision) else: format = '%%.%df' % (self.precision, ) if len(non_zero): precision = max( [_digits(x, self.precision, format) for x in non_zero]) else: precision = 0 precision = min(self.precision, precision) self.max_str_len = len(str(int(max_val))) + precision + 2 if _nc.any(special): self.max_str_len = max(self.max_str_len, len(_nan_str), len(_inf_str) + 1, len(_na_str)) if self.sign: format = '%#+' else: format = '%#' format = format + '%d.%df' % (self.max_str_len, precision) self.special_fmt = '%%%ds' % (self.max_str_len, ) self.format = format
def vector_amplitude(vector): return umath.absolute(vector[-1])
def maxamplitude(self): """ dftvector.maxamplitude(): Return the maximum possible amplitude for a dftvector. """ return umath.add.reduce(umath.absolute(self.components))