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?

Frédéric
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to