From: "Robert I. Eachus" <rieachus@attbi.com>
Subject: Re: Generation of permutations
Date: Sat, 25 May 2002 16:21:31 GMT
Date: 2002-05-25T16:21:31+00:00 [thread overview]
Message-ID: <3CEFBB58.906@attbi.com> (raw)
In-Reply-To: 3CDAE30B.CFFB6F29@san.rr.com
Darren New wrote:
> "A given set of instructions" means whatever set I give you, not one
> that you get to pick. This is normal math-speak, so I'm not surprised
> that it was considered implied. Consider
>
> function square(a : double) return double is return a * a; end square;
> -- (assuming I got the syntax right)
>
> This "squares a given number". I.e., it squares whatever number you give
> it. If it doesn't work for any number you give it, then it doesn't
> "square a given number", at least in normal math-speak.
Wow! What a fascinating question: For what Ada types "double" does this
actually provide the square of a number? Another related question is
whether it returns the correct value or raises an exception.
Not true for all integer types, but true for type Double is range 0..1;
If you use the looser definition, then true for all integer types.
True for all modular types. Modular values do not have unique square
roots, but that is a normal property of squares. All modular types are
closed under multiplication, and will never result in an exception.
(With Storage_Error always a possibility, but an uninteresting one.)
False in both senses for floating-point types. There are values which
will result in IEEE infinities or overflow. (Underflow is not
possible.) But for only a small subset of the representable real values
is the square also exactly representable.
For fixed-point types, the question gets really hairy. There are
trivial fixed point types for which it is true. For other fixed-point
types, the multiplication returns the correct result, but rounding or
truncation can occur on the implicit conversion to double. This will
not occur for 'SMALLs which are a multiple of 1.0. The implicit
assignment in the return statement may raise Contraint_Error, but for
which ranges? Constraint_Error will not be raised for null ranges, for
the range 0.0..0.0, for ranges of -1.0..1.0, and ranges of the form
X..1.0 for X non-negative. However, there is a special case to be aware
of. For types with an upper bound of 1.0, or with a declaration of the
form type double is range N..1.0 - M delta M, it is possible for
double'Last * double'Last to raise Constraint_Error. This can also
occur for x * x when x = -1.0 even if double'last is 1.0.
I'm not even going to touch complex types from the Numerics Annex. ;-)
next prev parent reply other threads:[~2002-05-25 16:21 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-29 11:54 Generation of permutations Reinert Korsnes
2002-04-30 13:52 ` Ted Dennison
2002-04-30 14:20 ` Marin David Condic
2002-05-02 12:32 ` Robert Dewar
2002-05-02 15:47 ` Ted Dennison
2002-05-02 16:16 ` Mark Biggar
2002-05-03 13:04 ` Marin David Condic
2002-05-05 0:52 ` Robert Dewar
2002-05-05 23:11 ` tmoran
2002-05-06 2:13 ` Chad R. Meiners
2002-05-06 13:52 ` Stephen Leake
2002-05-09 17:44 ` Darren New
2002-05-09 18:07 ` Stephen Leake
2002-05-09 20:58 ` Darren New
2002-05-09 23:21 ` tmoran
2002-05-09 23:51 ` Darren New
2002-05-10 3:37 ` tmoran
2002-05-10 3:59 ` Darren New
2002-05-10 13:13 ` Robert Dewar
2002-05-25 16:21 ` Robert I. Eachus [this message]
2002-05-09 23:24 ` Robert Dewar
2002-05-09 23:48 ` Robert Dewar
2002-05-10 3:37 ` tmoran
2002-05-10 15:10 ` Chad R. Meiners
2002-05-11 4:04 ` Robert Dewar
2002-05-16 1:35 ` Chad R. Meiners
2002-05-11 4:05 ` Robert Dewar
2002-05-06 15:46 ` Wes Groleau
2002-05-06 16:21 ` Chad R. Meiners
2002-05-06 16:33 ` Darren New
2002-05-07 0:06 ` tmoran
2002-05-07 0:26 ` Darren New
2002-05-07 1:56 ` tmoran
2002-05-07 10:39 ` Robert Dewar
2002-05-07 17:25 ` Chad R. Meiners
2002-05-08 2:27 ` Robert Dewar
2002-05-08 8:44 ` Mats Karlssohn
2002-05-07 17:00 ` Wes Groleau
2002-05-06 21:33 ` Robert Dewar
2002-05-06 17:26 ` Marin David Condic
2002-05-07 7:35 ` tmoran
2002-05-07 13:22 ` Marin David Condic
2002-05-08 5:23 ` tmoran
2002-05-08 14:10 ` Marin David Condic
2002-05-09 16:20 ` Darren New
2002-05-09 19:04 ` tmoran
2002-05-08 16:20 ` Darren New
2002-05-08 17:31 ` tmoran
2002-05-08 17:39 ` Chad R. Meiners
2002-05-07 15:34 ` Darren New
2002-05-07 17:44 ` Chad R. Meiners
2002-05-07 19:58 ` tmoran
2002-05-07 21:05 ` Turing-undecidable languages (OT) Chad R. Meiners
2002-05-08 8:24 ` Danx
2002-05-08 17:16 ` Chad R. Meiners
2002-05-10 2:37 ` Robert Dewar
2002-05-08 9:16 ` Dmitry A. Kazakov
2002-05-08 17:18 ` Chad R. Meiners
2002-05-09 20:56 ` Dmitry A.Kazakov
2002-05-09 16:18 ` Chad R. Meiners
2002-05-10 2:52 ` Robert Dewar
2002-05-08 2:17 ` Generation of permutations Robert Dewar
2002-05-03 13:13 ` Ted Dennison
2002-05-03 13:24 ` Lutz Donnerhacke
2002-04-30 15:06 ` Hyman Rosen
2002-05-01 8:40 ` Adrian Hoe
2002-05-01 19:53 ` Hyman Rosen
2002-05-11 1:52 ` Steven Deller
2002-05-02 16:24 ` Mark Biggar
2002-04-30 17:12 ` Wes Groleau
2002-04-30 22:57 ` Robert Dewar
2002-05-01 0:54 ` tmoran
2002-05-01 9:42 ` Florian Weimer
2002-05-02 12:34 ` Robert Dewar
2002-05-01 12:43 ` Robert Dewar
2002-05-01 15:05 ` TO WHOM IT MAY CONCERN Wes Groleau
2002-05-02 12:27 ` More on copyright, (Re: TO WHOM IT MAY CONCERN) Robert Dewar
2002-05-08 13:56 ` Wes Groleau
2002-05-08 18:01 ` Robert Dewar
2002-05-08 18:31 ` Hyman Rosen
2002-05-09 13:41 ` Wes Groleau
2002-05-01 12:46 ` Generation of permutations Robert Dewar
2002-05-01 18:22 ` OT:Copyright, was " tmoran
2002-05-01 21:56 ` Robert Dewar
2002-05-01 23:45 ` tmoran
2002-05-02 11:58 ` Robert Dewar
2002-05-01 14:55 ` Wes Groleau
2002-05-02 12:41 ` Robert Dewar
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox