Commit 5ccb7421 authored by scoder's avatar scoder Committed by GitHub

Merge pull request #2371 from gabrieldemarmiesse/test_cython_tutorial

Adding tests for "Basic tutorial"
parents 0d222d93 08563308
def primes(kmax):
result = []
if kmax > 1000:
kmax = 1000
p = [0] * 1000
k = 0
n = 2
while k < kmax:
i = 0
while i < k and n % p[i] != 0:
i += 1
if i == k:
p[k] = n
k += 1
result.append(n)
n += 1
return result
def primes_python(nb_primes):
p = []
n = 2
while len(p) < nb_primes:
# Is n prime?
for i in p:
if n % i == 0:
break
# If no break occurred in the loop
else:
p.append(n)
n += 1
return p
...@@ -263,23 +263,9 @@ just like Python does. You can deactivate those checks by using the ...@@ -263,23 +263,9 @@ just like Python does. You can deactivate those checks by using the
:ref:`compiler directives<compiler-directives>`. :ref:`compiler directives<compiler-directives>`.
Now let's see if, even if we have division checks, we obtained a boost in speed. Now let's see if, even if we have division checks, we obtained a boost in speed.
Let's write the same program, but Python-style:: Let's write the same program, but Python-style:
def primes_python(nb_primes):
p = []
n = 2
while len(p) < nb_primes:
# Is n prime?
for i in p:
if n % i == 0:
break
# If no break occurred in the loop
else:
p.append(n)
n += 1
return p
.. literalinclude:: ../../examples/tutorial/cython_tutorial/primes_python.py
It is also possible to take a plain ``.py`` file and to compile it with Cython. It is also possible to take a plain ``.py`` file and to compile it with Cython.
Let's take ``primes_python``, change the function name to ``primes_python_compiled`` and Let's take ``primes_python``, change the function name to ``primes_python_compiled`` and
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment