From: "Stuart" <stuart@0.0>
Subject: Re: How to check a Float for NaN
Date: Thu, 1 May 2008 09:04:11 +0100
Date: 2008-05-01T09:04:11+01:00 [thread overview]
Message-ID: <48197575$1_1@glkas0286.greenlnk.net> (raw)
In-Reply-To: 93b0d930-102a-4ac4-8b85-48e87d9d3df1@j33g2000pri.googlegroups.com
"Adam Beneschan" <adam@irvine.com> wrote in message
news:93b0d930-102a-4ac4-8b85-48e87d9d3df1@j33g2000pri.googlegroups.com...
> On Apr 30, 3:50 am, christoph.gr...@eurocopter.com wrote:
>> On 30 Apr., 12:47, christoph.gr...@eurocopter.com wrote:
>>
>> > Try Float'Valid (X), see RM 13.9.2
>>
>> Ahem, I meant X'Valid for X of type Float
<snip>
> The problem here is that if you're dealing with NaN's on purpose,
> you're not really dealing with Ada, as far as I can tell, unless your
> purpose is to test for an uninitialized variable (in which case
> X'Valid makes sense). Otherwise, though, NaN's and infinities are not
> possible values of floating-point types, and therefore they can't be
> returned by operations that return floating-point values, even if
> Float'Machine_Overflows is False. (There are certain passages in the
> RM that say a result is implementation-defined if the
> Machine_Overflows attribute is False; however, I do not think
> assigning a variable to an invalid value, as a NaN would be, is an
> allowed "implementation-defined" result. 13.9.2(4-11) lists the ways
> that invalid data could be created, and the "result of a floating-
> point operation that cannot return a valid result" is not one of those
> listed. Yes, I know that this is a NOTE and is not normative.)
Would not 13.9.2(10) cover this:
"disrupting an assignment due to the failure of a language-defined check
(see 11.6)"
Thus if a floating point operation creates a NaN, which would indicate an
ill-conditioned computation that should violate some language-defined check,
the object (X) that was to receive the result would be considered invalid.
As noted elsewhere, 'valid encompasses more than NaNs - which may or may not
suit the OPs purpose.
Regards
--
Stuart
next prev parent reply other threads:[~2008-05-01 8:04 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-30 10:27 How to check a Float for NaN Jerry
2008-04-30 10:47 ` christoph.grein
2008-04-30 10:50 ` christoph.grein
2008-04-30 15:02 ` Adam Beneschan
2008-04-30 20:33 ` Jerry
2008-04-30 23:23 ` Adam Beneschan
2008-05-01 1:00 ` Adam Beneschan
2008-05-01 19:52 ` Keith Thompson
2008-05-01 23:57 ` Jerry
2008-04-30 23:29 ` Randy Brukardt
2008-05-01 8:04 ` Stuart [this message]
2008-05-01 14:38 ` Adam Beneschan
2008-05-01 17:14 ` Stuart
2008-05-01 19:22 ` Randy Brukardt
2008-05-02 0:04 ` Jerry
2008-04-30 20:36 ` Jerry
2008-04-30 21:53 ` Adam Beneschan
2008-05-01 1:05 ` Jerry
2014-05-22 7:27 ` jan.de.kruyf
2014-05-22 8:09 ` Dmitry A. Kazakov
2014-05-22 9:24 ` Simon Wright
2014-05-22 9:48 ` Dmitry A. Kazakov
2014-05-22 15:28 ` Adam Beneschan
2014-05-22 16:31 ` Dmitry A. Kazakov
2014-05-22 23:33 ` Adam Beneschan
2014-05-23 7:38 ` Dmitry A. Kazakov
2014-05-23 21:39 ` Randy Brukardt
2014-05-27 8:35 ` Dmitry A. Kazakov
2014-05-27 12:35 ` Maurizio Tomasi
2014-05-27 15:53 ` Adam Beneschan
2014-05-27 22:35 ` Randy Brukardt
2014-05-27 22:59 ` Jeffrey Carter
2014-05-28 7:32 ` Dmitry A. Kazakov
2014-05-28 8:40 ` Maurizio Tomasi
2008-05-05 18:23 ` Martin Krischik
2008-05-05 20:49 ` Adam Beneschan
2008-05-06 18:09 ` Jerry
2008-05-06 18:45 ` Wiljan Derks
2008-05-06 22:18 ` Adam Beneschan
2008-05-07 22:56 ` Randy Brukardt
2008-05-07 22:56 ` Randy Brukardt
2008-05-07 23:20 ` Adam Beneschan
2008-05-09 7:24 ` Stephen Leake
2008-05-10 17:00 ` anon
2008-05-11 22:00 ` Keith Thompson
2008-05-12 2:01 ` anon
2008-05-09 19:49 ` anon
2008-05-10 2:36 ` Jerry
2008-05-10 3:53 ` anon
2008-05-10 6:24 ` christoph.grein
2008-05-10 8:05 ` Georg Bauhaus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox