From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org Thu Sep 5 05:09:21 2013 Return-Path: X-Original-To: sc22wg5-dom8 Delivered-To: sc22wg5-dom8@www.open-std.org Received: by www.open-std.org (Postfix, from userid 521) id 34818357298; Thu, 5 Sep 2013 05:09:21 +0200 (CEST) Delivered-To: sc22wg5@open-std.org Received: from nag-j.co.jp (nag-j.co.jp [111.68.142.10]) by www.open-std.org (Postfix) with ESMTP id EAA70357123 for ; Thu, 5 Sep 2013 05:09:04 +0200 (CEST) Received: from Maru6 (218-42-159-105.cust.bit-drive.ne.jp [218.42.159.105]) (authenticated bits=0) by nag-j.co.jp (8.14.5/8.14.5) with ESMTP id r85390sl020440 for ; Thu, 5 Sep 2013 03:09:02 GMT (envelope-from malcolm@nag-j.co.jp) Message-ID: <67D98F0CFD3644FABB5198BBF75D7C61@Maru6> From: "Malcolm Cohen" To: "WG5" References: <20130905024923.1869835725C@www.open-std.org> In-Reply-To: <20130905024923.1869835725C@www.open-std.org> Subject: Re: [ukfortran] (SC22WG5.5085) WG5 ballot N1988 Date: Thu, 5 Sep 2013 12:08:56 +0900 Organization: =?UTF-8?B?5pel5pysTkFH?= MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=response Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal Importance: Normal X-Mailer: Microsoft Windows Live Mail 15.4.3555.308 X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3555.308 Sender: owner-sc22wg5@open-std.org Precedence: bulk >The Fortran 2008 standard places no requirements on division in >its description of IEEE_SUPPORT_DATATYPE (14.9p1, 14.11.24). >The proposed edits require a processor to signal IEEE_OVERFLOW >and IEEE_DIVIDE_BY_ZERO as specified by IEC 60559:1989, even >though the processor is not required to produce the results >specified by IEC 60559:1989 for normal operands returning normal >operands unless IEEE_SUPPORT_DIVIDE is true. That makes no sense. This statement is what makes no sense. IEEE_OVERFLOW and IEEE_DIVIDE_BY_ZERO are not signalled for normal operands returning normal results. >For example, consider the case of an Intel 386 CPU with a 387 >numeric coprocessor. A Fortran processor for such a system might >implement the statement > > X = X/Y > >where X and Y are represented in the double-precision format of >IEC 60559:1989 by extending the values of X and Y to extended >precision performing the division and converting the result back >to double-precision. The resulting division would not always >produce the result required by IEC 60559:1989. It would also >not signal exceptions as required by IEC 60559:1989. It obviously does signal as required for IEEE_DIVIDE_BY_ZERO. It also signals IEEE_OVERFLOW correctly on assignment to X. The Fortran standard permits evaluating an expression in a higher precision under the rules of mathematical equivalence; that's how we avoided the Java trap (which was a performance trap, not an IEEE conformance trap). I am boggled by the apparent claim that the very chip that the IEEE standard was written to describe, the Intel x87, does not conform to the IEEE standard. Cheers, -- ................................Malcolm Cohen, Nihon NAG, Tokyo.