[SciPy-user] Finding complex roots of complex polynomials in newscipy
Fernando Perez
Fernando.Perez at colorado.edu
Sun Nov 13 01:48:03 CST 2005
Andrew D wrote:
> Hello,
> I'm using an up-to-date build of newcore and newscipy (newcore
> 1467, newscipy 1431) on Red Hat Enterprise Linux WS release 3 (Taroon
> Update 6) running on a Pentium 4.
> Is this a known problem? The culprit seems to be the lines 103-105 in
> polynomial.py:
> # casting: if incoming array isn't floating point, make it floating
> point.
> if not isinstance(p.dtype, (NX.floating, NX.complexfloating)):
> p = p.astype(float)
>
> which force p to be real, if it is complex, even though it appears
> that they should leave things be if they are complex.
I tracked this down to the following behavior in the scipy type hierarchy.
This looks to me like a bug, unless I'm missing something:
In [14]: zarr = scipy.array([1j,2j])
In [15]: zarr.dtype
Out[15]: <type 'complex128_arrtype'>
In [16]: isinstance(zarr.dtype,scipy.complexfloating)
Out[16]: False
I don't know the type inheritance code at all, and a bit of grepping didn't
point me quite in the right direction. I'll keep looking, but I want to
narrow down the bug so that perhaps someone who knows this code well can fix
this one quickly. I should mention that at least the hunt for this problem
led me to fixing a bug in ipython related to embedding, so the work wasn't in
vain :)
Cheers,
f
More information about the SciPy-user
mailing list