[Numpy-discussion] Cython numerical syntax revisited

Francesc Alted faltet at pytables.org
Thu Mar 5 03:39:29 EST 2009


A Thursday 05 March 2009, Dag Sverre Seljebotn escrigué:
> But yes, to implement that one would need to reimplement parts of
> NumPy to get it working. But because code would be generated
> specifically for the situation inline, I think it would be more like
> reimplementing Numexpr than reimplementing NumPy. I think one could
> simply invoke Numexpr as a first implementation (and make it an
> optional Cython plugin).

At first sight, having a kind of Numexpr kernel inside Cython would be 
great, but provided that you can already call Numexpr from both 
Python/Cython, I wonder which would be the advantage to do so.  As I 
see it, it would be better to have:

c = numexpr.evaluate("a + b")

in the middle of Cython code than just:

c = a + b

in the sense that the former would allow the programmer to see whether 
Numexpr is called explicitely or not.

One should not forget that Numexpr starts to be competitive only when 
expressions whose array operands+result sizes are around the CPU cache 
size or larger (unless transcental functions are used and local Numexpr 
has support for Intel VML, in which case this size can be substantially 
lower).  So, getting Numexpr (or the Cython implementation of it) 
automatically called for *every* expression should be not necessarily a 
Good Thing, IMO.

Cheers,

-- 
Francesc Alted



More information about the NumPy-Discussion mailing list