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