Cython has moved to github.

cython-devel

view tests/run/r_forloop.pyx @ 1500:c1a7180ac974

moved iter-range() optimisation into a transform (worth a review)
author Stefan Behnel <scoder@users.berlios.de>
date Wed Dec 17 22:29:11 2008 +0100 (3 years ago)
parents e528ab919de7
children dcb8fba30f5d
line source
1 __doc__ = u"""
2 >>> go_py()
3 Spam!
4 Spam!
5 Spam!
6 Spam!
7 >>> go_py_ret()
8 2
10 >>> go_c()
11 Spam!
12 Spam!
13 Spam!
14 Spam!
15 >>> go_c_all()
16 Spam!
17 Spam!
18 Spam!
19 >>> go_c_all_exprs(1)
20 Spam!
21 >>> go_c_all_exprs(3)
22 Spam!
23 Spam!
24 >>> go_c_calc(2)
25 Spam!
26 Spam!
27 >>> go_c_ret()
28 2
29 >>> go_c_calc_ret(2)
30 6
32 >>> go_list()
33 Spam!
34 Spam!
35 Spam!
36 Spam!
37 >>> go_list_ret()
38 2
40 >>> go_tuple()
41 Spam!
42 Spam!
43 Spam!
44 Spam!
45 >>> go_tuple_ret()
46 2
48 >>> go_dict()
49 Spam!
50 Spam!
51 Spam!
52 Spam!
53 >>> go_dict_ret()
54 2
55 """
57 def go_py():
58 for i in range(4):
59 print u"Spam!"
61 def go_py_ret():
62 for i in range(4):
63 if i > 1:
64 return i
66 def go_c():
67 cdef int i
68 for i in range(4):
69 print u"Spam!"
71 def go_c_all():
72 cdef int i
73 for i in range(8,2,-2):
74 print u"Spam!"
76 def go_c_all_exprs(x):
77 cdef int i
78 for i in range(4*x,2*x,-3):
79 print u"Spam!"
81 def f(x):
82 return 2*x
84 def go_c_calc(x):
85 cdef int i
86 for i in range(2*f(x),f(x), -2):
87 print u"Spam!"
89 def go_c_calc_ret(x):
90 cdef int i
91 for i in range(2*f(x),f(x), -2):
92 if i < 2*f(x):
93 return i
95 def go_c_ret():
96 cdef int i
97 for i in range(4):
98 if i > 1:
99 return i
101 def go_list():
102 cdef list l = range(4)
103 for i in l:
104 print u"Spam!"
106 def go_list_ret():
107 cdef list l = range(4)
108 for i in l:
109 if i > 1:
110 return i
112 def go_tuple():
113 cdef tuple t = tuple(range(4))
114 for i in t:
115 print u"Spam!"
117 def go_tuple_ret():
118 cdef tuple t = tuple(range(4))
119 for i in t:
120 if i > 1:
121 return i
123 def go_dict():
124 cdef dict d = dict(zip(range(4), range(4)))
125 for i in d:
126 print u"Spam!"
128 def go_dict_ret():
129 cdef dict d = dict(zip(range(4), range(4)))
130 for i in d:
131 if i > 1 and i < 3:
132 return i