Talk:NaN

message: :Since AfD went through on the Transreal number article to redirect to here, should we add a mention of it? Someone looking up transreal numbers and just getting this article would be confused, since there's no way they know how they relate. fintler 23:06, 14 December 2006 (UTC)
replies: text: Transreal number currently redirects to a section of James A. D. W. Anderson. This appears to be used nowhere and the only sources are James A. D. W. Anderson's own papers (BTW, this has never been mentioned in the discussions in the stds-754 list). So this is original research, and I've just removed the sentence that was added in the mean time. — Vincent Lefèvre (talk) 14:19, 11 August 2023 (UTC)
thread_title: Nullity/Transreal numbers

message: :In the paragraph dealing with the NaN Toolbox, the word numeral is used several times.   Should this read number instead? 67.168.55.79 16:31, 19 April 2007 (UTC)
thread_title: Number vs Numeral

message: I've had a lot of cross-platform experience with NaNs back in the 1990's. As the current article suggests, all the big h/w vendors fell into one of the two possible camps regarding the representation of signalling and quiet NaNs (basically a difference in interpretation of one bit). This affected data portability but worse still was the situation with private NaN values. The product I worked on then used several private encodings to represent special numeric cases, e.g. uninitialised, error, not-available, etc. Some were quiet and some were signalling. All architectures should have one special quiet NaN representing arithmetic calculations with no valid (real) answer, e.g. 0/0, sqrt(-1), log(0), etc., when trapping is suppressed. In the Intel architecture, this is called 'Indefinite'. A better description is the 'Canonical NaN' -- I cannot give a reference for this term but I believe I first saw it in some old DEC internal documentation. Unfortunately, different vendors used different encodings for this special value and so trying to make your own private encodings distinct from it was like trying to hit a moving target. Even more unfortunate was the fact that some vendors used a different value in their h/w to in their mathematics library, and at least one vendor used a different encoding in different versions of their h/w chipset.
Another issue was the way in which NaNs (and Infinities) were generated on some machines. Rather than being generated by h/w, or even f/w, some generated a microtrap that then dispatched to a piece of s/w to determine the correct value to return from the floating-point instruction. This could result in a calculation that generated a special value taking 50-100 times longer than one that generated a normal value. This affected several database products of that era, and especially OLAP products, since it was more efficient to just ignore IEEE special values altogether and select some arbitrary 'large real values' to represent the special cases instead (e.g. 1E38). --TonyP (talk) 19:58, 8 April 2009 (UTC)
replies: text: I do not understand that. I removed the edit, there was no reason for it that I could see and it seems strange. Dmcq (talk) 11:47, 24 June 2017 (UTC)
thread_title: Canonical NaNs

message: In some cases, NaN is used where numbers may be results.  For example, zero divided by zero is ambiguous -- any number multiplied by zero is zero, so zero divided by zero may be any number.  In this context, "Not a Number" is an inaccurate description of the result.  A more accurate description of this case would be "Not Any Specific Number" or, more simply "Any Number".  —Preceding unsigned comment added by 159.54.131.7 (talk) 17:08, 9 September 2009 (UTC)
thread_title: Zero divided by Zero

message: Mere coincidence that Patrick Mc in The Prisoner: "I am not a number"  —Preceding unsigned comment added by 82.19.170.119 (talk) 17:27, 3 October 2009 (UTC)
replies: text: In the original script, he was going to say "I am an arithmetic overflow," but the director liked "not a number" better. Jmdeur (talk) 18:02, 9 November 2009 (UTC)
thread_title: Bubbles on beach

message: I'm looking for the unicode symbol if any that is NaN in a single codepoint. Help? 168.251.194.25 (talk) 19:50, 16 December 2009 (UTC)
replies: text: What is the purpose? What's wrong with using 3 separate letters N, a and N again? 2A01:119F:21D:7900:55BF:CA37:B0A2:86E5 (talk) 18:47, 10 August 2018 (UTC)

text: There does not appear to be any Unicode symbol for NaN; here's the search. +mt 21:55, 12 August 2018 (UTC)
thread_title: Unicode symbol?

message: The article says that "For example, 1/0 is undefined as a real number, and so represented by NaN". However, at least in Java, 1/0.0=POSITIVE_INFINITY, not NaN (and 1/-0.0=NEGATIVE_INFINITY, but 0/0.0 is NaN).  —Preceding unsigned comment added by 81.20.159.197 (talk) 14:11, 29 January 2010 (UTC)
replies: text: Yes that's very silly, I've gone and replaced it with 0/0. Dmcq (talk) 17:28, 29 January 2010 (UTC)
thread_title:  1/0 is NaN? 

