Date: Mon, 13 May 1996 20:09:09 +0500 eppard@nando.net "SAS(r) Discussion" Andy Barnett Re: SAS-L Digest - 13 May 1996 - Special issue

John's version of underflow is the one I've always read/heard about. The = large=0D negative number is actually an overflow. It is the characteristic (expone= nt) of=0D the number that determines underflow/overflow: a large enough positive ex= ponent=0D (whether mantissa is negative or positive) is overflow, while a large eno= ugh=0D negative exponent (in terms of absolute magnitude) is underflow. Thus, fo= r IEEE=0D numbers, an exponent of +400 would be an overflow, and -400 an underflow.= Since=0D underflows are essentially zero, they can be often treated as zero. Howev= er,=0D (although SAS apparently does not do this) IEEE has representations for b= oth =0D + and - infinity, so it would be possible to keep track of overflows like= 1/0 or=0D -1/0 (I'm not sure what happens when an IEEE FPU multiplies an infinity b= y 0, but=0D I would think it should produce either another exception or some form of = special=0D representation -- the IEEE notation uses denormalized numbers for special= numbers=0D that software can determine how to use, such as SAS' missings). Other for= mats,=0D like VAX D-floating, do not match in all details with IEEE. (PC's use IEE= E FPUs.)=0D In any case, underflows are near zero, whereas overflows are far from zer= o in =0D either direction.=0D =0D //---------------original message follows -------------------------------= ------=0D Date: Mon, 13 May 1996 10:11:01 PDT=0D From: TWB2%Rates%FAR@GO50.COMP.PGE.COM=0D Subject: Re: sas help needed=0D =0D I would not call this underflow, nor would I expect notice of it. I woul= d=0D call creation of an excessively large negative number an underflow. Loos= ing=0D digits far out to the right of the decimal is just loss of precision whet= her=0D the remaining digits are all zeros or have some other value. For instanc= e, if=0D I store 1/3, I do not expect a warning that I actually stored 0.333...333= for=0D some number of digits, rather than an infinite string of 3's.=0D =0D BTW, it would amuse me if the original poster achieved his overflow by=0D=

dividing by almost zero, rather than by multipying by a huge number.=0D =0D Tim Berryhill - Contract Programmer and General Wizard=0D TWB2@PGE.COM or http://www.lookup.com/Homepages/92062/home.html=0D Frequently at Pacific Gas & Electric Co., San Francisco=0D The correlation coefficient between their views and=0D my postings is slightly less than 0=0D ----------------------=FFReply - Original Message=FF---------------------= -=0D Sent by:John Whittington <johnw@MAG-NET.CO.UK>=0D >The other interesting point is that 'underflowing' produces no error mes= sage=0D >at all, and excution continues normally; if a value becomes too small t= o=0D >represent, it seems to just be treated as zero.=0D =0D =0D =0D //-----------------------------------------------------------------------= ---=0D Andy E. Barnett=0D eppard@nando.net=0D Raleigh, NC, USA=

Back to: Top of message | Previous page | Main SAS-L page