home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 January / maximum-cd-2011-01.iso / DiscContents / calibre-0.7.26.msi / file_1969 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-10-31  |  5.7 KB  |  170 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __all__ = [
  5.     'sum_flat',
  6.     'mean_flat',
  7.     'rms_flat',
  8.     'base_repr',
  9.     'binary_repr',
  10.     'amin',
  11.     'amax',
  12.     'amap',
  13.     'zeros_like',
  14.     'empty_like',
  15.     'frange',
  16.     'diagonal_matrix',
  17.     'identity',
  18.     'fromfunction_kw',
  19.     'log2',
  20.     'ispower2',
  21.     'norm',
  22.     'l1norm',
  23.     'l2norm',
  24.     'exp_safe',
  25.     'inf',
  26.     'infty',
  27.     'Infinity',
  28.     'Numeric']
  29. import __main__
  30. import math
  31. import operator
  32. import sys
  33. import Numeric
  34. from Numeric import *
  35. inf = infty = Infinity = array([
  36.     1]) / 0[0]
  37. exp_safe_MIN = math.log(2.22507e-308)
  38. exp_safe_MAX = 1.79769e+308
  39.  
  40. def exp_safe(x):
  41.     if type(x) is ArrayType:
  42.         return exp(clip(x, exp_safe_MIN, exp_safe_MAX))
  43.     return math.exp(x)
  44.  
  45.  
  46. def amap(fn, *args):
  47.     return array(map(fn, *args))
  48.  
  49.  
  50. def amin(m, axis = 0):
  51.     return minimum.reduce(asarray(m), axis)
  52.  
  53.  
  54. def amax(m, axis = 0):
  55.     return maximum.reduce(asarray(m), axis)
  56.  
  57.  
  58. def zeros_like(a):
  59.     return zeros(a.shape, a.typecode())
  60.  
  61.  
  62. def empty_like(a):
  63.     return empty(a.shape, a.typecode())
  64.  
  65.  
  66. def sum_flat(a):
  67.     if a.iscontiguous():
  68.         return Numeric.sum(a.flat)
  69.     return Numeric.sum(ravel(a))
  70.  
  71.  
  72. def mean_flat(a):
  73.     return sum_flat(a) / float(size(a))
  74.  
  75.  
  76. def rms_flat(a):
  77.     return math.sqrt(sum_flat(absolute(a) ** 2) / float(size(a)))
  78.  
  79.  
  80. def l1norm(a):
  81.     return sum_flat(absolute(a))
  82.  
  83.  
  84. def l2norm(a):
  85.     return math.sqrt(sum_flat(absolute(a) ** 2))
  86.  
  87.  
  88. def norm(a, p = 2):
  89.     if p in ('inf', 'Infinity'):
  90.         return max(absolute(a).flat)
  91.     return sum_flat(absolute(a) ** p) ** (1 / p)
  92.  
  93.  
  94. def frange(xini, xfin = None, delta = None, **kw):
  95.     kw.setdefault('closed', 1)
  96.     endpoint = kw['closed'] != 0
  97.     if xfin == None:
  98.         xfin = xini + 0
  99.         xini = 0
  100.     
  101.     if delta == None:
  102.         delta = 1
  103.     
  104.     
  105.     try:
  106.         npts = kw['npts']
  107.         delta = (xfin - xini) / float(npts - endpoint)
  108.     except KeyError:
  109.         npts = int(round((xfin - xini) / delta + endpoint))
  110.  
  111.     return arange(npts) * delta + xini
  112.  
  113.  
  114. def diagonal_matrix(diag):
  115.     return diag * identity(len(diag))
  116.  
  117.  
  118. def identity(n, rank = 2, typecode = 'l'):
  119.     iden = zeros((n,) * rank, typecode = typecode)
  120.     for i in range(n):
  121.         idx = (i,) * rank
  122.         iden[idx] = 1
  123.     
  124.     return iden
  125.  
  126.  
  127. def base_repr(number, base = 2, padding = 0):
  128.     chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  129.     if number < base:
  130.         return (padding - 1) * chars[0] + chars[int(number)]
  131.     max_exponent = int(math.log(number) / math.log(base))
  132.     max_power = long(base) ** max_exponent
  133.     lead_digit = int(number / max_power)
  134.     return chars[lead_digit] + base_repr(number - max_power * lead_digit, base, max(padding - 1, max_exponent))
  135.  
  136.  
  137. def binary_repr(number, max_length = 1025):
  138.     shifts = map(operator.rshift, max_length * [
  139.         number], range(max_length - 1, -1, -1))
  140.     digits = map(operator.mod, shifts, max_length * [
  141.         2])
  142.     if not digits.count(1):
  143.         return 0
  144.     digits = digits[digits.index(1):]
  145.     return ''.join(map(repr, digits)).replace('L', '')
  146.  
  147.  
  148. def log2(x, ln2 = math.log(2)):
  149.     
  150.     try:
  151.         bin_n = binary_repr(x)[1:]
  152.     except (AssertionError, TypeError):
  153.         return math.log(x) / ln2
  154.  
  155.     if '1' in bin_n:
  156.         return math.log(x) / ln2
  157.     return len(bin_n)
  158.  
  159.  
  160. def ispower2(n):
  161.     bin_n = binary_repr(n)[1:]
  162.     if '1' in bin_n:
  163.         return 0
  164.     return len(bin_n)
  165.  
  166.  
  167. def fromfunction_kw(function, dimensions, **kwargs):
  168.     return function(tuple(indices(dimensions)), **kwargs)
  169.  
  170.