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.
next 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