[comp.lang.eiffel] Problem with absolute value routines

greg@eemips.tamu.edu (Greg Economides) (09/14/90)

I have had strange results using "rabs" and "dabs" routines.  dabs is not
listed in the hardcopy library reference since it is not exported,
but it exists as a routine of SINGLE_MATH.  I'm not sure why it is not
exported, but that is not really an issue here.  I do not know what
is causing the strange results I am having; rabs and dabs both return
nonsense values.  I wonder if something is wrong with the "C" routines
used in them.  Here is a short class I wrote and its corresponding
output (notice, I wrote my own absolute value routine into the class --
myabs).

-----------------------------------------------------------------------
class TEST
inherit
	BASIC;
	SINGLE_MATH;

feature
	Create is
	  local
		i: INTEGER;
		r, tmp: REAL;
	  do
		r := -0.5;
		io.putstring("dabs of -0.5: ");
		io.putreal(dabs(r));io.new_line;

		io.putstring("rabs of same: ");
		io.putreal(rabs(r));io.new_line;

		io.putstring("myabs of same: ");
		io.putreal(myabs(r));io.new_line;

		r := 0.5;
		io.putstring("dabs of 0.5: ");
		io.putreal(dabs(r));io.new_line;

		io.putstring("rabs of same: ");
		io.putreal(rabs(r));io.new_line;

		io.putstring("myabs of same: ");
		io.putreal(myabs(r));io.new_line;

	  end; -- Create

	myabs (r: REAL): REAL is
	  do
		if r < 0.0 then
			Result := r*(-1.0)
		else
			Result := r
		end -- if
	  end -- myabs
end; -- class TEST
--------------------------------------------------------------------------
Output is as follows:

dabs of -0.5: 0
rabs of same: -NaN
myabs of same: .5
dabs of 0.5: 0
rabs of same: -NaN
myabs of same: .5

-------------------------------------------------------------------------
I have no idea what "-NaN" means, but I know that the value returned
for an absolute value routine should not be 0.

Any ideas?  Is this a bug or is it pilot error?

Peace,
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Greg Economides             Internet:  greg@zadok.tamu.edu
Texas A&M University                   greg@eemips.tamu.edu