On Tue, Apr 5, 2011 at 3:51 AM, Stefan Behnel <stefan...@behnel.de> wrote: > mark florisson, 04.04.2011 21:26: >> >> For clarity, I'll add an example: >> >> def f(np.ndarray[double] x, double alpha): >> cdef double s = 0 >> cdef double tmp = 2 >> cdef double other = 6.6 >> >> with nogil: >> for i in prange(x.shape[0]): >> # reading 'tmp' makes it firstprivate in addition to >> lastprivate >> # 'other' is only ever read, so it's shared >> printf("%lf %lf %lf\n", tmp, s, other) > > So, adding a printf() to your code can change the semantics of your > variables? That sounds like a really bad design to me.
That's what I was thinking. Basically, if you do an inlace operation, then it's a reduction variable, no matter what else you do to it (including possibly a direct assignment, though we could make that a compile-time error). - Robert _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel