comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Real Time IO routines
Date: Fri, 26 Oct 2007 22:29:58 +0200
Date: 2007-10-26T22:29:58+02:00	[thread overview]
Message-ID: <87prz1ei0p.fsf@ludovic-brenta.org> (raw)
In-Reply-To: 1193428813.533744.163870@o80g2000hse.googlegroups.com

andrew writes:
> On Oct 26, 1:36 pm, Ludovic Brenta <ludo...@ludovic-brenta.org> wrote:
>> andrew writes:
>> > Time_Unit is defined as a constant := 10#1.0#E-9, is Time_Unit then
>> > a "real literal"?  How can I convert a "real literal" to a scalar
>> > type (maybe that's a contradiction?)?
>>
>> Real literals are of the type universal_real which (a) is scalar and
>> (b) converts implicitly to any other floating-point type.  Does that
>> answer your question?
>>
>> --
>> Ludovic Brenta.
>
> To Ludovic:  Ahh, so if I had to define a universal_real I could
> output it using something like integer'image(it)?

No, because Integer is not a floating-point type.  You would use
Float'Image instead.  In light of what follows, I forgot to mention
that universal_real also converts to any fixed-point type implicitly.

> To AV:  I don't really know why it's necessary yet; sometimes my
> subconcious mind works faster than my concious mind and I just have to
> go with it.  I can say though that:
>
>    --  Time and Time_Span are represented in 64-bit Duration value in
>    --  in nanoseconds. For example, 1 second and 1 nanosecond is
>    --  represented as the stored integer 1_000_000_001.
>
> So if a duration is represented as the stored INTEGER ... then I could
> maybe use integer'image(duration), maybe?

No; Time and Time_Span are fixed-point types, not integer types.  You
should do:

Nanosecond : constant := 1.0E-9; -- there's your universal_real :)
type My_Fixed_Time is
  delta Nanosecond range 0.0 .. (2 ** 64 - 1) * Nanosecond;
for My_Fixed_Time'Size use 64;
function To_My_Fixed_Time is
  new Ada.Unchecked_Conversion (Source => Time; Target => My_Fixed_Time);

T : Time;
Image : constant String := My_Fixed_Time'Image (To_My_Fixed_Time (T));

(I just made that up; didn't try to compile it so caveat emptor).

> what does this mean:  type DURATION is delta implementation_defined
> range implementation_defined;?
> Is delta?  what's delta?

A fixed-point type.  See ARM 3.5.9.

-- 
Ludovic Brenta.



  reply	other threads:[~2007-10-26 20:29 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-26 14:58 Real Time IO routines andrew
2007-10-26 16:43 ` Anh Vo
2007-10-26 16:53   ` andrew
2007-10-26 17:04     ` Anh Vo
2007-10-26 17:21       ` andrew
2007-10-26 18:31         ` Anh Vo
2007-10-26 18:36         ` Ludovic Brenta
2007-10-26 20:00           ` andrew
2007-10-26 20:29             ` Ludovic Brenta [this message]
2007-10-26 20:46               ` Dmitry A. Kazakov
2007-10-26 20:33             ` Dmitry A. Kazakov
2007-10-26 21:14               ` andrew
2007-10-26 21:54                 ` Anh Vo
2007-10-26 22:34                 ` Adam Beneschan
2007-10-27  1:58                 ` tmoran
2007-10-27 12:40                 ` John McCormick
2007-10-27 20:12                   ` andrew
2007-10-26 17:12 ` Ed Falis
2007-10-27  8:56 ` anon
2007-10-27 10:18   ` Dmitry A. Kazakov
2007-10-27 20:15     ` anon
2007-10-27 20:49       ` Dmitry A. Kazakov
2007-10-27 21:51       ` Simon Wright
2007-10-28 11:35         ` Ludovic Brenta
2007-10-30 14:37           ` Simon Clubley
2007-10-30 13:47             ` Ludovic Brenta
2007-10-30 14:46             ` Jean-Pierre Rosen
2007-10-31 14:38               ` Ada coding standards, was: " Simon Clubley
2007-10-31 18:02                 ` anon
2007-10-31 19:23                   ` Georg Bauhaus
2007-10-31 20:40                   ` John W. Kennedy
2007-11-01 11:27                   ` Stephen Leake
2007-11-01 20:38                     ` anon
2007-10-29 19:28         ` Real Time IO routines -- answering Simon Wright part 1 anon
2007-10-29 21:24           ` Georg Bauhaus
2007-10-29 21:31             ` Georg Bauhaus
2007-10-29 22:01             ` Dmitry A. Kazakov
2007-10-29 22:38           ` Keith Thompson
2007-10-30  0:58             ` tmoran
2007-10-30 16:35         ` Real Time IO routines answering Simon Wright part 2 anon
2007-10-30 21:50           ` Simon Wright
2007-10-31 15:35           ` Adam Beneschan
2007-10-31 20:08             ` anon
2007-10-31 21:08               ` Georg Bauhaus
2007-10-31 21:42               ` Markus E L
2007-11-01  1:00               ` Adam Beneschan
2007-10-28  1:15       ` Real Time IO routines Jeffrey Creem
2007-10-29 16:18       ` Adam Beneschan
2007-10-29 16:40         ` Robert A Duff
2007-10-29 17:26           ` Adam Beneschan
2007-10-29 22:34             ` Keith Thompson
2007-10-29 17:25         ` Jean-Pierre Rosen
2007-11-15  4:27         ` Randy Brukardt
2007-11-15  4:27         ` Randy Brukardt
2007-10-29 18:53       ` andrew
2007-10-29 22:35         ` Keith Thompson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox