From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Way to use Ada Mod function on floats?
Date: Sat, 2 Dec 2006 19:21:43 +0100
Date: 2006-12-02T19:21:26+01:00 [thread overview]
Message-ID: <n6qu43j28znm$.qol4paq183ks$.dlg@40tude.net> (raw)
In-Reply-To: m2ac269ojx.fsf@grendel.local
On Sat, 02 Dec 2006 17:48:34 +0000, Simon Wright wrote:
> Gautier <gautier@fakeaddress.nil> writes:
>
>> Stephen Leake:
>>
>>> SAL (http://stephe-leake.org/ada/sal.html) has:
>>>
>>> function Modulo (Dividend, Divisor : in Real_Type) return Real_Type
>>> is
>>> -- match names in Ada LRM 4.5.5
>>>
>>> A : Real_Type renames Dividend;
>>> B : Real_Type renames Divisor;
>>> N : constant Integer := Integer (Real_Type'Floor (A / B));
>>> begin
>>> return A - B * Real_Type (N);
>>> end Modulo;
>>
>> Out of curiosity, what is the need of converting Real_Type'Floor (A /
>> B) to an Integer and back to a Real_Type ?
>
> Especially when it can overflow and give you a Constraint_Error.
Hmm, why is it converted to integer? I would stay all the way in
Real_Type'Base:
return Real_Type'Base
(Dividend - Divisor * Real_Type'Base'Floor (Dividend / Divisor));
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2006-12-02 18:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-01 15:32 Way to use Ada Mod function on floats? AAFellow
2006-12-01 16:37 ` Jeffrey Creem
2006-12-01 17:21 ` Adam Beneschan
2006-12-01 21:13 ` Chris Moore
2006-12-02 11:11 ` Stephen Leake
2006-12-02 16:40 ` Gautier
2006-12-02 17:48 ` Simon Wright
2006-12-02 18:21 ` Dmitry A. Kazakov [this message]
2006-12-02 18:24 ` Dmitry A. Kazakov
2006-12-03 0:50 ` Jeffrey R. Carter
2006-12-03 1:05 ` Randy Brukardt
2006-12-03 15:14 ` Stephen Leake
2006-12-03 22:27 ` Jeffrey R. Carter
2006-12-04 11:31 ` Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox