On Fri, May 10, 2013 at 10:08 AM, Frédéric Bastien <no...@nouiz.org> wrote:

> Hi,
>
> it popped again on the Theano mailing list that this don't work:
>
> np.arange(10) <= a_theano_vector.
>
> The reason is that __array_priority__ isn't respected for that class of
> operation.
>
> This page explain the problem and give a work around:
>
>
> http://stackoverflow.com/questions/14619449/how-can-i-override-comparisons-between-numpys-ndarray-and-my-type
>
> The work around is to make a python function that will decide witch
> version of the comparator to call and do the call. Then we tell NumPy to
> use that function instead of its current function with:
> np.set_numeric_ops(...)
>
> But if we do that, when we import theano, we will slow down all normal
> numpy comparison for the user, as when <= is execute, first there will be
> numpy c code executed, that will call the python function to decide witch
> version to do, then if it is 2 numpy ndarray, it will call again numpy c
> code.
>
> That isn't a good solution. We could do the same override in C, but then
> theano work the same when there isn't a c++ compiler. That isn't nice.
>
> What do you think of changing them to check for __array_priority__ before
> doing the comparison?
>

This looks like an oversight and should be fixed.

Chuck
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to