Skip to content

Commit

Permalink
Integrate test from quickstart.
Browse files Browse the repository at this point in the history
  • Loading branch information
robertwb committed Jun 9, 2011
1 parent 0cc67f9 commit f9a1e09
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 1 deletion.
9 changes: 9 additions & 0 deletions Demos/integrate0.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
def f(x):
return x**2-x

def integrate_f(a, b, N):
s = 0.0
dx = (b-a)/N
for i in range(N):
s += f(a+i*dx)
return s * dx
9 changes: 9 additions & 0 deletions Demos/integrate1.pyx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
def f(x):
return x**2-x

def integrate_f(a, b, N):
s = 0.0
dx = (b-a)/N
for i in range(N):
s += f(a+i*dx)
return s * dx
10 changes: 10 additions & 0 deletions Demos/integrate2.pyx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
cdef double f(double x): except? -2:
return x**2-x

def integrate_f(double a, double b, int N):
cdef int i
s = 0.0
dx = (b-a)/N
for i in range(N):
s += f(a+i*dx)
return s * dx
13 changes: 13 additions & 0 deletions Demos/integrate_timing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import timeit

import integrate0, integrate1, integrate2

number = 10
py_time = None
for m in ('integrate0', 'integrate1', 'integrate2'):
print m
t = min(timeit.repeat("integrate_f(0.0, 10.0, 10000000)", "from %s import integrate_f" % m, number=number))
if py_time is None:
py_time = t
print " ", t / number, "s"
print " ", py_time / t
2 changes: 1 addition & 1 deletion docs/src/quickstart/cythonize.rst
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ argument in order to pass it.
Therefore Cython provides a syntax for declaring a C-style function,
the cdef keyword::

cdef double f(double) except? -2:
cdef double f(double x) except? -2:
return x**2-x

Some form of except-modifier should usually be added, otherwise Cython
Expand Down

0 comments on commit f9a1e09

Please sign in to comment.