comp.lang.ada
 help / color / mirror / Atom feed
From: l107353@cliffy.lfwc.lockheed.com (Garlington KE)
Subject: Fixed-point question
Date: 1995/04/01
Date: 1995-04-01T00:00:00+00:00	[thread overview]
Message-ID: <3li7ec$k37@butch.lmsc.lockheed.com> (raw)

There's probably a simple answer to this question, and I'm just too tired
to see it, but here goes anyway:

We have a user who has defined a fixed-point of the general form

   type A_Type is delta 0.1 range ...;

and some objects like the following:

   A: constant A_Type := 2.2;
   B: constant A_Type := 2.3;

and an abject C of A_Type which gets set to the expression 9.0 * 0.25.

He then runs the following code:

  if C = A then
     Text_IO.Put_Line("C equals A");
  elsif C = B then 
     Text_IO.Put_Line("C equals B"); 
  else
     Text_IO.Put_Line("C equals neither!");
  end if;

and of course it says that C equals neither, since C is stored as the
model number 2.25, which is neither 2.1875 nor 2.3125. I explain this
to the user, and all is well until he asks: "How should I do this
comparison, then?" Thinking back to my old FORTRAN days with floating-point,
I say, "Well, you compute the absolute difference between the two
numbers, and then see if the difference is less than some epsilon."
However, I can't for the life of me decide how to write the
equality function such that (1) C will be "equal" to B and (2) C will not
be "equal" to A, nor what epsilon is right (A_Type'Small?)

If someone could post the "roughly equal" function I'm describing, I would
appreciate it. (Note: this would need to be a pre-Ada 95 solution).

--------------------------------------------------------------------
Ken Garlington                  GarlingtonKE@lfwc.lockheed.com
F-22 Computer Resources         Lockheed Fort Worth Co.

If LFWC or the F-22 program has any opinions, they aren't telling me.




             reply	other threads:[~1995-04-01  0:00 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-04-01  0:00 Garlington KE [this message]
1995-04-06  0:00 ` Fixed-point question 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
  -- strict thread matches above, loose matches on Subject: below --
2015-06-26 13:20 Patrick Noffke
2015-06-26 16:56 ` 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
replies disabled

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