(j3.2006) (SC22WG5.4158) [ukfortran] Urgent: letter ballot on interps

N.M. Maclaren nmm1
Fri Feb 5 09:11:20 EST 2010

Yes No Number Title --- --- F95/0098 Are dummy functions returning 
assumed-length character legal? -Y- --- F03/0022 Coexistence of IEEE and 
non-IEEE kinds -Y- --- F03/0024 DEALLOCATE and array pointers -Y- --- 
F03/0034 IEEE_LOGB() -C- --- F03/0039 HYPOT() -Y- --- F03/0063 Procedure 
pointers in BLOCK DATA program units --- --- F03/0071 Subroutine/function 
ambiguity in generics -Y- --- F03/0078 IEEE_SUPPORT_DATATYPE vs. 
mathematical equivalence --- --- F03/0090 Polymorphic array constructors 
-Y- --- F03/0112 Attributes allowed for dummy arguments in defined 
assignments -Y- --- F03/0119 Elemental procedures and deferred length 
character components --- --- F03/0122 When do objects of sequence derived 
type have the same type? --- --- F03/0125 Definitions of EXTENDS_TYPE_OF 
and SAME_TYPE_AS --- --- F03/0126 References to VOLATILE variables in pure 
procedures -Y- --- F03/0127 Duration of procedure execution -Y- --- 
F03/0129 C_LOC of character substrings --- --- F03/0130 Elemental specific 
intrinsic procedure characteristics -Y- --- F03/0131 SAVE attribute and 
EQUIVALENCE -Y- --- F03/0132 Unformatted i/o and private components -Y- --- 
F03/0133 Is unlimited polymorphic allowed in COMMON? --- --- F03/0134 
Implicit typing of procedure pointers --- --- F03/0135 Interaction between 
RESULT, recursion, and host generic --- --- F03/0136 Are subroutines 
distinguishable from arrays? -Y- --- F03/0137 Dummy procedure type 
compatibility --- --- F03/0138 External <procedure-name> as <proc-target> 
--- --- F03/0139 Functions returning procedure pointers --- --- F03/0140 
Type of nested construct entities --- --- F03/0141 More than one specific 
interface for a procedure

F03/0039 HYPOT()
The reason given in the third paragraph is misleading, even erroneous.
It would be true if the NaN stood for an unknown numeric value (perhaps
infinite), but is not true if the NaN stands for the result of an
improper calculation.  For example, HYPOT(1.0,LOG(-1.0)) - see 14.3
paragraph 5.  Note that the IEEE committee has (effectively) taken the
decision to ignore such NaN values (as well as true not-a-number
values - i.e. out-of-band ones) in functions like HYPOT (see section
9.2.1 of IEEE 754-2008).  Better wording would be:

    HYPOT(X,Y) when X and/or Y is an infinity (even if the other is
    a NaN) shall be +infinity.  Reason: that is specified in the
    IEEE 754-2008 standard (section 9.2.1).  It is mathematically
    correct if the NaN value is replaced by any zero, any finite
    number, or any infinity.

Nick Maclaren

More information about the J3 mailing list