Floris van Manen <v...@klankschap.nl> added the comment:
Well, the thing is that i pass two (apparent) identical values into the same function, and get two different results. Apparent as in one value generated via np.linspace() and one directly retrieved from a list. If i pass the np variable into to function, it will generate an NAN error. If i pass the non np variable into the function, it will work. .F > On 12 Sep 2018, at 18:10, Steven D'Aprano <rep...@bugs.python.org> wrote: > > > Steven D'Aprano <steve+pyt...@pearwood.info> added the comment: > > Your code gives runtime warnings of invalid values. You should fix that. If > your values are invalid, there's probably a bug in your code. > > RuntimeWarning: invalid value encountered in double_scalars > > Your code is also very complex. You ought to simplify the example so that it > is easier to understand, all the business with linspace and duplicated code > just adds complexity and makes it hard to understand. > > I simplified your code to this: > > import numpy as np > n=2.758 > n2 = 2.0 / n > ct = np.cos(2 * np.pi * 2.0 / 5) > print("numpy", ct, abs(ct ** n2) * 5.0) > > > which gives this output: > > __main__:1: RuntimeWarning: invalid value encountered in double_scalars > ('numpy', -0.80901699437494734, nan) > > So there's a problem. You're trying to raise a negative number to a positive > value, and numpy doesn't like it and returns a NAN. > > But using the standard math library, raising a negative number to a positive > value gives you a complex number: > > ct = math.cos(2 * math.pi * 2.0 / 5) > print(ct**n2) > print("math", ct, abs(ct ** n2) * 5.0) > > > which gives this output: > > (-0.5572617094280153+0.6517928032447587j) > math -0.8090169943749473 4.287698890886272 > > So the behaviour is correct and this is not a bug in either math nor numpy. > They're just doing different things. > > ---------- > nosy: +steven.daprano > resolution: -> not a bug > stage: -> resolved > status: open -> closed > > _______________________________________ > Python tracker <rep...@bugs.python.org> > <https://bugs.python.org/issue34645> > _______________________________________ ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34645> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com