Why does (inf + 0j)*1 evaluate to inf + nanj?What does ** (double star/asterisk) and * (star/asterisk) do for parameters?What does the “yield” keyword do?Does Python have a ternary conditional operator?What does if __name__ == “__main__”: do?Python join: why is it string.join(list) instead of list.join(string)?What is the rationale for all comparisons returning false for IEEE754 NaN values?Does Python have a string 'contains' substring method?Why is reading lines from stdin much slower in C++ than Python?Why is “1000000000000000 in range(1000000000000001)” so fast in Python 3?
Can an integer optimization problem be convex?
Is "ln" (natural log) and "log" the same thing if used in this answer?
How to deal with my team leader who keeps calling me about project updates even though I am on leave for personal reasons?
Is it more effective to add yeast before or after kneading?
On the meaning of 'anyways' in "What Exactly Is a Quartz Crystal, Anyways?"
Why weren't the Death Star plans transmitted electronically?
Magneto 2 How to call Helper function in observer file
What is the need of methods like GET and POST in the HTTP protocol?
2000s Animated TV show where teenagers could physically go into a virtual world
Do we have any particular tonal center in mind when we are NOT listening music?
How do I deal with too many NPCs in my campaign?
What is the size of a set of sets of the empty set , , ?
Extruding snaps back
Writing a letter of recommendation for a mediocre student
Why does (inf + 0j)*1 evaluate to inf + nanj?
What do you do if you have developments on your paper during the long peer review process?
Co-Supervisor comes to office to help her students which distracts me
Order of ingredients when making Pizza dough
When is it acceptable to write a bad letter of recommendation?
Are lawyers allowed to come to agreements with opposing lawyers without the client's knowledge or consent?
What can a pilot do if an air traffic controller is incapacitated?
Examples of "unsuccessful" theories with afterlives
What benefits does the Power Word Kill spell have?
I reverse the source code, you negate the input!
Why does (inf + 0j)*1 evaluate to inf + nanj?
What does ** (double star/asterisk) and * (star/asterisk) do for parameters?What does the “yield” keyword do?Does Python have a ternary conditional operator?What does if __name__ == “__main__”: do?Python join: why is it string.join(list) instead of list.join(string)?What is the rationale for all comparisons returning false for IEEE754 NaN values?Does Python have a string 'contains' substring method?Why is reading lines from stdin much slower in C++ than Python?Why is “1000000000000000 in range(1000000000000001)” so fast in Python 3?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
>>> from numpy import inf, nan
>>> z = (inf+0j)*1
(inf+nanj)
Why? This caused a nasty bug in my code.
Why isn't 1
the multiplicative identity, giving (inf + 0j)
?
python numpy nan ieee-754
add a comment
|
>>> from numpy import inf, nan
>>> z = (inf+0j)*1
(inf+nanj)
Why? This caused a nasty bug in my code.
Why isn't 1
the multiplicative identity, giving (inf + 0j)
?
python numpy nan ieee-754
add a comment
|
>>> from numpy import inf, nan
>>> z = (inf+0j)*1
(inf+nanj)
Why? This caused a nasty bug in my code.
Why isn't 1
the multiplicative identity, giving (inf + 0j)
?
python numpy nan ieee-754
>>> from numpy import inf, nan
>>> z = (inf+0j)*1
(inf+nanj)
Why? This caused a nasty bug in my code.
Why isn't 1
the multiplicative identity, giving (inf + 0j)
?
python numpy nan ieee-754
python numpy nan ieee-754
edited 11 mins ago
Peter Cordes
158k23 gold badges254 silver badges406 bronze badges
158k23 gold badges254 silver badges406 bronze badges
asked 10 hours ago
marnixmarnix
1076 bronze badges
1076 bronze badges
add a comment
|
add a comment
|
2 Answers
2
active
oldest
votes
The 1
is converted to a complex number first, 1 + 0j
, which then leads to an inf * 0
multiplication, resulting in a nan
.
(inf + 0j) * 1
(inf + 0j) * (1 + 0j)
inf * 1 + inf * 0j + 0j * 1 + 0j * 0j
# ^ this is where it comes from
inf + nan j + 0j + 0
inf + nan j
3
For answering the question "why...?", probably the important most step is the first one, where1
is cast to1 + 0j
.
– Warren Weckesser
10 hours ago
add a comment
|
To find the "true" reason---as opposed to the purely mechanical reason given in the accepted answer---one probably has to start with something like https://math.stackexchange.com/q/628947
A previous version of the question title was worded "Why is (inf + 0j)*1 == inf + nanj?"
That is not in fact the case because nan == nan
is false:
from math import inf
(inf+0j)*1==complex("inf+nanj")
# False
1
Yeah, becausenan != nan
. I understand that this answer is half-joking, but I fail to see why it should be helpful to the OP the way it's written.
– cmaster
2 hours ago
Why don't you heros take a step back and ask yourselves why you seem uncapable of venting your righteous indignation without patronizing the OP? And if---one may hope---you come to conclude it is yourself who do not follow, there is no shame in asking.
– Paul Panzer
20 mins ago
Given that the code in the question body wasn't actually using==
(and given they accepted the other answer), it seems it was just a problem of how the OP expressed the title. I reworded the title to fix that inconsistency. (Intentionally invaliding the first half of this answer because I agree with @cmaster: that isn't what this question was asking about).
– Peter Cordes
8 mins ago
Is there a multiplicative identity for complex numbers that does work oninf + 0j
?
– Peter Cordes
4 mins ago
add a comment
|
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f58031966%2fwhy-does-inf-0j1-evaluate-to-inf-nanj%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The 1
is converted to a complex number first, 1 + 0j
, which then leads to an inf * 0
multiplication, resulting in a nan
.
(inf + 0j) * 1
(inf + 0j) * (1 + 0j)
inf * 1 + inf * 0j + 0j * 1 + 0j * 0j
# ^ this is where it comes from
inf + nan j + 0j + 0
inf + nan j
3
For answering the question "why...?", probably the important most step is the first one, where1
is cast to1 + 0j
.
– Warren Weckesser
10 hours ago
add a comment
|
The 1
is converted to a complex number first, 1 + 0j
, which then leads to an inf * 0
multiplication, resulting in a nan
.
(inf + 0j) * 1
(inf + 0j) * (1 + 0j)
inf * 1 + inf * 0j + 0j * 1 + 0j * 0j
# ^ this is where it comes from
inf + nan j + 0j + 0
inf + nan j
3
For answering the question "why...?", probably the important most step is the first one, where1
is cast to1 + 0j
.
– Warren Weckesser
10 hours ago
add a comment
|
The 1
is converted to a complex number first, 1 + 0j
, which then leads to an inf * 0
multiplication, resulting in a nan
.
(inf + 0j) * 1
(inf + 0j) * (1 + 0j)
inf * 1 + inf * 0j + 0j * 1 + 0j * 0j
# ^ this is where it comes from
inf + nan j + 0j + 0
inf + nan j
The 1
is converted to a complex number first, 1 + 0j
, which then leads to an inf * 0
multiplication, resulting in a nan
.
(inf + 0j) * 1
(inf + 0j) * (1 + 0j)
inf * 1 + inf * 0j + 0j * 1 + 0j * 0j
# ^ this is where it comes from
inf + nan j + 0j + 0
inf + nan j
edited 10 hours ago
Engineero
7,3543 gold badges26 silver badges52 bronze badges
7,3543 gold badges26 silver badges52 bronze badges
answered 10 hours ago
MaratMarat
4,9671 gold badge20 silver badges34 bronze badges
4,9671 gold badge20 silver badges34 bronze badges
3
For answering the question "why...?", probably the important most step is the first one, where1
is cast to1 + 0j
.
– Warren Weckesser
10 hours ago
add a comment
|
3
For answering the question "why...?", probably the important most step is the first one, where1
is cast to1 + 0j
.
– Warren Weckesser
10 hours ago
3
3
For answering the question "why...?", probably the important most step is the first one, where
1
is cast to 1 + 0j
.– Warren Weckesser
10 hours ago
For answering the question "why...?", probably the important most step is the first one, where
1
is cast to 1 + 0j
.– Warren Weckesser
10 hours ago
add a comment
|
To find the "true" reason---as opposed to the purely mechanical reason given in the accepted answer---one probably has to start with something like https://math.stackexchange.com/q/628947
A previous version of the question title was worded "Why is (inf + 0j)*1 == inf + nanj?"
That is not in fact the case because nan == nan
is false:
from math import inf
(inf+0j)*1==complex("inf+nanj")
# False
1
Yeah, becausenan != nan
. I understand that this answer is half-joking, but I fail to see why it should be helpful to the OP the way it's written.
– cmaster
2 hours ago
Why don't you heros take a step back and ask yourselves why you seem uncapable of venting your righteous indignation without patronizing the OP? And if---one may hope---you come to conclude it is yourself who do not follow, there is no shame in asking.
– Paul Panzer
20 mins ago
Given that the code in the question body wasn't actually using==
(and given they accepted the other answer), it seems it was just a problem of how the OP expressed the title. I reworded the title to fix that inconsistency. (Intentionally invaliding the first half of this answer because I agree with @cmaster: that isn't what this question was asking about).
– Peter Cordes
8 mins ago
Is there a multiplicative identity for complex numbers that does work oninf + 0j
?
– Peter Cordes
4 mins ago
add a comment
|
To find the "true" reason---as opposed to the purely mechanical reason given in the accepted answer---one probably has to start with something like https://math.stackexchange.com/q/628947
A previous version of the question title was worded "Why is (inf + 0j)*1 == inf + nanj?"
That is not in fact the case because nan == nan
is false:
from math import inf
(inf+0j)*1==complex("inf+nanj")
# False
1
Yeah, becausenan != nan
. I understand that this answer is half-joking, but I fail to see why it should be helpful to the OP the way it's written.
– cmaster
2 hours ago
Why don't you heros take a step back and ask yourselves why you seem uncapable of venting your righteous indignation without patronizing the OP? And if---one may hope---you come to conclude it is yourself who do not follow, there is no shame in asking.
– Paul Panzer
20 mins ago
Given that the code in the question body wasn't actually using==
(and given they accepted the other answer), it seems it was just a problem of how the OP expressed the title. I reworded the title to fix that inconsistency. (Intentionally invaliding the first half of this answer because I agree with @cmaster: that isn't what this question was asking about).
– Peter Cordes
8 mins ago
Is there a multiplicative identity for complex numbers that does work oninf + 0j
?
– Peter Cordes
4 mins ago
add a comment
|
To find the "true" reason---as opposed to the purely mechanical reason given in the accepted answer---one probably has to start with something like https://math.stackexchange.com/q/628947
A previous version of the question title was worded "Why is (inf + 0j)*1 == inf + nanj?"
That is not in fact the case because nan == nan
is false:
from math import inf
(inf+0j)*1==complex("inf+nanj")
# False
To find the "true" reason---as opposed to the purely mechanical reason given in the accepted answer---one probably has to start with something like https://math.stackexchange.com/q/628947
A previous version of the question title was worded "Why is (inf + 0j)*1 == inf + nanj?"
That is not in fact the case because nan == nan
is false:
from math import inf
(inf+0j)*1==complex("inf+nanj")
# False
edited 6 mins ago
Peter Cordes
158k23 gold badges254 silver badges406 bronze badges
158k23 gold badges254 silver badges406 bronze badges
answered 9 hours ago
Paul PanzerPaul Panzer
35.6k2 gold badges23 silver badges54 bronze badges
35.6k2 gold badges23 silver badges54 bronze badges
1
Yeah, becausenan != nan
. I understand that this answer is half-joking, but I fail to see why it should be helpful to the OP the way it's written.
– cmaster
2 hours ago
Why don't you heros take a step back and ask yourselves why you seem uncapable of venting your righteous indignation without patronizing the OP? And if---one may hope---you come to conclude it is yourself who do not follow, there is no shame in asking.
– Paul Panzer
20 mins ago
Given that the code in the question body wasn't actually using==
(and given they accepted the other answer), it seems it was just a problem of how the OP expressed the title. I reworded the title to fix that inconsistency. (Intentionally invaliding the first half of this answer because I agree with @cmaster: that isn't what this question was asking about).
– Peter Cordes
8 mins ago
Is there a multiplicative identity for complex numbers that does work oninf + 0j
?
– Peter Cordes
4 mins ago
add a comment
|
1
Yeah, becausenan != nan
. I understand that this answer is half-joking, but I fail to see why it should be helpful to the OP the way it's written.
– cmaster
2 hours ago
Why don't you heros take a step back and ask yourselves why you seem uncapable of venting your righteous indignation without patronizing the OP? And if---one may hope---you come to conclude it is yourself who do not follow, there is no shame in asking.
– Paul Panzer
20 mins ago
Given that the code in the question body wasn't actually using==
(and given they accepted the other answer), it seems it was just a problem of how the OP expressed the title. I reworded the title to fix that inconsistency. (Intentionally invaliding the first half of this answer because I agree with @cmaster: that isn't what this question was asking about).
– Peter Cordes
8 mins ago
Is there a multiplicative identity for complex numbers that does work oninf + 0j
?
– Peter Cordes
4 mins ago
1
1
Yeah, because
nan != nan
. I understand that this answer is half-joking, but I fail to see why it should be helpful to the OP the way it's written.– cmaster
2 hours ago
Yeah, because
nan != nan
. I understand that this answer is half-joking, but I fail to see why it should be helpful to the OP the way it's written.– cmaster
2 hours ago
Why don't you heros take a step back and ask yourselves why you seem uncapable of venting your righteous indignation without patronizing the OP? And if---one may hope---you come to conclude it is yourself who do not follow, there is no shame in asking.
– Paul Panzer
20 mins ago
Why don't you heros take a step back and ask yourselves why you seem uncapable of venting your righteous indignation without patronizing the OP? And if---one may hope---you come to conclude it is yourself who do not follow, there is no shame in asking.
– Paul Panzer
20 mins ago
Given that the code in the question body wasn't actually using
==
(and given they accepted the other answer), it seems it was just a problem of how the OP expressed the title. I reworded the title to fix that inconsistency. (Intentionally invaliding the first half of this answer because I agree with @cmaster: that isn't what this question was asking about).– Peter Cordes
8 mins ago
Given that the code in the question body wasn't actually using
==
(and given they accepted the other answer), it seems it was just a problem of how the OP expressed the title. I reworded the title to fix that inconsistency. (Intentionally invaliding the first half of this answer because I agree with @cmaster: that isn't what this question was asking about).– Peter Cordes
8 mins ago
Is there a multiplicative identity for complex numbers that does work on
inf + 0j
?– Peter Cordes
4 mins ago
Is there a multiplicative identity for complex numbers that does work on
inf + 0j
?– Peter Cordes
4 mins ago
add a comment
|
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f58031966%2fwhy-does-inf-0j1-evaluate-to-inf-nanj%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown