home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __all__ = [
- 'sum_flat',
- 'mean_flat',
- 'rms_flat',
- 'base_repr',
- 'binary_repr',
- 'amin',
- 'amax',
- 'amap',
- 'zeros_like',
- 'empty_like',
- 'frange',
- 'diagonal_matrix',
- 'identity',
- 'fromfunction_kw',
- 'log2',
- 'ispower2',
- 'norm',
- 'l1norm',
- 'l2norm',
- 'exp_safe',
- 'inf',
- 'infty',
- 'Infinity',
- 'Numeric']
- import __main__
- import math
- import operator
- import sys
- import Numeric
- from Numeric import *
- inf = infty = Infinity = array([
- 1]) / 0[0]
- exp_safe_MIN = math.log(2.22507e-308)
- exp_safe_MAX = 1.79769e+308
-
- def exp_safe(x):
- if type(x) is ArrayType:
- return exp(clip(x, exp_safe_MIN, exp_safe_MAX))
- return math.exp(x)
-
-
- def amap(fn, *args):
- return array(map(fn, *args))
-
-
- def amin(m, axis = 0):
- return minimum.reduce(asarray(m), axis)
-
-
- def amax(m, axis = 0):
- return maximum.reduce(asarray(m), axis)
-
-
- def zeros_like(a):
- return zeros(a.shape, a.typecode())
-
-
- def empty_like(a):
- return empty(a.shape, a.typecode())
-
-
- def sum_flat(a):
- if a.iscontiguous():
- return Numeric.sum(a.flat)
- return Numeric.sum(ravel(a))
-
-
- def mean_flat(a):
- return sum_flat(a) / float(size(a))
-
-
- def rms_flat(a):
- return math.sqrt(sum_flat(absolute(a) ** 2) / float(size(a)))
-
-
- def l1norm(a):
- return sum_flat(absolute(a))
-
-
- def l2norm(a):
- return math.sqrt(sum_flat(absolute(a) ** 2))
-
-
- def norm(a, p = 2):
- if p in ('inf', 'Infinity'):
- return max(absolute(a).flat)
- return sum_flat(absolute(a) ** p) ** (1 / p)
-
-
- def frange(xini, xfin = None, delta = None, **kw):
- kw.setdefault('closed', 1)
- endpoint = kw['closed'] != 0
- if xfin == None:
- xfin = xini + 0
- xini = 0
-
- if delta == None:
- delta = 1
-
-
- try:
- npts = kw['npts']
- delta = (xfin - xini) / float(npts - endpoint)
- except KeyError:
- npts = int(round((xfin - xini) / delta + endpoint))
-
- return arange(npts) * delta + xini
-
-
- def diagonal_matrix(diag):
- return diag * identity(len(diag))
-
-
- def identity(n, rank = 2, typecode = 'l'):
- iden = zeros((n,) * rank, typecode = typecode)
- for i in range(n):
- idx = (i,) * rank
- iden[idx] = 1
-
- return iden
-
-
- def base_repr(number, base = 2, padding = 0):
- chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
- if number < base:
- return (padding - 1) * chars[0] + chars[int(number)]
- max_exponent = int(math.log(number) / math.log(base))
- max_power = long(base) ** max_exponent
- lead_digit = int(number / max_power)
- return chars[lead_digit] + base_repr(number - max_power * lead_digit, base, max(padding - 1, max_exponent))
-
-
- def binary_repr(number, max_length = 1025):
- shifts = map(operator.rshift, max_length * [
- number], range(max_length - 1, -1, -1))
- digits = map(operator.mod, shifts, max_length * [
- 2])
- if not digits.count(1):
- return 0
- digits = digits[digits.index(1):]
- return ''.join(map(repr, digits)).replace('L', '')
-
-
- def log2(x, ln2 = math.log(2)):
-
- try:
- bin_n = binary_repr(x)[1:]
- except (AssertionError, TypeError):
- return math.log(x) / ln2
-
- if '1' in bin_n:
- return math.log(x) / ln2
- return len(bin_n)
-
-
- def ispower2(n):
- bin_n = binary_repr(n)[1:]
- if '1' in bin_n:
- return 0
- return len(bin_n)
-
-
- def fromfunction_kw(function, dimensions, **kwargs):
- return function(tuple(indices(dimensions)), **kwargs)
-
-