NaN Ananoyances

edit

The turbulence surrounding the use and implementation of NaN procedures has been a plague for me also. In the article on floating point I attempted a discussion of the use of special encodings, but it met with disfavour. With floating-point arithmetic as well as the special value of zero, I'd like to have +-underflow, +-overflow, +-infinity and at least one form of ? with operations performed by "hardware", not by software or interrupts, etc. Notice that there are just eight special values. Since a large number of bits are available in the current "standard" (wastefully so, I think), there are opportunities for organisation that are going begging. Why not put them to use? I'd like a scheme whereby there were separate bits for sqrt(-1), log(-1), the few well-known cases, as well as a bit for general mess, the idea being that a final bad result would have some trail as to how the bad state was developed and (x op y) would "or" these bits. As there are many bits, besides the "system bits" there could also be a set-aside collection of "user bits" - I have used a collection of error states f, u, b, r, o, m (meanings could be explained) with ? for combinations (f + f = f; f + <not f> = ?, etc) all done via auxiliary data and software. In this case, the rules for propagation of error states can be clear and explicit as they are effected by my own code.

Facilities for messing with these sort of ideas would require the development and agreement of further extensions of the current NaN arrangements that remain partial, unstable, and semi-standard, so there's little hope of something coherent. We're stuck with auxiliary software. One attempt at using NaN evoked odd behaviour in the debugging output (it looked like a compiler bug, ho hum) so even though the desired computations appeared to be behaving as desired and ran with a pleasing reduction in time, confidence was destroyed and the experiment retracted due to the press of other business. So I reverted to using a specific floating-point value just as you describe. In my case -666.666E33 had appeal, it being most unlikely that this specific and exact bit pattern would ever be developed in any likely computation. I'd have liked -666.666E666, but alas, that is out of range. NickyMcLean (talk) 20:59, 8 April 2009 (UTC)Reply

Our experiences sound similar, NickyMcLean. As I understand it, the NaN encodings were designed to support application-defined states, but someone working on the IEEE standard didn't appreciate the necessary requirements for stability and portability. As it turns out, the way that the NaN logical is implemented in many RISC architectures makes them useless for performance reasons. I worked on a large OLAP product and had to undo all our NaN dependencies when we observed the penalties on a growing number of systems.TonyP (talk) 15:07, 17 November 2018 (UTC)Reply
Having retreated from using the NaN state (as the boss confirmed, better to be correct than fast) I later tried again when less rushed, and this time discovered that a test such as x ¬= y was being compiled as if it were ¬(x = y) instead. But (x = x) returns false if x is a NaN state if executed yet such an expression is true if analysed by a compiler - or me. Thus, some confusions were reduced. The second rather more cautious attempt at employing NaN instead of special values detected by explicit code worked properly and delivered a speed gain - though the caution required in carefully using the NaN features required additional time in development and testing that might not be recouped in faster running for quite a while. Differences in meaning between having a value, or a value which is zero, or which is NaN, or, there is no datum at all may require different treatment in different contexts, and I find that I am still having occasion to adjust the behaviour when an actual example comes into consideration. Having auxiliary information for a datum (such as the f,u,b,r,o,m codes for one application mentioned above) to clarify the context would help, but this also means even more complexity in processing. Developing a code of practice that would work for disparate applications will be a problem, and then would come the need to admit the code to a language specification, followed by suitable adjustments to compilers, resulting in happy users employing the scheme in successful projects. Humm... NickyMcLean (talk) 07:07, 21 November 2018 (UTC)Reply
It's a while since I worked on this stuff now, NickyMcLean, but I remember that NaN values could not be compared with each other unless they were cast to integer (or long integer) values first -- in which case you were then comparing their bit patterns. Even if two NaNs have the same bit pattern then they are deemed to not be the same as each other since they are unordered with respect to real values, and may be representing different conditions. For instance, sqrt(-1) and log(-1) may both generate the same NaN but that doesn't mean the conditions that generated them were the same. The DB product I used to be architect for used NaN values for Null (e.g. 0/0 etc), uninitialised (which was signalling), and data-unavailable. We also used infinities. We defined rules for how these propagated, and everything looked great, until we found some serious performance dips (our product ran on many types of h/w, under VMS, Windows, IBM mainframe O/S, and many UNIX variations, and some such as VAX had no NaN support). We then had to adopt a horrible "plan B" using especially high values that were were unlikely to see in normal data. It was a mess!TonyP (talk) 10:49, 21 November 2018 (UTC)Reply

Speedy deletion nomination of FHISO

edit
 

If this is the first article that you have created, you may want to read the guide to writing your first article.

You may want to consider using the Article Wizard to help you create articles.

A tag has been placed on FHISO requesting that it be speedily deleted from Wikipedia. This has been done under section A7 of the criteria for speedy deletion, because the article appears to be about a company, corporation or organization that does not credibly indicate how or why the subject is important or significant: that is, why an article about that subject should be included in an encyclopedia. Under the criteria for speedy deletion, such articles may be deleted at any time. Please read more about what is generally accepted as notable.

If you think this page should not be deleted for this reason, you may contest the nomination by visiting the page and clicking the button labelled "Contest this speedy deletion". This will give you the opportunity to explain why you believe the page should not be deleted. However, be aware that once a page is tagged for speedy deletion, it may be deleted without delay. Please do not remove the speedy deletion tag from the page yourself, but do not hesitate to add information in line with Wikipedia's policies and guidelines. If the page is deleted, and you wish to retrieve the deleted material for future reference or improvement, then please contact the deleting administrator. Daiyusha (talk) 12:53, 25 January 2019 (UTC)Reply

Managing a conflict of interest

edit

  Hello, Tonyproctor. We welcome your contributions, but if you have an external relationship with the people, places or things you have written about in the page FHISO, you may have a conflict of interest (COI). Editors with a conflict of interest may be unduly influenced by their connection to the topic. See the conflict of interest guideline and FAQ for organizations for more information. We ask that you:

  • avoid editing or creating articles about yourself, your family, friends, company, organization or competitors;
  • propose changes on the talk pages of affected articles (see the {{request edit}} template);
  • disclose your conflict of interest when discussing affected articles (see WP:DISCLOSE);
  • avoid linking to your organization's website in other articles (see WP:SPAM);
  • do your best to comply with Wikipedia's content policies.

In addition, you must disclose your employer, client, and affiliation with respect to any contribution which forms all or part of work for which you receive, or expect to receive, compensation (see WP:PAID).

Also please note that editing for the purpose of advertising, publicising, or promoting anyone or anything is not permitted. I see that you have mentioned yourself being a member of FHISO, you should declare COI as well if you are editing things related to that. Daiyusha (talk) 12:55, 25 January 2019 (UTC)Reply

Nomination of Holos (software) for deletion

edit
 
A discussion is taking place as to whether the article Holos (software) is suitable for inclusion in Wikipedia according to Wikipedia's policies and guidelines or whether it should be deleted.

The article will be discussed at Wikipedia:Articles for deletion/Holos (software) until a consensus is reached, and anyone, including you, is welcome to contribute to the discussion. The nomination will explain the policies and guidelines which are of concern. The discussion focuses on high-quality evidence and our policies and guidelines.

Users may edit the article during the discussion, including to improve the article to address concerns raised in the discussion. However, do not remove the article-for-deletion notice from the top of the article until the discussion has finished.

UtherSRG (talk) 13:18, 7 August 2023 (UTC)Reply