From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Gnat bug or mistaken program?
Date: Tue, 20 Jul 2021 17:09:08 +0300 [thread overview]
Message-ID: <ilo3o4F5297U1@mid.individual.net> (raw)
In-Reply-To: <318e5e93-5f66-4bb8-8bf0-7ee3fd2688fan@googlegroups.com>
On 2021-07-20 15:02, Richard Iswara wrote:
> I get this error on my program from the menu build => check semantic
> exponent must be of type Natural, found type "Standard.Float".
>
> Should not 10 ** (log10 a + log10 b) = a*b?
>
> This is my compiler build:
>
> GNAT Studio Community 2020 (20200427) hosted on x86_64-pc-mingw32
> GNAT Community 2020 (20200429-93) targetting x86_64-pc-mingw32
> SPARK Community 2020 (20200429)
>
> Here is the relevant part of program:
>
> with Ada.Numerics.Elementary_Functions;
> use Ada.Numerics;
To make Ada.Numerics.Elementary_Functions."**" visible without
qualification, you should also do "use Ada.Numerics.Elementary_Functions".
Otherwise the compiler will see only the predefined operator:
function "**"(Left : Float; Right : Integer'Base) return Float
(see RM 4.5.6(9 and 10)) which explains why the compiler does not accept
a floating-point value as the Right operand to "**".
> Logs : Float := 0.0;
> Multiples : Float;
...> Multiples := 10.0 ** Logs; => this is where it fails
It fails because the compiler sees only the predefined "**" operator
which has an integral right operand.
next prev parent reply other threads:[~2021-07-20 14:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-20 12:02 Gnat bug or mistaken program? Richard Iswara
2021-07-20 14:09 ` Niklas Holsti [this message]
2021-07-21 2:23 ` Richard Iswara
2021-07-21 8:29 ` Jeffrey R. Carter
2021-07-21 16:56 ` Shark8
2021-07-22 2:14 ` Richard Iswara
2021-07-27 16:00 ` Niklas Holsti
2021-07-28 5:21 ` J-P. Rosen
2021-07-29 0:46 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox