To: J3 Members J3/16-141r1 From: Van Snyder & Robert Corbett Subject: Questions without answers or edits concerning Clause 14 Reference: 16-007 Date: 2016 February 11 General: For the arithmetic functions with two arguments, e.g., IEEE_REM, are arguments with different radices supported? It should either be stated explicitly, or denied explicitly. /JOR: ISO/IEC 60559:2011 requires the operands of the general arithmetic operations to be homogeneous. The new IEEE arithmetic functions added to the Fortran 2015 draft require homogeneous arguments. Of the IEEE arithmetic functions carried over from Fortran 2008, only IEEE_REM is not well-defined for mixed radix arguments. Paper 16-164r1 provides edits to fix IEEE_REM. [423:12 14.3p1] In the IEEE_INVALID list item, we see that IEEE_INVALID occurs when X is real and has a nonzero negative value. Does it signal for IEEE_SQRT(-0.0)? /JOR: ISO/IEC 60559:2011 does not permit an invalid operation exception to be signaled for the square root of -0. [427:0+2] Does the value of a named constant depend upon the rounding modes? /JOR: The editor asserts that evaluation of constant expressions does not occur during execution and so is not subject to the dynamic rounding modes. Therefore, the values of named constants do not depend on the dynamic rounding modes. [431:1 14.10p4] Is the assertion of the paragraph correct, or are the elemental functions only provided for all real X and Y of kinds for which IEEE_SUPPORT_DATATYPE ( X ) or IEEE_SUPPORT_DATATYPE ( Y ) has the value true? /JOR: The elemental functions are provided for all real arguments. The restrictions prohibit those functions from being invoked with non-IEEE arguements, but they permit function references with non-IEEE arguments to appear in a standard-conforming programs provided those function references are not executed. [437:37-38 14.11.18p6] Should the results be ABS(Y) and ABS(X)? /JOR: No. ISO/IEC 60559:2011 requires the result of the operation maxNum to be one of the operands if the operands are numbers. [438:34-35 14.11.20p6] Should the results be ABS(X) and ABS(Y)? /JOR: No. ISO/IEC 60559:2011 requires the result of the operation minNum to be one of the operands if the operands are normal. [439:14 14.11.21p6] Does "in the direction of Y" mean "in the direction of the sign of Y" or "in the direction from X to Y?" E.g., is IEEE_NEXT_AFTER ( 1.0, 0.5 ) == 1.0 + EPSILON(1.0) or 1.0 - EPSILON(1.0)? /JOR: It means in the direction from X to Y. The text of the standard seems clear. [439:30 14.11.12p6] The result value paragraph says that only IEEE_INVALID can signal from IEEE_NEXT_DOWN. Does IEEE_INEXACT signal if the result is subnormal? Can IEEE_UNDERFLOW signal? /JOR: ISO/IEC 60559:2011 says that the operation nextDown is quiet (does not signal exceptions) except when the operand is an sNaN. The only exception the operation can signal is invalid operation. [440:7 14.11.13p6] The result value paragraph says that only IEEE_INVALID can signal from IEEE_NEXT_UP. Does IEEE_INEXACT signal if the result is subnormal, e.g., from IEEE_NEXT_UP ( 0.0 )? Can IEEE_OVERFLOW signal, e.g., from IEEE_NEXT_UP ( HUGE(0.0) )? /JOR: ISO/IEC 60559:2011 says that the operation nextUp is quiet (does not signal exceptions) except when the operand is an SNAN. The only exception the operation can signal is invalid operation. [443:18-22 14.11.32] Does IEEE_RINT signal with the same signals and under the same conditions as IEEE_INT? /JOR: No. IEEE_INT returns an integer value, and corresponds to a convert operation in IEEE ISO/IEC 60559:2011. IEEE_RINT returns a floating-point value, and corresponds to the appropriate round operation in ISO/IEC 60559:2011. The exceptions for the two forms of operations are different. [443:29 14.11.33p3] Is decimal radix X allowed? /JOR: ISO/IEC 60559:2011 defines the operation scaleB "for all supported floating-point formats available for arithmetic". Hence, the operation scaleB is defined for supported decimal formats that are available for arithmetic.