Should numpy.sqrt(-1) return 1j rather than nan?

Stefan van der Walt stefan at sun.ac.za
Wed Oct 11 19:07:05 EDT 2006


On Wed, Oct 11, 2006 at 03:37:34PM -0600, Fernando Perez wrote:
> On 10/11/06, Travis Oliphant <oliphant at ee.byu.edu> wrote:
> 
> > pearu at cens.ioc.ee wrote:
> > >Could sqrt(-1) made to return 1j again?
> > >
> > Not in NumPy.  But, in scipy it could.
> 
> Without taking sides on which way to go, I'd like to -1 the idea of a
> difference in behavior between numpy and scipy.
> 
> IMHO, scipy should be within reason a strict superset of numpy.
> Gratuitious differences in behavior like this one are going to drive
> us all mad.
> 
> There are people who import scipy for everything, others distinguish
> between numpy and scipy, others use numpy alone and at some point in
> their life's code they do
> 
> import numpy as N -> import scipy as N
> 
> because they start needing stuff not in plain numpy.  Having different
> APIs and behaviors appear there is, I think, a Seriously Bad Idea
> (TM).

I agree with Fernando on this one.

Further, if I understand correctly, changing sqrt and power to give
the right answer by default will slow things down somewhat.  But is it
worth sacrificing intuitive usage for speed?

N.power(2,-2) == 0

and

N.sqrt(-1) == nan

just doesn't feel right.  Why not then have

N.power(2,-2) == 0.24
N.sqrt(-1) == 1j

and write a special function that does fast calculation of
square-roots for positive values?

Cheers
Stéfan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642




More information about the NumPy-Discussion mailing list