On Thu, May 28, 2015 at 1:27 AM, Sturla Molden <sturla.molden@gmail.com> wrote:
Jaime Fernández del Río <jaime.frio@gmail.com> wrote:

> ndimage is arranged in three or four layers:
>
>    1. there's a Python layer,
>    2. which calls on Python functions written in C,
>    3. which calls on C functions,
>    4. which use a few low level C "objects", which also have some hierarchy
>    among them.

> The plan we are trying to follow is:
>
>    1. Start at level 4, rewriting the lowest of the lowest C "objects."
>    This will include not just translating to Cython, but better encapsulation
>    of internal functionality, and providing a cleaner API for upstream use.

o_O

How shall I say this in a polite way?

"If this was an exam, I would have brought down the hammer and failed you."

But that is not very polite, so perhaps this:

"Please reconsider?"

You're only quoting part of the approach. The next sentence was "As soon as enough work has been done at level 4 that it can be bubbled all the way up to level 1, go ahead with the bubbling up, for 1 or 2 level 1 functions at most."

Building some of the needed low-level infrastructure and then going straight for re-implementing a first public function in Cython seems like the right approach. It's not like you can do much in ndimage without any of the existing iterators. So replacing those with usage of standard iterators in numpy makes sense.

Ralf