comp.lang.ada
 help / color / mirror / Atom feed
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.

  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