comp.lang.ada
 help / color / mirror / Atom feed
From: Patrick Noffke <patrick.noffke@gmail.com>
Subject: Fixed-point question
Date: Fri, 26 Jun 2015 06:20:26 -0700 (PDT)
Date: 2015-06-26T06:20:26-07:00	[thread overview]
Message-ID: <249bcd57-3074-4566-b8f2-03e6923bfbce@googlegroups.com> (raw)

Why are C1 and C2 different?

with Ada.Text_IO;

procedure FP_Test is
   type Fixed_Type is delta 1.0 / 180.0 range 0.0 .. 65535.0 / 180.0;
   N : constant := 0.2;
   D : constant := 4.5 / 330.0;  -- 0.013636

   C1 : constant Fixed_Type := Fixed_Type (N / D);
   C2 : constant Fixed_Type := N / D;

begin
   Ada.Text_IO.Put_Line ("C1 := " & C1'Img);
   Ada.Text_IO.Put_Line ("C2 := " & C2'Img);
end FP_Test;

$ ./fp_test 
C1 :=  14.664
C2 :=  17.000

I am using GNAT on Fedora 21 (x86_64) and GNAT 2014 for ARM-ELF (Linux-hosted).  The output above is on Fedora.  In the ARM processor (Cortex-M4), C1 is 14.667 and C2 is 18.

It appears that for ARM, the compiler is computing C2 as Fixed_Type (N) / Fixed_Type (D), or 0.2 / (2 / 180) = 0.2 / 0.01111 = 18.

I'm not sure why C2 is 17 on the Fedora PC.

Thanks,
Patrick

             reply	other threads:[~2015-06-26 13:20 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-26 13:20 Patrick Noffke [this message]
2015-06-26 16:56 ` Fixed-point question Jeffrey R. Carter
2015-06-26 18:21   ` Patrick Noffke
2015-06-26 20:21     ` Anh Vo
2015-06-26 20:25     ` Jeffrey R. Carter
2015-06-27  2:55       ` Patrick Noffke
2015-06-26 23:14     ` Qun-Ying
2015-06-27  3:00       ` Patrick Noffke
2015-06-27  4:44         ` Jeffrey R. Carter
2015-06-27 17:59           ` Patrick Noffke
2015-06-27 18:38             ` Jeffrey R. Carter
2015-06-27 19:20               ` Bob Duff
2015-06-27 19:57                 ` Jeffrey R. Carter
2015-06-27 20:42                   ` Bob Duff
2015-06-28 11:39                     ` Brian Drummond
2015-06-29 13:28                     ` Patrick Noffke
2015-06-29 14:13                       ` Bob Duff
2015-06-27 23:41               ` Anh Vo
  -- strict thread matches above, loose matches on Subject: below --
1995-04-01  0:00 Garlington KE
1995-04-06  0:00 ` Robert Dewar
1995-04-07  0:00   ` Garlington KE
1995-04-07  0:00     ` Robert Dewar
1995-04-07  0:00   ` Robert I. Eachus
1995-04-07  0:00     ` 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