[Scipy-svn] r4669 - branches/fast_vectorize/examples

scipy-svn at scipy.org scipy-svn at scipy.org
Sat Aug 23 14:44:24 EDT 2008


Author: ilan
Date: 2008-08-23 13:44:21 -0500 (Sat, 23 Aug 2008)
New Revision: 4669

Added:
   branches/fast_vectorize/examples/README.txt
Removed:
   branches/fast_vectorize/examples/mandel_mkImage.py
   branches/fast_vectorize/examples/mandel_py.py
Modified:
   branches/fast_vectorize/examples/benchmark.py
   branches/fast_vectorize/examples/compdec.py
   branches/fast_vectorize/examples/primes.py
Log:
Improved documentation of the examples.

Added: branches/fast_vectorize/examples/README.txt
===================================================================
--- branches/fast_vectorize/examples/README.txt	2008-08-23 18:10:44 UTC (rev 4668)
+++ branches/fast_vectorize/examples/README.txt	2008-08-23 18:44:21 UTC (rev 4669)
@@ -0,0 +1,21 @@
+
+
+benchmark.py
+    Some speed comparisons between dirrerent ways of vectorizing
+    and calculating a simple polynom.
+
+compdec.py
+    A small example illustrates how PyPy's translator package can
+    be used to write compile decorator.
+
+mandel.py
+    A program which uses fast_vectorize to calulate an image file
+    of the well-known Mandelbort set.
+
+mandel_c.py
+    A program which illustrates how to create a Ufunc by writing
+    C code into weave.
+
+primes.py
+    A Python function for counting primes is first executed as a
+    regular function, as well as after "fast_vectorization".


Property changes on: branches/fast_vectorize/examples/benchmark.py
___________________________________________________________________
Name: svn:executable
   - *

Modified: branches/fast_vectorize/examples/compdec.py
===================================================================
--- branches/fast_vectorize/examples/compdec.py	2008-08-23 18:10:44 UTC (rev 4668)
+++ branches/fast_vectorize/examples/compdec.py	2008-08-23 18:44:21 UTC (rev 4669)
@@ -1,9 +1,10 @@
 """
-I have written a class which allows using the compiled version of a
-Python functions simply by adding a decorator to the function.
-The nice thing about doing things this way is that all the code is pure
-Python code, and switching between the compiled and uncompiled version
-of the function is as simple as possible.  
+This small example illustrates how PyPy's translator package can
+be used to write compile decorator.  This is done by a class which allows
+using the compiled version of a Python functions simply by adding a
+decorator to the function.  The nice thing about doing things this way
+is that all the code is pure Python code, and switching between the
+compiled and uncompiled version of the function is very simple.
 """
 from pypy.translator.interactive import Translation
 
@@ -22,13 +23,14 @@
 
         return self.cfunc(*args)
 
- at compdec
-def is_prime(n):
-    if n < 2:
-        return False
-    for i in xrange(2, n):
-        if n%i == 0:
+if __name__ == '__main__':
+    @compdec
+    def is_prime(n):
+        if n < 2:
             return False
-    return True
+        for i in xrange(2, n):
+            if n%i == 0:
+                return False
+        return True
 
-print sum(is_prime(n) for n in xrange(100000))
+    print sum(is_prime(n) for n in xrange(100000))

Deleted: branches/fast_vectorize/examples/mandel_mkImage.py
===================================================================
--- branches/fast_vectorize/examples/mandel_mkImage.py	2008-08-23 18:10:44 UTC (rev 4668)
+++ branches/fast_vectorize/examples/mandel_mkImage.py	2008-08-23 18:44:21 UTC (rev 4669)
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-
-# Before running this be sure to apply Travis Oliphant's patch to PIL:
-# http://www.scipy.org/Cookbook/PIL
-
-from numpy import asarray, concatenate, ogrid, uint8
-from PIL import Image
-
-
-import sys
-sys.path.append('../mkufunc')
-from fast_vectorize import fast_vectorize
-
-
-from mandel_c import mandel
-
-
- at fast_vectorize(int)
-def red(i):
-    if i == -1: return 0
-    return (i * 5) % 256
-
- at fast_vectorize(int)
-def green(i):
-    if i == -1: return 0
-    return (i % 16) * 15
-
- at fast_vectorize(int)
-def blue(i):
-    if i == -1: return 0
-    return 255
-
-
-w, h = 1200, 900
-
-y, x = ogrid[-1.5:+1.5:h*1j, -2.75:+1.15:w*1j]
-
-mand = mandel(x, y)
-
-r = asarray(red(mand),   dtype=uint8).reshape(h, w, 1)
-g = asarray(green(mand), dtype=uint8).reshape(h, w, 1)
-b = asarray(blue(mand),  dtype=uint8).reshape(h, w, 1)
-
-a = concatenate((r, g, b), axis=2).reshape(h, w, 3)
-
-im = Image.fromarray(a)
-im.save('mandel.png')

Deleted: branches/fast_vectorize/examples/mandel_py.py
===================================================================
--- branches/fast_vectorize/examples/mandel_py.py	2008-08-23 18:10:44 UTC (rev 4668)
+++ branches/fast_vectorize/examples/mandel_py.py	2008-08-23 18:44:21 UTC (rev 4669)
@@ -1,36 +0,0 @@
-#!/usr/bin/env python
-from numpy import array
-
-import sys
-sys.path.append('../mkufunc')
-from fast_vectorize import fast_vectorize
-
-
-D = 1000
-
-
- at fast_vectorize([(float, float, int)])
-def mandel(cr, ci):
-    d = 1
-    zr = cr
-    zi = ci
-    for d in xrange(1, D):
-        zr2 = zr * zr
-        zi2 = zi * zi
-        if zr2 + zi2 > 16:
-            return d
-        zi = 2.0 * zr * zi + ci
-        zr = zr2 - zi2 + cr
-    else:
-        return -1
-
-
-
-if __name__ == '__main__':
-
-    assert mandel(-1, .3) == 36
-    assert mandel(0, 0) == -1
-    assert mandel(10, 10) == 1
-    assert (mandel(array([-1, 0, 10]), array([.3, 0, 10])) ==
-            array([36, -1,  1])).all()
-    


Property changes on: branches/fast_vectorize/examples/primes.py
___________________________________________________________________
Name: svn:executable
   - *




More information about the Scipy-svn mailing list