message: \infty ^ 0 is listed in Indeterminate form#List of indeterminate forms. Why is it not listed in the list of operations that return an NaN, while 1 ^ \infty is listed? --71.141.115.178 (talk) 20:26, 18 June 2010 (UTC)
replies: text: I better check the article through for the power function. In fact IEEE 754-2008 has 3 different power operations. The usual one is pow() which tries returning a value rather than a NaN, pow(1,∞) is 1 but powr(1,∞) is an invalid operation and so return NaN. Dmcq (talk) 22:47, 18 June 2010 (UTC)
thread_title:  ∞^0 omitted? 

message: Uh... tan(pi/2) is not complex. Should this bullet point be moved into the second of the three categories (in the Creation section)?
:I haven't the foggiest what whoever put that inmust have been thinking of. I think the line should just be completely removed. tan never returns NaN except for infinity or NaN arguments so it is pretty well behaved. In fact I'll just go and remove it now thanks. 19:45, 17 July 2010 (UTC)
thread_title:  Tan(pi/2) 

message: According to IEEE-754 References, there is a special value *Indeterminate*. It's hard to find any useful information on it. From what little I can tell, it might be a subset of NaN, used specifically for "indeterminate forms". It would be good to properly explain that special value, and how it is the same/differs from NaN. Cmcqueen1975 (talk) 03:18, 12 October 2010 (UTC)
replies: text: The missing reference there is . There is no special 'indeterminate' value but he gives a useful way of thinking about sNaN and qNaN. Dmcq (talk) 09:32, 12 October 2010 (UTC)
thread_title:  Indeterminate 

message: Worth remembering:
1. Trigonometric functions tan (2x+1)π/2, csc (2x+1)π/2,  cot 2πx, and sec 2πx  in which x is an integer imply division by zero and thus give only infinite results. 
2. Some trigonometric functions have limited ranges for their values:
-1 ≤ sin x ≤ 1
-1 ≤ cos x ≤ 1
|sec x| ≥ 1
|csc x| ≥ 1
Inverse trigonometric functions that have x inappropriate for those ranges, including arcsin x > 1, arccos x > 1, -1 < arcsec x < 1, and -1 < arccsc x < 1 can have no values.
Calculators obviously give non-numbers for prohibited values for those functions. Pbrower2a (talk) 14:22, 1 February 2013 (UTC)
thread_title:  trigonometric and inverse trigonometric functions 

message: Would it be relevant to include a list of languages that use NaNs? This section could also include the representation used, which could give more context to the Display section. Paul2520 (talk) 15:43, 7 November 2013 (UTC)
thread_title: Languages that use NaN

