On 03/01/12 10:25, Dr. Alexander Klein wrote: > Hi Alois, > > Am 29.02.2012 um 23:02 schrieb Alois Schlögl: > >> As a side note, also the IEEE754 standard changed the behavior of >> min() and max() to skip NaN. Now, we have the situation that they >> behave exactly the same as nanmin() and nanmax(). > > This is interesting! The latest information I had said that the > standard had special functions minnum and maxnum that favour numbers > over _quiet_ NaNs (which seems to be only halfway compatible with > fmax() and fmin() in C99) , but as usual with IEEE there's not an > awful lot of information freely available, and they even charge $81 > for the _old_ version of the standard. > > Regards, > > Alex >
You probably know already about [1,2]. [2] is the final version before the ballot, afterward only boilerplate information has changed but not the content. The standard itself will not tell you much about the reasons for the decision. If you are interested in the discussion, you can look at the working group history [3] and the mailing list archive [4]. However, my guess is that the expert saw similar issue than me when thinking about the NaN-handling issue. Of course the 754 committee was more interested on hardware implementation, emphasizing the single CPU operations. For this reason, the standard discussed only min(), max() but not statistical functions. Another interesting point is that the standard does not talk about how to handle the payload of NaNs. The standard does allow NaN payload, but it does not mention how it should be handled. Except for the distinction of signalling vs. quite NaN's, all NaNs are handled the same. And signalling NaNs are only there to set some flag in the CPU that can be used later for "traping". The idea behind this, is that some special exception handling can be performed later. This is the "delayed exception handling model". "Traping" is hardly used in todays FPU design, because it can cause huge performance penalties. So, it was even discussed to drop the distinction between signalling and quite NaNs. To be fair, there was also some discussion to a more detailed NaN-handling specification but it went nowhere. Whatsoever, you see the compromise in the final version. So, is it worth to think about a detailed NaN-model with analyzing different payloads? Unless you get hardware support, you would need to accept huge performance penalties. The alternative does not need additional hardware support, and is able to solve the problem of handling missing data in a very efficient manner. Regards, Alois [1] http://en.wikipedia.org/wiki/IEEE_754_revision#min_and_max [2] http://www.validlab.com/754R/drafts/archive/2006-10-04.pdf [3] http://754r.ucbtest.org/ [4] http://grouper.ieee.org/groups/754/email/threads.html ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Octave-dev mailing list Octave-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/octave-dev