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

Reply via email to