PR for complex np.interp, question about assert_almost_equal

Hi all, I submitted a PR (#6872) for using complex numbers in np.lib.interp. The tests pass on my machine, but I see that the TravisCI builds are giving assertion fails (on my own test) with python 3.3 and 3.5 of the form:
assert_almost_equal TypeError: Cannot cast array data from dtype('complex128') to dtype('float64') according to the rule 'safe'
When I was writing the test I used np.testing.assert_almost_equal with complex128 as it works in my python 2.7, however having checked the docstring I cannot tell what the expected behaviour should be (complex or no complex allowed). Should my test be changed or the assert_almost_equal? Best, Peter

On Tue, Dec 22, 2015 at 12:55 AM, Peter Creasey < p.e.creasey.00@googlemail.com> wrote:
Hi Peter, that error is unrelated to assert_almost_equal. What happens is that when you pass in a complex argument `fp` to your modified `compiled_interp`, you're somewhere doing a cast that's not safe and trigger the error at https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/ctors.c.... For what "safe casting" means, see http://docs.scipy.org/doc/numpy/reference/generated/numpy.can_cast.html Ralf

On Tue, Dec 22, 2015 at 7:42 AM, Ralf Gommers <ralf.gommers@gmail.com> wrote:
The problem then is probably here <https://github.com/numpy/numpy/pull/6872/files#diff-45aacfd88a495829ee10815c...> . You may want to throw in a PyErr_Clear() <https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Clear> when the conversion of the fp array to NPY_DOUBLE fails before trying with NPY_CDOUBLE, and check if it goes away. Jaime -- (\__/) ( O.o) ( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus planes de dominación mundial.

On Tue, Dec 22, 2015 at 12:55 AM, Peter Creasey < p.e.creasey.00@googlemail.com> wrote:
Hi Peter, that error is unrelated to assert_almost_equal. What happens is that when you pass in a complex argument `fp` to your modified `compiled_interp`, you're somewhere doing a cast that's not safe and trigger the error at https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/ctors.c.... For what "safe casting" means, see http://docs.scipy.org/doc/numpy/reference/generated/numpy.can_cast.html Ralf

On Tue, Dec 22, 2015 at 7:42 AM, Ralf Gommers <ralf.gommers@gmail.com> wrote:
The problem then is probably here <https://github.com/numpy/numpy/pull/6872/files#diff-45aacfd88a495829ee10815c...> . You may want to throw in a PyErr_Clear() <https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Clear> when the conversion of the fp array to NPY_DOUBLE fails before trying with NPY_CDOUBLE, and check if it goes away. Jaime -- (\__/) ( O.o) ( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus planes de dominación mundial.
participants (3)
-
Jaime Fernández del Río
-
Peter Creasey
-
Ralf Gommers