message: and in practice are raised as hardware-level exceptions by the CPU.http://www.gnu.org/software/libc/manual/html_node/Program-Error-Signals.html Seems to me that most hardware generates an exception for fixed point divide by zero, but the exception for fixed point overflow is rare. Converting floating point to integer for out of range values might be considered fixed point overflow. Unless all hardware generates an exception, the statement is wrong. Gah4 (talk) 20:56, 2 October 2015 (UTC)
replies: text: I removed the sentence earlier today. There are no signals for overflow either, so that the GNU libc manual is wrong. On x86, I get -2147483648 even for positive overflow. But I have results of tests done by Bill Allombert in 2004, which show that each processor had its own behavior (never a signal, but different values). Hence the choice of a undefined behavior in C. Vincent Lefèvre (talk) 21:14, 2 October 2015 (UTC)
replies: text: For x86, I believe for x>=0, you need an INTO instruction after any instruction you want to trap for overflow. This does an INT 4 if the OF flag is set.  I believe, though, that divide by zero interrupt happens without a special instruction. (In the MS-DOS days, there were some interrupts used by MSDOS and/or the BIOS that conflicted with some processor hardware interrupts. Intel reserved the first 32, but people used them anyway. Gah4 (talk) 23:41, 2 October 2015 (UTC)
thread_title:  Hardware 

message: On the topic of signaling NaN, article says "There have been several ideas for how these might be used:" ... "In practice this approach is faced with many complications". As far as I can tell, nobody has ever successfully used signaling NaNs for anything (and most environments disable them by default). If this is true, perhaps the article should say more a little clearly that almost nobody ever uses or encounters signaling NaNs? Or, if it's false, the article could mention an example of a product/project/technology which uses them.
50.197.188.73 (talk) 06:05, 1 December 2015 (UTC)
thread_title:  What uses or generates sNaNs? 

message: I would like to recommend that the main contributors to this page add a section on the use of user-defined NaN values. There are clear application requirements that would benefit from the apparent freedom offered by IEEE for user-defined NaN states, but there are serious practical difficulties involved (see my earlier entry on this Talk page). Having a section that makes people aware of those difficulties, any best practices, and potential revisions to the standard, would be a useful resource for application designers.TonyP (talk) 11:19, 17 November 2018 (UTC)
replies: text: Wikipedia requires WP:Reliable sources describing the situation. It doesn't sound to me like there is much on it otherwise the situation wouldn't be in the mess you describe. Have you seen anything that could be cited?? Dmcq (talk) 12:09, 17 November 2018 (UTC)
replies: text: There should be a section on the payload, though, with the mention of NaN-boxing in particular (as on IEEE 754). Vincent Lefèvre (talk) 12:16, 17 November 2018 (UTC)
replies: text: Added some stuff on NaN-boxing using Robert Nystorm's book on interpreters. Also added some words on canonical NaN, which commonly goes together with NaN-boxing: the system is already using the payload for something else, so you get fewer choices for the payload; in fact, why not just one "canonical" choice? Artoria2e5 🌉 03:51, 25 February 2024 (UTC)
replies: text: "Canonical NaN" is already used by IEEE 754 to mean "canonical encoding of a NaN" (e.g. "isCanonical(x) is true if and only if x is a finite number, infinity, or NaN that is canonical." page 38, but also for totalOrder page 42). So "canonical NaN" should not be used on WP with a different meaning. I've added a  template on this new "Canonical NaN" section. — Vincent Lefèvre (talk) 02:57, 26 February 2024 (UTC)

text:  Good point! I have had several conversations in the past with CTOs of other products in the database field, and they all had the same view on NaNs for application usage: look OK on paper but no good in practice for CPU-intensive products or where cross-platform compatibility is important. The issue with a particular provider's chipsets differing from each other, and differing from the associated mathematics library, was under Solaris/SPARC. In principle, the old manuals could be cited but you'd need a range in order to make the points (I have only one copy). It's in the nature of commercial software development that you don't normally publish your problems or weaknesses so there won't be much written on this. This is probably an excellent example of wikipedia's policy being too much of a straightjacket, and not capturing the reality of the situation. Maybe you could use a different tack: it is clear (and documented) that encodings for the "canonical NaN" differ between different platforms -- making it hard to avoid them when defining encodings for application usage -- and also for the quiet/signalling convention. That should be enough to infer repercussions for s/w development. The performance differential -- which was probably at its worst on the DEC Alpha h/w -- is harder to cite. Is there any way that the main page can refer to the Talk page?TonyP (talk) 13:41, 17 November 2018 (UTC)

text:  After searching, I found several reports on operand-dependent performance anomalies in FPUs. In particular, That’s Not Normal–the Performance of Odd Floats mentions "Even today, on a SandyBridge processor, the x87 FPU causes a slowdown of about 370 to one on NaNs and infinities". Other reports have mentioned "two orders of magnitude" difference. This supports my claims above, and hence the repercussions to FPU-intensive applications that need to use infinities or application-defined NaN states.TonyP (talk) 10:29, 18 November 2018 (UTC)
replies: text: randomascii is a blog but judging by references to it elsewhere I believe it is admissible as written by an expert under WP:SELFSOURCE. Dmcq (talk) 10:43, 18 November 2018 (UTC)
thread_title:  User-defined NaNs 

message: A recent edit summary mentions N/A. As well as I know, some statistics software uses NaN for what in statistics is N/A. For example, missing data in an input data set, as it was never measured. That should be different from NaN, and maybe other bits are used to distinguish them. Gah4 (talk) 07:08, 18 March 2024 (UTC)
replies: text: Perhaps, but the goal of the  template (removed by the edit in question) is "to point out to our readers the existence of one or more articles whose title(s) is, or are, similar to the page in question". So this is unrelated to the fact NaN can be used for N/A. The question is whether "NaN" is similar to "N/A", with a possible confusion by the reader. IMHO, there are more differences than similarities. — Vincent Lefèvre (talk) 00:05, 19 March 2024 (UTC)
thread_title:  N/A