%!PS %%Version: 3.3.1 %%DocumentFonts: (atend) %%Pages: (atend) %%EndComments % % Version 3.3.1 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark /resolution 720 def setup 2 setdecoding %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 10 R f (Computing Science Technical Report No. 89)5 1798 1 1981 3200 t 12 B f (A Test of a Computer's Floating-Point Arithmetic Unit)7 2818 1 1471 3480 t 10 I f ( r)1 0( ye er)2 83( ry)1 44( hr)1 39( ch)1 50( Sc)1 44( S)1 75( .)1 0( L.)1 25( L)1 81( .)1 0(N N.)1 92 12 2613 3740 t 10 R f (February 4, 1981)2 685 1 720 6240 t cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 0 2 /saveobj save def mark 2 pagesetup 12 B f (A Test of a Computer's Floating-Point Arithmetic Unit)7 2818 1 1471 1220 t 10 I f ( r)1 0( ye er)2 83( ry)1 44( hr)1 39( ch)1 50( Sc)1 44( S)1 75( .)1 0( L.)1 25( L)1 81( .)1 0(N N.)1 92 12 2613 1480 t 10 R f (February 4, 1981)2 685 1 720 2380 t cleartomark showpage saveobj restore %%EndPage: 0 2 %%Page: 1 3 /saveobj save def mark 3 pagesetup 12 B f (A Test of a Computer's Floating-Point Arithmetic Unit)7 2818 1 1471 1230 t 10 I f ( r)1 0( ye er)2 83( ry)1 44( hr)1 39( ch)1 50( Sc)1 44( S)1 75( .)1 0( L.)1 25( L)1 81( .)1 0(N N.)1 92 12 2613 1470 t 10 R f (AT&T Bell Laboratories)2 993 1 2383 1866 t (Murray Hill, New Jersey 07974)4 1267 1 2246 1986 t (ABSTRACT)2618 2226 w ( test)1 164( The)1 205(This paper describes a test of a computer's floating-point arithmetic unit.)10 2915 3 1330 2622 t ( first goal deals with the needs of users of computers, and the second)13 2745( The)1 205(has two goals.)2 569 3 1080 2742 t ( first and major goal is to determine if)8 1515( The)1 205(goal deals with manufacturers of computers.)5 1774 3 1080 2862 t ( This)1 228(the machine supports a particular mathematical model of computer arithmetic.)9 3128 2 1080 2982 t (model was developed as an aid in the design, analysis, implementation and testing of)13 3394 1 1080 3102 t ( a computer supports the arithmetic model,)6 1712( If)1 116(portable, high-quality numerical software.)3 1683 3 1080 3222 t (then software written using the model will perform correctly and to specified accuracy on)13 3578 1 1080 3342 t ( second goal of the test is to check that the basic operations perform as)14 2817( The)1 205(that machine.)1 538 3 1080 3462 t ( example, if division \()4 880( For)1 189(the manufacturer intended.)2 1072 3 1080 3582 t 10 I f ( y)1 0( y)1 76( /)1 0( /)1 60(x x)1 44 5 3254 3582 t 10 R f (\) is implemented as a com-)5 1079 1 3467 3582 t (posite operation \()2 699 1 1080 3702 t 10 I f (x x)1 44 1 1812 3702 t 10 S f (\264)1888 3702 w 10 R f (\( 1)1 91 1 1975 3702 t 10 I f ( y)1 0( y)1 52(/ /)1 28 3 2074 3702 t 10 R f ( the accuracy)2 525( Also,)1 264( then the test should detect that fact.)7 1437(\) \),)1 132 4 2162 3702 t (lost in such a division due to the extra arithmetic operations can tell the manufacturer)14 3406 1 1080 3822 t (whether it has been implemented with sufficient care.)7 2140 1 1080 3942 t (Most computers allow the representation of far too many floating-point numbers to)11 3321 1 1330 4098 t ( small and well-motivated)3 1041( A)1 122(allow exhaustive testing of the floating-point arithmetic unit.)7 2432 3 1080 4218 t (set of floating-point numbers is presented that can be used to detect a vast number of)15 3386 1 1080 4338 t ( fact, that set can be used to)7 1103( In)1 133(floating-point arithmetic "problems" in existing machines.)5 2331 3 1080 4458 t (detect at least one instance of)5 1172 1 1080 4578 t 10 B f (every)2277 4578 w 10 R f (floating-point arithmetic problem known to the)5 1885 1 2534 4578 t (author.)1080 4698 w (The test is written in portable FORTRAN and has been run on seven different)13 3109 1 1330 4854 t (vendor's hardware, with results that range from perfection to disaster.)9 2785 1 1080 4974 t 10 B f (1. Introduction)1 670 1 720 5214 t 10 R f (Most users of computer software have, at one time or another, asked the question:)13 3269 1 970 5370 t (Does the floating-point arithmetic unit of this computer perform correctly?)9 2987 1 1220 5526 t (All too often, the answer to this question is)8 1719 1 720 5682 t 10 B f (no.)2464 5682 w 10 R f (The difficulties range from gross hardware problems to)7 2209 1 2645 5682 t (subtle design errors.)2 807 1 720 5802 t (For example, the Honeywell 6080 computer once had the property that a small number \(approxi-)14 3868 1 970 5958 t (mately)720 6078 w 10 S f (- -)1 55 1 1017 6078 t 10 R f (10)1112 6078 w 7 S f (- -)1 39 1 1223 6038 t 7 R f (39)1273 6038 w 10 R f (\) when divided by roughly 2 gave a large result \(approximately 10)11 2648 1 1351 6078 t 7 S f (+ +)1 39 1 4010 6038 t 7 R f (38)4060 6038 w 10 R f ( subtle design)2 550(\). A)1 180 2 4138 6078 t (feature on the CRAY-1 results in 1)6 1398 1 720 6198 t 10 S f (\264)2159 6198 w 10 I f (x x)1 44 1 2255 6198 t 10 S f ( \245)1 122(= =)1 55 2 2348 6198 t 10 R f (whenever)2550 6198 w 10 I f (x x)1 44 1 2962 6198 t 10 R f (has the largest legal floating-point exponent in the)7 2006 1 3031 6198 t ( are not isolated or rare cases; the computing world is a jungle of individualistic and some-)16 3623(machine. These)1 651 2 720 6318 t (times too clever arithmetic units.)4 1313 1 720 6438 t (It is not sufficient for the user to simply look in the owner's manual for the machine and conclude,)18 3936 1 970 6594 t (for example, that it is a base 2 machine with 56 bits in the mantissa, even though those facts may be correct.)21 4316 1 720 6714 t (The user needs to know the)5 1095 1 720 6834 t 10 I f ( c)1 0( ic)1 44( mi)1 28( na am)2 122( yn)1 50(d dy)1 94 6 1840 6834 t 10 R f ( make the)2 388( To)1 161(behavior of the arithmetic unit upon the stored data.)8 2072 3 2203 6834 t (point clear, assume that addition is botched and)7 1898 1 720 6954 t 10 I f (x x)1 44 1 2643 6954 t 10 S f (+ +)1 55 1 2727 6954 t 10 I f (y y)1 44 1 2822 6954 t 10 R f (is only computed accurate to 24 bits, rather than 56.)9 2072 1 2891 6954 t (Then some algorithms are not going to behave correctly if they believe that floating-point operations are)15 4168 1 720 7074 t ( example, if)2 474( For)1 189(accurate to 56 bits.)3 754 3 720 7194 t 10 I f (x x)1 44 1 2162 7194 t 10 R f (is the current Newton iterate and)5 1305 1 2231 7194 t 10 I f (y y)1 44 1 3561 7194 t 10 R f (is the current Newton correction in)5 1394 1 3630 7194 t (a nonlinear equation solver, then)4 1306 1 720 7314 t 10 I f (x x)1 44 1 2051 7314 t 10 S f (+ +)1 55 1 2135 7314 t 10 I f (y y)1 44 1 2230 7314 t 10 R f ( Hence,)1 329(, the next Newton iterate, will only be good to 24 bits.)11 2160 2 2274 7314 t cleartomark showpage saveobj restore %%EndPage: 1 3 %%Page: 2 4 /saveobj save def mark 4 pagesetup 10 R f (- 2 -)2 166 1 2797 480 t (asking for 30 bits in the solution of a nonlinear equation, while reasonable with a 56 bit mantissa, will)18 4075 1 720 840 t ( can take a user a great deal of time to discover that the)13 2197( It)1 111(result in an infinite-loop for Newton's method.)6 1873 3 720 960 t ( user needs)2 443( The)1 205(problem is not in the code for Newton's method, but in the floating-point addition operator.)14 3658 3 720 1080 t (to know the manner in which floating-point numbers are represented)9 2742 1 720 1200 t 10 B f (and)3487 1200 w 10 R f (how accurately the arithmetic unit)4 1364 1 3674 1200 t (operates upon those stored data values.)5 1558 1 720 1320 t ( major problem)2 616( A)1 122(It is not easy for the user to assess the computer's dynamic floating-point behavior.)13 3323 3 970 1476 t (is that most computers allow the representation of far too many floating-point numbers to allow exhaustive)15 4276 1 720 1596 t ( example, the IBM 370 series, in single-precision, is a machine with 6)12 2794( For)1 189(testing of the arithmetic unit.)4 1158 3 720 1716 t (hexadecimal digits in the mantissa and a base-16 exponent range of [)11 2753 1 720 1836 t 10 S f (- -)1 55 1 3522 1836 t 10 R f (64 ,)1 133 1 3593 1836 t 10 S f (+ +)1 55 1 3766 1836 t 10 R f ( represents more)2 659( This)1 228(63 ].)1 199 3 3837 1836 t (than 10)1 297 1 720 1956 t 7 R f (9)1022 1916 w 10 R f ( that)1 175( Checking)1 433(floating-point numbers.)1 944 3 1090 1956 t 10 I f (x x)1 44 1 2667 1956 t 10 S f (+ +)1 55 1 2751 1956 t 10 I f (y y)1 44 1 2846 1956 t 10 R f (gives the correct result for all \()6 1230 1 2915 1956 t 10 I f (x x)1 44 1 4177 1956 t 10 R f (,)4229 1956 w 10 I f (y y)1 44 1 4286 1956 t 10 R f (\) pairs would)2 527 1 4362 1956 t (involve 10)1 425 1 720 2076 t 7 R f (18)1150 2036 w 10 R f (tests, or, at 1 test per micro-second, many thousand cpu-years.)9 2487 1 1253 2076 t (We cannot expect to be able to)6 1230 1 970 2232 t 10 B f (prove)2225 2232 w 10 R f ( general, all we can)4 772( In)1 133(the arithmetic unit of a machine correct.)6 1599 3 2494 2232 t (do is gain)2 389 1 720 2352 t 10 I f ( ce e)2 44( nc)1 44( en)1 50( de)1 44( fi id)2 78( on nf)2 78(c co)1 94 7 1134 2352 t 10 R f (that it is correct.)3 649 1 1591 2352 t (Many attempts have been made previously to test the floating-point arithmetic units of a computer [1,)15 4062 1 970 2508 t ( efforts have either been aimed at a specific class of machines or have proven to be ineffective)17 3758( These)1 288(5, 7].)1 208 3 720 2628 t ( these attempts have used ad-hoc, or "folk", algorithms to test a small, selected)13 3139( Further,)1 369(on some machines.)2 763 3 720 2748 t ( of them have used a systematic definition)7 1684( None)1 266(set of conditions with an extremely limited set of operands.)9 2370 3 720 2868 t (of "correct" floating-point arithmetic as part of the test.)8 2203 1 720 2988 t ( That)1 233(The folk-algorithm approach fundamentally assumes that the machine being tested is healthy.)11 3739 2 970 3144 t ( Under)1 299(is, any errors in the arithmetic are assumed to be in the last digit of its floating-point representation.)17 3976 2 720 3264 t (that assumption, it is sufficient to find an)7 1639 1 720 3384 t 10 I f (i i)1 28 1 2384 3384 t 10 R f (so that the)2 411 1 2437 3384 t 10 I f (i i)1 28 1 2873 3384 t 7 I f ( h)1 0(t th)1 55 2 2912 3344 t 10 R f (digit in the machine behaves correctly and the)7 1838 1 3000 3384 t (\()720 3504 w 10 I f (i i)1 28 1 761 3504 t 10 S f (+ +)1 55 1 813 3504 t 10 R f (1 \))1 91 1 884 3504 t 7 I f ( t)1 0(s st)1 47 2 986 3464 t 10 R f ( that value of)3 524( From)1 267(digit behaves in a certain strange manner.)6 1660 3 1066 3504 t 10 I f (i i)1 28 1 3542 3504 t 10 R f (, the precision of the machine can be)7 1463 1 3570 3504 t ( when a machine is not healthy, the)7 1409(determined. However,)1 914 2 720 3624 t 10 I f (i i)1 28 1 3068 3624 t 7 I f ( h)1 0(t th)1 55 2 3107 3584 t 10 R f (digit may behave correctly and the \()6 1441 1 3195 3624 t 10 I f (i i)1 28 1 4644 3624 t 10 S f (- -)1 55 1 4696 3624 t 10 R f (2 \))1 91 1 4767 3624 t 7 I f (n nd d)2 70 1 4869 3584 t 10 R f ( the folk-algorithm approach may not correctly determine precision on a sick machine.)12 3457( Thus,)1 275(digit may not.)2 559 3 720 3744 t (The present test uses a much larger set of test operands and a comprehensive mathematical definition of)16 4147 1 720 3864 t (correct floating-point arithmetic.)2 1306 1 720 3984 t (Section 2 of this paper presents a small and well-motivated subset of all floating-point \(FP\) numbers)15 4016 1 970 4140 t (that, when used as test operands, triggers all anomalous FP behavior previously known to the author and)16 4173 1 720 4260 t ( a base-)2 304( For)1 189(has found further unsuspected errors.)4 1482 3 720 4380 t 10 I f (b b)1 50 1 2695 4380 t 10 R f (machine with)1 541 1 2770 4380 t 10 I f (t t)1 28 1 3336 4380 t 10 R f (base-)3389 4380 w 10 I f (b b)1 50 1 3599 4380 t 10 R f (digits in the mantissa, there are)5 1243 1 3674 4380 t 10 I f (O O)1 72 1 720 4500 t 10 R f (\()800 4500 w 10 I f (b b)1 50 1 874 4500 t 7 I f (t t)1 20 1 935 4460 t 10 R f ( sample subset of section 2 involves only)7 1641( The)1 205(\) possible mantissas.)2 825 3 1004 4500 t 10 I f (O O)1 72 1 3700 4500 t 10 R f (\()3780 4500 w 10 I f (t t)1 28 1 3854 4500 t 10 R f ( reduces)1 329( This)1 228(\) mantissas.)1 472 3 3923 4500 t ( careful choice of those)4 930( The)1 205(the amount of testing to a reasonable level.)7 1714 3 720 4620 t 10 I f (O O)1 72 1 3594 4620 t 10 R f (\()3674 4620 w 10 I f (t t)1 28 1 3748 4620 t 10 R f (\) mantissas also allows a good)5 1213 1 3817 4620 t (deal of confidence that they will uncover any FP troubles in the machine being tested.)14 3431 1 720 4740 t (To use the selected mantissas of section 2 to detect problems, we need some definition of what the)17 3933 1 970 4896 t ("correct" result of, for example,)4 1267 1 720 5016 t 10 I f (x x)1 44 1 2012 5016 t 10 S f (+ +)1 55 1 2096 5016 t 10 I f (y y)1 44 1 2191 5016 t 10 R f ( 3 describes a previously developed model of FP arith-)9 2183(is. Section)1 442 2 2260 5016 t (metic that will be taken to define correct arithmetic.)8 2071 1 720 5136 t (Sections 2 and 3 completely define the test by giving the FP numbers to be used as test operands and)19 4027 1 970 5292 t ( The)1 205(by stating the criteria by which to judge the FP arithmetic unit's performance upon those operands.)15 3956 2 720 5412 t (implementation of the test was a ticklish and tedious chore, involving some 70 subprograms and more than)16 4277 1 720 5532 t ( 4 describes this implementation and the tools from the)9 2196( Section)1 350(12,000 lines of portable FORTRAN.)4 1466 3 720 5652 t 9 R f (UNIX)720 5772 w 10 S f (\322)945 5772 w 10 R f (operating system used to create the FORTRAN code for the test from the)12 2923 1 1049 5772 t 10 I f ( on n)2 50( ti io)2 78( at)1 28( ta)1 50( nt)1 28( en)1 50( me)1 44( um)1 72( cu)1 50(d do oc)2 144 10 3997 5772 t 10 R f (for the)1 263 1 4616 5772 t (test cases.)1 399 1 720 5892 t (Since the test is implemented in FORTRAN, it should be noted that it is)13 2879 1 970 6048 t 10 I f ( t)1 0(n no ot)2 128 2 3874 6048 t 10 R f (the arithmetic unit of the)4 988 1 4027 6048 t (machine)720 6168 w 10 I f ( e)1 0( on ne)2 94( lo)1 50(a al)1 78 4 1083 6168 t 10 R f ( entire compiler-operating system-hardware configuration will be)6 2611( The)1 205(that is being tested.)3 772 3 1330 6168 t ( is as it should be, since a correctly designed and implemented piece of hardware may be)16 3545(tested. This)1 486 2 720 6288 t ( a well designed and implemented compiler may compensate for a)10 2645( Conversely,)1 530(misused by the compiler.)3 1005 3 720 6408 t ( this paper, the term "machine" will refer to the compiler-operating)10 2674( In)1 133(badly designed piece of hardware.)4 1365 3 720 6528 t (system-hardware configuration.)1 1269 1 720 6648 t ( for the test are provided so that the user)9 1605( Drivers)1 349(Section 5 is a user's guide to the FP test software.)10 1990 3 970 6804 t (can request either a "Yes-No" answer to such questions as "Is this a base 2 machine with 48 bits in the man-)21 4313 1 720 6924 t (tissa?", or a numerical response to such questions as "What is the base)12 2808 1 720 7044 t 10 I f (b b)1 50 1 3553 7044 t 10 R f (of this machine and how many)5 1229 1 3628 7044 t (base-)720 7164 w 10 I f (b b)1 50 1 930 7164 t 10 R f (digits does it correctly support?".)4 1326 1 1005 7164 t cleartomark showpage saveobj restore %%EndPage: 2 4 %%Page: 3 5 /saveobj save def mark 5 pagesetup 10 R f (- 3 -)2 166 1 2797 480 t (Section 6 describes two small main programs for driving the test in the above two modes and gives)17 3960 1 970 840 t (detailed run-time and memory requirements for using them.)7 2391 1 720 960 t (Section 7 is a wish-list of things that should be done, in the future, to make the test more effective.)19 3935 1 970 1116 t (There are seven appendices that give, in alphabetical order, the results of running the test on hard-)16 3913 1 970 1272 t ( might enjoy turning to)4 923( You)1 222(ware from: Amdahl, Cray, DEC, Honeywell, IBM, Interdata and Perkin-Elmer.)9 3169 3 720 1392 t (the appendix dealing with the vendor supplying your local computation center.)10 3149 1 720 1512 t 10 B f ( Subset.)1 334(2. Sample)1 442 2 720 1752 t 10 R f ( choice of that subset is)5 935( The)1 205(Since we cannot afford to test all FP numbers, we can only test a subset.)14 2885 3 970 1908 t ( subset should be large enough to detect all known)9 2017( The)1 205(crucial to the success and effectiveness of the test.)8 2003 3 720 2028 t ( the subset should be sufficiently)5 1313( Yet)1 194(anomalous FP behavior and, if possible, increase the list of such.)10 2589 3 720 2148 t (coherent that people can easily grasp it and have "confidence" in its ability to trigger incorrect FP behavior,)17 4291 1 720 2268 t (if it exists, in the machine being tested.)7 1563 1 720 2388 t (To motivate and make clear the subset choice, we need to have a simple, clear model for the)17 3683 1 970 2544 t 10 I f ( on n)2 50( ti io)2 78( at)1 28( ta)1 50( nt)1 28( en)1 50( se)1 44( es)1 39( re)1 44( pr)1 39( ep)1 50(r re)1 83 12 720 2664 t 10 R f ( This)1 228( this we use the tried and true representation of [12] and [4].)12 2397( For)1 189(of FP numbers.)2 614 4 1328 2664 t (machine model is based on the assumption that FP numbers can be represented in the signed, base)16 3920 1 720 2784 t 10 I f (b b)1 50 1 4665 2784 t 10 R f (,)4715 2784 w 10 I f (t t)1 28 1 4765 2784 t 10 R f (digit)4818 2784 w (form)720 2904 w 10 S f (\261)1990 3144 w 10 I f (b b)1 50 1 2053 3144 t 7 I f (e e)1 31 1 2114 3104 t 10 R f (\()2194 3144 w 10 I f (b b)1 50 1 2320 3214 t (a a)1 50 1 2293 3064 t 7 R f (1)2354 3084 w 10 S1 f (_ __)1 134 1 2278 3114 t 10 S f (+ +)1 55 1 2462 3144 t 10 R f (. . .)2 125 1 2582 3119 t 10 S f (+ +)1 55 1 2772 3144 t 10 I f (b b)1 50 1 2892 3224 t 7 I f (t t)1 20 1 2953 3184 t 10 I f (a a)1 50 1 2892 3064 t 7 I f (t t)1 20 1 2953 3084 t 10 S1 f (_ __)1 119 1 2877 3114 t 10 R f (\))3047 3144 w 10 S f ( \261)1 104(= =)1 55 2 3137 3144 t 10 I f (b b)1 50 1 3304 3144 t 7 I f (e e)1 31 1 3365 3104 t (i i)1 20 1 3445 3244 t 7 S f (= =)1 39 1 3481 3244 t 7 R f (1)3531 3244 w 15 S f (S)3461 3174 w 7 I f (t t)1 20 1 3496 3044 t 10 I f (b b)1 50 1 3599 3224 t 7 I f (i i)1 20 1 3660 3184 t 10 I f (a a)1 50 1 3599 3064 t 7 I f (i i)1 20 1 3660 3084 t 10 S1 f (_ __)1 119 1 3584 3114 t 10 R f (, \(2.1\))1 1295 1 3745 3144 t (where either)1 495 1 720 3404 t 10 I f (a a)1 50 1 1240 3404 t 7 R f (1)1301 3424 w 10 S f (= =)1 55 1 1393 3404 t 10 R f (. . .)2 125 1 1522 3379 t 10 S f (= =)1 55 1 1721 3404 t 10 I f (a a)1 50 1 1825 3404 t 7 I f (t t)1 20 1 1886 3424 t 10 S f (= =)1 55 1 1963 3404 t 10 R f (0 or 0)2 233 1 2067 3404 t 10 S f (< <)1 55 1 2349 3404 t 10 I f (a a)1 50 1 2453 3404 t 7 R f (1)2514 3424 w 10 R f (, 0)1 100 1 2557 3404 t 10 S f (\243)2698 3404 w 10 I f (a a)1 50 1 2794 3404 t 7 I f (i i)1 20 1 2855 3424 t 10 S f (< <)1 55 1 2932 3404 t 10 I f (b b)1 50 1 3036 3404 t 10 R f (,)3086 3404 w 10 I f (i i)1 28 1 3136 3404 t 10 S f (= =)1 55 1 3213 3404 t 10 R f (1 ,)1 83 1 3317 3404 t (. . .)2 125 1 3433 3379 t (,)3591 3404 w 10 I f (t t)1 28 1 3657 3404 t 10 R f (, and)1 194 1 3685 3404 t 10 I f (e e)1 44 1 3904 3404 t 7 R f (min)3959 3424 w 10 S f (\243)4118 3404 w 10 I f (e e)1 44 1 4214 3404 t 10 S f (\243)4299 3404 w 10 I f (e e)1 44 1 4395 3404 t 7 R f (max)4450 3424 w 10 R f (.)4579 3404 w (For our purposes, the unknown parameters in \(2.1\) are the base)10 2522 1 970 3560 t 10 I f (b b)1 50 1 3517 3560 t 10 R f (, the number of base-)4 845 1 3567 3560 t 10 I f (b b)1 50 1 4412 3560 t 10 R f (digits)4487 3560 w 10 I f (t t)1 28 1 4735 3560 t 10 R f (, and)1 194 1 4763 3560 t (the exponent range limits)3 1013 1 720 3680 t 10 I f (e e)1 44 1 1758 3680 t 7 R f (min)1813 3700 w 10 R f (and)1956 3680 w 10 I f (e e)1 44 1 2125 3680 t 7 R f (max)2180 3700 w 10 R f (.)2309 3680 w (This representation model is sufficiently abstract that it can be used to describe all existing FP)15 3760 1 970 3836 t ( model does not worry about whether the numbers)8 2008(machines. The)1 607 2 720 3956 t 10 I f ( e)1 0( re)1 44(a ar)1 89 3 3360 3956 t 10 R f (stored in the machine in the form of)7 1434 1 3518 3956 t (\(2.1\), it only asserts that they)5 1163 1 720 4076 t 10 I f ( an n)2 50(c ca)1 94 2 1908 4076 t 10 R f ( allows analysis to proceed independent)5 1589( This)1 228(be represented in that form.)4 1100 3 2077 4076 t (of such nitty-gritty details as whether the mantissa is stored in 1's or 2's complement, or whether the)17 4023 1 720 4196 t ( these questions,)2 658( All)1 178(mantissa is stored in the machine as a fraction or an integer \(as on CDC machines\).)15 3322 3 720 4316 t ( this model is delightful)4 951( Yet,)1 219(and many more, are submerged in the abstract representation model of \(2.1\).)11 3054 3 720 4436 t ( all rounding-error analyses of the)5 1355( Virtually)1 411( is, it is practical.)4 683( That)1 233(for a numerical-analyst to work with.)5 1486 5 720 4556 t ( as a representational model, \(2.1\) is an excellent balance between)10 2637( Thus,)1 275(last 25 years have been based on it.)7 1408 3 720 4676 t (abstraction and specialization.)2 1206 1 720 4796 t (The immense number of FP numbers that machines support is due nearly entirely to the number of)16 3940 1 970 4952 t (base-)720 5072 w 10 I f (b b)1 50 1 930 5072 t 10 R f (digits)1005 5072 w 10 I f (t t)1 28 1 1253 5072 t 10 R f ( example, on the IBM 370 series in single-precision,)8 2092( For)1 189(, not to the number of exponents.)6 1321 3 1281 5072 t ( paper concentrates on reducing the)5 1415( This)1 228(there are only 128 exponents, but there are millions of mantissas.)10 2602 3 720 5192 t (number of FP mantissas to be used, and does nothing in particular to reduce the number of exponents to be)19 4267 1 720 5312 t ( experience with the test has shown how the number of exponent samples can be reduced)15 3556(used. Practical)1 607 2 720 5432 t (\(see section 6\), but that reduction was not built into the test.)11 2390 1 720 5552 t (It seems a good idea to use test operands with mantissas near the smallest \()14 2996 1 970 5708 t 10 I f (b b)1 50 1 3999 5708 t 7 S f (- -)1 39 1 4060 5668 t 7 R f (1)4110 5668 w 10 R f (\) and largest)2 493 1 4186 5708 t (\()720 5878 w 7 I f (i i)1 20 1 786 5978 t 7 S f (= =)1 39 1 822 5978 t 7 R f (1)872 5978 w 15 S f (S)802 5908 w 7 I f (t t)1 20 1 837 5778 t 10 R f (\()915 5878 w 10 I f (b b)1 50 1 956 5878 t 10 S f (- -)1 55 1 1030 5878 t 10 R f (1 \))1 91 1 1101 5878 t 10 I f (b b)1 50 1 1232 5878 t 7 S f (- -)1 39 1 1293 5838 t 7 I f (i i)1 20 1 1343 5838 t 10 S f (\272)1412 5878 w 10 R f (1)1508 5878 w 10 S f (- -)1 55 1 1598 5878 t 10 I f (b b)1 50 1 1693 5878 t 7 S f (- -)1 39 1 1754 5838 t 7 I f (t t)1 20 1 1804 5838 t 10 R f ( also seems desirable to use operands with strings of)9 2089( It)1 111(\) normalized mantissas.)2 946 3 1865 5878 t (0's, 1's and \()3 521 1 720 6078 t 10 I f (b b)1 50 1 1249 6078 t 10 S f (- -)1 55 1 1323 6078 t 10 R f ( these)1 230( With)1 250( in their representations, so that isolated bits and bursts of bits are used.)13 2850(1 \)'s)1 163 4 1394 6078 t (thoughts in mind, there are 5 "obvious" mantissa patterns)8 2289 1 720 6198 t cleartomark showpage saveobj restore %%EndPage: 3 5 %%Page: 4 6 /saveobj save def mark 6 pagesetup 10 R f (- 4 -)2 166 1 2797 480 t 10 I f (b b)1 50 1 1220 900 t 7 S f (- -)1 39 1 1281 860 t 7 R f (1)1331 860 w 10 S f (+ +)1 55 1 1414 900 t 10 I f (b b)1 50 1 1509 900 t 7 S f (- -)1 39 1 1570 860 t 7 I f (i i)1 20 1 1620 860 t 10 R f (for)2341 900 w 10 I f (i i)1 28 1 2490 900 t 10 S f (= =)1 55 1 2567 900 t 10 R f ( . . . ,)4 200(2 ,)1 83 2 2671 900 t 10 I f (t t)1 28 1 2978 900 t 10 R f (,)3014 900 w 10 I f ( e)1 0( pe)1 44( yp)1 50(T Ty)1 100 4 3245 900 t 10 R f (1 ,)1 83 1 3447 900 t 7 I f (j j)1 20 1 1316 1230 t 7 S f (= =)1 39 1 1347 1230 t 7 R f (1)1397 1230 w 15 S f (S)1330 1160 w 7 I f (i i)1 20 1 1365 1030 t 10 I f (b b)1 50 1 1443 1130 t 7 S f (- -)1 39 1 1504 1090 t 7 I f (j j)1 20 1 1554 1090 t 10 R f (for)2341 1130 w 10 I f (i i)1 28 1 2490 1130 t 10 S f (= =)1 55 1 2567 1130 t 10 R f ( . . . ,)4 200(1 ,)1 83 2 2671 1130 t 10 I f (t t)1 28 1 2978 1130 t 10 R f (,)3014 1130 w 10 I f ( e)1 0( pe)1 44( yp)1 50(T Ty)1 100 4 3245 1130 t 10 R f (2 ,)1 83 1 3447 1130 t (0)1466 1390 w 10 I f ( e)1 0( pe)1 44( yp)1 50(T Ty)1 100 4 2316 1390 t 10 R f ( \(2.2\))1 2439(3 ,)1 83 2 2518 1390 t (\()1129 1620 w 10 I f (b b)1 50 1 1170 1620 t 10 S f (- -)1 55 1 1244 1620 t 10 R f (1 \))1 91 1 1315 1620 t 7 I f (j j)1 20 1 1456 1720 t 7 S f (= =)1 39 1 1487 1720 t 7 R f (1)1537 1720 w 15 S f (S)1470 1650 w 7 I f (i i)1 20 1 1505 1520 t 10 I f (b b)1 50 1 1575 1620 t 7 S f (- -)1 39 1 1636 1580 t 7 I f (j j)1 20 1 1686 1580 t 10 R f (for)2341 1620 w 10 I f (i i)1 28 1 2490 1620 t 10 S f (= =)1 55 1 2567 1620 t 10 R f ( . . . ,)4 200(1 ,)1 83 2 2671 1620 t 10 I f (t t)1 28 1 2978 1620 t 10 R f (,)3014 1620 w 10 I f ( e)1 0( pe)1 44( yp)1 50(T Ty)1 100 4 3245 1620 t 10 R f (4 ,)1 83 1 3447 1620 t (\()945 1880 w 10 I f (b b)1 50 1 986 1880 t 10 S f (- -)1 55 1 1060 1880 t 10 R f ( \()1 73(1 \))1 91 2 1131 1880 t 10 I f (b b)1 50 1 1303 1880 t 7 S f (- -)1 39 1 1364 1840 t 7 R f (1)1414 1840 w 10 S f (+ +)1 55 1 1497 1880 t 10 I f (b b)1 50 1 1592 1880 t 7 S f (- -)1 39 1 1653 1840 t 7 I f (i i)1 20 1 1703 1840 t 10 R f (\) for)1 718 1 1739 1880 t 10 I f (i i)1 28 1 2490 1880 t 10 S f (= =)1 55 1 2567 1880 t 10 R f ( . . . ,)4 200(2 ,)1 83 2 2671 1880 t 10 I f (t t)1 28 1 2978 1880 t 10 R f (,)3014 1880 w 10 I f ( e)1 0( pe)1 44( yp)1 50(T Ty)1 100 4 3245 1880 t 10 R f (5.)3447 1880 w (On a base-10 machine, for)4 1055 1 720 2060 t 10 I f (i i)1 28 1 1800 2060 t 10 S f (= =)1 55 1 1877 2060 t 10 R f (5, examples from these five mantissa classes are)7 1929 1 1981 2060 t (0. 100010)1 383 1 1220 2180 t (. . .)2 125 1 1636 2155 t (0)1794 2180 w (0. 111110)1 383 1 1220 2360 t (. . .)2 125 1 1636 2335 t (0)1794 2360 w (0)1220 2540 w (0. 999990)1 383 1 1220 2720 t (. . .)2 125 1 1636 2695 t (0)1794 2720 w (0. 900090)1 383 1 1220 2900 t (. . .)2 125 1 1636 2875 t (0)1794 2900 w 10 I f (. .)1 25 1 1885 2900 t 10 R f (For)970 3116 w 10 I f (b b)1 50 1 1134 3116 t 10 S f (= =)1 55 1 1233 3116 t 10 R f ( mantissas of \(2.2\))3 738( The)1 205(2, clearly Types 4 and 5 are redundant and are not used in the test.)14 2644 3 1337 3116 t (are natural in that they "bunch" together near 1)8 1872 1 720 3236 t 10 I f ( b)1 0( b)1 58(/ /)1 28 3 2600 3236 t 10 R f (and 1, the endpoints of the range for normalized mantis-)9 2246 1 2711 3236 t ( also)1 186(sas. \(2.2\))1 388 2 720 3356 t 10 I f ( s)1 0( ns)1 39( in)1 50( ai)1 28( ta)1 50( on nt)2 78(c co)1 94 7 1319 3356 t 10 R f (the smallest \()2 533 1 1683 3356 t 10 I f (b b)1 50 1 2249 3356 t 7 S f (- -)1 39 1 2310 3316 t 7 R f (1)2360 3316 w 10 R f ( 1)1 83(\) and largest \()3 551 2 2436 3356 t 10 S f (- -)1 55 1 3110 3356 t 10 I f (b b)1 50 1 3205 3356 t 7 S f (- -)1 39 1 3266 3316 t 7 I f (t t)1 20 1 3316 3316 t 10 R f ( with software, most of)4 924( As)1 161(\) mantissas.)1 472 3 3377 3356 t ( is)1 92( Re-normalization)1 749(the errors in machine design arise in the handling of conditional statements \(IF's\).)12 3276 3 720 3476 t (such a conditional response to the mantissa of the computed result being less than)13 3266 1 720 3596 t 10 I f (b b)1 50 1 4011 3596 t 7 S f (- -)1 39 1 4072 3556 t 7 R f (1)4122 3556 w 10 R f (or greater than)2 581 1 4190 3596 t (1)720 3716 w 10 S f (- -)1 55 1 810 3716 t 10 I f (b b)1 50 1 905 3716 t 7 S f (- -)1 39 1 966 3676 t 7 I f (t t)1 20 1 1016 3676 t 10 R f ( the FP unit is most likely to fail near these extremities and that is where \(2.2\) samples the)18 3600(. Thus,)1 300 2 1044 3716 t (mantissa most densely.)2 925 1 720 3836 t ( the appendices show that)4 1026( However,)1 440(Other choices of mantissa could, and perhaps should, be made.)9 2512 3 970 3992 t (those of \(2.2\) are extremely useful.)5 1399 1 720 4112 t ( only)1 203( The)1 205(Absolutely no claim is made that \(2.2\) is sufficient to detect all anomalous FP behavior.)14 3514 3 970 4268 t (claim made for \(2.2\) is that it is a small, simple and well-motivated subset of all FP mantissas that can be)20 4203 1 720 4388 t ( fact, \(2.2\) can be used to)6 1008( In)1 133(used to detect a vast number of FP arithmetic "problems" in existing machines.)12 3160 3 720 4508 t (detect at least one instance of)5 1172 1 720 4628 t 10 B f (every)1917 4628 w 10 R f ( there are)2 370( However,)1 440(FP arithmetic problem known to the author.)6 1752 3 2174 4628 t ( example, on the Interdata 8/32,)5 1267( For)1 189(specific cases of pathology not in the sample set.)8 1950 3 720 4748 t 10 I f (x x)1 44 1 4151 4748 t 10 S f (- -)1 55 1 4235 4748 t 10 R f (16)4330 4748 w 7 S f (- -)1 39 1 4441 4708 t 7 R f (64)4491 4708 w 10 I f (x x)1 44 1 4601 4748 t 10 S f (\272)4686 4748 w 10 R f (0 for)1 191 1 4782 4748 t (all machine)1 463 1 720 4868 t 10 I f (x x)1 44 1 1208 4868 t 10 R f ('s; yet the test finds this only for sample)8 1605 1 1252 4868 t 10 I f (x x)1 44 1 2882 4868 t 10 R f ( author would appreciate additions to the)6 1631('s. The)1 302 2 2926 4868 t (collection described in the appendices.)4 1544 1 720 4988 t (A somewhat offbeat example of the utility of \(2.2\) in detecting errors is the now famous wiring error)17 4026 1 970 5144 t ( not even being)3 613( \))1 73( \( 1. 01 \))4 273( \( exp)2 241( error resulted in log)4 815( That)1 233(on the early models of the HP-45 hand calculator.)8 1988 7 720 5264 t ( is one of the numbers which would be used from)10 1975( 01)1 108( the HP-45 is a base 10 machine, 1.)8 1409( Since)1 272( 01.)1 133(close to 1.)2 408 6 720 5384 t ( \( exp \()3 234( and exp are hard-wired processes and log)7 1675(\(2.2\). log)1 394 3 720 5504 t 10 I f (x x)1 44 1 3031 5504 t 10 R f (\) \))1 74 1 3083 5504 t 10 S f (~)3206 5484 w (~)3206 5509 w 10 I f (x x)1 44 1 3302 5504 t 10 R f ( In)1 133(would be a logical relation to test.)6 1357 2 3371 5504 t ( \( exp \()3 234(fact, log)1 327 2 720 5624 t 10 I f (x x)1 44 1 1289 5624 t 10 R f (\) \))1 74 1 1341 5624 t 10 S f (~)1464 5604 w (~)1464 5629 w 10 I f (x x)1 44 1 1560 5624 t 10 R f (failed for)1 368 1 1629 5624 t 10 B f (all)2022 5624 w 10 I f (x x)1 44 1 2153 5624 t 10 R f ( 01.)1 133('s with type 1 mantissas from \(2.2\), not just 1.)9 1844 2 2197 5624 t (The number of FP mantissas represented by \(2.1\) is)8 2061 1 970 5780 t 10 I f (O O)1 72 1 3056 5780 t 10 R f (\()3136 5780 w 10 I f (b b)1 50 1 3210 5780 t 7 I f (t t)1 20 1 3271 5740 t 10 R f (\), while \(2.2\) only represents)4 1153 1 3340 5780 t 10 I f (O O)1 72 1 4518 5780 t 10 R f (\()4598 5780 w 10 I f (t t)1 28 1 4672 5780 t 10 R f (\) man-)1 263 1 4741 5780 t ( example,)1 388( For)1 189( reduces the number of mantissas to be used in the test to a very reasonable level.)16 3241(tissas. This)1 470 4 720 5900 t (on an IBM 370 machine in single-precision, we have)8 2116 1 720 6020 t 10 I f (b b)1 50 1 2861 6020 t 10 S f (= =)1 55 1 2960 6020 t 10 R f (16 and)1 269 1 3064 6020 t 10 I f (t t)1 28 1 3358 6020 t 10 S f (= =)1 55 1 3435 6020 t 10 R f ( \(2.2\) as test mantissas,)4 927(6. Using)1 364 2 3539 6020 t (rather than all of \(2.1\), reduces the number of mantissas from roughly 10)12 2911 1 720 6140 t 7 R f (6)3636 6100 w 10 R f ( reduction,)1 427( This)1 228(to a few dozen.)3 609 3 3704 6140 t (from)720 6260 w 10 I f (O O)1 72 1 939 6260 t 10 R f (\()1019 6260 w 10 I f (b b)1 50 1 1093 6260 t 7 I f (t t)1 20 1 1154 6220 t 10 R f (\) to)1 136 1 1223 6260 t 10 I f (O O)1 72 1 1384 6260 t 10 R f (\()1464 6260 w 10 I f (t t)1 28 1 1538 6260 t 10 R f (\), allows testing to be done in minutes instead of millennia.)10 2366 1 1607 6260 t 10 B f ( Model.)1 322(3. Dynamic)1 508 2 720 6500 t 10 R f (Section 2 presented a sample set of FP numbers \(2.2\) to be used as mantissas of operands in testing)18 3965 1 970 6656 t ( do we decide if)4 637( How)1 244(the dynamic behavior of the FP arithmetic unit of the host computer.)11 2742 3 720 6776 t 10 I f (x x)1 44 1 4368 6776 t 10 S f (+ +)1 55 1 4452 6776 t 10 I f (y y)1 44 1 4547 6776 t 10 R f (, for exam-)2 440 1 4591 6776 t ( section describes a previously developed model)6 1930( This)1 228(ple, has been computed "correctly" by the machine?)7 2077 3 720 6896 t (of FP arithmetic that will be used to define correct arithmetic for the purposes of the test.)16 3553 1 720 7016 t (Let)970 7172 w 10 I f ( l)1 0( l)1 36(f f)1 28 3 1128 7172 t 10 R f (\()1233 7172 w 10 I f (x x)1 44 1 1307 7172 t 7 R f (*)1394 7146 w 10 I f (y y)1 44 1 1483 7172 t 10 R f (\) be the machine computed value of)6 1430 1 1568 7172 t 10 I f (x x)1 44 1 3023 7172 t 7 R f (*)3110 7146 w 10 I f (y y)1 44 1 3199 7172 t 10 R f (, where)1 293 1 3243 7172 t 7 R f (*)3571 7146 w 10 R f (is any of)2 344 1 3644 7172 t 10 S f (+ +)1 55 1 4013 7172 t 10 R f (,)4084 7172 w 10 S f (- -)1 55 1 4158 7172 t 10 R f (,)4229 7172 w 10 S f (\264)4295 7172 w 10 R f (and)4375 7172 w 10 I f (/ /)1 28 1 4544 7172 t 10 R f ( one)1 169(. Then)1 280 2 4572 7172 t ( the)1 147( Using)1 289(way to assess the accuracy of FP arithmetic would be to use the representation model \(2.1\).)15 3646 3 720 7292 t cleartomark showpage saveobj restore %%EndPage: 4 6 %%Page: 5 7 /saveobj save def mark 7 pagesetup 10 R f (- 5 -)2 166 1 2797 480 t (relation [4],)1 471 1 720 840 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1697 1020 t 10 R f (\()1802 1020 w 10 I f (x x)1 44 1 1876 1020 t 7 R f (*)1963 994 w 10 I f (y y)1 44 1 2052 1020 t 10 R f (\))2137 1020 w 10 S f (= =)1 55 1 2227 1020 t 10 R f (\()2331 1020 w 10 I f (x x)1 44 1 2405 1020 t 7 R f (*)2492 994 w 10 I f (y y)1 44 1 2581 1020 t 10 R f (\))2666 1020 w 10 S f (\264)2748 1020 w 10 R f (\( 1)1 91 1 2844 1020 t 10 S f ( d)1 89(+ +)1 55 2 2975 1020 t 10 R f (\) ,)1 74 1 3151 1020 t 10 S f ( e \272)2 181( \243)1 87( \357)1 -1(\357 \357d\357)1 147 4 3423 1020 t 10 I f (b b)1 50 1 3878 1020 t 7 R f (1)3939 980 w 7 S f (- -)1 39 1 3985 980 t 7 I f (t t)1 20 1 4035 980 t 10 R f (\(3.1\))4849 1020 w (for all)1 241 1 720 1200 t 10 I f (x x)1 44 1 986 1200 t 10 R f (and)1055 1200 w 10 I f (y y)1 44 1 1224 1200 t 10 R f (in the sample set, we could attempt to compute)8 1879 1 1293 1200 t 10 S f (e \272)1 140 1 3197 1200 t 7 I f (x x)1 31 1 3413 1270 t 7 R f (,)3449 1270 w 7 I f (y y)1 31 1 3488 1270 t 10 I f ( x)1 0( ax)1 44(M Ma)1 133 3 3378 1200 t 10 S f ( \357)1 0( \357)1 82( d)1 81(\357 \357)1 49 4 3588 1200 t 10 R f (and then, indirectly,)2 799 1 3792 1200 t 10 I f (t t)1 28 1 4616 1200 t 10 R f (. How-)1 302 1 4644 1200 t ( First,)1 259(ever, this approach has serious problems.)5 1644 2 720 1370 t 10 S f (d)2648 1370 w 10 R f (is very difficult or impossible to compute accurately from)8 2308 1 2722 1370 t ( \(3.1\) allows 1)3 577(\(3.1\). Second,)1 585 2 720 1490 t 10 S f (+ +)1 55 1 1922 1490 t 10 R f (1)2017 1490 w 10 S f (= =)1 55 1 2116 1490 t 10 R f (2)2220 1490 w 10 S f ( d)1 89(+ +)1 55 2 2310 1490 t 10 R f (, for)1 166 1 2454 1490 t 10 S f (d \271)1 112 1 2645 1490 t 10 R f (0, which is not acceptable since most everyone agrees)8 2153 1 2765 1490 t (that 1)1 225 1 720 1610 t 10 S f (+ +)1 55 1 985 1610 t 10 R f (1)1080 1610 w 10 S f (= =)1 55 1 1179 1610 t 10 R f (2)1283 1610 w 10 B f (must)1358 1610 w 10 R f ( \(3.1\) is not suitable to define "correct" FP)8 1694( Thus,)1 275(hold on any reasonable machine.)4 1311 3 1594 1610 t (arithmetic.)720 1730 w (Clearly, at least some FP results are going to have to be exactly right, like 1)15 3022 1 970 1886 t 10 S f (+ +)1 55 1 4032 1886 t 10 R f (1)4127 1886 w 10 S f (= =)1 55 1 4226 1886 t 10 R f (2, but which)2 497 1 4330 1886 t ( model of the dynamic FP behavior of a machine, which takes this and many other things into)17 3741(ones? A)1 349 2 720 2006 t ( the interest of com-)4 804( In)1 133( model will be used to define "correct" FP arithmetic.)9 2135( That)1 233(account, is given in [13].)4 993 5 720 2126 t (pleteness and conciseness, an outline of the axioms and results of that paper is presented below.)15 3824 1 720 2246 t ( numbers defined by \(2.1\) are called)6 1443( The)1 205(First, we need to define some terms.)6 1448 3 970 2402 t 10 I f ( rs s)2 39( er)1 39( be)1 44( mb)1 50( nu um)2 122( n)1 75( l)1 0( el)1 28( od de)2 94(m mo)1 122 10 4091 2402 t 10 R f (, and)1 194 1 4704 2402 t ( smallest positive model)3 970( The)1 205(the parameters must be chosen so they are a subset of the machine numbers.)13 3038 3 720 2522 t (number is)1 397 1 720 2642 t 10 S f (s \272)1 156 1 2639 2826 t 10 I f (b b)1 50 1 2836 2826 t 7 I f (e e)1 31 1 2897 2772 t 4 R f (min)2934 2786 w 7 S f (- -)1 39 1 3028 2772 t 7 R f (1)3078 2772 w 10 R f (and the largest model number is)5 1279 1 720 3006 t 10 S f (l \272)1 151 1 2434 3190 t 10 I f (b b)1 50 1 2626 3190 t 7 I f (e e)1 31 1 2687 3136 t 4 R f (max)2724 3150 w 10 R f (\( 1)1 115 1 2847 3190 t 10 S f (- -)1 55 1 3002 3190 t 10 I f (b b)1 50 1 3097 3190 t 7 S f (- -)1 39 1 3158 3150 t 7 I f (t t)1 20 1 3208 3150 t 10 R f (\).)3268 3190 w (The maximum relative spacing of FP numbers is)7 1946 1 720 3370 t 10 S f (e \272)1 140 1 2697 3550 t 10 I f (b b)1 50 1 2878 3550 t 7 R f (1)2939 3510 w 7 S f (- -)1 39 1 2985 3510 t 7 I f (t t)1 20 1 3035 3510 t 10 I f (t t)1 28 1 720 3730 t 10 S f (\263)789 3730 w 10 R f ( any real number)3 673( For)1 189(2 is required.)2 524 3 885 3730 t 10 I f (x x)1 44 1 2296 3730 t 10 R f (, we say that)3 499 1 2340 3730 t 10 I f (x x)1 44 1 2864 3730 t 10 R f (is)2933 3730 w 10 S f (l l)1 55 1 3025 3730 t 10 I f ( d)1 0( ed)1 50( bo ou un nd de)5 244(- -b)1 83 4 3080 3730 t 10 R f (if)3482 3730 w 10 S f (\357 \357)1 49 1 3568 3730 t 10 I f (x x)1 44 1 3640 3730 t 10 S f ( l)1 96( \243)1 87(\357 \357)1 49 3 3708 3730 t 10 R f ( say that)2 333(. We)1 213 2 3940 3730 t 10 I f (x x)1 44 1 4511 3730 t 10 R f (is)4580 3730 w 10 I f ( e)1 0( an ng ge)3 144( ra)1 50( -r)1 39( n-)1 33(i in)1 78 6 4672 3730 t 10 R f (if)720 3850 w 10 I f (x x)1 44 1 806 3850 t 10 S f (= =)1 55 1 899 3850 t 10 R f (0 or)1 158 1 1003 3850 t 10 S f ( \357)1 0( \357)1 82(s \243)1 156 3 1186 3850 t 10 I f (x x)1 44 1 1447 3850 t 10 S f ( l)1 96( \243)1 87(\357 \357)1 49 3 1515 3850 t 10 R f (, and is)2 286 1 1747 3850 t 10 I f ( e)1 0( an ng ge)3 144( ra)1 50( -r)1 39( f-)1 33( of)1 28( -o)1 50( t-)1 33(o ou ut)2 128 9 2058 3850 t 10 R f ( 0)1 75(otherwise. If)1 529 2 2588 3850 t 10 S f ( \357)1 0( \357)1 90(< <)1 55 3 3241 3850 t 10 I f (x x)1 44 1 3409 3850 t 10 S f ( s)1 109( <)1 0( <)1 95(\357 \357)1 49 4 3477 3850 t 10 R f (, we say)2 324 1 3730 3850 t 10 I f ( ,)1 0( s,)1 25( ws)1 39( ow)1 67( fl lo)2 78( rf)1 28( er)1 39( un nd de)3 144( u)1 75(x x)1 44 10 4079 3850 t 10 R f (while if)1 308 1 4643 3850 t 10 S f (\357 \357)1 49 1 720 3970 t 10 I f (x x)1 44 1 792 3970 t 10 S f ( l)1 104( >)1 0( >)1 95(\357 \357)1 49 4 860 3970 t 10 R f (, we say that it)4 580 1 1108 3970 t 10 I f ( .)1 0( s.)1 25( ws)1 39( ow)1 67( fl lo)2 78( rf)1 28( ve er)2 83(o ov)1 94 8 1713 3970 t 10 R f (Since error analysis is closely akin to interval analysis [8], it is)11 2503 1 2177 3970 t ( particular, if the endpoints of a closed interval)8 1866( In)1 133(convenient to formulate the axioms in terms of intervals.)8 2267 3 720 4090 t (are both model numbers, we call it a)7 1453 1 720 4210 t 10 I f ( ;)1 0( l;)1 33( al)1 28( va)1 50( rv)1 44( er)1 39( te)1 44( nt)1 28( in)1 50( i)1 53( l)1 0( el)1 28( od de)2 94(m mo)1 122 14 2198 4210 t 10 R f (if they are adjacent model numbers, we call it an)9 1940 1 2836 4210 t 10 I f ( .)1 0( l.)1 25( al)1 28( va)1 50( rv)1 44( er)1 39( te)1 44( nt)1 28( in)1 50( i)1 53( l)1 0( el)1 28( od de)2 94( mo)1 50( m)1 97( c)1 0( ic)1 44( mi)1 28( om)1 72( to)1 50(a at)1 78 21 720 4330 t 10 R f (If)970 4486 w 10 I f (x x)1 44 1 1061 4486 t 10 R f (is a)1 136 1 1130 4486 t 10 S f (l)1291 4486 w 10 R f (-bounded real number, we let)4 1172 1 1346 4486 t 10 I f (x x)1 44 1 2543 4486 t 10 S f (\242 \242)1 25 1 2619 4486 t 10 R f (denote the smallest model interval containing)5 1818 1 2669 4486 t 10 I f (x x)1 44 1 4512 4486 t 10 R f ( if)1 86(. Thus,)1 300 2 4556 4486 t 10 I f (x x)1 44 1 4967 4486 t 10 R f (is a model number, then)4 963 1 720 4606 t 10 I f (x x)1 44 1 1708 4606 t 10 S f ( =)1 0( =)1 104(\242 \242)1 25 3 1784 4606 t 10 I f (x x)1 44 1 1962 4606 t 10 R f (; otherwise,)1 466 1 2006 4606 t 10 I f (x x)1 44 1 2497 4606 t 10 S f (\242 \242)1 25 1 2573 4606 t 10 R f (is the atomic model interval that contains)6 1649 1 2623 4606 t 10 I f (x x)1 44 1 4297 4606 t 10 R f (.)4341 4606 w (Since the model is presented in terms of intervals, we need definitions similar to the above for inter-)17 4000 1 970 4762 t ( say that a real interval)5 906(vals. We)1 374 2 720 4882 t 10 I f (X X)1 61 1 2025 4882 t 10 R f (is)2111 4882 w 10 I f ( e)1 0( an ng ge)3 144( ra)1 50( -r)1 39( n-)1 33(i in)1 78 6 2203 4882 t 10 R f (or)2572 4882 w 10 S f (l l)1 55 1 2680 4882 t 10 I f ( d)1 0( ed)1 50( bo ou un nd de)5 244(- -b)1 83 4 2735 4882 t 10 R f ( a real interval)3 573( Similarly,)1 448(if all its elements are.)4 857 3 3137 4882 t (under or over flows if one of its elements does.)9 1880 1 720 5002 t (If)970 5158 w 10 I f (X X)1 61 1 1061 5158 t 10 R f (is a)1 136 1 1147 5158 t 10 S f (l)1308 5158 w 10 R f (-bounded real interval, let)3 1031 1 1363 5158 t 10 I f (X X)1 61 1 2419 5158 t 10 S f (\242 \242)1 25 1 2512 5158 t 10 R f (be the smallest model interval containing)5 1646 1 2562 5158 t 10 I f (X X)1 61 1 4233 5158 t 10 R f (.)4294 5158 w (For given)1 386 1 970 5314 t 10 I f (X X)1 61 1 1381 5314 t 10 R f (, we also define an interval)5 1075 1 1442 5314 t 10 I f (X X)1 61 1 2542 5314 t 7 S f (+ +)1 39 1 2614 5274 t 10 R f (that is generally a little larger than)6 1370 1 2686 5314 t 10 I f (X X)1 61 1 4081 5314 t 10 S f (\242 \242)1 25 1 4150 5314 t 10 R f ( neither endpoint)2 677(. If)1 141 2 4175 5314 t (of)720 5434 w 10 I f (X X)1 61 1 828 5434 t 10 S f (\242 \242)1 25 1 897 5434 t 10 R f (is 0 or)2 250 1 947 5434 t 10 S f (\261 l)1 118 1 1222 5434 t 10 R f (, then)1 222 1 1340 5434 t 10 I f (X X)1 61 1 1587 5434 t 7 S f (+ +)1 39 1 1659 5394 t 10 R f (is obtained from)2 655 1 1731 5434 t 10 I f (X X)1 61 1 2411 5434 t 10 S f (\242 \242)1 25 1 2480 5434 t 10 R f ( an end-)2 321( If)1 116(by adjoining an atomic model interval at each end.)8 2022 3 2530 5434 t (point of)1 314 1 720 5554 t 10 I f (X X)1 61 1 1059 5554 t 10 S f (\242 \242)1 25 1 1128 5554 t 10 R f (is)1178 5554 w 10 S f (\261 l)1 118 1 1270 5554 t 10 R f (, then it is impossible to adjoin an atomic model interval at that end and we shall say that)18 3551 1 1388 5554 t 10 I f (X X)1 61 1 720 5674 t 7 S f (+ +)1 39 1 792 5634 t 10 I f ( s)1 0( ws)1 39( ow)1 67( fl lo)2 78( rf)1 28( ve er)2 83(o ov)1 94 7 864 5674 t 10 R f ( the other hand, if an endpoint of)7 1309( On)1 172(in this case.)2 469 3 1278 5674 t 10 I f (X X)1 61 1 3253 5674 t 10 S f (\242 \242)1 25 1 3322 5674 t 10 R f (is 0, we let)3 433 1 3372 5674 t 10 I f (X X)1 61 1 3830 5674 t 7 S f (+ +)1 39 1 3902 5634 t 10 R f (share that endpoint,)2 785 1 3974 5674 t (instead of making the extension to)5 1374 1 720 5794 t 10 S f (\261 s)1 123 1 2119 5794 t 10 R f (.)2242 5794 w ( former is a superset of the latter, although the)9 1841( The)1 205(There are machine numbers and model numbers.)6 1948 3 970 5950 t (two sets may be identical.)4 1035 1 720 6070 t (The)970 6226 w 10 I f ( s)1 0( on ns)2 89( ti io)2 78( at)1 28( ra)1 50( er)1 39( op pe)2 94( o)1 75( c)1 0( ti ic)2 72( et)1 28( me)1 44( hm)1 72( it th)2 78( ri)1 28( ar)1 39( a)1 75( c)1 0( ic)1 44( si)1 28(b ba as)2 139 21 1150 6226 t 10 R f (are addition, subtraction, multiplication, negation and division by)7 2616 1 2275 6226 t 10 I f (B B)1 61 1 720 6346 t 10 S f ( \261)1 104(= =)1 55 2 830 6346 t 10 I f (b b)1 50 1 997 6346 t 7 I f (k k)1 31 1 1058 6306 t 10 R f (where)1122 6346 w 10 I f (k k)1 44 1 1390 6346 t 10 R f (is any integer such that)4 921 1 1459 6346 t 10 I f (B B)1 61 1 2405 6346 t 10 R f ( division is sometimes implemented as a)6 1617( Since)1 272(is in-range.)1 449 3 2491 6346 t (composite of two or more sub-operations, each susceptible to round-off, it cannot realistically be considered)14 4320 1 720 6466 t 10 I f ( c)1 0( ic)1 44( si)1 28(b ba as)2 139 4 720 6586 t 10 R f (.)931 6586 w (For division, and perhaps other non-basic operations, Axioms 1a and 2a are given below as weak)15 3879 1 970 6742 t ( operation that conforms to Axiom 1 or 2 will be called)11 2206( Any)1 222(alternatives to Axioms 1 and 2.)5 1249 3 720 6862 t 10 I f ( -)1 0( up p-)2 83( su)1 50( s)1 64( y)1 0( ly)1 44( on ng gl)3 128( ro)1 50( tr)1 39(s st)1 67 10 4422 6862 t ( d)1 0( ed)1 50( te)1 44( rt)1 28(p po or)2 139 5 720 6982 t 10 R f ( operation that conforms only to Axiom 1a or 2a will be called)12 2497(. Any)1 247 2 981 6982 t 10 I f ( d)1 0( ed)1 50( te)1 44( rt)1 28( up pp po or)4 189( su)1 50( s)1 64( y)1 0( ly)1 44( kl)1 28( ak)1 44( ea)1 50(w we)1 111 13 3750 6982 t 10 R f (.)4452 6982 w (The parameters must be chosen so that the basic operations satisfy Axioms 1 and 2, and so that divi-)18 4009 1 970 7138 t (sion at least satisfies the weaker Axiom 2a.)7 1725 1 720 7258 t cleartomark showpage saveobj restore %%EndPage: 5 7 %%Page: 6 8 /saveobj save def mark 8 pagesetup 10 R f (- 6 -)2 166 1 2797 480 t 10 B f (Axioms)720 840 w 10 R f ( Let)1 183(We now present the axioms of [13] that define "correct" arithmetic.)10 2695 2 970 996 t 10 I f (x x)1 44 1 3873 996 t 10 R f (and)3942 996 w 10 I f (y y)1 44 1 4111 996 t 10 R f (be)4180 996 w 10 S f (l)4299 996 w 10 R f (-bounded)4354 996 w ( first present the "strong" versions of the Axioms.)8 1983( We)1 188(machine numbers.)1 732 3 720 1116 t 10 B f (Axiom 1 \(For)2 571 1 720 1356 t 10 S f (+ +)1 55 1 1316 1356 t 10 R f (,)1387 1356 w 10 S f (- -)1 55 1 1461 1356 t 10 R f (,)1532 1356 w 10 S f (\264)1598 1356 w 10 B f (and possibly)1 533 1 1678 1356 t 10 I f (/ /)1 28 1 2236 1356 t 10 B f (.\))2264 1356 w 10 R f (Let)970 1512 w 7 R f (*)1138 1486 w 10 R f ( Then)1 255(be a strongly supported binary operator.)5 1597 2 1211 1512 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2256 1692 t 10 R f (\()2361 1692 w 10 I f (x x)1 44 1 2435 1692 t 7 R f (*)2522 1666 w 10 I f (y y)1 44 1 2611 1692 t 10 R f (\))2696 1692 w 10 S f (\316 \316)1 71 1 2811 1692 t 10 R f (\()2956 1692 w 10 I f (x x)1 44 1 3030 1692 t 10 S f (\242 \242)1 25 1 3106 1692 t 7 R f (*)3174 1666 w 10 I f (y y)1 44 1 3263 1692 t 10 S f (\242 \242)1 25 1 3339 1692 t 10 R f (\))3405 1692 w 10 S f (\242 \242)1 25 1 3478 1692 t 10 R f (provided that the interval)3 1007 1 720 1872 t 10 I f (x x)1 44 1 1752 1872 t 10 S f (\242 \242)1 25 1 1828 1872 t 7 R f (*)1896 1846 w 10 I f (y y)1 44 1 1985 1872 t 10 S f (\242 \242)1 25 1 2061 1872 t 10 R f (is)2111 1872 w 10 S f (l)2203 1872 w 10 R f (-bounded.)2258 1872 w 10 B f (Axiom 2 \(For negation, division by)5 1479 1 720 2112 t 10 S f (\261)2224 2112 w 10 I f (b b)1 50 1 2287 2112 t 7 I f (k k)1 31 1 2348 2072 t 10 B f (, and possibly reciprocation.\))3 1237 1 2387 2112 t 10 R f (Let)970 2268 w 7 R f (*)1138 2242 w 10 R f ( Then)1 255(be a strongly supported unary operator.)5 1569 2 1211 2268 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2346 2448 t 10 R f (\()2451 2448 w 7 R f (*)2527 2422 w 10 I f (x x)1 44 1 2583 2448 t 10 R f (\))2668 2448 w 10 S f (\316 \316)1 71 1 2783 2448 t 10 R f (\()2928 2448 w 7 R f (*)3004 2422 w 10 R f (\()3060 2448 w 10 I f (x x)1 44 1 3125 2448 t 10 S f (\242 \242)1 25 1 3177 2448 t 10 R f (\) \))1 115 1 3234 2448 t 10 S f (\242 \242)1 25 1 3389 2448 t 10 R f (provided that the interval)3 1007 1 720 2664 t 7 R f (*)1762 2638 w 10 R f (\()1818 2664 w 10 I f (x x)1 44 1 1892 2664 t 10 S f (\242 \242)1 25 1 1944 2664 t 10 R f (\) is)1 125 1 2001 2664 t 10 S f (l)2151 2664 w 10 R f (-bounded.)2206 2664 w (The "weak" versions of the above 2 Axioms follow.)8 2076 1 970 2820 t 10 B f (Axiom 1a \(Alternative for division and perhaps other operators.\))8 2762 1 720 3060 t 10 R f (Let)970 3216 w 7 R f (*)1138 3190 w 10 R f ( Then)1 255(be a supported binary operator.)4 1244 2 1211 3216 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2244 3396 t 10 R f (\()2349 3396 w 10 I f (x x)1 44 1 2423 3396 t 7 R f (*)2510 3370 w 10 I f (y y)1 44 1 2599 3396 t 10 R f (\))2684 3396 w 10 S f (\316 \316)1 71 1 2799 3396 t 10 R f (\()2944 3396 w 10 I f (x x)1 44 1 3018 3396 t 10 S f (\242 \242)1 25 1 3094 3396 t 7 R f (*)3162 3370 w 10 I f (y y)1 44 1 3251 3396 t 10 S f (\242 \242)1 25 1 3327 3396 t 10 R f (\))3393 3396 w 7 S f (+ +)1 39 1 3469 3356 t 10 R f (provided that the interval \()4 1065 1 720 3576 t 10 I f (x x)1 44 1 1817 3576 t 10 S f (\242 \242)1 25 1 1893 3576 t 7 R f (*)1961 3550 w 10 I f (y y)1 44 1 2050 3576 t 10 S f (\242 \242)1 25 1 2126 3576 t 10 R f (\))2183 3576 w 7 S f (+ +)1 39 1 2227 3536 t 10 R f (is defined.)1 416 1 2299 3576 t 10 B f (Axiom 2a \(Alternative for reciprocation; not used in the test.\))9 2612 1 720 3816 t 10 R f (Let)720 3972 w 7 R f (*)888 3946 w 10 R f ( Then)1 255(be a supported unary operator.)4 1216 2 961 3972 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2333 4152 t 10 R f (\()2438 4152 w 7 R f (*)2514 4126 w 10 I f (x x)1 44 1 2570 4152 t 10 R f (\))2655 4152 w 10 S f (\316 \316)1 71 1 2770 4152 t 10 R f (\()2915 4152 w 7 R f (*)2991 4126 w 10 R f (\()3047 4152 w 10 I f (x x)1 44 1 3112 4152 t 10 S f (\242 \242)1 25 1 3164 4152 t 10 R f (\) \))1 115 1 3221 4152 t 7 S f (+ +)1 39 1 3379 4112 t 10 R f (provided that the interval)3 1007 1 720 4368 t 7 R f (*)1762 4342 w 10 R f (\()1818 4368 w 10 I f (x x)1 44 1 1892 4368 t 10 S f (\242 \242)1 25 1 1944 4368 t 10 R f (\))2001 4368 w 7 S f (+ +)1 39 1 2045 4328 t 10 R f (is defined.)1 416 1 2117 4368 t (We now consider arithmetic comparison between machine numbers that are)9 3029 1 970 4524 t 10 S f (l)4024 4524 w 10 R f (-bounded.)4079 4524 w 10 B f (Axiom 3)1 358 1 720 4764 t 10 R f (In comparing)1 535 1 970 4920 t 10 S f (l)1530 4920 w 10 R f (-bounded machine numbers)2 1109 1 1585 4920 t 10 I f (x x)1 44 1 2719 4920 t 10 R f (and)2788 4920 w 10 I f (y y)1 44 1 2957 4920 t 10 R f (, the computer may report any result obtainable by)8 2016 1 3001 4920 t (an exact comparison of any)4 1097 1 720 5045 t 10 I f (x x)1 44 1 1842 5045 t 11 R f (\303)1848 5040 w 10 S f (\316 \316)1 71 1 1894 5045 t 10 I f (x x)1 44 1 1973 5045 t 10 S f (\242 \242)1 25 1 2025 5045 t 10 R f (and any)1 313 1 2075 5045 t 10 I f (y y)1 44 1 2413 5045 t 11 R f (\303)2419 5040 w 10 S f (\316 \316)1 71 1 2465 5045 t 10 I f (y y)1 44 1 2544 5045 t 10 S f (\242 \242)1 25 1 2596 5045 t 10 R f (, but it may not report any other result.)8 1543 1 2621 5045 t (The containment assertions of Axioms 1-2 and comparison assertions of Axiom 3 are the relations to)15 4031 1 970 5201 t ( Axioms 1-3 hold for all)5 969( If)1 116(be tested.)1 377 3 720 5321 t 10 I f (x x)1 44 1 2207 5321 t 10 R f (and)2276 5321 w 10 I f (y y)1 44 1 2445 5321 t 10 R f (in the sample set, we shall declare the machine to perform FP)11 2457 1 2514 5321 t (arithmetic "correctly.")1 891 1 720 5441 t ( Axioms 1-2 also)3 686( However,)1 440(Theorems 1 and 2 of [13] show that Axioms 1-2 imply relation \(3.1\).)12 2758 3 970 5597 t (imply the following exactness results.)4 1513 1 720 5717 t 10 B f (Theorem 1)1 463 1 720 5957 t 10 R f (Let)970 6113 w 10 I f (x x)1 44 1 1128 6113 t 10 R f (and)1197 6113 w 10 I f (y y)1 44 1 1366 6113 t 10 R f (be model numbers, and let)4 1057 1 1435 6113 t 7 R f (*)2527 6087 w 10 R f ( If)1 116(be a strongly supported binary operator.)5 1597 2 2600 6113 t 10 I f (x x)1 44 1 4338 6113 t 7 R f (*)4425 6087 w 10 I f (y y)1 44 1 4514 6113 t 10 R f (is also a)2 322 1 4583 6113 t (model number, then)2 802 1 720 6233 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2440 6413 t 10 R f (\()2545 6413 w 10 I f (x x)1 44 1 2619 6413 t 7 R f (*)2706 6387 w 10 I f (y y)1 44 1 2795 6413 t 10 R f (\))2880 6413 w 10 S f (= =)1 55 1 2970 6413 t 10 I f (x x)1 44 1 3074 6413 t 7 R f (*)3161 6387 w 10 I f ( .)1 0(y y.)1 69 2 3250 6413 t 10 R f (Thus, 1)1 300 1 720 6593 t 10 S f (+ +)1 55 1 1069 6593 t 10 R f (1)1173 6593 w 10 S f (\272)1264 6593 w 10 R f (2.)1360 6593 w 10 B f (Theorem 2)1 463 1 720 6833 t 10 R f (Let)970 6989 w 10 I f (x x)1 44 1 1128 6989 t 10 R f (be a model number and let)5 1062 1 1197 6989 t 7 R f (*)2294 6963 w 10 R f ( If)1 116(be a strongly supported unary operator.)5 1569 2 2367 6989 t 7 R f (*)4087 6963 w 10 I f (x x)1 44 1 4143 6989 t 10 R f (is also a model)3 597 1 4212 6989 t (number, then)1 527 1 720 7109 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2538 7289 t 10 R f (\()2643 7289 w 7 R f (*)2719 7263 w 10 I f (x x)1 44 1 2775 7289 t 10 R f (\))2860 7289 w 10 S f (= =)1 55 1 2950 7289 t 7 R f (*)3056 7263 w 10 I f ( .)1 0( .)1 66(x x)1 44 3 3112 7289 t cleartomark showpage saveobj restore %%EndPage: 6 8 %%Page: 7 9 /saveobj save def mark 9 pagesetup 10 R f (- 7 -)2 166 1 2797 480 t (Thus,)720 840 w 10 I f ( l)1 0( l)1 36(f f)1 28 3 970 840 t 10 R f (\( 1)1 115 1 1066 840 t 10 I f ( b)1 0( b)1 58(/ /)1 28 3 1189 840 t 10 R f (\))1307 840 w 10 S f (\272)1389 840 w 10 I f (b b)1 50 1 1485 840 t 7 S f (- -)1 39 1 1546 800 t 7 R f (1)1596 800 w 10 R f (.)1639 840 w (It is these additional exactness theorems that make Axioms 1-3 especially well-suited to testing FP)14 3947 1 970 996 t ( exactness theorems allow)3 1045( These)1 288(arithmetic, as we shall see in the next section.)8 1825 3 720 1116 t 10 B f (exact)3903 1116 w 10 R f (evaluation of the)2 671 1 4149 1116 t (mantissas of \(2.2\) and of numbers like)6 1534 1 720 1236 t 10 I f (b b)1 50 1 2279 1236 t 7 I f (e e)1 31 1 2340 1196 t 10 S f (\264)2387 1236 w 10 I f (m m)1 72 1 2450 1236 t 10 R f ( same cannot be said of the)6 1081(. The)1 230 2 2522 1236 t 10 S f (d)3858 1236 w 10 R f (model of \(3.1\))2 574 1 3932 1236 t (The model of [13] also requires the following relations between)9 2548 1 970 1392 t 10 S f (e)3543 1392 w 10 R f (,)3587 1392 w 10 S f (s)3637 1392 w 10 R f (and)3722 1392 w 10 S f (l)3891 1392 w 10 R f (.)3946 1392 w 10 S f ( e)1 93( <)1 0(s <)1 164 3 2073 1572 t 7 R f (2)2335 1532 w 10 R f ( is,)1 117(, that)1 406 2 2419 1572 t 10 I f (e e)1 44 1 2975 1572 t 7 R f (min)3030 1592 w 10 S f (\243)3189 1572 w 10 R f ( 1)1 58(2 \()1 115 2 3285 1572 t 10 S f (- -)1 55 1 3498 1572 t 10 I f (t t)1 28 1 3593 1572 t 10 R f (\))3653 1572 w (1)2052 1752 w 10 I f (/ /)1 28 1 2134 1752 t 10 S f (e)2194 1752 w 7 R f (2)2243 1712 w 10 S f ( l)1 104(< <)1 55 2 2335 1752 t 10 R f ( is,)1 117(, that)1 406 2 2535 1752 t 10 I f (e e)1 44 1 3091 1752 t 7 R f (max)3146 1772 w 10 S f (\263)3316 1752 w 10 R f (2)3412 1752 w 10 I f (t t)1 28 1 3494 1752 t 10 S f (- -)1 55 1 3562 1752 t 10 R f (1)3657 1752 w (\(3.2\))4849 1932 w 10 S f (s)1731 2112 w 10 I f (/ /)1 28 1 1823 2112 t 10 S f ( <)1 0(e <)1 148 2 1883 2112 t 10 R f (1)2080 2112 w 10 I f (/ /)1 28 1 2162 2112 t 10 R f (\()2222 2112 w 10 S f (s l)1 147 1 2287 2112 t 10 R f ( 2)1 83( is,)1 117( that)1 381(\) ,)1 107 4 2466 2112 t 10 I f (e e)1 44 1 3186 2112 t 7 R f (min)3241 2132 w 10 S f (+ +)1 55 1 3399 2112 t 10 I f (e e)1 44 1 3494 2112 t 7 R f (max)3549 2132 w 10 S f (\243)3719 2112 w 10 R f (3)3815 2112 w 10 S f (- -)1 55 1 3905 2112 t 10 I f (t t)1 28 1 4000 2112 t 10 R f (1)1731 2292 w 10 I f (/ /)1 28 1 1813 2292 t 10 R f (\()1873 2292 w 10 S f (s l)1 147 1 1938 2292 t 10 R f (\))2117 2292 w 10 S f ( l)1 87( e)1 93(< <)1 55 3 2207 2292 t 10 R f ( is,)1 117(, that)1 406 2 2483 2292 t 10 I f (t t)1 28 1 3039 2292 t 10 S f (+ +)1 55 1 3107 2292 t 10 R f (1)3202 2292 w 10 S f (\243)3293 2292 w 10 I f (e e)1 44 1 3389 2292 t 7 R f (min)3444 2312 w 10 S f (+ +)1 55 1 3602 2292 t 10 R f (2)3697 2292 w 10 I f (e e)1 44 1 3779 2292 t 7 R f (max)3834 2312 w 10 I f (. .)1 25 1 4004 2292 t 10 R f (These relations will prove useful when we consider the automatic determination of)11 3308 1 720 2472 t 10 I f (b b)1 50 1 4053 2472 t 10 R f (,)4103 2472 w 10 I f (t t)1 28 1 4153 2472 t 10 R f (,)4181 2472 w 10 I f (e e)1 44 1 4231 2472 t 7 R f (min)4286 2492 w 10 R f (and)4429 2472 w 10 I f (e e)1 44 1 4598 2472 t 7 R f (max)4653 2492 w 10 R f (in)4807 2472 w (section 5.)1 383 1 720 2592 t 10 B f (4. Implementation)1 808 1 720 2832 t 10 R f (The test can now be completely specified: the elements of the sample set of section 2 are to be used)19 3973 1 970 2988 t (as operands in the operations of Axioms 1-3 of section 3 and the test will check whether or not those)19 4019 1 720 3108 t ( section shows how to compute the inclusion inter-)8 2032( This)1 228(axioms are valid for any given set of parameters.)8 1948 3 720 3228 t (vals in the axioms)3 725 1 720 3348 t 10 I f ( t)1 0( ho ou ut)3 128( it th)2 78(w wi)1 95 4 1470 3348 t 10 R f (rounding error, provided those axioms are valid for the claimed parameters on)11 3121 1 1796 3348 t ( software)1 368( The)1 205( computation is a rather tricky and tedious chore.)8 1955( This)1 228(the machine being tested.)3 1015 5 720 3468 t (implementing the test in portable FORTRAN is massive and the tools from the)12 3155 1 720 3588 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 3900 3588 t 10 R f (operating system)1 680 1 4158 3588 t ( some portability issues are discussed.)5 1521( Finally,)1 359(facilitating the implementation are described.)4 1811 3 720 3708 t 10 B f (Inclusion Interval Computation)2 1357 1 720 3948 t 10 R f (Axioms 1-3 define "correct" FP arithmetic in terms of the computed result being an element of a)16 3854 1 970 4104 t 10 I f ( .)1 0( l.)1 25( al)1 28( va)1 50( rv)1 44( er)1 39( te)1 44( nt)1 28( in)1 50( i)1 53( l)1 0( el)1 28( od de)2 94(m mo)1 122 14 720 4224 t 10 R f (Thus, to test the validity of those axioms, we need to be able to compute the model)16 3314 1 1375 4224 t (intervals)720 4344 w 10 I f ( .)1 0( y.)1 25( tl ly)2 72( ct)1 28( ac)1 44(e ex xa)2 138 6 1089 4344 t 10 R f (Many different schemes were considered before the technique described below was)10 3334 1 1446 4344 t ( example, multiple-precision \(integer\) arithmetic, while)5 2216( For)1 189(evolved for computing the model intervals.)5 1726 3 720 4464 t (being able to compute)3 885 1 720 4584 t 10 B f (any)1630 4584 w 10 I f (x x)1 44 1 1811 4584 t 7 R f (*)1898 4558 w 10 I f (y y)1 44 1 1987 4584 t 10 R f ( method used was analytic hand-)5 1306( The)1 205(, is far too slow to be useful.)7 1135 3 2031 4584 t (derivation of)1 513 1 720 4704 t 10 I f (x x)1 44 1 1258 4704 t 7 R f (*)1345 4678 w 10 I f (y y)1 44 1 1434 4704 t 10 R f (for all sample model numbers)4 1193 1 1503 4704 t 10 I f (x x)1 44 1 2721 4704 t 10 R f (,)2773 4704 w 10 I f (y y)1 44 1 2839 4704 t 10 R f (and operations)1 585 1 2908 4704 t 10 S f (+ +)1 55 1 3518 4704 t 10 R f (,)3589 4704 w 10 S f (- -)1 55 1 3663 4704 t 10 R f (,)3734 4704 w 10 S f (\264)3800 4704 w 10 R f (and)3880 4704 w 10 I f (/ /)1 28 1 4049 4704 t 10 R f (.)4077 4704 w ( for example, the product of 2 numbers with Type 1 mantissas)11 2480( Take,)1 274(The idea is easy to illustrate.)5 1143 3 970 4860 t ( desire a normalized exponent-mantissa representation for the result of)9 2813( We)1 188(from \(2.2\).)1 435 3 720 4980 t 10 S f (\351)1228 5158 w (\353)1228 5258 w 10 I f (b b)1 50 1 1302 5217 t 7 I f (e e)1 31 1 1363 5163 t 4 R f (1)1400 5177 w 10 R f (\()1465 5217 w 10 I f (b b)1 50 1 1530 5217 t 7 S f (- -)1 39 1 1591 5177 t 7 R f (1)1641 5177 w 10 S f (+ +)1 55 1 1724 5217 t 10 I f (b b)1 50 1 1819 5217 t 7 S f (- -)1 39 1 1880 5177 t 7 I f (i i)1 20 1 1930 5177 t 7 R f (1)1955 5177 w 10 R f (\))2030 5217 w 10 S f (\371)2063 5158 w (\373)2063 5258 w (\264)2141 5195 w (\351)2236 5158 w (\353)2236 5258 w 10 I f (b b)1 50 1 2310 5217 t 7 I f (e e)1 31 1 2371 5163 t 4 R f (2)2408 5177 w 10 R f (\()2473 5217 w 10 I f (b b)1 50 1 2538 5217 t 7 S f (- -)1 39 1 2599 5177 t 7 R f (1)2649 5177 w 10 S f (+ +)1 55 1 2732 5217 t 10 I f (b b)1 50 1 2827 5217 t 7 S f (- -)1 39 1 2888 5177 t 7 I f (i i)1 20 1 2938 5177 t 7 R f (2)2963 5177 w 10 R f (\))3038 5217 w 10 S f (\371)3071 5158 w (\373)3071 5258 w (\272)3173 5195 w 10 R f (\(4.1\))4849 5430 w 10 I f (b b)1 50 1 1220 5695 t 7 I f (e e)1 31 1 1281 5641 t 4 R f (1)1318 5655 w 7 S f (+ +)1 39 1 1370 5641 t 7 I f (e e)1 31 1 1436 5641 t 4 R f (2)1473 5655 w 10 S f (\354)1555 5608 w (\355)1555 5708 w (\356)1555 5808 w 10 I f (b b)1 50 1 1628 5710 t 7 S f (- -)1 39 1 1689 5670 t 7 R f (1)1739 5670 w 10 R f (\()1790 5710 w 10 I f (b b)1 50 1 1831 5710 t 7 S f (- -)1 39 1 1892 5670 t 7 R f (1)1942 5670 w 10 S f (+ +)1 55 1 2001 5710 t 10 I f (b b)1 50 1 2072 5710 t 7 S f (- -)1 39 1 2133 5670 t 7 I f (i i)1 20 1 2183 5670 t 7 R f (1)2208 5670 w 10 S f (+ +)1 55 1 2267 5710 t 10 I f (b b)1 50 1 2338 5710 t 7 S f (- -)1 39 1 2399 5670 t 7 I f (i i)1 20 1 2449 5670 t 7 R f (2)2474 5670 w 10 S f (+ +)1 55 1 2533 5710 t 10 I f (b b)1 50 1 2604 5710 t 7 S f (- -)1 39 1 2665 5670 t 7 R f (\()2715 5670 w 7 I f (i i)1 20 1 2743 5670 t 7 R f (1)2768 5670 w 7 S f (+ +)1 39 1 2814 5670 t 7 I f (i i)1 20 1 2864 5670 t 7 R f (2)2889 5670 w 7 S f (- -)1 39 1 2935 5670 t 7 R f (1 \))1 63 1 2985 5670 t 10 R f (\))3064 5710 w 10 S f (\374)3097 5608 w (\375)3097 5708 w (\376)3097 5808 w 10 R f (where)720 5980 w 10 I f (i i)1 28 1 988 5980 t 10 R f (1 ,)1 83 1 1024 5980 t 10 I f (i i)1 28 1 1148 5980 t 10 R f (2)1184 5980 w 10 S f (\263)1275 5980 w 10 R f ( we can obtain a normalized FP representation for the item in braces { ... }, say)16 3151(2. If)1 191 2 1371 5980 t 10 I f (b b)1 50 1 4738 5980 t 7 I f (e e)1 31 1 4799 5940 t 10 I f (m m)1 72 1 4870 5980 t 10 R f (,)4942 5980 w (then we can easily obtain one for)6 1319 1 720 6104 t 10 I f (x x)1 44 1 2064 6104 t 7 R f (*)2142 6078 w 10 I f (y y)1 44 1 2222 6104 t 10 R f (, namely)1 344 1 2266 6104 t 10 I f (b b)1 50 1 2635 6104 t 7 I f (e e)1 31 1 2696 6050 t 4 R f (1)2733 6064 w 7 S f (+ +)1 39 1 2785 6050 t 7 I f (e e)1 31 1 2851 6050 t 4 R f (2)2888 6064 w 7 S f (+ +)1 39 1 2940 6050 t 7 I f (e e)1 31 1 3006 6050 t 10 I f (m m)1 72 1 3077 6104 t 10 R f ( item in braces { ... } is a normalized rep-)10 1651(. The)1 230 2 3149 6104 t (resentation unless)1 713 1 720 6224 t 10 I f (b b)1 50 1 1458 6224 t 10 S f (= =)1 55 1 1557 6224 t 10 R f (2 and)1 219 1 1661 6224 t 10 I f (i i)1 28 1 1905 6224 t 10 R f (1)1941 6224 w 10 S f (= =)1 55 1 2040 6224 t 10 I f (i i)1 28 1 2144 6224 t 10 R f (2)2180 6224 w 10 S f (= =)1 55 1 2279 6224 t 10 R f (2, when it is)3 489 1 2383 6224 t 10 I f (b b)1 50 1 2897 6224 t 7 R f (0)2958 6184 w 10 R f (\()3042 6224 w 10 I f (b b)1 50 1 3116 6224 t 7 S f (- -)1 39 1 3177 6184 t 7 R f (1)3227 6184 w 10 S f (+ +)1 55 1 3310 6224 t 10 I f (b b)1 50 1 3405 6224 t 7 S f (- -)1 39 1 3466 6184 t 7 R f (4)3516 6184 w 10 R f ( more succinctly, the normal-)4 1173(\). Put)1 242 2 3600 6224 t (ized representation for the braced-part of \(4.1\) is given by)9 2310 1 720 6344 t (If \()1 124 1 1080 6524 t 10 I f (b b)1 50 1 1212 6524 t 10 S f (= =)1 55 1 1286 6524 t 10 R f (2)1357 6524 w 10 I f ( i)1 0( i)1 69(& &)1 78 3 1448 6524 t 10 R f (1)1603 6524 w 10 S f (= =)1 55 1 1669 6524 t 10 R f (2)1740 6524 w 10 I f ( i)1 0( i)1 69(& &)1 78 3 1831 6524 t 10 R f (2)1986 6524 w 10 S f (= =)1 55 1 2052 6524 t 10 I f (i i)1 28 1 2123 6524 t 10 R f (1 \))1 91 1 2159 6524 t ({)1130 6644 w 10 I f (b b)1 50 1 1228 6644 t 7 R f (0)1289 6604 w 10 R f (\()1340 6644 w 10 I f (b b)1 50 1 1381 6644 t 7 S f (- -)1 39 1 1442 6604 t 7 R f (1)1492 6604 w 10 S f (+ +)1 55 1 1551 6644 t 10 I f (b b)1 50 1 1622 6644 t 7 S f (- -)1 39 1 1683 6604 t 7 R f (4)1733 6604 w 10 R f (\) })1 131 1 1784 6644 t (\(4.2\))4849 6824 w (Else)1080 7004 w ({)1130 7124 w 10 I f (b b)1 50 1 1228 7124 t 7 S f (- -)1 39 1 1289 7084 t 7 R f (1)1339 7084 w 10 R f (\()1390 7124 w 10 I f (b b)1 50 1 1431 7124 t 7 S f (- -)1 39 1 1492 7084 t 7 R f (1)1542 7084 w 10 S f (+ +)1 55 1 1601 7124 t 10 I f (b b)1 50 1 1672 7124 t 7 S f (- -)1 39 1 1733 7084 t 7 I f (i i)1 20 1 1783 7084 t 7 R f (1)1808 7084 w 10 S f (+ +)1 55 1 1867 7124 t 10 I f (b b)1 50 1 1938 7124 t 7 S f (- -)1 39 1 1999 7084 t 7 I f (i i)1 20 1 2049 7084 t 7 R f (2)2074 7084 w 10 S f (+ +)1 55 1 2133 7124 t 10 I f (b b)1 50 1 2204 7124 t 7 S f (- -)1 39 1 2265 7084 t 7 R f (\()2315 7084 w 7 I f (i i)1 20 1 2343 7084 t 7 R f (1)2368 7084 w 7 S f (+ +)1 39 1 2414 7084 t 7 I f (i i)1 20 1 2464 7084 t 7 R f (2)2489 7084 w 7 S f (- -)1 39 1 2535 7084 t 7 R f (1 \))1 63 1 2585 7084 t 10 R f (\) })1 131 1 2664 7124 t cleartomark showpage saveobj restore %%EndPage: 7 9 %%Page: 8 10 /saveobj save def mark 10 pagesetup 10 R f (- 8 -)2 166 1 2797 480 t (Although this is a trivial example of deriving, by hand, the)10 2343 1 720 840 t 10 I f ( t)1 0( ct)1 28( ac)1 44(e ex xa)2 138 4 3088 840 t 10 R f (result of)1 330 1 3323 840 t 10 I f (x x)1 44 1 3678 840 t 7 R f (*)3765 814 w 10 I f (y y)1 44 1 3854 840 t 10 R f (, it does illustrate the)4 836 1 3898 840 t (technique.)720 960 w (Once the exact result of)4 947 1 970 1116 t 10 I f (x x)1 44 1 1942 1116 t 7 R f (*)2029 1090 w 10 I f (y y)1 44 1 2118 1116 t 10 R f (is known, the smallest model interval [)6 1552 1 2187 1116 t 10 I f (L L)1 56 1 3780 1116 t 10 R f (,)3844 1116 w 10 I f (R R)1 61 1 3910 1116 t 10 R f (] containing it is also eas-)5 1024 1 4012 1116 t ( the result is)3 486( If)1 116( for example, the braced-part of \(4.1\) given by \(4.2\).)9 2091( Consider,)1 436(ily computed by hand.)3 894 5 720 1236 t (exactly a model number, then)4 1184 1 720 1356 t 10 I f (L L)1 56 1 1929 1356 t 10 S f (= =)1 55 1 2034 1356 t 10 I f (R R)1 61 1 2138 1356 t 10 R f ( it suffices to get the left-hand-side)6 1392(. Otherwise,)1 510 2 2199 1356 t 10 I f (L L)1 56 1 4126 1356 t 10 R f (of the model inter-)3 746 1 4207 1356 t (val, since the right-hand-side R can simply be obtained by adding)10 2622 1 720 1476 t 10 I f (b b)1 50 1 3367 1476 t 7 S f (- -)1 39 1 3428 1436 t 7 I f (t t)1 20 1 3478 1436 t 10 R f (to the normalized mantissa for)4 1215 1 3531 1476 t 10 I f (L L)1 56 1 4771 1476 t 10 R f (.)4827 1476 w (The formula for)2 637 1 720 1596 t 10 I f (L L)1 56 1 1382 1596 t 10 R f (of the model interval containing the braced-part of \(4.1\) is, using \(4.2\),)11 2831 1 1463 1596 t (If \()1 124 1 1150 1776 t 10 I f (b b)1 50 1 1315 1776 t 10 S f (= =)1 55 1 1414 1776 t 10 R f (2)1518 1776 w 10 I f ( i)1 0( i)1 69(& &)1 78 3 1609 1776 t 10 R f (1)1764 1776 w 10 S f (= =)1 55 1 1863 1776 t 10 R f (2)1967 1776 w 10 I f ( i)1 0( i)1 69(& &)1 78 3 2058 1776 t 10 R f (2)2213 1776 w 10 S f (= =)1 55 1 2312 1776 t 10 I f (i i)1 28 1 2416 1776 t 10 R f (1 \))1 124 1 2452 1776 t ({)1200 1896 w 10 I f (b b)1 50 1 1200 2016 t 7 R f (0)1261 1976 w 10 R f (\()1312 2016 w 10 I f (b b)1 50 1 1353 2016 t 7 S f (- -)1 39 1 1414 1976 t 7 R f (1)1464 1976 w 10 S f (+ +)1 55 1 1523 2016 t 10 I f (b b)1 50 1 1594 2016 t 7 S f (- -)1 39 1 1655 1976 t 7 R f (4)1705 1976 w 10 R f (\))1756 2016 w (If \()1 124 1 1200 2136 t 10 I f (t t)1 28 1 1349 2136 t 10 S f (\263)1418 2136 w 10 R f (4 \) { Exact })4 506 1 1514 2136 t (})1200 2256 w (\(4.3\))4849 2436 w (Else)1150 2616 w ({)1200 2736 w 10 I f (b b)1 50 1 1200 2856 t 7 S f (- -)1 39 1 1261 2816 t 7 R f (1)1311 2816 w 10 R f (\()1362 2856 w 10 I f (b b)1 50 1 1403 2856 t 7 S f (- -)1 39 1 1464 2816 t 7 R f (1)1514 2816 w 10 S f (+ +)1 55 1 1573 2856 t 10 I f (b b)1 50 1 1644 2856 t 7 S f (- -)1 39 1 1705 2816 t 7 I f (i i)1 20 1 1755 2816 t 7 R f (1)1780 2816 w 10 S f (+ +)1 55 1 1839 2856 t 10 I f (b b)1 50 1 1910 2856 t 7 S f (- -)1 39 1 1971 2816 t 7 I f (i i)1 20 1 2021 2816 t 7 R f (2)2046 2816 w 10 S f (+ +)1 55 1 2105 2856 t 10 I f (b b)1 50 1 2176 2856 t 7 S f (- -)1 39 1 2237 2816 t 7 R f (\()2287 2816 w 7 I f (i i)1 20 1 2315 2816 t 7 R f (1)2340 2816 w 7 S f (+ +)1 39 1 2386 2816 t 7 I f (i i)1 20 1 2436 2816 t 7 R f (2)2461 2816 w 7 S f (- -)1 39 1 2507 2816 t 7 R f (1 \))1 63 1 2557 2816 t 10 R f (\))2636 2856 w (If \()1 124 1 1200 2976 t 10 I f (i i)1 28 1 1349 2976 t 10 R f (1)1385 2976 w 10 S f (+ +)1 55 1 1475 2976 t 10 I f (i i)1 28 1 1570 2976 t 10 R f (2)1606 2976 w 10 S f (- -)1 55 1 1696 2976 t 10 R f (1)1791 2976 w 10 S f (\243)1882 2976 w 10 I f (t t)1 28 1 1978 2976 t 10 R f (\) { Exact })3 431 1 2031 2976 t (})1200 3096 w (where it is understood that only digits between 1 and)9 2112 1 720 3312 t 10 I f (t t)1 28 1 2857 3312 t 10 R f ( is, if)2 203( That)1 233(are to be used.)3 576 3 2910 3312 t 10 I f (i i)1 28 1 3947 3312 t 10 R f (1)3983 3312 w 10 S f (+ +)1 55 1 4073 3312 t 10 I f (i i)1 28 1 4168 3312 t 10 R f (2)4204 3312 w 10 S f (- -)1 55 1 4294 3312 t 10 R f (1)4389 3312 w 10 S f (> >)1 55 1 4488 3312 t 10 I f (t t)1 28 1 4592 3312 t 10 R f (in the)1 225 1 4645 3312 t ( above "code" also notes whether the result is exactly)9 2125( The)1 205("Else" above, then that last term is not added in.)9 1922 3 720 3432 t ( that each of the above expressions for)7 1532(computed. Note)1 663 2 720 3552 t 10 I f (L L)1 56 1 2940 3552 t 10 R f (involve adding together powers of the base)6 1719 1 3021 3552 t 10 I f (b b)1 50 1 4765 3552 t 10 R f (. By)1 192 1 4815 3552 t (Theorems 1 and 2, each of the powers and sums of them are exactly computable, and, thus, so is)18 3843 1 720 3672 t 10 I f (L L)1 56 1 4588 3672 t 10 R f (, pro-)1 216 1 4644 3672 t (vided the machine supports the model to)6 1621 1 720 3792 t 10 I f (t t)1 28 1 2366 3792 t 10 R f (base-)2419 3792 w 10 I f (b b)1 50 1 2629 3792 t 10 R f (digits.)2704 3792 w (Note that in using formulae like \(4.3\) to determine the containment intervals we are using the)15 3728 1 970 3948 t ( self-referential technique is believable only because formulae)7 2479( This)1 228(machines FP arithmetic to check itself.)5 1554 3 720 4068 t (like \(4.3\) are derived independently of any machine and hence give an independent mechanism for evaluat-)15 4289 1 720 4188 t ( as noted above, the FP model guarantees that the formulae will)11 2541( Furthermore,)1 574(ing the containment intervals.)3 1188 3 720 4308 t (be evaluated)1 501 1 720 4428 t 10 B f (exactly)1246 4428 w 10 R f ( the model is not supported, then containment interval)8 2157( If)1 116(if the model is supported.)4 1019 3 1570 4428 t (evaluation)720 4548 w 10 I f (a an nd d)3 150 1 1161 4548 t 10 R f ( that case we will use the wrong operands in the arith-)11 2154( In)1 133(mantissa \(2.2\) evaluation may fail.)4 1387 3 1336 4548 t ( short, if the model)4 758( In)1 133(metic operations and attempt to find their results in the wrong containment intervals.)12 3383 3 720 4668 t (is supported, the test will run without a hitch, and if it is not supported, the test will encounter all kinds of)21 4221 1 720 4788 t (trouble.)720 4908 w (Formulae like \(4.3\) allow computation of a normalized exponent-mantissa form for the left-hand-side)12 4057 1 970 5064 t (of the smallest model interval containing)5 1635 1 720 5184 t 10 I f (x x)1 44 1 2380 5184 t 7 R f (*)2467 5158 w 10 I f (y y)1 44 1 2556 5184 t 10 R f (, for all sample model numbers)5 1243 1 2600 5184 t 10 I f (x x)1 44 1 3868 5184 t 10 R f (,)3920 5184 w 10 I f (y y)1 44 1 3986 5184 t 10 R f (and operations)1 585 1 4055 5184 t 7 R f (*)4675 5158 w 10 R f (, pro-)1 216 1 4723 5184 t ( the interval [)3 535( Once)1 260(vided the machine supports the model.)5 1543 3 720 5304 t 10 I f (L L)1 56 1 3099 5304 t 10 R f (,)3163 5304 w 10 I f (R R)1 61 1 3229 5304 t 10 R f (] has been computed, we then have to ver-)8 1687 1 3331 5304 t (ify that)1 286 1 720 5424 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1031 5424 t 10 R f (\()1136 5424 w 10 I f (x x)1 44 1 1210 5424 t 7 R f (*)1297 5398 w 10 I f (y y)1 44 1 1386 5424 t 10 R f (\))1471 5424 w 10 S f (\316 \316)1 71 1 1553 5424 t 10 R f ([)1665 5424 w 10 I f (L L)1 56 1 1739 5424 t 10 R f (,)1803 5424 w 10 I f (R R)1 61 1 1869 5424 t 10 R f ( is accomplished by comparisons, as in)6 1557(]. This)1 286 2 1971 5424 t 10 I f (z z)1 39 1 1220 5604 t 10 S f (= =)1 55 1 1308 5604 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1420 5604 t 10 R f (\()1525 5604 w 10 I f (x x)1 44 1 1599 5604 t 7 R f (*)1686 5578 w 10 I f (y y)1 44 1 1775 5604 t 10 R f (\))1860 5604 w (If \()1 124 1 1080 5844 t 10 I f (L L)1 56 1 1229 5844 t 10 S f (\243)1326 5844 w 10 I f ( z)1 0( z)1 80( &)1 0( &)1 119(z z)1 39 5 1422 5844 t 10 S f (\243)1701 5844 w 10 I f (R R)1 61 1 1797 5844 t 10 R f (\) { OK })3 348 1 1883 5844 t (Else { WOOPS! })3 726 1 1080 5964 t (Since)720 6144 w 10 I f (L L)1 56 1 967 6144 t 10 R f (and)1048 6144 w 10 I f (R R)1 61 1 1217 6144 t 10 R f (are model numbers, when)3 1031 1 1303 6144 t 10 I f (z z)1 39 1 2359 6144 t 10 R f (is a model number, Axiom 3 guarantees that the comparisons)9 2447 1 2423 6144 t ( When)1 288(will be done correctly.)3 898 2 720 6264 t 10 I f (z z)1 39 1 1931 6264 t 10 R f (is)1995 6264 w 10 I f ( t)1 0(n no ot)2 128 2 2087 6264 t 10 R f (a model number, however, the model does)6 1697 1 2240 6264 t 10 I f ( t)1 0(n no ot)2 128 2 3962 6264 t 10 R f (guarantee that these)2 792 1 4115 6264 t ( if)1 86( Specifically,)1 552(comparisons will be done correctly.)4 1428 3 720 6384 t 10 I f (z z)1 39 1 2811 6384 t 10 R f (is just outside [)3 609 1 2875 6384 t 10 I f (L L)1 56 1 3525 6384 t 10 R f (,)3589 6384 w 10 I f (R R)1 61 1 3655 6384 t 10 R f (],)3757 6384 w 10 I f (z z)1 39 1 3840 6384 t 10 R f (may test inside it because)4 1021 1 3904 6384 t ( somewhat fuzzy)2 676( This)1 228(Axiom 3 allows equality comparison for numbers in the same model interval.)11 3097 3 720 6504 t ( if)1 86( First,)1 259(situation is tolerable for 2 reasons.)5 1376 3 720 6624 t 10 I f (z z)1 39 1 2466 6624 t 10 R f (is more than one model interval outside of [)8 1748 1 2530 6624 t 10 I f (L L)1 56 1 4319 6624 t 10 R f (,)4383 6624 w 10 I f (R R)1 61 1 4449 6624 t 10 R f (], the error)2 423 1 4551 6624 t ( if)1 86( Second,)1 369(will be detected.)2 657 3 720 6744 t 10 I f (z z)1 39 1 1857 6744 t 10 R f (is outside of [)3 547 1 1921 6744 t 10 I f (L L)1 56 1 2509 6744 t 10 R f (,)2573 6744 w 10 I f (R R)1 61 1 2639 6744 t 10 R f (], but so close to being in it that the error cannot be)12 2039 1 2741 6744 t (detected by a comparison, there will probably be another case where the comparison error will go the other)17 4273 1 720 6864 t (way, and the error will be detected.)6 1407 1 720 6984 t ( Other-)1 310(Thus, if the machine supports the model, then the test will run to completion without incident.)15 3760 2 970 7140 t ( For)1 189(wise, we can expect detect a blizzard of errors, among which will be examples of each anomaly.)16 3842 2 720 7260 t cleartomark showpage saveobj restore %%EndPage: 8 10 %%Page: 9 11 /saveobj save def mark 11 pagesetup 10 R f (- 9 -)2 166 1 2797 480 t (example, if)1 449 1 720 840 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1194 840 t 10 R f (\()1299 840 w 10 I f (b b)1 50 1 1373 840 t 7 S f (- -)1 39 1 1434 800 t 7 R f (1)1484 800 w 10 R f (\) is incorrectly computed, then the inclusion interval [)8 2150 1 1568 840 t 10 I f (L L)1 56 1 3759 840 t 10 R f (,)3823 840 w 10 I f (R R)1 61 1 3889 840 t 10 R f (] of \(4.3\) will not be cor-)6 995 1 3991 840 t (rect, and neither will the)4 973 1 720 960 t 10 I f (x x)1 44 1 1718 960 t 10 R f (or)1787 960 w 10 I f (y y)1 44 1 1895 960 t 10 R f (operands of the input to)4 949 1 1964 960 t 10 I f (x x)1 44 1 2938 960 t 10 S f (\264)3023 960 w 10 I f (y y)1 44 1 3119 960 t 10 R f ( an)1 119( Thus,)1 275(, even if the multiply itself is correct.)7 1479 3 3163 960 t (error in one operator \(division\))4 1236 1 720 1080 t 10 I f ( y)1 0( ay)1 44(m ma)1 122 3 1981 1080 t 10 R f (trigger spurious error messages for other operators \(multiplication\) as)8 2778 1 2172 1080 t ( such things don't occur, but when they do, a careful examination of the output must)15 3371( Usually,)1 386(well as itself.)2 530 3 720 1200 t (be made if the user wishes to determine what)8 1802 1 720 1320 t 10 I f ( y)1 0( ll ly)2 72( al)1 28( ea)1 50(r re)1 83 5 2547 1320 t 10 R f (went wrong.)1 499 1 2805 1320 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 720 1560 t 10 B f (Tools Used)1 470 1 978 1560 t 10 R f (The above outline of the computation of the)7 1756 1 970 1716 t 10 I f ( t)1 0( ct)1 28( ac)1 44(e ex xa)2 138 4 2751 1716 t 10 R f (containment intervals uses the simplest example of)6 2037 1 2986 1716 t (all the)1 247 1 720 1836 t 10 I f (x x)1 44 1 992 1836 t 7 R f (*)1079 1810 w 10 I f (y y)1 44 1 1168 1836 t 10 R f ( such derivations are 2-3 pages in length, and the worst one)11 2368( Most)1 256(results to be obtained.)3 877 3 1237 1836 t ( there are 42 distinct cases of)6 1158( Furthermore,)1 574(required 12 pages to derive.)4 1111 3 720 1956 t 10 I f (x x)1 44 1 3588 1956 t 7 R f (*)3675 1930 w 10 I f (y y)1 44 1 3764 1956 t 10 R f ( it)1 81( Clearly,)1 369(to be considered.)2 679 3 3833 1956 t (is sufficient to work with positive)5 1347 1 720 2076 t 10 I f (x x)1 44 1 2092 2076 t 10 R f (and)2161 2076 w 10 I f (y y)1 44 1 2330 2076 t 10 R f ( \()1 91(, for example,)2 554 2 2374 2076 t 10 S f (+ +)1 55 1 3035 2076 t 10 I f (x x)1 44 1 3106 2076 t 10 R f (\))3158 2076 w 10 S f (+ +)1 55 1 3239 2076 t 10 R f (\()3334 2076 w 10 S f (- -)1 55 1 3383 2076 t 10 I f (y y)1 44 1 3454 2076 t 10 R f (\))3506 2076 w 10 S f (\272)3588 2076 w 10 R f (\()3684 2076 w 10 S f (+ +)1 55 1 3733 2076 t 10 I f (x x)1 44 1 3804 2076 t 10 R f (\))3856 2076 w 10 S f (- -)1 55 1 3937 2076 t 10 R f (\()4032 2076 w 10 S f (+ +)1 55 1 4081 2076 t 10 I f (y y)1 44 1 4152 2076 t 10 R f ( the)1 147(\). Since)1 330 2 4204 2076 t ( Hence)1 304(formulas are trivial when either operand is zero, we can confine our attention to 4 types of operands.)17 4010 2 720 2196 t ( commutativity reduces this to 10 cases)6 1571( However,)1 440(there are potentially 16 cases for each of the operators.)9 2182 3 720 2316 t (each for)1 323 1 720 2436 t 10 S f (+ +)1 55 1 1068 2436 t 10 R f (,)1123 2436 w 10 S f (- -)1 55 1 1173 2436 t 10 R f (and)1253 2436 w 10 S f (\264)1422 2436 w 10 R f ( division, each of the 4 cases in which both operands are of Type 4 or Type 5 yields)18 3341(. For)1 214 2 1477 2436 t (the same formula as another case in which both are of Type 2 or Type 1, so only 12 distinct cases remain.)21 4217 1 720 2556 t (Most of these cases of)4 887 1 720 2676 t 10 I f (x x)1 44 1 1632 2676 t 7 R f (*)1719 2650 w 10 I f (y y)1 44 1 1808 2676 t 10 R f (are fairly routine, but taken together they represent a major effort \320 more than)13 3153 1 1877 2676 t (100 pages of formulae to implement.)5 1476 1 720 2796 t (The author attempted to implement these formulae by hand and was quickly convinced that manual)14 3972 1 970 2952 t (transcription of the formulae into a programming language is a silly and dangerous waste of time.)15 3900 1 720 3072 t (It is silly because of the incredibly nasty nature of the code, with If ... Else's nested as many as 8 lev-)21 4040 1 970 3228 t ( is dangerous in that it is)6 978( It)1 111(els deep and very messy expressions to evaluate.)7 1946 3 720 3348 t 10 I f ( y)1 0( ry)1 44(v ve er)2 127 3 3780 3348 t 10 R f (important that the)2 711 1 3976 3348 t (program be)1 457 1 720 3468 t 10 I f ( ,)1 0( t,)1 25( ec ct)2 72( rr re)2 83( or)1 39(c co)1 94 6 1202 3468 t 10 R f (that is, faithfully reflect the derivations for the exact results of)10 2476 1 1540 3468 t 10 I f (x x)1 44 1 4041 3468 t 7 R f (*)4128 3442 w 10 I f (y y)1 44 1 4217 3468 t 10 R f ( the)1 147(. Yet,)1 244 2 4261 3468 t (derivations, at least initially, were full of errors \(bugs\) and changes would have to be reflected in both the)18 4214 1 720 3588 t (derivations)720 3708 w 10 I f (a an nd d)3 150 1 1189 3708 t 10 R f ( in the)2 250( "Bugs")1 338( attempted by hand, these got out-of-phase in a hurry.)9 2138( When)1 288(the program.)1 510 5 1364 3708 t (program did not mean "errors" in the derivations, and "errors" in the derivation did not mean "bugs" in the)18 4249 1 720 3828 t (program.)720 3948 w ( the)1 147( Fortunately,)1 536(For these reasons it was decided to let the computer do the work.)12 2593 3 970 4104 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 4271 4104 t 10 R f (operating)4529 4104 w ( The)1 205(system was available.)2 868 2 720 4224 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1818 4224 t 10 R f (operating system supports many software tools that, when viewed as a)10 2810 1 2076 4224 t ( documentation, implementation and maintenance)4 1995( The)1 205(whole, are unusually powerful aids to programming.)6 2097 3 720 4344 t ( result of this effort was a program created automati-)9 2103( The)1 205(of the test was made much easier with these tools.)9 1997 3 720 4464 t ( only the documentation had to be written; the)8 1843( Thus,)1 275(cally from the documentation describing the test cases.)7 2191 3 720 4584 t ( changes in the document \(debugging\) were automati-)7 2154( Also,)1 264(program was automatically produced from it.)5 1808 3 720 4704 t (cally reflected in the program.)4 1205 1 720 4824 t (The way the)2 493 1 970 4980 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1488 4980 t 10 R f ( is much simpler to look at a derivation like)9 1741( It)1 111(tools were used is now outlined.)5 1288 3 1746 4980 t ( is, \(4.3\) is easily)4 683( That)1 233(\(4.1\)-\(4.3\) than at a program implementing the actions it contains.)9 2641 3 720 5100 t 10 B f (seen)4302 5100 w 10 R f (to be the cor-)3 529 1 4510 5100 t ( same could not be said of)6 1043( The)1 205(rect normalized form for the containment interval of the braced-part of \(4.1\).)11 3061 3 720 5220 t ( it is easier to write and study equations than the programs)11 2328( Indeed,)1 346(a program written to implement \(4.3\).)5 1512 3 720 5340 t ( equations may be written in linear \(typewriter\) fashion using a phototypesetter)11 3159( Now)1 244(implementing them.)1 806 3 720 5460 t ( the formulae for the test cases can be entered into the computer in a language that permits)17 3606(language. Thus,)1 660 2 720 5580 t ( phototypesetter language can also be transformed)6 2001( This)1 228(the production of formulae like \(4.1\)-\(4.3\) on paper.)7 2084 3 720 5700 t (into another computer language that, when executed, evaluates)7 2508 1 720 5820 t 10 I f (L L)1 56 1 3253 5820 t 10 R f (and notes if it is the exact result or not.)9 1554 1 3334 5820 t ( pretty listings, like \(4.1\)-)4 1022( The)1 205(There are huge advantages here: the derivation text is entered only once.)11 2892 3 720 5940 t (\(4.3\),)720 6060 w 10 B f (and)961 6060 w 10 R f (the executable code for obtaining)4 1330 1 1148 6060 t 10 I f (L L)1 56 1 2503 6060 t 10 R f (are both created automatically from that one input source.)8 2309 1 2584 6060 t (Thus, the cerebral cortex can debug the formulae and the computer can make the program for computing)16 4181 1 720 6180 t 10 I f (L L)1 56 1 4926 6180 t 10 R f (.)4982 6180 w (The)970 6336 w 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1150 6336 t 10 R f (tools used are briefly described below.)5 1541 1 1408 6336 t 10 B f (EQN \320 A mathematical equation-setting language [3].)6 2335 1 720 6576 t 10 R f (When you want to say)4 893 1 970 6732 t 10 I f (a a)1 50 1 1888 6732 t 7 I f ( j)1 0( j)1 25(i i)1 20 3 1943 6751 t (k k)1 31 1 1943 6692 t 10 R f ( general rule of thumb for using EQN is)8 1592( A)1 122(you simply type a sub ij sup k.)7 1223 3 2021 6732 t ( output)1 281( The)1 205(that you type at it the words you would use in describing the object to a friend on the telephone.)19 3829 3 720 6852 t (of EQN is TROFF.)3 767 1 720 6972 t cleartomark showpage saveobj restore %%EndPage: 9 11 %%Page: 10 12 /saveobj save def mark 12 pagesetup 10 R f (- 10 -)2 216 1 2772 480 t 10 B f (TROFF\320 A phototypesetting language [11,pp.2115-2135])4 2467 1 720 840 t 10 R f ( example, the)2 535( For)1 189(This processor lays out text according to user given commands and built-in rules.)12 3249 3 970 996 t (subheading for this paragraph was produced by typing)7 2171 1 720 1116 t (.SH)745 1296 w (TROFF-)745 1416 w (A phototypesetting language)2 1149 1 745 1536 t ([11,pp.2115-2135])745 1656 w (where the .SH command tells TROFF to make the following input lines)11 2866 1 720 1836 t 10 B f (bold)3611 1836 w 10 R f ( also justifies the text)4 850(. TROFF)1 387 2 3801 1836 t (on the page, does hyphenation, and generally produces a tidy document from more or less free-form input.)16 4250 1 720 1956 t (This paper is an example of its output.)7 1532 1 720 2076 t 10 B f (EFL \320 A FORTRAN pre-processor language [2].)6 2123 1 720 2316 t 10 R f ( has an Algol-like syn-)4 910( It)1 111(This pre-processor provides a language of considerable power and elegance.)9 3046 3 970 2472 t (tax, portable FORTRAN [9] as output, the usual control-flow constructions \(IF ... ELSE ..., WHILE, FOR,)15 4263 1 720 2592 t ( useful feature of EFL is the ability to take input)10 1926( A)1 122(etc.\), as well as data structures and a macro facility.)9 2061 3 720 2712 t (while inside one program from another file during compilation, via the INCLUDE statement.)12 3723 1 720 2832 t 10 B f (MAKE [6])1 452 1 720 3072 t 10 R f (This)970 3228 w 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1173 3228 t 10 R f (command makes sure that if A and B are two files, and B can be derived from A by a)19 3404 1 1431 3228 t (command sequence, then that command sequence is executed if and only if the last date-of-change of A is)17 4235 1 720 3348 t ( MAKE is often used to keep object libraries up to date with respect to their)15 3026( Thus,)1 275(later than that of B.)4 774 3 720 3468 t (source code.)1 498 1 720 3588 t 10 B f (ED \320 The)2 456 1 720 3828 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1201 3828 t 10 B f (text editor [11, pp.2115-2135])3 1251 1 1459 3828 t 10 R f ( example, the ED command)4 1112( For)1 189(A line oriented editor with sophisticated pattern matching ability.)8 2612 3 970 3984 t (g/b sup [\303 ]*/s/b sup \\\([\303 ]*\\\)/B\(\\1\)/g)6 1438 1 970 4140 t ( all occurrences of b sup String into)7 1423( changes)1 371(\(don't worry, it's easier to type than to read one of these!\))11 2311 3 720 4296 t (B\(String\), where String is any string of non-blank characters.)8 2446 1 720 4416 t 10 B f (SHELL \320 The)2 652 1 720 4656 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1397 4656 t 10 B f (command interpreter [11, pp.1971-1990])3 1728 1 1655 4656 t 10 R f (Each process on)2 648 1 970 4812 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1643 4812 t 10 R f ( standard i/o "devices" may)4 1097( These)1 288(has a standard input and a standard output.)7 1703 3 1901 4812 t ( for example, the editor ED may take its editing com-)10 2133( Thus,)1 275(be files, teletypes, or even other processes.)6 1704 3 720 4932 t ( the output from one process may be input directly to another process.)12 2793( Also,)1 264(mands from a file \(script\).)4 1045 3 720 5052 t (This connection is called a "pipe" and is denoted by a ")11 2206 1 720 5172 t 10 S f (\357)2976 5172 w 10 R f ( typical use of a pipe is to create a document)10 1774(". A)1 188 2 3075 5172 t (with the aid of EQN and TROFF, as in)8 1552 1 720 5292 t (EQN files)1 402 1 970 5448 t 10 S f (\357)1397 5448 w 10 R f (TROFF)1471 5448 w (where EQN produces TROFF input that is then shipped directly to TROFF to make the document.)15 3931 1 720 5604 t 10 B f (Use of the)2 421 1 720 5844 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1166 5844 t 10 B f (Tools)1424 5844 w 10 R f (There is a grand ideal to which software writers aspire \320 document what you want to do, and then)18 3945 1 970 6000 t 10 B f (do)720 6120 w 10 R f ( typist entered the text into a)6 1138( A)1 122( this, the test cases were written before writing any code.)10 2267(it. Believing)1 520 4 851 6120 t ( an example, the preceding display)5 1386( As)1 161(file, transcribing mathematical formulas into the notation of EQN.)8 2647 3 720 6240 t (for the result of \(4.3\) was entered as)7 1440 1 720 6360 t cleartomark showpage saveobj restore %%EndPage: 10 12 %%Page: 11 13 /saveobj save def mark 13 pagesetup 10 R f (- 11 -)2 216 1 2772 480 t 10 CW f (If $\(\304b\304=\3042\304&\304i1\304=\3042\304&\304i2\304=\304i1\304\)$)1 1980 1 1080 900 t ({)1200 1020 w ($b sup 0 \(b sup -1 + b sup -4 \)$)10 1920 1 1200 1140 t (If \( $t\304>=\3044$ \) { Exact })6 1500 1 1200 1260 t (})1200 1380 w (\(4.4\))4740 1560 w (Else)1080 1740 w ({)1200 1860 w ($b sup -1 \( b sup -1 + b sup -i1 + b sup -i2 + b sup -\(i1+i2-1\) \)$)19 3960 1 1200 1980 t (If \( $i1 \303+\303 i2 \303-\3031 \304<=\304 t$ \) { Exact })11 2400 1 1200 2100 t (})1200 2220 w 10 R f (The "$" is a delimiter telling EQN what to act on, and the "\303" and "\304" tell EQN to leave a little white space.)23 4265 1 720 2400 t ( Also,)1 264(The problem now consisted of translating such formulae into a programming language \(EFL\).)12 3753 2 970 2556 t ( means that debugging)3 902( This)1 228(great care must be taken that the code agree with the document describing it.)13 3060 3 720 2676 t (such code \(and formulae\) must result in both the program and documentation being changed correctly and)15 4239 1 720 2796 t (simultaneously.)720 2916 w (The solution was quite simple: Use an ED script to convert the TROFF input into EFL and use)17 3785 1 970 3072 t (MAKE to keep the whole thing up to date.)8 1701 1 720 3192 t ( earlier rather resembles an EFL program)6 1645( given)1 272(It is quite clear that the TROFF input for \(4.3\), \(4.4\),)10 2109 3 970 3348 t (in structure \(IF ... ELSE ...\), but not in detail \320 indeed, it is a rare language that can make sense of)21 3952 1 720 3468 t 10 I f (b b)1 50 1 720 3588 t 7 S f (- -)1 39 1 781 3548 t 7 R f (1)831 3548 w 10 R f (\( 1)1 91 1 882 3588 t 10 S f (+ +)1 55 1 1013 3588 t 10 I f (b b)1 50 1 1108 3588 t 7 S f (- -)1 39 1 1169 3548 t 7 I f (i i)1 20 1 1219 3548 t 10 R f ( the EQN input corresponding to)5 1307(\). However,)1 498 2 1279 3588 t 10 I f (b b)1 50 1 3109 3588 t 7 S f (- -)1 39 1 3170 3548 t 7 R f (1)3220 3548 w 10 R f (\( 1)1 91 1 3271 3588 t 10 S f (+ +)1 55 1 3378 3588 t 10 I f (b b)1 50 1 3449 3588 t 7 S f (- -)1 39 1 3510 3548 t 7 I f (i i)1 20 1 3560 3548 t 10 R f (\) can be converted into a form EFL)7 1405 1 3596 3588 t (can recognize \320 B\(1\))3 883 1 720 3708 t 10 S f (\264)1628 3708 w 10 R f (\(1+B\(i\)\) \320 by a rather general ED script fragment)8 2017 1 1708 3708 t (g/b sup [\303 ]*/s/b sup -\\\([\303 ]*\\\)/B\(\\1\)/g)6 1471 1 1080 3888 t (g/\) *\(/s/\) *\(/\)*\(/g)2 677 1 1080 4008 t (and we can easily construct an array)6 1445 1 720 4188 t 10 I f (B B)1 61 1 2190 4188 t 10 R f (such that)1 358 1 2276 4188 t 10 I f (B B)1 61 1 2659 4188 t 10 R f (\()2728 4188 w 10 I f (i i)1 28 1 2769 4188 t 10 R f (\))2805 4188 w 10 S f (= =)1 55 1 2895 4188 t 10 I f (b b)1 50 1 2999 4188 t 7 S f (- -)1 39 1 3060 4148 t 7 I f (i i)1 20 1 3110 4148 t 10 R f ( complete ED script may be constructed)6 1597(. A)1 147 2 3138 4188 t ( ED script applied to the TROFF input)7 1542( The)1 205( is a long \(6 pages\) but simple script.)8 1474( It)1 111(along the above lines.)3 871 5 720 4308 t (for \(4.3\), \(4.4\), gives the EFL program fragment)7 1932 1 720 4428 t 10 CW f (If \(b == 2 & i1 == 2 & i2 == i1\))11 1920 1 1080 4608 t ({)1200 4728 w (E = 0; M = \(B\(1\)+B\(HiLo\(4\)\)\))5 1680 1 1200 4848 t (If \( t >= 4 \) { EXACT = True })10 1800 1 1200 4968 t (})1200 5088 w (Else)1080 5208 w ({)1200 5328 w (E =)1 180 1 1200 5448 t 10 S f (- -)1 55 1 1440 5448 t 10 CW f (1)1495 5448 w (M = \( B\(1\)+B\(i1\)+B\(i2\)+B\(HiLo\(i1+i2)3 2100 1 1200 5568 t 10 S f (- -)1 55 1 3300 5568 t 10 CW f (1\)\)\))3355 5568 w (If \( i1+i2)2 600 1 1200 5688 t 10 S f (- -)1 55 1 1800 5688 t 10 CW f (1 <= t \) { EXACT = True })8 1500 1 1855 5688 t (})1200 5808 w 10 R f (which gives the normalized FP representation)5 1828 1 720 5988 t 10 I f (b b)1 50 1 2573 5988 t 7 I f (E E)1 43 1 2634 5948 t 10 S f (\264)2693 5988 w 10 I f (M M)1 83 1 2756 5988 t 10 R f (for the braced-part of \(4.1\), by defining an array)8 1921 1 2864 5988 t 10 I f (B B)1 61 1 4810 5988 t 10 R f (\()4879 5988 w 10 I f (i i)1 28 1 4920 5988 t 10 R f (\))4956 5988 w (and a function HiLo\(i\) so that)5 1190 1 720 6108 t 10 I f (B B)1 61 1 2067 6373 t 10 R f (\()2136 6373 w 10 I f ( o)1 0( Lo)1 50( iL)1 56(H Hi)1 100 4 2201 6373 t 10 R f (\()2415 6373 w 10 I f (i i)1 28 1 2456 6373 t 10 R f (\) \))1 106 1 2492 6373 t 10 S f (\272)2647 6373 w (\354)2751 6286 w (\355)2751 6386 w (\356)2751 6486 w 10 R f (0 ,)1 83 1 2833 6458 t 10 I f (b b)1 50 1 2833 6318 t 7 S f (- -)1 39 1 2894 6278 t 7 I f (i i)1 20 1 2944 6278 t 10 R f (,)2980 6318 w 10 I f (i i)1 28 1 3079 6458 t 10 S f (< <)1 55 1 3156 6458 t 10 R f (1 or)1 166 1 3260 6458 t 10 I f (i i)1 28 1 3459 6458 t 10 S f (> >)1 55 1 3536 6458 t 10 I f ( .)1 0(t t.)1 53 2 3640 6458 t 10 R f (1)3079 6318 w 10 S f (\243)3170 6318 w 10 I f (i i)1 28 1 3266 6318 t 10 S f (\243)3335 6318 w 10 I f (t t)1 28 1 3431 6318 t 10 R f (This is accomplished by extending the array)6 1764 1 720 6658 t 10 I f (B B)1 61 1 2509 6658 t 10 R f (\()2578 6658 w 10 I f (i i)1 28 1 2619 6658 t 10 R f (\))2655 6658 w 10 S f (= =)1 55 1 2745 6658 t 10 I f (b b)1 50 1 2849 6658 t 7 S f (- -)1 39 1 2910 6618 t 7 I f (i i)1 20 1 2960 6618 t 10 R f (, for)1 166 1 2988 6658 t 10 I f (i i)1 28 1 3179 6658 t 10 S f (= =)1 55 1 3256 6658 t 10 R f (1 ,)1 83 1 3360 6658 t (. . .)2 125 1 3476 6633 t (,)3634 6658 w 10 I f (t t)1 28 1 3700 6658 t 10 R f (, to have)2 341 1 3728 6658 t 10 I f (B B)1 61 1 4094 6658 t 10 R f (\( 0 \))2 132 1 4163 6658 t 10 S f (= =)1 55 1 4352 6658 t 10 R f (0)4456 6658 w 10 S f (= =)1 55 1 4555 6658 t 10 I f (B B)1 61 1 4659 6658 t 10 R f (\()4728 6658 w 10 I f (t t)1 28 1 4769 6658 t 10 S f (+ +)1 55 1 4821 6658 t 10 R f (1 \),)1 116 1 4892 6658 t (and by defining the statement function)5 1540 1 720 6778 t (HiLo\(i\) = Max\(0,Min\(i,t+1\)\))2 1155 1 1080 6958 t (which is used to get the left-hand endpoint of the smallest floating-point interval containing the exact result.)16 4315 1 720 7138 t ( is a)2 161( There)1 282( form the heart of the floating-point test.)7 1609( They)1 255(There are 42 such EFL program fragments.)6 1726 5 720 7258 t cleartomark showpage saveobj restore %%EndPage: 11 13 %%Page: 12 14 /saveobj save def mark 14 pagesetup 10 R f (- 12 -)2 216 1 2772 480 t ( resulting 42)2 500( The)1 205(standard EFL driver into which these fragments fit, via the EFL INCLUDE mechanism.)12 3512 3 720 840 t (programs essentially form the floating-point test.)5 1954 1 720 960 t (The above ED script mechanism produces the EFL code directly and automatically from the TROFF)14 4022 1 970 1116 t ( Debugging)1 494( only the TROFF input must be altered by hand, the EFL production is automatic.)14 3266(input. Thus,)1 506 3 720 1236 t (was literally carried out at the TROFF \(not the EFL\) level.)10 2339 1 720 1356 t ( can one be)3 451( How)1 244( EFL depends on the TROFF input.)6 1420( The)1 205(However, one great problem still remained.)5 1738 5 970 1512 t (sure that both the EFL and the document for it have been produced from the most recent version of the)19 4101 1 720 1632 t ( MAKE is invaluable.)3 877( Here)1 243( all there are 42 such dependencies which must be checked.)10 2374( In)1 133(TROFF input?)1 587 5 720 1752 t ( the)1 147( Whenever)1 459(A file is created for MAKE, giving the dependencies and desired command sequences.)12 3464 3 720 1872 t (MAKE file is executed \(by saying simply "make"\), any TROFF input which has been altered since the last)17 4260 1 720 1992 t (MAKE will be TROFFed, and a copy of it will be converted into EFL.)13 2823 1 720 2112 t ( automatic)1 419( The)1 205(In all, there are 75 subprograms and some 12,700 lines of FORTRAN in the FP test.)15 3364 3 970 2268 t (TROFF)720 2388 w 10 S f (\256)1057 2388 w 10 R f (EFL conversion mechanism outlined above accounts for 42 of these subprograms and 7351)12 3650 1 1181 2388 t ( 33 subprograms were hand-coded, in EFL, resulting in 5349 lines of FOR-)12 3008( Only)1 250(lines of FORTRAN.)2 814 3 720 2508 t ( hand-coded subprograms are simple drivers with loops running over all exponents and man-)13 3708(TRAN. These)1 585 2 720 2628 t (tissas to be tested, a subprogram to check that)8 1828 1 720 2748 t 10 I f (L L)1 56 1 2573 2748 t 10 S f (\243)2670 2748 w 10 I f (z z)1 39 1 2766 2748 t 10 S f (\243)2846 2748 w 10 I f (R R)1 61 1 2942 2748 t 10 R f (, and, finally, a subprogram \(NAN\) for checking if)8 2020 1 3003 2748 t ( 60% of the code and 90% of the effort was)10 1734( Thus,)1 275(a storage location contains an item that is not-a-number.)8 2244 3 720 2868 t (handled automatically with the help of)5 1540 1 720 2988 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 2285 2988 t 10 R f ( this help, the project would still be a glimmer in the)11 2094(. Without)1 403 2 2518 2988 t (eye.)720 3108 w 10 B f (Form to be Checked)3 868 1 720 3348 t 10 R f (There are many possible arithmetic combinations, such as register-to-register, register-to-memory,)9 3931 1 970 3504 t ( have to decide which of these modes we will test and then stick to it, other-)16 3032( We)1 188(memory-to-memory, etc.)1 1001 3 720 3624 t ( unless we fix the mode to be)7 1168( Also,)1 264(wise we will be comparing apples \(registers\) and oranges \(memory\).)9 2738 3 720 3744 t (tested, we cannot tell which mode we)6 1500 1 720 3864 t 10 I f ( ve e)2 44(h ha av)2 144 2 2245 3864 t 10 R f ( implementation language, FORTRAN, does not)5 1941(tested. The)1 463 2 2458 3864 t ( we shall force the storing of all)7 1267( Thus,)1 275(allow the user to determine if a number is in a register or not.)13 2446 3 720 3984 t ( is)1 92( This)1 228(computed results before checking to see if they are in the correct containment interval.)13 3453 3 720 4104 t (accomplished by putting the results in an array Z, and the containment intervals into arrays L and R.)17 4003 1 720 4224 t (To see if L\()3 468 1 970 4380 t 10 I f (i i)1 28 1 1438 4380 t 10 R f (\))1466 4380 w 10 S f (\243)1524 4380 w 10 R f (Z\()1604 4380 w 10 I f (i i)1 28 1 1698 4380 t 10 R f (\))1726 4380 w 10 S f (\243)1784 4380 w 10 R f (R\()1864 4380 w 10 I f (i i)1 28 1 1964 4380 t 10 R f (\), a subroutine "CheckInterval" is called with arguments L, R, Z and N,)12 2850 1 1992 4380 t ( the arrays L, R and Z are assigned to the PORT [10] stack \(with)14 2576( Since)1 272(where N is the length of the arrays.)7 1402 3 720 4500 t (L\(1\))720 4620 w 10 S f (\272)922 4620 w 10 R f (Stack\(iL\), where iL is the pointer to L on the stack, etc.\), the separate compilation requirements of)16 3926 1 1002 4620 t (FORTRAN virtually force the results Z\()5 1612 1 720 4740 t 10 I f (i i)1 28 1 2332 4740 t 10 R f ( Thus,)1 275(\) to be stored into the array Z before calling CheckInterval.)10 2358 2 2360 4740 t (only the stored values of L, R and Z are tested.)10 1869 1 720 4860 t 10 B f (Portability)720 5100 w 10 R f ( the code uses arrays with 4)6 1103( First,)1 259(The FP test passes the PFORT Verifier [9] with two exceptions.)10 2556 3 970 5256 t ( is illegal in the 1966 ANSI standard for FORTRAN, but it)11 2355(subscripts. This)1 653 2 720 5376 t 10 I f ( s)1 0(i is)1 67 2 3753 5376 t 10 R f (legal in the new 1977)4 860 1 3845 5376 t ( character strings are packed 2 characters per)7 1789( Second,)1 369(FORTRAN standard, which allows 7 subscripts.)5 1935 3 720 5496 t ( is extremely useful to have)5 1101( It)1 111(integer word, while only one per word is considered portable by the Verifier.)12 3071 3 720 5616 t ( alternative to this would be to use two words)9 1818( The)1 205(these 2 character words \(for LT, LE, EQ, NE, GE, GT\).)10 2221 3 720 5736 t (\(one for "L" and another for "T", for example\) and have a character-compare routine to decide what they)17 4178 1 720 5856 t ( character compare inside Integer words is not a portable concept.)10 2623( However,)1 440(represent \("LT", for example\).)3 1214 3 720 5976 t ( is a minor restriction, and should not)7 1494( This)1 228(So the two-character-per-word usage inside the test remains.)7 2416 3 720 6096 t ( than the above 2 exceptions, the code is portable in the)11 2213( Other)1 277(cause any trouble.)2 723 3 720 6216 t 10 I f ( c)1 0( ti ic)2 72( at)1 28( ta)1 50(s st)1 67 5 3958 6216 t 10 R f (sense of the Verifier,)3 836 1 4200 6216 t (that is, it will compile successfully on any machine supporting the ANSI 1966 FORTRAN standard.)14 4009 1 720 6336 t (When it comes to)3 702 1 970 6492 t 10 I f ( ng g)2 50( in)1 50( un nn ni)3 128(r ru)1 89 4 1697 6492 t 10 R f ( con-)1 202( One)1 216(the program there are 2 subtle points for the user to be aware of.)13 2560 3 2039 6492 t (cerns vector machines and the other concerns machines with FP words reserved for non-numeric items, like)15 4302 1 720 6612 t (instructions,)720 6732 w 10 S f (\245)1237 6732 w 10 R f (, etc.)1 191 1 1310 6732 t (All)970 6888 w 10 I f ( l)1 0( l)1 36(f f)1 28 3 1123 6888 t 10 R f (\()1228 6888 w 10 I f (x x)1 44 1 1302 6888 t 7 R f (*)1389 6862 w 10 I f (y y)1 44 1 1478 6888 t 10 R f (\) results are computed in loops like)6 1404 1 1563 6888 t (Do i = 1, N { Result\(i\) = x\(i\))8 1151 1 1080 7068 t 7 R f (*)2266 7042 w 10 R f (y\(i\) })1 217 1 2339 7068 t ( To)1 161(so that the machine's vector arithmetic is tested if it exists, and if the compiler recognizes the construct.)17 4141 2 720 7248 t cleartomark showpage saveobj restore %%EndPage: 12 14 %%Page: 13 15 /saveobj save def mark 15 pagesetup 10 R f (- 13 -)2 216 1 2772 480 t (guarantee that the result registers have been stored \(and do not remain in registers or other strange places\),)17 4245 1 720 840 t ( ,)1 33( for i = 1)4 350( L\(i\), R\(i\) ],)3 498(the test passes the vector Result to a subprogram that checks that Result\(i\) is in [)15 3216 4 720 960 t 10 I f (. .)1 25 1 4825 960 t 10 R f (.. ,)1 83 1 4850 960 t ( vector machines this means that the user must check that the vector registers)13 3075(N. On)1 269 2 720 1080 t 10 I f ( e)1 0( re)1 44(a ar)1 89 3 4089 1080 t 10 R f (stored in memory)2 705 1 4247 1080 t ( if the user wishes to check the)7 1228( Also,)1 264(before a subroutine call.)3 964 3 720 1200 t 10 I f ( r)1 0( ar)1 39( la)1 50( al)1 28( ca)1 50(s sc)1 83 6 3201 1200 t 10 R f (arithmetic unit of a vector machine, it)6 1506 1 3476 1200 t (will be necessary to tell the compiler not to produce vectorized assembly language.)12 3319 1 720 1320 t (The other important portability consideration is whether the machine being tested has reserved FP)13 3914 1 970 1476 t (words, or not-a-number \(NAN\) representations.)4 1906 1 720 1596 t (The NAN problem is most serious when testing that)8 2082 1 970 1752 t 10 I f (z z)1 39 1 3077 1752 t 10 S f (\316 \316)1 71 1 3157 1752 t 10 R f ([)3269 1752 w 10 I f (L L)1 56 1 3343 1752 t 10 R f (,)3407 1752 w 10 I f (R R)1 61 1 3473 1752 t 10 R f (] and one of)3 479 1 3575 1752 t 10 I f (z z)1 39 1 4079 1752 t 10 R f (,)4126 1752 w 10 I f (L L)1 56 1 4192 1752 t 10 R f (or)4273 1752 w 10 I f (R R)1 61 1 4381 1752 t 10 R f (is not-a-)1 330 1 4467 1752 t (number, that is, a reserved word representing an instruction,)8 2398 1 720 1872 t 10 S f (\261 \245)1 136 1 3143 1872 t 10 R f (,)3287 1872 w 10 S f (\245)3353 1872 w 10 R f (\(projective, unsigned\), underflow, or)3 1469 1 3451 1872 t ( is especially bad if)4 771( This)1 228(some other non-numeric object.)3 1270 3 720 1992 t 10 S f (\245)3014 1992 w 10 R f (is both)1 270 1 3112 1992 t 10 S f (\243)3407 1992 w 10 R f (and)3487 1992 w 10 S f (\263)3656 1992 w 10 R f ( example, on)2 513( For)1 189(all numbers.)1 494 3 3736 1992 t (the CRAY-1 the result of an exponent overflow is)8 1997 1 720 2112 t 10 S f (\245)2742 2112 w 10 R f (, and)1 194 1 2815 2112 t 10 S f (\245 \243)1 169 1 3034 2112 t 10 I f (x x)1 44 1 3244 2112 t 10 S f (\243 \245)1 169 1 3329 2112 t 10 R f (holds for)1 358 1 3523 2112 t 10 I f ( y)1 0(a an ny)2 144 2 3906 2112 t 10 R f (number)4075 2112 w 10 I f (x x)1 44 1 4405 2112 t 10 R f (. Conversely,)1 555 1 4449 2112 t (neither)720 2232 w 10 S f ( <)1 0(\245 <)1 177 2 1022 2232 t 10 I f (x x)1 44 1 1248 2232 t 10 R f (nor)1317 2232 w 10 I f (x x)1 44 1 1475 2232 t 10 S f ( \245)1 122(< <)1 55 2 1568 2232 t 10 R f (is true for any number)4 887 1 1770 2232 t 10 I f (x x)1 44 1 2682 2232 t 10 R f ( such a case,)3 498(. In)1 158 2 2726 2232 t 10 I f (L L)1 56 1 3407 2232 t 10 S f (\243 \245 \243)2 265 1 3504 2232 t 10 I f (R R)1 61 1 3810 2232 t 10 R f (tests)3896 2232 w 10 B f (true)4099 2232 w 10 R f (for)4301 2232 w 10 I f ( y)1 0(a an ny)2 144 2 4442 2232 t 10 R f (numbers)4611 2232 w 10 I f (L L)1 56 1 4980 2232 t 10 R f (and)720 2352 w 10 I f (R R)1 61 1 889 2352 t 10 R f (, even though)2 541 1 950 2352 t 10 S f (\245)1516 2352 w 10 R f ( such NAN's are not detected, they may give rise to)10 2065( If)1 116(is clearly not the correct result.)5 1236 3 1614 2352 t ( in the inter-)3 491( However,)1 440( of NAN's is not a provably portable concept.)8 1827( Detection)1 438(incorrect model parameters.)2 1116 5 720 2472 t (est of making the test as robust as possible, a NAN test has been provided that at least works for the)20 3986 1 720 2592 t (CRAY-1, the only machine with NAN's to which the author has access.)11 2876 1 720 2712 t (Infinities, infinitesimals \(0)2 1064 1 970 2868 t 7 S f (+ +)1 39 1 2045 2888 t 10 R f (for an underflowed positive quantity, etc.\), undefineds, and any other)9 2764 1 2117 2868 t (NAN's are expected to have strange properties, such as)8 2207 1 720 2988 t 10 S f (\245)2952 2988 w 10 I f (/ /)1 28 1 3057 2988 t 10 R f (2)3117 2988 w 10 S f ( \245)1 122(= =)1 55 2 3216 2988 t 10 R f (and 0)1 219 1 3418 2988 t 7 S f (+ +)1 39 1 3648 3008 t 10 S f (+ +)1 55 1 3735 2988 t 10 R f (0)3830 2988 w 7 S f (+ +)1 39 1 3891 3008 t 10 S f (= =)1 55 1 3987 2988 t 10 R f (0)4091 2988 w 7 S f (+ +)1 39 1 4152 3008 t 10 R f (, that cannot be sat-)4 779 1 4199 2988 t ( the following code is likely to detect them.)8 1735( Hence,)1 329(isfied by ordinary FP numbers.)4 1241 3 720 3108 t 10 CW f (If \()1 540 1 1080 3288 t 10 I f (x x)1 44 1 1680 3288 t 10 S f ( -)1 0(\243 -)1 194 2 1800 3288 t 10 R f (1)2010 3288 w 10 CW f (\) { NAN =)3 540 1 2120 3288 t 10 I f ( /)1 0( /)1 104(x x)1 44 3 2720 3288 t 10 R f (2)2944 3288 w 10 S f (\243)3070 3288 w 10 I f (x x)1 44 1 3201 3288 t 10 CW f ( Is)1 180(} #)1 360 2 3305 3288 t 10 I f (x x)1 44 1 3905 3288 t 10 S f ( \245)1 89( -)1 0( -)1 147(= =)1 55 4 4033 3288 t 10 CW f (?)4324 3288 w (Else If \()2 540 1 1080 3408 t 10 I f (x x)1 44 1 1680 3408 t 10 S f ( +)1 0(\263 +)1 194 2 1800 3408 t 10 R f (1)2010 3408 w 10 CW f (\) { NAN =)3 540 1 2120 3408 t 10 I f ( /)1 0( /)1 104(x x)1 44 3 2720 3408 t 10 R f (2)2944 3408 w 10 S f (\263)3070 3408 w 10 I f (x x)1 44 1 3201 3408 t 10 CW f ( Is)1 180(} #)1 360 2 3305 3408 t 10 I f (x x)1 44 1 3905 3408 t 10 S f ( \245)1 89( +)1 0( +)1 147(= =)1 55 4 4033 3408 t 10 CW f (?)4324 3408 w (Else If \()2 540 1 1080 3528 t 10 I f (x x)1 44 1 1680 3528 t 10 S f (\272)1800 3528 w 10 R f (0)1931 3528 w 10 CW f ( NAN = false })4 840(\) {)1 300 2 2041 3528 t (Else If \()2 540 1 1080 3648 t 10 I f (x x)1 44 1 1680 3648 t 10 S f (\243)1800 3648 w 10 R f (0)1931 3648 w 10 CW f ( NAN =)2 360(\) {)1 300 2 2041 3648 t 10 I f (x x)1 44 1 2761 3648 t 10 S f (+ +)1 55 1 2889 3648 t 10 I f (x x)1 44 1 3028 3648 t 10 S f (\263)3148 3648 w 10 I f (x x)1 44 1 3279 3648 t 10 CW f ( Is)1 180(} #)1 360 2 3383 3648 t 10 I f (x x)1 44 1 3983 3648 t 10 S f (= =)1 55 1 4111 3648 t 10 R f (0)4250 3648 w 7 S f (- -)1 39 1 4311 3668 t 10 CW f (?)4358 3648 w ( NAN =)2 360(Else {)1 1440 2 1080 3768 t 10 I f (x x)1 44 1 2940 3768 t 10 S f (+ +)1 55 1 3068 3768 t 10 I f (x x)1 44 1 3207 3768 t 10 S f (\243)3327 3768 w 10 I f (x x)1 44 1 3458 3768 t 10 CW f (} #)1 360 1 3562 3768 t 10 I f (x x)1 44 1 3982 3768 t 10 S f (= =)1 55 1 4110 3768 t 10 R f (0)4249 3768 w 7 S f (+ +)1 39 1 4310 3788 t 10 CW f (.)4357 3768 w 10 R f (where)720 3948 w 10 I f ( N)1 0( AN)1 67(N NA)1 128 3 988 3948 t 10 R f ( code correctly)2 592( This)1 228(is a Logical variable and the # indicates the rest of the line is a comment.)15 2912 3 1208 3948 t ( should carefully check to see if their)7 1477( Users)1 277(detects NAN's on the CRAY-1, but may not on other machines.)10 2558 3 720 4068 t (machine has NAN's and perhaps alter the subprogram NAN to)9 2508 1 720 4188 t 10 I f ( ee e)2 44( te)1 44( an nt)2 78( ra)1 50(g gu ua ar)3 189 5 3253 4188 t 10 R f (it detects them, otherwise the test)5 1332 1 3683 4188 t (may not tell the truth.)4 864 1 720 4308 t 10 B f (Output)720 4548 w 10 R f (When FP errors are detected, the user may elect to print-out the offending)12 2946 1 970 4704 t 10 I f (x x)1 44 1 3941 4704 t 10 R f (,)3985 4704 w 7 R f (*)4045 4678 w 10 R f (and)4118 4704 w 10 I f (y y)1 44 1 4287 4704 t 10 R f (along with the)2 572 1 4356 4704 t (inclusion interval [)2 755 1 720 4824 t 10 I f (L L)1 56 1 1516 4824 t 10 R f (,)1580 4824 w 10 I f (R R)1 61 1 1646 4824 t 10 R f ( is most useful when done in base-)7 1379(]. This)1 286 2 1748 4824 t 10 I f (b b)1 50 1 3413 4824 t 10 R f (notation \("octal" or "hex"\), so that the)6 1515 1 3488 4824 t (user can see the base-)4 863 1 720 4944 t 10 I f (b b)1 50 1 1583 4944 t 10 R f (digits in)1 326 1 1658 4944 t 10 I f (x x)1 44 1 2009 4944 t 10 R f (,)2053 4944 w 10 I f (y y)1 44 1 2103 4944 t 10 R f (,)2147 4944 w 10 I f ( l)1 0( l)1 36(f f)1 28 3 2197 4944 t 10 R f (\()2302 4944 w 10 I f (x x)1 44 1 2376 4944 t 7 R f (*)2463 4918 w 10 I f (y y)1 44 1 2552 4944 t 10 R f (\),)2637 4944 w 10 I f (L L)1 56 1 2720 4944 t 10 R f (and)2801 4944 w 10 I f (R R)1 61 1 2970 4944 t 10 R f ( as subtle as we are trying to detect may)9 1594(. Errors)1 324 2 3031 4944 t (not show up if the results are printed in decimal \(unless it's a decimal machine\) because of rounding-error)17 4233 1 720 5064 t (in the conversion from base-)4 1142 1 720 5184 t 10 I f (b b)1 50 1 1862 5184 t 10 R f ( program may have to be written by the user of the package for)13 2513( A)1 122(to base-10.)1 438 3 1937 5184 t ( calling sequence is)3 779( The)1 205(printing such "octal" results.)3 1137 3 720 5304 t (SUBROUTINE OCTALP \( MESSG, NMESSG, IA, NIA \))7 2360 1 1080 5484 t (and it should print the message MESSG of NMESSG characters, followed \(on the same line\) by the Integer)17 4294 1 720 5664 t ( has)1 158( IA)1 155(array IA of length NIA, in "octal" or "hex", or whatever is appropriate on the machine being tested.)17 3966 3 720 5784 t ( in single-precision NIA is)4 1060( Typically,)1 458(been Equivalenced to a FP number in the program calling OCTALP.)10 2744 3 720 5904 t ( default, reasonably portable, version of OCTALP is distributed as)9 2655( A)1 122(1 and in double-precision NIA is 2.)6 1412 3 720 6024 t ( the base)2 349( When)1 288(part of the test software.)4 967 3 720 6144 t 10 I f (b b)1 50 1 2349 6144 t 10 R f ( 8 the "octal" format "O24" is used, otherwise it is)10 2004( or)1 141( ,)1 33( 4)1 91( ,)1 33(is 2)1 142 6 2424 6144 t (assumed that the machine is base-16 and the "hex" format "Z18" is used.)12 2907 1 720 6264 t (If the machine being tested requires another format from those provided by the above default, and the)16 4055 1 970 6420 t ( if)1 86( However,)1 440(user wants to see the numbers that are causing the trouble, OCTALP will have to be recoded.)16 3721 3 720 6540 t (the format desired is of the form ?## where ? is some single character, say "B", and ## is the character ver-)21 4268 1 720 6660 t (sion of NIA \(i.e., if NIA)5 970 1 720 6780 t 10 S f (= =)1 55 1 1715 6780 t 10 R f (10 then ##)2 422 1 1819 6780 t 10 S f (\272)2266 6780 w 10 R f ("10"\), then changing the statement)4 1383 1 2346 6780 t (DATA ZEE / 1HZ /)4 799 1 895 6960 t (to)720 7140 w cleartomark showpage saveobj restore %%EndPage: 13 15 %%Page: 14 16 /saveobj save def mark 16 pagesetup 10 R f (- 14 -)2 216 1 2772 480 t (DATA ZEE / 1HB /)4 805 1 870 900 t (in OCTALP will suffice.)3 994 1 720 1080 t (See the DEC appendix for an example of the output produced by OCTALP.)12 3026 1 970 1236 t 10 B f ( Software)1 407(5. Basic)1 353 2 720 1476 t 10 R f ( there is the bottom level)5 991( First,)1 259(There are three levels of software available for testing FP units.)10 2536 3 970 1632 t (FPTST that allows the user maximum flexibility in getting a "Yes-No" answer to questions like)14 3820 1 720 1752 t (Is this a base-2 machine with 48 bits in the mantissa?)10 2126 1 970 1908 t ( the next level, when the user wishes to use FPTST in a)12 2212( At)1 150(Since this software is flexible, it is messy to use.)9 1941 3 720 2064 t ( a top-level driver for)4 853( Finally,)1 359(simple manner, a driver for FPTST has been written to make its usage easier.)13 3081 3 720 2184 t (FPTST has been written to answer, numerically, such questions as)9 2650 1 720 2304 t (How many base-)2 676 1 970 2460 t 10 I f (b b)1 50 1 1646 2460 t 10 R f (digits)1721 2460 w 10 I f (t t)1 28 1 1969 2460 t 10 R f (does this machine support?)3 1085 1 2022 2460 t (The next section presents main programs to drive these three levels of software.)12 3185 1 720 2616 t 10 B f (Lower Level Software)2 942 1 720 2856 t 10 R f (The lowest level software is FPTST, which takes as input the values of)12 2833 1 970 3012 t 10 I f (b b)1 50 1 3828 3012 t 10 R f (,)3878 3012 w 10 I f (t t)1 28 1 3928 3012 t 10 R f (,)3956 3012 w 10 I f (e e)1 44 1 4006 3012 t 7 R f (min)4061 3032 w 10 R f (and)4204 3012 w 10 I f (e e)1 44 1 4373 3012 t 7 R f (max)4428 3032 w 10 R f (, some)1 261 1 4557 3012 t (arrays describing the sample FP mantissas from \(2.2\) to use, the operators \()12 3012 1 720 3132 t 10 S f (+ +)1 55 1 3732 3132 t 10 R f (,)3803 3132 w 10 S f (- -)1 55 1 3877 3132 t 10 R f (,)3948 3132 w 10 S f (\264)4014 3132 w 10 R f (,)4077 3132 w 10 I f (/ /)1 28 1 4143 3132 t 10 R f (,)4179 3132 w 10 I f ( .)1 0( LT T.)2 81( L)1 64(. .)1 25 4 4245 3132 t 10 R f (,)4423 3132 w (. . .)2 125 1 4481 3107 t (, etc.\) to)2 327 1 4631 3132 t ( decides whether the model is supported for the)8 1891( It)1 111(be tested, plus a few flags to control the output of the test.)12 2314 3 720 3252 t (given parameter values.)2 950 1 720 3372 t (The declaration for FPTST is)4 1171 1 970 3528 t 10 CW f (LOGICAL FUNCTION FPTST\(B,T,EMIN,EMAX,)2 2220 1 1200 3708 t (EX,NEX,IX,NIX,)2580 3828 w (EY,NEY,IY,NIY,)2580 3948 w (EXPAND,)2580 4068 w (CHEKPM,CHEKTM,CHEKDV,)2580 4188 w (CHEKNG,CHEKCM,CHEKUF,)2580 4308 w (TYPE,)2580 4428 w (EPRINT,JTEST,)2580 4548 w (OUTPUT\))2580 4668 w 10 R f (The arguments to FPTST are, where)5 1453 1 720 4848 t 10 S f (\256)2198 4848 w 10 R f (denotes an input value and)4 1065 1 2322 4848 t 10 S f (\254)3412 4848 w 10 R f (denotes an output value,)3 971 1 3536 4848 t (B)770 5040 w 10 S f (\256)1320 5040 w 10 R f (The Integer base-)2 697 1 1520 5040 t 10 I f (b b)1 50 1 2217 5040 t 10 R f (of the machine.)2 618 1 2292 5040 t (T)770 5196 w 10 S f (\256)1320 5196 w 10 R f (The Integer number of base-)4 1135 1 1520 5196 t 10 I f (b b)1 50 1 2655 5196 t 10 R f (digits in the mantissa.)3 873 1 2730 5196 t (EMIN)770 5352 w 10 S f (\256)1320 5352 w 10 R f (The Integer minimum exponent)3 1268 1 1520 5352 t 10 I f (e e)1 44 1 2813 5352 t 7 R f (min)2868 5372 w 10 R f (.)2986 5352 w (EMAX)770 5508 w 10 S f (\256)1320 5508 w 10 R f (The Integer maximum exponent)3 1284 1 1520 5508 t 10 I f (e e)1 44 1 2829 5508 t 7 R f (max)2884 5528 w 10 R f (.)3013 5508 w (EX)770 5664 w 10 S f (\256)1320 5664 w 10 R f (An Integer array of exponents for operands)6 1722 1 1520 5664 t 10 I f (x x)1 44 1 3267 5664 t 10 R f (in)3336 5664 w 10 I f (x x)1 44 1 3439 5664 t 7 R f (*)3526 5638 w 10 I f (y y)1 44 1 3615 5664 t 10 R f (.)3659 5664 w (NEX)770 5820 w 10 S f (\256)1320 5820 w 10 R f (The length of the array EX.)5 1097 1 1520 5820 t (IX)770 5976 w 10 S f (\256)1320 5976 w 10 R f (An array of)2 459 1 1520 5976 t 10 I f (i i)1 28 1 2004 5976 t 10 R f (values to be used in the sample set of mantissas \(2.2\) for X.)12 2380 1 2057 5976 t (NIX)770 6132 w 10 S f (\256)1320 6132 w 10 R f (The length of the array IX.)5 1069 1 1520 6132 t (EY)770 6288 w 10 S f (\256)1320 6288 w 10 R f (An Integer array of exponents for operands)6 1722 1 1520 6288 t 10 I f (y y)1 44 1 3267 6288 t 10 R f (in)3336 6288 w 10 I f (x x)1 44 1 3439 6288 t 7 R f (*)3526 6262 w 10 I f (y y)1 44 1 3615 6288 t 10 R f (.)3659 6288 w (NEY)770 6444 w 10 S f (\256)1320 6444 w 10 R f (The length of the array EY.)5 1097 1 1520 6444 t (IY)770 6600 w 10 S f (\256)1320 6600 w 10 R f (An array of)2 459 1 1520 6600 t 10 I f (i i)1 28 1 2004 6600 t 10 R f (values to be used in the sample set of mantissas \(2.2\) for Y.)12 2380 1 2057 6600 t (NIY)770 6756 w 10 S f (\256)1320 6756 w 10 R f (The length of the array IY.)5 1069 1 1520 6756 t (EXPAND)770 6912 w 10 S f (\256)1320 6912 w 10 R f (The maximum number of interval expansions to be allowed for division, that is, the)13 3339 1 1520 6912 t (number of)1 413 1 1520 7032 t 10 I f (X X)1 61 1 1958 7032 t 7 S f (+ +)1 39 1 2030 6992 t 10 R f (expansions to be made for the division inclusion interval, if it is neces-)12 2828 1 2102 7032 t ( model of [13] assumes EXPAND to be 1, at most.)10 2026( The)1 205(sary, see section 3.)3 751 3 1520 7152 t cleartomark showpage saveobj restore %%EndPage: 14 16 %%Page: 15 17 /saveobj save def mark 17 pagesetup 10 R f (- 15 -)2 216 1 2772 480 t (EXPAND)770 840 w 10 S f (\254)1320 840 w 10 R f (The actual number of interval expansions needed for division.)8 2476 1 1520 840 t (CHEKPM)770 996 w 10 S f (\256)1320 996 w 10 R f (A Logical flag that determines if Plus and Minus are to be tested.)12 2605 1 1520 996 t (CHEKTM)770 1152 w 10 S f (\256)1320 1152 w 10 R f (A Logical flag that determines if Times is to be tested.)10 2178 1 1520 1152 t (CHEKDV)770 1308 w 10 S f (\256)1320 1308 w 10 R f (A Logical flag that determines if Division is to be tested.)10 2273 1 1520 1308 t (CHEKNG)770 1464 w 10 S f (\256)1320 1464 w 10 R f (A Logical flag that determines if Negation is to be tested.)10 2294 1 1520 1464 t (CHEKCM)770 1620 w 10 S f (\256)1320 1620 w 10 R f (A Logical flag that determines if Comparison is to be tested.)10 2417 1 1520 1620 t (CHEKUF)770 1776 w 10 S f (\256)1320 1776 w 10 R f ( is, whether results)3 749( That)1 233(A Logical flag that determines if UnderFlow is to be tested.)10 2383 3 1520 1776 t ( CHEKUF is .TRUE., the NAN)5 1266( When)1 288(that underflow are to be generated and tested.)7 1817 3 1520 1896 t (check for 0)2 448 1 1520 2016 t 7 S f (+ +)1 39 1 1979 2036 t 10 R f (and 0)1 219 1 2051 2016 t 7 S f (- -)1 39 1 2281 2036 t 10 R f (\( underflow \) is disabled.)4 1001 1 2353 2016 t (TYPE)770 2172 w 10 S f (\256)1320 2172 w 10 R f ( tells if Type i is to be tested for x and y, with)13 1821( TYPE\(i,j\))1 447(A Logical array TYPE\(5,2\).)3 1122 3 1520 2172 t (j=1 corresponding to x and j=2 to y, see \(2.2\))9 1807 1 1520 2292 t (EPRINT)770 2448 w 10 S f (\256)1320 2448 w 10 R f (A Logical flag to say if error conditions are to printed out when they arise.)14 2975 1 1520 2448 t (JTEST)770 2604 w 10 S f (\256)1320 2604 w 10 R f (A Logical flag that determines if the test is looking for all errors or will stop if it)17 3211 1 1520 2604 t ( = .TRUE. means that the test won't stop under any)10 2054( JTEST)1 328(encounters severe trouble.)2 1044 3 1520 2724 t ( if)1 86( Also,)1 264( certain conditions may cause an abort of the run.)9 1968(circumstances. Otherwise)1 1050 4 1520 2844 t (JTEST is .TRUE., FPTST does no printing at all.)8 1968 1 1520 2964 t (OUTPUT)770 3120 w 10 S f (\256)1320 3120 w 10 R f (The name of a subprogram that is to be called by FPTST whenever an error is detected)16 3465 1 1520 3120 t ( must be declared EXTERNAL in the program call-)8 2068( OUTPUT)1 444(and EPRINT is TRUE.)3 922 3 1520 3240 t ( default, reasonably portable version of OUTPUT, called FPTSO, is dis-)10 2888( A)1 122(ing FPTST.)1 468 3 1520 3360 t ( calling sequence to OUTPUT is)5 1301( The)1 205(tributed with the test software.)4 1218 3 1520 3480 t 10 CW f (SUBROUTINE OUTPUT \( SX, TX, IX, EX, X,)7 2280 1 2240 3660 t (OP,)3440 3780 w (SY, TY, IY, EY, Y,)4 1080 1 3440 3900 t (RESULT, L, R \))3 840 1 3440 4020 t 10 R f (SX)1570 4236 w 10 S f (\256)2070 4236 w 10 R f (An Integer giving the sign of X, 1 is)8 1446 1 2270 4236 t 10 S f (+ +)1 55 1 3741 4236 t 10 R f (and 2 is)2 311 1 3821 4236 t 10 S f (- -)1 55 1 4157 4236 t 10 R f (.)4212 4236 w (TX)1570 4392 w 10 S f (\256)2070 4392 w 10 R f ( ,)1 33(An Integer giving the Type \( 1)6 1220 2 2270 4392 t 10 I f (. .)1 25 1 3531 4392 t 10 R f ( \) of X, see \(2.2\).)5 681(.. , 5)2 141 2 3556 4392 t (IX)1570 4548 w 10 S f (\256)2070 4548 w 10 R f (An Integer giving the value of)5 1206 1 2270 4548 t 10 I f (i i)1 28 1 3501 4548 t 10 R f (used in \(2.2\) for the mantissa of X.)7 1395 1 3554 4548 t (EX)1570 4704 w 10 S f (\256)2070 4704 w 10 R f (An Integer giving the base-)4 1092 1 2270 4704 t 10 I f (b b)1 50 1 3362 4704 t 10 R f (exponent of X.)2 596 1 3437 4704 t (X)1570 4860 w 10 S f (\256)2070 4860 w 10 R f (The Real number X that caused X OP Y to fail.)10 1894 1 2270 4860 t (OP)1570 5016 w 10 S f (\256)2070 5016 w 10 R f ( is an Integer with 2 characters)6 1224( OP)1 178(The operation OP that has failed.)5 1320 3 2270 5016 t ( characters and what they stand for are)7 1536( The)1 205(stored in it.)2 453 3 2270 5136 t (" +" stands for addition.)4 957 1 2520 5292 t (" \320" stands for subtraction.)4 1117 1 2520 5448 t (" *" stands for multiplication.)4 1185 1 2520 5604 t (" /" stands for division.)4 924 1 2520 5760 t ("EQ" stands for equality comparison.)4 1494 1 2520 5916 t ("LT" stands for less-than comparison.)4 1516 1 2520 6072 t ("GT" stands for greater-than comparison.)4 1653 1 2520 6228 t ("LE" stands for less-than or equal comparison.)6 1865 1 2520 6384 t ("GE" stands for greater-than or equal comparison.)6 2002 1 2520 6540 t ("NE" stands for not-equal comparison.)4 1549 1 2520 6696 t ( OP = "NG", all values of)6 1023( When)1 288("NG" stands for negation.)3 1036 3 2520 6852 t (input relating to Y are undefined, since negation is only)9 2225 1 2520 6972 t (applied to X.)2 519 1 2520 7092 t ("RE" stands for reciprocation.)3 1202 1 2520 7248 t cleartomark showpage saveobj restore %%EndPage: 15 17 %%Page: 16 18 /saveobj save def mark 18 pagesetup 10 R f (- 16 -)2 216 1 2772 480 t (SY)1570 840 w 10 S f (\256)2070 840 w 10 R f (An Integer giving the sign of Y, 1 is)8 1446 1 2270 840 t 10 S f (+ +)1 55 1 3741 840 t 10 R f (and 2 is)2 311 1 3821 840 t 10 S f (- -)1 55 1 4157 840 t 10 R f (.)4212 840 w (TY)1570 996 w 10 S f (\256)2070 996 w 10 R f ( ,)1 33(An Integer giving the Type \( 1)6 1220 2 2270 996 t 10 I f (. .)1 25 1 3531 996 t 10 R f ( \) of Y.)3 288(.. , 5)2 141 2 3556 996 t (IY)1570 1152 w 10 S f (\256)2070 1152 w 10 R f (An Integer giving the value of)5 1206 1 2270 1152 t 10 I f (i i)1 28 1 3501 1152 t 10 R f (used in \(2.2\) for the mantissa of Y.)7 1395 1 3554 1152 t (EY)1570 1308 w 10 S f (\256)2070 1308 w 10 R f (An Integer giving the base-)4 1092 1 2270 1308 t 10 I f (b b)1 50 1 3362 1308 t 10 R f (exponent of Y.)2 596 1 3437 1308 t (Y)1570 1464 w 10 S f (\256)2070 1464 w 10 R f (The Real number Y that caused X OP Y to fail.)10 1894 1 2270 1464 t (RESULT)1570 1620 w 10 S f (\256)2070 1620 w 10 R f (The Real computed value of)4 1131 1 2270 1620 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 3426 1620 t 10 R f ( \).)1 91( OP Y)2 250(\( X)1 138 3 3531 1620 t (L)1570 1776 w 10 S f (\256)2070 1776 w 10 R f (The Real left-hand-endpoint of the containment interval for)7 2376 1 2270 1776 t (RESULT.)2270 1896 w (R)1570 2052 w 10 S f (\256)2070 2052 w 10 R f (The Real right-hand-endpoint of the containment interval for)7 2432 1 2270 2052 t (RESULT.)2270 2172 w (The user can do whatever is desired in OUTPUT to print, store, analyze, etc. the num-)15 3440 1 1520 2328 t (bers that are causing the trouble.)5 1297 1 1520 2448 t (The function value of FPTST is)5 1269 1 720 2604 t (TRUE if errors have been detected, FALSE if no errors have been detected.)12 3019 1 970 2760 t 10 B f (Higher Level Software)2 965 1 720 3000 t 10 R f (One of the problems in using FPTST is the necessity for the user to create arrays IX, IY, EX and EY)20 4015 1 970 3156 t ( the user wants to test some IX's near 1,)9 1597( Typically,)1 458(telling FPTST what sample set numbers to use.)7 1889 3 720 3276 t 10 I f (t t)1 28 1 4689 3276 t 10 R f (and)4742 3276 w (maybe)720 3396 w 10 I f ( /)1 0( /)1 36(t t)1 28 3 1011 3396 t 10 R f (2, and some EX's near)4 906 1 1083 3396 t 10 I f (e e)1 44 1 2014 3396 t 7 R f (min)2069 3416 w 10 R f (,)2187 3396 w 10 S f (- -)1 55 1 2237 3396 t 10 I f (t t)1 28 1 2308 3396 t 10 R f (, 0,)1 125 1 2336 3396 t 10 S f (+ +)1 55 1 2486 3396 t 10 I f (t t)1 28 1 2557 3396 t 10 R f (and)2610 3396 w 10 I f (e e)1 44 1 2779 3396 t 7 R f (max)2834 3416 w 10 R f (, that is, some parameters near the "edges" of the)9 1947 1 2963 3396 t ( addition and subtraction, exponents near)5 1642(representation. For)1 779 2 720 3516 t 10 S f (\261)3166 3516 w 10 I f (t t)1 28 1 3229 3516 t 10 R f (are considered "edges" because when num-)5 1729 1 3282 3516 t (bers with such exponents are added to or subtracted from numbers with 0 exponents they tend to "fall off)18 4195 1 720 3636 t ( make the creation of such arrays easier,)7 1600( To)1 161( things are usually wanted for Y.)6 1306( Similar)1 345(the end" and get lost.)4 843 5 720 3756 t ( calling sequence for FPTSD is the same as that for FPTST)11 2362( The)1 205(a driver, FPTSD, was created for FPTST.)6 1656 3 720 3876 t (except that IX, NIX, EX, and NEX, and the corresponding items for Y, are replaced by descriptions of the)18 4237 1 720 3996 t ("edges" the user wants tested.)4 1188 1 720 4116 t (The calling sequence for FPTSD is)5 1401 1 970 4272 t 10 CW f (LOGICAL FUNCTION FPTSD\(B,T,EMIN,EMAX,)2 2220 1 1200 4452 t (BEX,LBEX,BEY,LBEY,)2580 4572 w (BIX,LBIX,BIY,LBIY,)2580 4692 w (NBEX,NBEY,)2580 4812 w (NBIX,NBIY,)2580 4932 w (EXPAND,)2580 5052 w (CHEKPM,CHEKTM,)2580 5172 w (CHEKDV,CHEKNG,)2580 5292 w (CHEKCM,CHEKUF,)2580 5412 w (TYPE,)2580 5532 w (EPRINT,JTEST,)2580 5652 w (OUTPUT\))2580 5772 w 10 R f (The arguments to this subprogram are precisely as for FPTST, with the exception that IX, NIX, EX, NEX,)17 4249 1 720 5952 t (and the corresponding items for Y, have been replaced by)9 2305 1 720 6072 t (BEX)770 6228 w 10 S f (\256)1320 6228 w 10 R f (An Integer array of exponents of X about which exponent samples are to be clustered,)14 3433 1 1520 6228 t ( typical array would be BEX = \( EMIN,)8 1589( A)1 122(see NBEX below.)2 718 3 1520 6348 t 10 S f (- -)1 55 1 3974 6348 t 10 R f (T, 0, +T, EMAX\).)3 730 1 4029 6348 t (LBEX)770 6504 w 10 S f (\256)1320 6504 w 10 R f ( the preceding example, LBEX)4 1239( In)1 133(The length of the array BEX.)5 1164 3 1520 6504 t 10 S f (= =)1 55 1 4081 6504 t 10 R f (5.)4185 6504 w (BEY)770 6660 w 10 S f (\256)1320 6660 w 10 R f (An Integer array of exponents of Y about which exponent samples are to be clustered.)14 3433 1 1520 6660 t (A typical array would be BEY = \( EMIN,)8 1661 1 1520 6780 t 10 S f (- -)1 55 1 3206 6780 t 10 R f (T, 0, +T, EMAX\).)3 730 1 3261 6780 t (LBEY)770 6936 w 10 S f (\256)1320 6936 w 10 R f ( the preceding example, LBEY)4 1239( In)1 133(The length of the array BEY.)5 1164 3 1520 6936 t 10 S f (= =)1 55 1 4081 6936 t 10 R f (5.)4185 6936 w cleartomark showpage saveobj restore %%EndPage: 16 18 %%Page: 17 19 /saveobj save def mark 19 pagesetup 10 R f (- 17 -)2 216 1 2772 480 t (BIX)770 840 w 10 S f (\256)1320 840 w 10 R f (An Integer array of)3 766 1 1520 840 t 10 I f (i i)1 28 1 2311 840 t 10 R f ('s for the mantissa of X, see \(2.2\), about which mantissa samples)11 2596 1 2339 840 t ( typical array would be BIX = \( 1, T/2, T \).)11 1714( A)1 122(are to be clustered, see NBIX below.)6 1468 3 1520 960 t (LBIX)770 1116 w 10 S f (\256)1320 1116 w 10 R f ( the preceding example, LBIX)4 1211( In)1 133(The length of the array BIX.)5 1136 3 1520 1116 t 10 S f (= =)1 55 1 4025 1116 t 10 R f (3.)4129 1116 w (BIY)770 1272 w 10 S f (\256)1320 1272 w 10 R f (An Integer array of)3 766 1 1520 1272 t 10 I f (i i)1 28 1 2311 1272 t 10 R f ('s for the mantissa of Y, see \(2.2\), about which mantissa samples)11 2596 1 2339 1272 t ( typical array would be BIY = \( 1, T/2, T \).)11 1714( A)1 122(are to be clustered.)3 753 3 1520 1392 t (LBIY)770 1548 w 10 S f (\256)1320 1548 w 10 R f ( the preceding example, LBIY)4 1211( In)1 133(The length of the array BIY.)5 1136 3 1520 1548 t 10 S f (= =)1 55 1 4025 1548 t 10 R f (3.)4129 1548 w (NBEX)770 1704 w 10 S f (\256)1320 1704 w 10 R f ( For)1 189(An array giving the number of "basic" samples to be taken for X exponents.)13 3032 2 1520 1704 t 10 I f (i i)1 28 1 1520 1824 t 10 S f (= =)1 55 1 1597 1824 t 10 R f (1 ,)1 83 1 1701 1824 t (. . .)2 125 1 1817 1799 t (, LBEX, if BEX\(i\) is in \( EMIN, EMAX \), exponents BEX\(i\))11 2450 1 1975 1824 t 10 S f (- -)1 55 1 4425 1824 t 10 R f (NBEX\(i\)+1,)4480 1824 w (... ,BEX\(i\)+NBEX\(i\))1 841 1 1520 1944 t 10 S f (- -)1 55 1 2361 1944 t 10 R f ( exponent samples in the legal exponent)6 1598( Only)1 250(1 will be used.)3 583 3 2416 1944 t (range [ EMIN, EMAX ] are taken.)6 1373 1 1520 2064 t (NBEY)770 2220 w 10 S f (\256)1320 2220 w 10 R f (An array giving the number of "basic" samples to be taken for Y exponents.)13 3032 1 1520 2220 t (NBIX)770 2376 w 10 S f (\256)1320 2376 w 10 R f ( For)1 189(An array giving the number of "basic" samples to be taken for X mantissas.)13 3016 2 1520 2376 t 10 I f (i i)1 28 1 1520 2496 t 10 S f (= =)1 55 1 1597 2496 t 10 R f (1 ,)1 83 1 1701 2496 t (. . .)2 125 1 1817 2471 t (, LBIX, if BIX\(i\) is in \( EMIN, EMAX \), mantissas of \(2.2\) with parameters)14 3048 1 1975 2496 t (BIX\(i\))1520 2616 w 10 S f (- -)1 55 1 1786 2616 t 10 R f (NBIX\(i\)+1, ... ,BIX\(i\)+NBIX\(i\))2 1279 1 1841 2616 t 10 S f (- -)1 55 1 3120 2616 t 10 R f ( ,)1 33( 1)1 91( mantissa samples in [)4 883( Only)1 250(1 will be used.)3 583 5 3175 2616 t (T ] are taken.)3 531 1 1520 2736 t (NBIY)770 2892 w 10 S f (\256)1320 2892 w 10 R f (An array giving the number of "basic" samples to be taken for Y mantissas.)13 3016 1 1520 2892 t (The function value of FPTSD is)5 1280 1 970 3048 t (TRUE if errors have been detected, FALSE if no errors have been detected.)12 3019 1 970 3204 t (When either of the exponent or mantissa sampling schemes generate overlapping sample fields, no)13 3943 1 970 3360 t ( example, NBEX)2 685( For)1 189( distinct elements of the fields are used.)7 1581( Only)1 250(redundancies are taken.)2 938 5 720 3480 t 10 S f (\272)4388 3480 w 10 R f (1)4484 3480 w 10 S f (\272)4575 3480 w 10 R f (NBEY)4655 3480 w (and NBIX)1 413 1 720 3600 t 10 S f (\272)1158 3600 w 10 R f (T)1238 3600 w 10 S f (\272)1324 3600 w 10 R f (NBIY would test)2 683 1 1404 3600 t 10 I f ( ll l)2 28(a al)1 78 2 2112 3600 t 10 R f (mantissa patterns for)2 832 1 2243 3600 t 10 I f (x x)1 44 1 3100 3600 t 10 R f (and)3169 3600 w 10 I f (y y)1 44 1 3338 3600 t 10 R f (, with a few exponents of)5 1009 1 3382 3600 t 10 I f (x x)1 44 1 4416 3600 t 10 R f (and)4485 3600 w 10 I f (y y)1 44 1 4654 3600 t 10 R f (.)4698 3600 w 10 B f (Very High Level Software)3 1112 1 720 3840 t 10 R f (The programs FPTST and FPTSD described above decide whether a given set of model parameters)14 3965 1 970 3996 t ( is often useful to have a program that will decide what the)12 2346( It)1 111(are correctly supported by the host machine.)6 1771 3 720 4116 t ( have found it,)3 577( None)1 266( have set out in quest of this grail.)8 1352( Many)1 283("correct" model parameters are from scratch.)5 1792 5 720 4236 t ( since people want such a beast, an attempt was made using the)12 2526( However,)1 440(and perhaps nobody ever will.)4 1206 3 720 4356 t ( is also a)3 347( It)1 111( following algorithm was created in a spirit of "let's see what can be done.")14 3007( The)1 205(driver FPTSD.)1 589 5 720 4476 t (useful example of what can be done using FPTST and FPTSD.)10 2512 1 720 4596 t (To discover what)2 693 1 970 4752 t 10 I f (b b)1 50 1 1688 4752 t 10 R f (,)1738 4752 w 10 I f (t t)1 28 1 1788 4752 t 10 R f (,)1816 4752 w 10 I f (e e)1 44 1 1866 4752 t 7 R f (min)1921 4772 w 10 R f (and)2064 4752 w 10 I f (e e)1 44 1 2233 4752 t 7 R f (max)2288 4772 w 10 R f (are,)2442 4752 w 10 I f ( y)1 0( ll ly)2 72( al)1 28( ca)1 50( ti ic)2 72( at)1 28( ma)1 50( om)1 72( to)1 50(a au ut)2 128 10 2613 4752 t 10 R f ( example,)1 388( For)1 189(, a few corners must be cut.)6 1097 3 3163 4752 t (within the model of section 3, it is not possible to reliably tell the difference between a base-16 machine)18 4158 1 720 4872 t ( Let)1 183( within that model, the base is not uniquely defined [13].)10 2265( Indeed,)1 346(and a base-2 machine.)3 886 4 720 4992 t 10 I f (t t)1 28 1 4425 4992 t 7 R f (2)4464 5012 w 10 R f (be the num-)2 477 1 4532 4992 t (ber of base-2 digits correctly supported and)6 1735 1 720 5112 t 10 I f (t t)1 28 1 2480 5112 t 7 R f (16)2519 5132 w 10 R f ( If)1 116(be the number of base-16 digits correctly supported.)7 2085 2 2622 5112 t 10 I f (t t)1 28 1 720 5232 t 7 R f (2)759 5252 w 10 S f (= =)1 55 1 851 5232 t 10 R f (4)955 5232 w 10 I f (t t)1 28 1 1037 5232 t 7 R f (16)1076 5252 w 10 S f (- -)1 55 1 1194 5232 t 10 R f ( the converse is not the case, see the)8 1438( However,)1 440(3, then the machine is quite probably base-16.)7 1839 3 1289 5232 t ( general, if a machine's base is a power of 2, we cannot reliably tell which power it)17 3317( In)1 133(Interdata appendix.)1 770 3 720 5352 t ( we will test the machine for bases 2, 3 and 10, with the notion that these are the only plausible,)20 3815(is. Thus,)1 367 2 720 5472 t ( test will discover whether)4 1054( The)1 205(and only existing, choices.)3 1063 3 720 5592 t 10 I f (b b)1 50 1 3067 5592 t 10 R f ( or 10, but not which power.)6 1132( 3)1 91( ,)1 33(is a power of 2)4 593 4 3142 5592 t (Now note that a base-2 machine cannot pass the test as a base 3 machine because 1)16 3314 1 720 5712 t 10 I f (/ /)1 28 1 4075 5712 t 10 R f (3 is not exactly repre-)4 870 1 4144 5712 t ( arguments show that the base choices 2, 3 and 10 are mutually exclusive, only)14 3151( Similar)1 345(sentable in binary.)2 735 3 720 5832 t ( makes the search for the base-)6 1229( This)1 228(one of them can be valid on a given machine.)9 1813 3 720 5952 t 10 I f (b b)1 50 1 3990 5952 t 10 R f (fairly easy and defini-)3 878 1 4065 5952 t ( problem is deciding if the machine supports base-)8 2014(tive. The)1 380 2 720 6072 t 10 I f (b b)1 50 1 3114 6072 t 10 R f (arithmetic according to the model of section)6 1764 1 3189 6072 t (3.)720 6192 w (To decide if the machine supports some kind of base-)9 2138 1 970 6348 t 10 I f (b b)1 50 1 3108 6348 t 10 R f (arithmetic, we can treat)3 936 1 3183 6348 t 10 I f (t t)1 28 1 4144 6348 t 10 R f (,)4172 6348 w 10 I f (e e)1 44 1 4222 6348 t 7 R f (min)4277 6368 w 10 R f (and)4420 6348 w 10 I f (e e)1 44 1 4589 6348 t 7 R f (max)4644 6368 w 10 R f (as)4798 6348 w ( can first find out what)5 907( We)1 188(independent variables.)1 898 3 720 6468 t 10 I f (t t)1 28 1 2738 6468 t 10 R f (is by running FPTSD with all exponent samples)7 1920 1 2791 6468 t 10 S f (\272)4736 6468 w 10 R f (0, so)1 189 1 4832 6468 t ( this manner, a value of)5 937( In)1 133(that exponent effects are eliminated.)4 1449 3 720 6588 t 10 I f (t t)1 28 1 3264 6588 t 10 R f ( can)1 163( We)1 188(is found which passes FPTSD.)4 1225 3 3317 6588 t (then find the smallest value of)5 1207 1 720 6708 t 10 I f (e e)1 44 1 1952 6708 t 7 R f (min)2007 6728 w 10 R f (which is supported with)3 958 1 2150 6708 t 10 I f (t t)1 28 1 3133 6708 t 10 R f (base-)3186 6708 w 10 I f (b b)1 50 1 3396 6708 t 10 R f (digits, and then find the largest value)6 1479 1 3471 6708 t (of)720 6828 w 10 I f (e e)1 44 1 828 6828 t 7 R f (max)883 6848 w 10 R f (that is supported with)3 864 1 1037 6828 t 10 I f (t t)1 28 1 1926 6828 t 10 R f (base-)1979 6828 w 10 I f (b b)1 50 1 2189 6828 t 10 R f (digits.)2264 6828 w (We obtain)1 413 1 970 6984 t 10 I f (t t)1 28 1 1408 6984 t 10 R f ( we have some given upper-bound on)6 1497( If)1 116(using bisection.)1 628 3 1461 6984 t 10 I f (t t)1 28 1 3727 6984 t 10 R f ( we can)2 304( Otherwise,)1 485(, we use it.)3 430 3 3755 6984 t ( is, for)2 258( That)1 233(obtain one by inverse-bisection.)3 1276 3 720 7104 t 10 I f (t t)1 28 1 2512 7104 t 10 S f (= =)1 55 1 2589 7104 t 10 R f ( ,)1 33( 16)1 141( ,)1 33( 8)1 91( ,)1 33( 4)1 91(2 ,)1 83 7 2693 7104 t (. . .)2 125 1 3231 7079 t (use FPTSD to see if)4 800 1 3406 7104 t 10 I f (t t)1 28 1 4231 7104 t 10 R f (base-)4284 7104 w 10 I f (b b)1 50 1 4494 7104 t 10 R f (digits are)1 369 1 4569 7104 t ( testing sequence must terminate with a value of)8 1925(supported. This)1 647 2 720 7224 t 10 I f (t t)1 28 1 3317 7224 t 10 R f ( we can assume)3 623( Thus,)1 275(that fails the test.)3 683 3 3370 7224 t cleartomark showpage saveobj restore %%EndPage: 17 19 %%Page: 18 20 /saveobj save def mark 20 pagesetup 10 R f (- 18 -)2 216 1 2772 480 t (we are given an upper bound on)6 1280 1 720 840 t 10 I f (t t)1 28 1 2025 840 t 10 R f ( have a lower-bound on)4 942(. We)1 213 2 2053 840 t 10 I f (t t)1 28 1 3233 840 t 10 R f (, namely 2 or the preceding power of 2.)8 1574 1 3261 840 t (Hence, we can use bisection to find the largest value of)10 2203 1 720 960 t 10 I f (t t)1 28 1 2948 960 t 10 R f (that passes the test.)3 766 1 3001 960 t (It is important that)3 742 1 970 1116 t 10 I f (t t)1 28 1 1737 1116 t 10 R f (be found before)2 631 1 1790 1116 t 10 I f (e e)1 44 1 2446 1116 t 7 R f (min)2501 1136 w 10 R f (and)2644 1116 w 10 I f (e e)1 44 1 2813 1116 t 7 R f (max)2868 1136 w 10 R f ( example, finding)2 702(. For)1 214 2 2997 1116 t 10 I f (e e)1 44 1 3938 1116 t 7 R f (min)3993 1136 w 10 R f (using)4136 1116 w 10 I f (t t)1 28 1 4378 1116 t 10 S f (= =)1 55 1 4455 1116 t 10 R f (2 may give)2 444 1 4559 1116 t (an incorrect value for)3 855 1 720 1236 t 10 I f (e e)1 44 1 1600 1236 t 7 R f (min)1655 1256 w 10 R f ( example of this is given in the CRAY-1 appendix, where using)11 2542(. An)1 197 2 1773 1236 t 10 I f (t t)1 28 1 4537 1236 t 10 S f (= =)1 55 1 4614 1236 t 10 R f (2 in)1 153 1 4718 1236 t (finding)720 1356 w 10 I f (e e)1 44 1 1034 1356 t 7 R f (min)1089 1376 w 10 R f (in double-precision would give too small a value for)8 2092 1 1232 1356 t 10 I f (e e)1 44 1 3349 1356 t 7 R f (min)3404 1376 w 10 R f (.)3522 1356 w (With a maximal value of)4 993 1 970 1512 t 10 I f (t t)1 28 1 1988 1512 t 10 R f (now available, we can get)4 1033 1 2041 1512 t 10 I f (e e)1 44 1 3099 1512 t 7 R f (min)3154 1532 w 10 R f ( we check)2 398( First)1 234(using a similar algorithm.)3 1028 3 3297 1512 t (that)720 1632 w 10 I f (t t)1 28 1 895 1632 t 10 R f (,)923 1632 w 10 I f (e e)1 44 1 973 1632 t 7 R f (min)1028 1652 w 10 R f (\()1178 1632 w 10 I f (t t)1 28 1 1243 1632 t 10 R f (\))1303 1632 w 10 S f (\272)1385 1632 w 10 R f ( 1)1 58(2 \()1 115 2 1481 1632 t 10 S f (- -)1 55 1 1670 1632 t 10 I f (t t)1 28 1 1741 1632 t 10 R f (\) and)1 202 1 1777 1632 t 10 I f (e e)1 44 1 2004 1632 t 7 R f (max)2059 1652 w 10 R f (\()2220 1632 w 10 I f (t t)1 28 1 2285 1632 t 10 R f (\))2345 1632 w 10 S f (\272)2427 1632 w 10 R f (2)2523 1632 w 10 I f (t t)1 28 1 2605 1632 t 10 S f (- -)1 55 1 2657 1632 t 10 R f (1 pass the test, where)4 851 1 2728 1632 t 10 I f (e e)1 44 1 3604 1632 t 7 R f (min)3659 1652 w 10 R f (\()3809 1632 w 10 I f (t t)1 28 1 3874 1632 t 10 R f (\) and)1 202 1 3934 1632 t 10 I f (e e)1 44 1 4161 1632 t 7 R f (max)4216 1652 w 10 R f (\()4377 1632 w 10 I f (t t)1 28 1 4442 1632 t 10 R f (\) are the)2 326 1 4502 1632 t (largest, and smallest, respectively, values of)5 1758 1 720 1752 t 10 I f (e e)1 44 1 2503 1752 t 7 R f (min)2558 1772 w 10 R f (and)2701 1752 w 10 I f (e e)1 44 1 2870 1752 t 7 R f (max)2925 1772 w 10 R f ( is, we check the smallest)5 1015( That)1 233(that satisfy \(3.2\).)2 677 3 3079 1752 t (permissible exponent range consistent with)4 1726 1 720 1872 t 10 I f (t t)1 28 1 2471 1872 t 10 R f ( we have some given lower-bound on)6 1497(. If)1 141 2 2499 1872 t 10 I f (e e)1 44 1 4162 1872 t 7 R f (min)4217 1892 w 10 R f ( Oth-)1 233(, we use it.)3 430 2 4335 1872 t (erwise, we keep doubling)3 1020 1 720 1992 t 10 I f (e e)1 44 1 1765 1992 t 7 R f (min)1820 2012 w 10 R f ( gives both lower and upper bounds on)7 1551( This)1 228(until it finally fails the test.)5 1084 3 1963 1992 t 10 I f (e e)1 44 1 4851 1992 t 7 R f (min)4906 2012 w 10 R f (and we can use bisection to obtain the smallest value of)10 2219 1 720 2112 t 10 I f (e e)1 44 1 2964 2112 t 7 R f (min)3019 2132 w 10 R f (that passes the test.)3 766 1 3162 2112 t (While bisecting, we must be careful that as the value of)10 2215 1 970 2268 t 10 I f (e e)1 44 1 3210 2268 t 7 R f (min)3265 2288 w 10 R f (is lowered, the relations of \(3.2\) remain)6 1580 1 3408 2268 t ( means that)2 455(valid. This)1 453 2 720 2388 t 10 I f (e e)1 44 1 1653 2388 t 7 R f (max)1708 2408 w 10 R f (may also have to be raised as)6 1164 1 1862 2388 t 10 I f (e e)1 44 1 3051 2388 t 7 R f (min)3106 2408 w 10 R f ( test the smallest value of)5 1013( We)1 188(is lowered.)1 438 3 3249 2388 t 10 I f (e e)1 44 1 720 2508 t 7 R f (max)775 2528 w 10 R f (consistent with)1 603 1 929 2508 t 10 I f (e e)1 44 1 1557 2508 t 7 R f (min)1612 2528 w 10 R f (and)1755 2508 w 10 I f (t t)1 28 1 1924 2508 t 10 R f (in \(3.2\).)1 319 1 1977 2508 t (With the smallest value of)4 1049 1 970 2664 t 10 I f (e e)1 44 1 2044 2664 t 7 R f (min)2099 2684 w 10 R f (determined, we can play the same game and find the largest value of)12 2735 1 2242 2664 t 10 I f (e e)1 44 1 720 2784 t 7 R f (max)775 2804 w 10 R f ( the end of this sequence, we have a)8 1432( At)1 150(that passes the test.)3 766 3 929 2784 t 10 I f ( lt t)2 28( ul)1 28( su)1 50( es)1 39( re)1 44( r)1 64( l)1 0( al)1 28( ma)1 50( ti im)2 100( op pt)2 78( o)1 75( y)1 0( ll ly)2 72( al)1 28( ca)1 50( oc)1 44(l lo)1 78 18 3302 2784 t 10 R f (, that is, none of)4 644 1 4158 2784 t 10 I f (t t)1 28 1 4827 2784 t 10 R f (,)4855 2784 w 10 I f (e e)1 44 1 720 2904 t 7 R f (min)775 2924 w 10 R f (or)918 2904 w 10 I f (e e)1 44 1 1026 2904 t 7 R f (max)1081 2924 w 10 R f (can be extended by 1 and still pass the test.)9 1720 1 1235 2904 t (In short, the algorithm used to obtain)6 1480 1 970 3060 t 10 I f (b b)1 50 1 2475 3060 t 10 R f (,)2525 3060 w 10 I f (t t)1 28 1 2575 3060 t 10 R f (,)2603 3060 w 10 I f (e e)1 44 1 2653 3060 t 7 R f (min)2708 3080 w 10 R f (and)2851 3060 w 10 I f (e e)1 44 1 3020 3060 t 7 R f (max)3075 3080 w 10 R f (is)3229 3060 w cleartomark showpage saveobj restore %%EndPage: 18 20 %%Page: 19 21 /saveobj save def mark 21 pagesetup 10 R f (- 19 -)2 216 1 2772 480 t 10 CW f (For \()1 300 1 1080 900 t 10 I f (b b)1 50 1 1440 900 t 10 S f (= =)1 55 1 1574 900 t 10 R f ( 10)1 176( ,)1 33( 3)1 126(2 ,)1 83 4 1713 900 t 10 CW f (\))2191 900 w ({)1320 1020 w (If \( No upper-bound given for)5 1740 1 1320 1140 t 10 I f (t t)1 28 1 3120 1140 t 10 CW f (\))3208 1140 w ({)1560 1260 w (For \()1 300 1 1560 1380 t 10 I f (t t)1 28 1 1920 1380 t 7 I f (b ba ad d)3 105 1 1959 1400 t 10 S f (= =)1 55 1 2156 1380 t 10 R f ( ,)1 33( 16)1 176( ,)1 33( 8)1 126( ,)1 33( 4)1 126(2 ,)1 83 7 2295 1380 t 10 CW f (. . .)2 300 1 2973 1355 t (\))3393 1380 w ({)1800 1500 w (Test)1800 1620 w 10 I f (t t)1 28 1 2100 1620 t 7 I f (b ba ad d)3 105 1 2139 1640 t 10 CW f (with FPTSD, using all exponents)4 1860 1 2312 1620 t 10 S f (\272)4232 1620 w 10 R f (0)4363 1620 w 10 CW f (.)4413 1620 w (If \()1 240 1 1800 1740 t 10 I f (t t)1 28 1 2100 1740 t 7 I f (b ba ad d)3 105 1 2139 1760 t 10 CW f ( Break })2 480( {)1 180(fails the test \))3 960 3 2312 1740 t (})1800 1860 w (})1560 1980 w (Else { Let)2 600 1 1320 2100 t 10 I f (t t)1 28 1 1980 2100 t 7 I f (b ba ad d)3 105 1 2019 2120 t 10 CW f (be the given upper-bound })4 1560 1 2192 2100 t (Bisect in [)2 660 1 1320 2340 t 10 R f (2 ,)1 83 1 1980 2340 t 10 I f (t t)1 28 1 2139 2340 t 7 I f (b ba ad d)3 105 1 2178 2360 t 10 CW f (] to get largest supported)4 1560 1 2291 2340 t 10 I f (t t)1 28 1 3911 2340 t 7 I f (b ba ad d)3 105 1 3950 2360 t 10 CW f (.)4063 2340 w (Test)1320 2580 w 10 I f (t t)1 28 1 1620 2580 t 10 CW f (,)1648 2580 w 10 I f (e e)1 44 1 1768 2580 t 7 R f (min)1823 2600 w 10 R f (\()1973 2580 w 10 I f (t t)1 28 1 2038 2580 t 10 R f (\))2098 2580 w 10 CW f (and)2191 2580 w 10 I f (e e)1 44 1 2431 2580 t 7 R f (max)2486 2600 w 10 R f (\()2647 2580 w 10 I f (t t)1 28 1 2712 2580 t 10 R f (\))2772 2580 w 10 CW f (with FPTSD, using all exponents)4 1860 1 2865 2580 t 10 S f (\272)4785 2580 w 10 R f (0)4916 2580 w 10 CW f (.)4966 2580 w (If \( Fails the Test \) { Check the next base)10 2580 1 1320 2820 t 10 I f (b b)1 50 1 3960 2820 t 10 CW f (})4070 2820 w (If \( Lower-bound not given for)5 1800 1 1320 3060 t 10 I f (e e)1 44 1 3180 3060 t 7 R f (min)3235 3080 w 10 CW f (\))3413 3060 w ({)1560 3180 w 10 I f (e e)1 44 1 1560 3300 t 7 R f (min)1609 3319 w 7 I f (b ba ad d)3 105 1 1609 3260 t 10 S f (= =)1 55 1 1811 3300 t 10 I f (e e)1 44 1 1950 3300 t 7 R f (min)2005 3320 w 10 R f (\()2155 3300 w 10 I f (t t)1 28 1 2220 3300 t 10 R f (\))2280 3300 w 10 CW f (While \()1 420 1 1560 3420 t 10 I f (e e)1 44 1 2040 3420 t 7 R f (min)2089 3439 w 7 I f (b ba ad d)3 105 1 2089 3380 t 10 CW f (passes the test \))3 1020 1 2267 3420 t ({)1800 3540 w 10 I f (e e)1 44 1 1920 3540 t 7 R f (min)1969 3559 w 7 I f (b ba ad d)3 105 1 1969 3500 t 10 S f (= =)1 55 1 2171 3540 t 10 R f (2)2310 3540 w 10 S f (\264)2368 3540 w 10 I f (e e)1 44 1 2431 3540 t 7 R f (min)2480 3559 w 7 I f (b ba ad d)3 105 1 2480 3500 t 10 CW f (})2658 3540 w (})1560 3660 w (Else {)1 360 1 1320 3780 t 10 I f (e e)1 44 1 1740 3780 t 7 R f (min)1789 3799 w 7 I f (b ba ad d)3 105 1 1789 3740 t 10 S f (= =)1 55 1 1991 3780 t 10 CW f (the given lower-bound })3 1380 1 2182 3780 t (Use bisection in [)3 1080 1 1320 4020 t 10 I f (e e)1 44 1 2400 4020 t 7 R f (min)2449 4039 w 7 I f (b ba ad d)3 105 1 2449 3980 t 10 R f (,)2575 4020 w 10 I f (e e)1 44 1 2676 4020 t 7 R f (min)2731 4040 w 10 R f (\()2881 4020 w 10 I f (t t)1 28 1 2946 4020 t 10 R f (\))3006 4020 w 10 CW f (] to)1 240 1 3039 4020 t (get the smallest supported value of)5 2100 1 1320 4140 t 10 I f (e e)1 44 1 3480 4140 t 7 R f (min)3535 4160 w 10 CW f (.)3653 4140 w (If \( Upper-bound not given for)5 1800 1 1320 4380 t 10 I f (e e)1 44 1 3180 4380 t 7 R f (max)3235 4400 w 10 CW f (\))3424 4380 w ({)1560 4500 w 10 I f (e e)1 44 1 1560 4620 t 7 R f (max)1609 4639 w 7 I f (b ba ad d)3 105 1 1609 4580 t 10 S f (= =)1 55 1 1822 4620 t 10 R f (4)1961 4620 w 10 S f (- -)1 55 1 2051 4620 t 10 I f (t t)1 28 1 2146 4620 t 10 S f (- -)1 55 1 2214 4620 t 10 R f (2)2309 4620 w 10 I f (e e)1 44 1 2391 4620 t 7 R f (min)2446 4640 w 10 CW f (})1560 4740 w (Else {)1 360 1 1320 4860 t 10 I f (e e)1 44 1 1740 4860 t 7 R f (max)1789 4879 w 7 I f (b ba ad d)3 105 1 1789 4820 t 10 S f (= =)1 55 1 2002 4860 t 10 CW f (the given upper-bound })3 1380 1 2193 4860 t (Use bisection in [)3 1080 1 1320 5100 t 10 I f (e e)1 44 1 2400 5100 t 7 R f (max)2455 5120 w 10 R f (\()2616 5100 w 10 I f (t t)1 28 1 2681 5100 t 10 R f (\) ,)1 74 1 2741 5100 t 10 I f (e e)1 44 1 2891 5100 t 7 R f (max)2940 5119 w 7 I f (b ba ad d)3 105 1 2940 5060 t 10 CW f (] to)1 240 1 3069 5100 t (get the largest supported value of)5 2040 1 1320 5220 t 10 I f (e e)1 44 1 3420 5220 t 7 R f (max)3475 5240 w 10 CW f (.)3604 5220 w (})1320 5340 w 10 R f (The software implementing this is called FPTSB and its declaration is described below.)12 3500 1 970 5556 t 10 CW f (LOGICAL FUNCTION FPTSB\(B,)2 1500 1 1200 5736 t (T,EMIN,EMAX,)2580 5856 w (CHEKUF,)2580 5976 w (NBEX,NBEY,NBIX,NBIY,)2580 6096 w (EXPAND\))2580 6216 w 10 R f (The arguments B, EXPAND and CHEKUF to FPTSB have the same meaning as in FPTSD.)14 3682 1 720 6396 t (T)770 6552 w 10 S f (\256)1220 6552 w 10 R f (If T)1 152 1 1420 6552 t 10 S f (= =)1 55 1 1597 6552 t 10 R f (0, then no upper-bound on)4 1057 1 1701 6552 t 10 I f (t t)1 28 1 2783 6552 t 10 R f ( use T)2 244( Otherwise,)1 485(is known.)1 389 3 2836 6552 t 10 S f (+ +)1 55 1 3986 6552 t 10 R f (1 as the upper-bound.)3 865 1 4081 6552 t (T)770 6708 w 10 S f (\254)1220 6708 w 10 R f (The supported value of)3 923 1 1420 6708 t 10 I f (t t)1 28 1 2368 6708 t 10 R f (.)2396 6708 w (EMIN)770 6864 w 10 S f (\256)1220 6864 w 10 R f (If EMIN)1 346 1 1420 6864 t 10 S f (= =)1 55 1 1791 6864 t 10 R f (0, no lower-bound on)3 860 1 1895 6864 t 10 I f (e e)1 44 1 2780 6864 t 7 R f (min)2835 6884 w 10 R f ( use EMIN)2 438( Otherwise,)1 485(is known.)1 389 3 2978 6864 t 10 S f (- -)1 55 1 4322 6864 t 10 R f (1 as the lower-)3 590 1 4417 6864 t (bound.)1420 6984 w cleartomark showpage saveobj restore %%EndPage: 19 21 %%Page: 20 22 /saveobj save def mark 22 pagesetup 10 R f (- 20 -)2 216 1 2772 480 t (EMIN)770 840 w 10 S f (\254)1220 840 w 10 R f (The supported value of)3 923 1 1420 840 t 10 I f (e e)1 44 1 2368 840 t 7 R f (min)2423 860 w 10 R f (.)2541 840 w (EMAX)770 996 w 10 S f (\256)1220 996 w 10 R f (If EMAX)1 385 1 1420 996 t 10 S f (= =)1 55 1 1830 996 t 10 R f (0, no upper-bound on)3 860 1 1934 996 t 10 I f (e e)1 44 1 2819 996 t 7 R f (max)2874 1016 w 10 R f ( use EMAX)2 477( Otherwise,)1 485(is known.)1 389 3 3028 996 t 10 S f (+ +)1 55 1 4411 996 t 10 R f (1 as the)2 305 1 4506 996 t (upper-bound.)1420 1116 w (EMAX)770 1272 w 10 S f (\254)1220 1272 w 10 R f (The supported value of)3 923 1 1420 1272 t 10 I f (e e)1 44 1 2368 1272 t 7 R f (max)2423 1292 w 10 R f (.)2552 1272 w (The function value of FPTSB is TRUE if base-B arithmetic passes the test, FALSE otherwise.)14 3764 1 720 1428 t (When testing for)2 671 1 720 1584 t 10 I f (t t)1 28 1 1416 1584 t 10 R f (, FPTSD is called with \(NBEX,NBEY,NBIX,NBIY\))5 2107 1 1444 1584 t 10 S f (\272)3576 1584 w 10 R f ( BEX)1 225( \),)1 90( NBIX, 1)2 369( ,)1 33( 1)1 91( ,)1 33(\( 1)1 115 7 3656 1584 t 10 S f (\272)4637 1584 w 10 R f (BEY)4717 1584 w 10 S f (\272)4942 1584 w 10 R f ( BIX)1 197(\( 0 \),)2 223 2 720 1704 t 10 S f (\272)1165 1704 w 10 R f (BIY)1245 1704 w 10 S f (\272)1442 1704 w 10 R f (\( 1, T)2 219 1 1522 1704 t 10 I f (/ /)1 28 1 1741 1704 t 10 R f ( calls to FPTSD)3 637( These)1 288( NBIY".)1 343( ,)1 33( changed to "1)3 576( 1")1 132(2, T \), and again with "NBIX,)6 1192 7 1777 1704 t (are cheap, and effective.)3 970 1 720 1824 t (When testing for)2 671 1 970 1980 t 10 I f (e e)1 44 1 1666 1980 t 7 R f (min)1721 2000 w 10 R f (and)1864 1980 w 10 I f (e e)1 44 1 2033 1980 t 7 R f (max)2088 2000 w 10 R f (, FPTSD is called with \(NBEX,NBEY,NBIX,NBIY\))5 2107 1 2217 1980 t 10 S f (\272)4349 1980 w 10 R f (\( NBEX,)1 354 1 4429 1980 t ( BEX)1 225( \),)1 90( 1)1 91( ,)1 33( 1)1 91(1 ,)1 83 6 720 2100 t 10 S f (\272)1358 2100 w 10 R f (BEY)1438 2100 w 10 S f (\272)1663 2100 w 10 R f (\( EMIN,)1 338 1 1743 2100 t 10 S f (- -)1 55 1 2106 2100 t 10 R f ( changed to)2 460( 1")1 132(T, 0, +T, EMAX \), and again with the "NBEX,)9 1878 3 2161 2100 t ( these calls to FPTSD are cheap, and effective.)8 1862( Again,)1 319( NBEY".)1 371("1 ,)1 124 4 720 2220 t (If the host machine can be told to continue execution after FP under and over flow, its FP accuracy)18 3951 1 970 2376 t (may be determined by calling FPTSB with T)7 1797 1 720 2496 t 10 S f (= =)1 55 1 2542 2496 t 10 R f (EMIN)2622 2496 w 10 S f (= =)1 55 1 2902 2496 t 10 R f (EMAX)2982 2496 w 10 S f (= =)1 55 1 3301 2496 t 10 R f ( is accomplished without using)4 1239(0. This)1 303 2 3405 2496 t 10 I f ( y)1 0(a an ny)2 144 2 720 2616 t 10 R f (information about the machine's architecture.)4 1821 1 889 2616 t (When the values \(NBEX,NBEY,NBIX,NBIY\))3 1863 1 970 2772 t 10 S f (\272)2858 2772 w 10 R f ( are used in the call to FPTSB, it cor-)9 1488( \))1 65( 8)1 91( ,)1 33( 8)1 91( ,)1 33( 4)1 91( ,)1 33(\( 4)1 115 9 2954 2772 t (rectly reports the values of)4 1064 1 720 2892 t 10 I f (b b)1 50 1 1809 2892 t 10 R f (,)1859 2892 w 10 I f (t t)1 28 1 1909 2892 t 10 R f (,)1937 2892 w 10 I f (e e)1 44 1 1987 2892 t 7 R f (min)2042 2912 w 10 R f (and)2185 2892 w 10 I f (e e)1 44 1 2354 2892 t 7 R f (max)2409 2912 w 10 R f ( FPTSB)1 321( Empirically,)1 547(on all machines listed in the appendix.)6 1535 3 2563 2892 t (reports the correct results when the search parameters NBEX, NBEY, NBIX and NBIY are chosen suffi-)15 4180 1 720 3012 t (ciently large.)1 521 1 720 3132 t (The Double-precision versions of FPTST, FPTSD and FPTSB are DFPTST, DFPTSD and DFPTSB,)12 4038 1 970 3288 t (with all Real arguments made Double-precision.)5 1936 1 720 3408 t 10 B f ( Programs)1 446(6. Main)1 353 2 720 3648 t 10 R f ( parameters)1 462( The)1 205(This section discusses two main programs, one each for driving FPTSD and FPTSB.)12 3382 3 970 3804 t (in each main program are described and the effect these have on the run-time, memory usage and effective-)17 4287 1 720 3924 t (ness of the test are illustrated.)5 1187 1 720 4044 t ( EFL [2], it is, in double precision,)7 1383( In)1 133(The main program for driving FPTSB will be called MAINB.)9 2465 3 970 4200 t cleartomark showpage saveobj restore %%EndPage: 20 22 %%Page: 21 23 /saveobj save def mark 23 pagesetup 10 R f (- 21 -)2 216 1 2772 480 t 10 CW f (Procedure)1200 900 w (# To get floating-point model parameters from scratch.)7 3240 1 1080 1140 t (Integer I1MACH,B,T,Emin,Emax,nbEX,nbEY,nbIX,nbIY,Expand)1 3300 1 1200 1380 t (Logical DFPTSB,CheckUF)1 1320 1 1200 1500 t (Define StackLength 20000)2 1440 1 1200 1740 t (Common \( CSTAK \) { Long Real Dstak\(500\) })8 2460 1 1200 1860 t (Long Real Wstak\(StackLength\); Equivalence Dstak\(1\),Wstak\(1\))4 3540 1 1200 1980 t ( Tell the Stack how long it is.)7 1860(ISTKIN\(StackLength,4\) #)1 1560 2 1200 2220 t ( I1MACH\(10\))1 660(B =)1 360 2 1200 2460 t ( I1MACH\(14\))1 660(T =)1 360 2 1200 2580 t (Emin = I1MACH\(15\))2 1020 1 1200 2700 t (Emax = I1MACH\(16\))2 1020 1 1200 2820 t ( Generate and test underflow results.)5 2220( #)1 300(CheckUF = True)2 840 3 1200 3060 t (# Set the sampling sizes.)4 1500 1 1080 3300 t (nbEX = 1; nbEY = 1)5 1080 1 1200 3540 t (nbIX = 1; nbIY = 1)5 1080 1 1200 3660 t ( Default model value.)3 1260( #)1 300(Expand = 1)2 600 3 1200 3900 t ( B,T,Emin,Emax,CheckUF,nbEX,nbEY,nbIX,nbIY,Expand\) \) {})3 3300( DFPTSB\()1 780(If \()1 240 3 1200 4140 t (Else If \( DFPTSB\( 3,T,Emin,Emax,CheckUF,nbEX,nbEY,nbIX,nbIY,Expand\) \) {})6 4320 1 1200 4260 t (Else If \( DFPTSB\(10,T,Emin,Emax,CheckUF,nbEX,nbEY,nbIX,nbIY,Expand\) \) {})5 4320 1 1200 4380 t (Else)1200 4500 w ({)1320 4620 w (SETERR\()1320 4740 w ("MAINB - Machine base is not a power of B, 3 or 10 - strange.",60,)14 3960 1 1440 4860 t (1,2\))1980 4980 w (})1320 5100 w (Wrapup\(\))1200 5340 w (Stop\(\))1200 5580 w (End)1200 5820 w 10 R f (The Common region CSTAK declares the PORT [10] stack, and the Define tells the stack how long it is.)18 4190 1 720 6000 t (I1MACH is the PORT Library [10] machine constant subprogram, for example, I1MACH\(2\) is the local)14 4177 1 720 6120 t ( is the PORT)3 520( SETERR)1 423( prints out the stack usage at the end of the run.)11 1886( Wrapup)1 371(FORTRAN write unit.)2 903 5 720 6240 t (Library error handler [10].)3 1057 1 720 6360 t (When run on the CRAY-1 in single-precision, and pretending that I1MACH uses the raw machine)14 3930 1 970 6516 t (parameters as described in the user manual for that machine, the output of the above program is)16 3817 1 720 6636 t cleartomark showpage saveobj restore %%EndPage: 21 23 %%Page: 22 24 /saveobj save def mark 24 pagesetup 10 R f (- 22 -)2 216 1 2772 480 t 10 CW f (1real floating-point bisection test with)4 2400 1 1080 900 t ( 48)1 360( =)1 120( 2, t)2 540(b =)1 180 4 1260 1140 t ( 8191)1 480( =)1 120( -8192, emax)2 960(emin =)1 360 4 1260 1260 t ( 1)1 240( =)1 120( nbix)1 420( 1,)1 540(nbex =)1 360 5 1260 1500 t ( 1)1 240( =)1 120( nbiy)1 420( 1,)1 540(nbey =)1 360 5 1260 1620 t (this test produced and tested results which underflow.)7 3240 1 1140 2100 t (if overflow or divide check errors occurred,)6 2640 1 1140 2220 t (then the basic machine constant bounds have been incorrectly set.)9 3900 1 1140 2340 t ( are,)1 360( 2)1 240(the correct real floating-point model values for b =)8 3120 3 1140 2700 t (assuming that x/y is implemented as a composite operation \( 1\),)10 3780 1 1140 2820 t ( 47)1 660(t =)1 360 2 1320 3180 t ( -8189)1 660(emin =)1 360 2 1320 3300 t ( 8190)1 660(emax =)1 360 2 1320 3420 t ( of the stack allowed.)4 1320( 40000)1 540( /)1 120(used 1110)1 780 4 1140 3900 t 10 R f ( output here is in lower-case because the CRAY-1 has only that case.)12 2758( The)1 205(which took 18 seconds to run.)5 1199 3 720 4080 t (The above run shows the ability of the program to detect that)11 2438 1 720 4200 t 10 I f (/ /)1 28 1 3183 4200 t 10 R f (is a composite operator on the CRAY-1,)6 1612 1 3236 4200 t (requiring \(1\))1 507 1 720 4320 t 10 I f (X X)1 61 1 1252 4320 t 7 S f (+ +)1 39 1 1324 4280 t 10 R f ( reasons for these values of)5 1083( The)1 205(expansion in the model, and that it is a base-2 machine.)10 2214 3 1396 4320 t 10 I f (t t)1 28 1 4923 4320 t 10 R f (,)4951 4320 w 10 I f (e e)1 44 1 720 4440 t 7 R f (min)775 4460 w 10 R f (and)918 4440 w 10 I f (e e)1 44 1 1087 4440 t 7 R f (max)1142 4460 w 10 R f (are discussed in the CRAY-1 appendix.)5 1581 1 1296 4440 t (When run on the VAX 11/780, running the)7 1720 1 970 4596 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 2715 4596 t 10 R f (operating system, in single-precision the output is)6 1991 1 2973 4596 t cleartomark showpage saveobj restore %%EndPage: 22 24 %%Page: 23 25 /saveobj save def mark 25 pagesetup 10 R f (- 23 -)2 216 1 2772 480 t 10 CW f (1Real Floating-point Bisection Test With)4 2400 1 1080 900 t ( 24)1 360( =)1 120( 2, T)2 540(B =)1 180 4 1260 1140 t ( 127)1 480( =)1 120( Emax)1 420( -127,)1 540(Emin =)1 360 5 1260 1260 t ( 1)1 240( =)1 120( nBIX)1 420( 1,)1 540(nBEX =)1 360 5 1260 1500 t ( 1)1 240( =)1 120( nBIY)1 420( 1,)1 540(nBEY =)1 360 5 1260 1620 t (This test produced and tested results which underflow.)7 3240 1 1140 2100 t (If overflow or divide check errors occurred,)6 2640 1 1140 2220 t (then the basic machine constant bounds have been incorrectly set.)9 3900 1 1140 2340 t ( are,)1 360( 2)1 240(The correct Real floating-point model values for B =)8 3120 3 1140 2700 t ( 24)1 660(T =)1 360 2 1320 3060 t ( -127)1 660(Emin =)1 360 2 1320 3180 t ( 127)1 660(Emax =)1 360 2 1320 3300 t ( OF THE STACK ALLOWED.)4 1320( 20000)1 540( /)1 120(USED 834)1 780 4 1140 3780 t 10 R f ( that the above run correctly determines that the VAX's static)10 2456( Note)1 244(which took 2 minutes 59 seconds to run.)7 1616 3 720 4080 t (representation is supported in its dynamic operation.)6 2095 1 720 4200 t (The run-time and storage requirements of FPTSB are linearly proportional to NBEX, NBEY, NBIX)13 3992 1 970 4356 t ( that FPTSB required only a few minutes to do its job, it was tuned to be fast and reason-)19 3553( Note)1 244(and NBIY.)1 438 3 720 4476 t (ably reliable.)1 521 1 720 4596 t (The results for the above examples were obtained with NBEX, NBEY, NBIX and NBIY all equal to)16 4004 1 970 4752 t ( example, on the)3 660( For)1 189( with those values, we can not have great confidence that FPTSB was right.)13 3015(1. But)1 270 4 720 4872 t ( That)1 233( in order to give the correct results.)7 1397( 8)1 91( ,)1 33( 8)1 91( ,)1 33( 4)1 91( ,)1 33(Interdata 8/32 the values of NBEX, etc., must be 4)9 2019 9 720 4992 t (machine and the VAX 11/750 are the only machines for which the default parameters in MAINB some-)16 4147 1 720 5112 t (times report the wrong results, see those appendices.)7 2099 1 720 5232 t (If the machine being tested is reasonably healthy, with errors \( if any \) near the ends of the mantissa)19 3986 1 970 5388 t ( if the machine is really sick,)6 1151( However,)1 440(and exponent ranges, then FPTSB will report the correct result.)9 2527 3 720 5508 t (with errors in the "middle" of the mantissa and exponent ranges, FPTSB may report the wrong results,)16 4089 1 720 5628 t (unless NBEX, etc., are chosen sufficiently large.)6 1940 1 720 5748 t ( are many)2 393( There)1 282(Once FPTSB has done its job, we need to test in more thorough and expensive ways.)15 3394 3 970 5904 t ( EFL)1 203( In)1 133(ways to drive FPTSD and the following main program, which will be called MAIN, is canonical.)15 3879 3 720 6024 t ([2], it is, in double precision,)5 1155 1 720 6144 t cleartomark showpage saveobj restore %%EndPage: 23 25 %%Page: 24 26 /saveobj save def mark 26 pagesetup 10 R f (- 24 -)2 216 1 2772 480 t 10 CW f (Procedure)1200 900 w (# Main procedure to test the PORT machine constants.)8 3120 1 1080 1140 t (Integer I1MACH,B,T,Emin,Emax,)1 1740 1 1200 1380 t (BEX\(5\),lBEX,BEY\(5\),lBEY,BIX\(3\),lBIX,BIY\(3\),lBIY,)1680 1500 w (nbIX\(3\),nbIY\(3\),nbEX\(5\),nbEY\(5\),Expand,j)1680 1620 w (Logical CheckPM,CheckTimes,CheckDiv,CheckNeg,CheckComp,CheckUF,)1 3780 1 1200 1740 t (Type\(5,2\),)1680 1860 w (EPrint,JustTest,DFPTSD,valu)1680 1980 w (External DFPTSO)1 900 1 1200 2100 t (Define StackLength 20000)2 1440 1 1200 2340 t (Common \( CSTAK \) { Long Real Dstak\(500\) })8 2460 1 1200 2460 t (Long Real Wstak\(StackLength\); Equivalence Dstak\(1\),Wstak\(1\))4 3540 1 1200 2580 t ( Tell the Stack how long it is.)7 1860(ISTKIN\(StackLength,4\) #)1 1560 2 1200 2820 t (B = I1MACH\(10\); T = I1MACH\(14\))5 1800 1 1200 3060 t (Emin = I1MACH\(15\); Emax = I1MACH\(16\))5 2160 1 1200 3300 t (# Set the Exponent sampling range.)5 2040 1 1080 3540 t (BEX\(1\) = Emin; BEX\(2\) = -T; BEX\(3\) = 0; BEX\(4\) = +T; BEX\(5\) = Emax)14 3960 1 1200 3780 t (lBEX = 5)2 480 1 1200 3900 t (BEY\(1\) = Emin; BEY\(2\) = -T; BEY\(3\) = 0; BEY\(4\) = +T; BEY\(5\) = Emax)14 3960 1 1200 4020 t (lBEY = 5)2 480 1 1200 4140 t (# Set the mantissa sampling range.)5 2040 1 1080 4380 t (BIX\(1\) = 1; BIX\(2\) = \(T+1\)/2; BIX\(3\) = T; lBIX = 3)11 3000 1 1200 4620 t (BIY\(1\) = 1; BIY\(2\) = \(T+1\)/2; BIY\(3\) = T; lBIY = 3)11 3000 1 1200 4740 t (# Set nbE, the number of basic exponent samples.)8 2880 1 1080 4980 t (Do j = 1, 5 { nbEX\(j\) = 3; nbEY\(j\) = 3 })12 2400 1 1200 5220 t (# Set nbI, the number of basic mantissa samples.)8 2880 1 1080 5460 t (Do j = 1, 3 { nbIX\(j\) = 4; nbIY\(j\) = 4 })12 2400 1 1200 5700 t ( Default model value.)3 1260( #)1 300(Expand = 1)2 600 3 1200 5940 t ( Generate and test underflow results.)5 2220( #)1 300(CheckUF = True)2 840 3 1200 6180 t (# Set the flags for performing the tests.)7 2460 1 1080 6420 t (CheckPM = True; CheckTimes = True; CheckDiv = True)8 3000 1 1200 6660 t (CheckNeg = True; CheckComp = True)5 1980 1 1200 6780 t (Do j = 1, 2)4 660 1 1200 7020 t ({)1320 7140 w (SETL\(5,False,Type\(1,j\)\))1320 7260 w cleartomark showpage saveobj restore %%EndPage: 24 26 %%Page: 25 27 /saveobj save def mark 27 pagesetup 10 R f (- 25 -)2 216 1 2772 480 t 10 CW f ( Test Types 1-3.)3 960( #)1 300(If \( B == 2 \) { SETL\(3,True,Type\(1,j\)\) })8 2400 3 1320 840 t ( Test all Types.)3 960( #)1 300(Else { SETL\(5,True,Type\(1,j\)\) })3 1860 3 1320 960 t (})1320 1080 w (EPrint = False; JustTest = False)5 1920 1 1200 1320 t (valu = DFPTSD\(B,T,Emin,Emax,)2 1680 1 1200 1560 t (BEX,lBEX,BEY,lBEY,)2040 1680 w (BIX,lBIX,BIY,lBIY,)2040 1800 w (nbEX,nbEY,nbIX,nbIY,)2040 1920 w (Expand,)2040 2040 w (CheckPM,CheckTimes,CheckDiv,)2040 2160 w (CheckNeg,CheckComp,CheckUF,)2040 2280 w (Type,)2040 2400 w (EPrint,JustTest,DFPTSO\))2040 2520 w (Wrapup\(\))1200 2760 w (Stop\(\))1200 3000 w (End)1200 3240 w 10 R f (When run on the CRAY-1 in double-precision the above program prints)10 2879 1 720 3420 t 10 CW f (1long real floating-point test with)4 2100 1 1080 3600 t ( 94)1 360( =)1 120( 2, t)2 540(b =)1 180 4 1260 3840 t ( 8190)1 480( =)1 120( -8099, emax)2 960(emin =)1 360 4 1260 3960 t ( 8190)1 360( 94)1 360( 0)1 360( -94)1 360( -8099)1 420(bex =)1 300 6 1200 4200 t ( 8190)1 360( 94)1 360( 0)1 360( -94)1 360( -8099)1 420(bey =)1 300 6 1200 4320 t ( 47 94)2 720( 1)1 420(bix =)1 300 3 1200 4440 t ( 47 94)2 720( 1)1 420(biy =)1 300 3 1200 4560 t ( 3 3 3 3)4 1440( 3)1 420(nbex =)1 360 3 1140 4680 t ( 3 3 3 3)4 1440( 3)1 420(nbey =)1 360 3 1140 4800 t ( 4 4)2 720( 4)1 420(nbix =)1 360 3 1140 4920 t ( 4 4)2 720( 4)1 420(nbiy =)1 360 3 1140 5040 t ( 21 21)2 720(nex, ney =)2 600 2 1140 5400 t ( 15 15)2 720(nix, niy =)2 600 2 1140 5520 t (this test will produce and test results which underflow.)8 3360 1 1140 6000 t (if overflow or divide check errors occur,)6 2460 1 1140 6120 t (then the basic machine constants have been incorrectly set.)8 3540 1 1140 6240 t (floating-point test completed successfully,)3 2580 1 1140 6600 t (provided that x/y is implemented as a composite operation \( 1\).)10 3780 1 1140 6720 t ( of the stack allowed.)4 1320( 80000)1 540( /)1 120(used 6356)1 780 4 1140 7080 t 10 R f ( echoes its input and prints nEX, nEY, nIX and nIY, the total)12 2439( MAIN)1 316(which took 554 seconds to run.)5 1249 3 720 7260 t cleartomark showpage saveobj restore %%EndPage: 25 27 %%Page: 26 28 /saveobj save def mark 28 pagesetup 10 R f (- 26 -)2 216 1 2772 480 t (number of exponent and mantissa samples used in the test.)9 2342 1 720 840 t (When run on the VAX 11/780 in double-precision the above main program printed)12 3317 1 970 996 t 10 CW f (1Long Real Floating-point Test With)4 2100 1 1080 1176 t ( 56)1 360( =)1 120( 2, T)2 540(B =)1 180 4 1260 1416 t ( 127)1 480( =)1 120( Emax)1 420( -127,)1 540(Emin =)1 360 5 1260 1536 t ( 127)1 360( 56)1 360( 0)1 360( -127 -56)2 780(BEX =)1 300 5 1200 1776 t ( 127)1 360( 56)1 360( 0)1 360( -127 -56)2 780(BEY =)1 300 5 1200 1896 t ( 28 56)2 720( 1)1 420(BIX =)1 300 3 1200 2016 t ( 28 56)2 720( 1)1 420(BIY =)1 300 3 1200 2136 t ( 3 3 3 3)4 1440( 3)1 420(nBEX =)1 360 3 1140 2256 t ( 3 3 3 3)4 1440( 3)1 420(nBEY =)1 360 3 1140 2376 t ( 4 4)2 720( 4)1 420(nBIX =)1 360 3 1140 2496 t ( 4 4)2 720( 4)1 420(nBIY =)1 360 3 1140 2616 t ( 21 21)2 720(nEX, nEY =)2 600 2 1140 2976 t ( 15 15)2 720(nIX, nIY =)2 600 2 1140 3096 t (This test will produce and test results which underflow.)8 3360 1 1140 3576 t (If overflow or divide check errors occur,)6 2460 1 1140 3696 t (then the basic machine constants have been incorrectly set.)8 3540 1 1140 3816 t (Floating-point test completed successfully.)3 2580 1 1140 4176 t ( OF THE STACK ALLOWED.)4 1320( 40000)1 540( /)1 120(USED 5444)1 780 4 1140 4536 t 10 R f (which took 55 minutes 27 seconds to run.)7 1666 1 720 4836 t (The run-time for FPTSD is proportional to nEX)7 1913 1 970 4992 t 10 S f (\264)2908 4992 w 10 R f (nEY)2988 4992 w 10 S f (\264)3196 4992 w 10 R f (nIX)3276 4992 w 10 S f (\264)3456 4992 w 10 R f ( doubling all of them)4 839(nIY. Thus,)1 455 2 3536 4992 t ( storage required is proportional to)5 1384( The)1 205(makes it run 16 times longer.)5 1166 3 720 5112 t 10 I f ( x)1 0( ax)1 44(M Ma)1 133 3 3500 5112 t 10 R f ( These)1 288(\( nEX, nEY, nIX, nIY \).)5 967 2 3709 5112 t ( now show how the run-)5 968( We)1 188(statements are true for sufficiently large values of nEX, nEY, nIX and nIY.)12 3001 3 720 5232 t (time and storage requirements for FPTSD vary with these parameters, and illustrate a battery of tests that)16 4196 1 720 5352 t (thoroughly test FP arithmetic.)3 1195 1 720 5472 t (Once MAINB has been used to obtain the "correct" values for the machine being tested, and MAIN)16 3976 1 970 5628 t ( A)1 122(has been used to more thoroughly test those parameters, even more thorough searching is in order.)15 3929 2 720 5748 t ( default)1 302( The)1 205(glance at the appendices shows that errors pop up all over the exponent and mantissa range.)15 3659 3 720 5868 t (test in MAIN will catch most of those errors, but not the serious errors found on the Interdata 8/32 and)19 4094 1 720 5988 t ( make sure that such disasters are not lurking about somewhere in exponent-mantissa)12 3400( To)1 161(VAX 11/750.)1 544 3 720 6108 t ( will be more costly, and we should)7 1421( This)1 228(space, we need to check more exponents and/or more mantissas.)9 2569 3 720 6228 t (proceed cautiously, lest we spend time and money that needn't be spent.)11 2887 1 720 6348 t (There are precisely 4 knobs in MAIN to be twiddled \320 the arrays NBEX, NBEY, NBIX and NBIY.)17 4009 1 970 6504 t (By varying these 4 parameters, a sequence of tests can be constructed to quickly discover problems, if they)17 4272 1 720 6624 t ( the rest of this section, it will be assumed that each)11 2059( For)1 189(exist, and determine the correct model parameters.)6 2017 3 720 6744 t ( we wish to test more thoroughly, we could)8 1729( If)1 116(of the arrays NBEX, NBEY, NBIX and NBIY is a constant.)10 2393 3 720 6864 t (take NBEX)1 463 1 720 6984 t 10 S f (= =)1 55 1 1208 6984 t 10 I f (e e)1 44 1 1312 6984 t 7 R f (max)1367 7004 w 10 S f (- -)1 55 1 1545 6984 t 10 I f (e e)1 44 1 1649 6984 t 7 R f (min)1704 7004 w 10 S f (+ +)1 55 1 1871 6984 t 10 R f (1)1975 6984 w 10 S f (= =)1 55 1 2074 6984 t 10 R f (NBEY and NBIX)2 710 1 2154 6984 t 10 S f (= =)1 55 1 2889 6984 t 10 I f (t t)1 28 1 2993 6984 t 10 S f (= =)1 55 1 3070 6984 t 10 R f ( would test every exponent and)5 1245(NBIY. This)1 497 2 3150 6984 t ( as we shall see, this would be very expensive and probably overkill as)13 2823( However,)1 440(every mantissa pattern.)2 923 3 720 7104 t (well.)720 7224 w cleartomark showpage saveobj restore %%EndPage: 26 28 %%Page: 27 29 /saveobj save def mark 29 pagesetup 10 R f (- 27 -)2 216 1 2772 480 t (We can test the exponents and mantissa patterns in four basic ways.)11 2706 1 970 876 t ( the elements of one of the arrays be large, and the other 3 be small.)15 2702(1\) Let)1 383 2 720 1032 t ( the elements of two of the arrays be large, and the other two arrays be small.)16 3076(2\) Let)1 383 2 720 1188 t ( the elements of three of the arrays be large, and the other array be small.)15 2911(3\) Let)1 383 2 720 1344 t ( the elements of all four of the arrays be large.)10 1842(4\) Let)1 383 2 720 1500 t (If all the large elements are called)6 1351 1 720 1656 t 10 I f (n n)1 50 1 2096 1656 t 10 R f (, then these four regimes have run-times proportional to)8 2227 1 2146 1656 t 10 I f (n n)1 50 1 4398 1656 t 10 R f (,)4456 1656 w 10 I f (n n)1 50 1 4522 1656 t 7 R f (2)4583 1616 w 10 R f (,)4634 1656 w 10 I f (n n)1 50 1 4700 1656 t 7 R f (3)4761 1616 w 10 R f (,)4812 1656 w 10 I f (n n)1 50 1 4878 1656 t 7 R f (4)4939 1616 w 10 R f (,)4982 1656 w ( since there may be errors in the parameters, we should run the)12 2502(respectively. Clearly,)1 876 2 720 1776 t 10 I f (n n)1 50 1 4123 1776 t 10 R f (-time regime first.)2 724 1 4173 1776 t ( that test is successful, then the)6 1235( If)1 116(That way, any errors that can be detected will be, cheaply.)10 2324 3 720 1896 t 10 I f (n n)1 50 1 4420 1896 t 7 R f (2)4481 1856 w 10 R f (-time regime)1 513 1 4524 1896 t (should be run, and so on.)5 1002 1 720 2016 t (In this way, a hierarchy of runs can be made, each of which contains the testing of the previous runs,)19 4019 1 970 2172 t ( the parameters are in error, the cheapest)7 1616( If)1 116(and extends that testing to new test samples and combinations.)9 2504 3 720 2292 t (test that can detect it will.)5 1027 1 720 2412 t 10 B f (A Test Paradigm)2 727 1 720 2652 t 10 R f (It is recommended that the following paradigm be used when testing the model parameters.)13 3650 1 970 2808 t (Run MAINB)1 525 1 1080 2988 t (Run MAIN to test the output of MAINB)7 1619 1 1080 3108 t (Run the)1 314 1 1080 3228 t 10 I f (n n)1 50 1 1419 3228 t 10 R f (-time tests:)1 442 1 1469 3228 t (MAIN with \(NBEX,NBEY,NBIX,NBIY\))2 1667 1 1220 3384 t 10 S f (= =)1 55 1 2912 3384 t 10 R f (\()3016 3384 w 10 I f (E E)1 61 1 3057 3384 t 10 R f (, 1 , 1 , 1 \))6 306 1 3126 3384 t (MAIN with \(NBEX,NBEY,NBIX,NBIY\))2 1667 1 1220 3540 t 10 S f (= =)1 55 1 2912 3540 t 10 R f (\( 1 ,)2 124 1 3016 3540 t 10 I f (E E)1 61 1 3148 3540 t 10 R f (, 1 , 1 \))4 215 1 3217 3540 t (MAIN with \(NBEX,NBEY,NBIX,NBIY\))2 1667 1 1220 3696 t 10 S f (= =)1 55 1 2912 3696 t 10 R f (\( 1 , 1 ,)4 215 1 3016 3696 t 10 I f (M M)1 83 1 3239 3696 t 10 R f (, 1 \))2 124 1 3330 3696 t (MAIN with \(NBEX,NBEY,NBIX,NBIY\))2 1667 1 1220 3852 t 10 S f (= =)1 55 1 2912 3852 t 10 R f (\( 1 , 1 , 1 ,)6 306 1 3016 3852 t 10 I f (M M)1 83 1 3330 3852 t 10 R f (\))3421 3852 w (where)720 4032 w 10 I f (E E)1 61 1 988 4032 t 10 S f (= =)1 55 1 1098 4032 t 10 R f (100 and)1 319 1 1202 4032 t 10 I f (M M)1 83 1 1546 4032 t 10 S f (= =)1 55 1 1678 4032 t 10 R f ( any of these runs uncovers an error in the model parameters, they)12 2635( If)1 116(100, say.)1 358 3 1782 4032 t (should be changed appropriately, and the paradigm should be restarted at the MAIN stage.)13 3612 1 720 4152 t ( is,)1 117( That)1 233(Once the above battery of tests is successfully completed, the quadratic tests should be done.)14 3705 3 720 4308 t (MAIN with \(NBEX,NBEY,NBIX,NBIY\))2 1667 1 720 4428 t 10 S f (= =)1 55 1 2412 4428 t 10 R f (\()2516 4428 w 10 I f (E E)1 61 1 2557 4428 t 10 R f (,)2626 4428 w 10 I f (E E)1 61 1 2659 4428 t 10 R f ( \()1 91(, 1 , 1 \),)4 240 2 2728 4428 t 10 I f (E E)1 61 1 3067 4428 t 10 R f (, 1 ,)2 116 1 3136 4428 t 10 I f (M M)1 83 1 3260 4428 t 10 R f ( these tests, since the run-time)5 1204( In)1 133( etc.)1 166(, 1 \),)2 149 4 3351 4428 t (is proportional to the product of the large elements of the basic arrays, it would be good to keep)18 3819 1 720 4548 t 10 I f (E E)1 61 1 4564 4548 t 10 R f (and)4650 4548 w 10 I f (M M)1 83 1 4819 4548 t 10 R f (to)4927 4548 w (say 10 or so, at least at first.)7 1118 1 720 4668 t ( final quartic)2 510( The)1 205(Similarly, the cubic and quartic tests using MAIN can be run, one after the other.)14 3236 3 970 4824 t (test, MAIN with \(NBEX,NBEY,NBIX,NBIY\))3 1856 1 720 4944 t 10 S f (= =)1 55 1 2601 4944 t 10 R f (\()2705 4944 w 10 I f (E E)1 61 1 2746 4944 t 10 R f (,)2815 4944 w 10 I f (E E)1 61 1 2848 4944 t 10 R f (,)2917 4944 w 10 I f (M M)1 83 1 2950 4944 t 10 R f (,)3041 4944 w 10 I f (M M)1 83 1 3074 4944 t 10 R f ( a back-)2 315( As)1 161(\), will run for a very long time.)7 1240 3 3165 4944 t ( At)1 150(ground job, this makes it a good candidate for finding transient, intermittent floating-point problems.)13 4031 2 720 5064 t (the same time, it is beating the exponent-mantissa space of the machine to death.)13 3226 1 720 5184 t (For illustrative purposes, the run-time and memory usage results of running the above paradigm for)14 3975 1 970 5340 t ( took 2 minutes and 38 seconds to)7 1358( MAINB)1 383(testing on the VAX 11/780 in single-precision are now given.)9 2464 3 720 5460 t ( 1 gives the run-time and stack requirements)7 1772( Table)1 277(run and used 2252 Integer locations on the PORT stack.)9 2236 3 720 5580 t (for the various runs using MAIN.)5 1337 1 720 5700 t cleartomark showpage saveobj restore %%EndPage: 27 29 %%Page: 28 30 /saveobj save def mark 30 pagesetup 10 R f (- 28 -)2 216 1 2772 480 t 10 B f (Table 1)1 320 1 2720 840 t 10 S f (_ _____________________________________________________________________)1 3493 1 1080 920 t 10 R f ( \(hr:min:sec\))1 513( Run-time)1 528( stack used)2 438(NBEX NBEY NBIX NBIY Integer)4 1914 4 1130 1040 t 10 S f (_ _____________________________________________________________________)1 3493 1 1080 1060 t 10 R f ( 49)1 905( 3837)1 682( 64)1 419( 1)1 408(1 1)1 472 5 1241 1180 t ( 43)1 905( 3837)1 707( 1)1 369( 64)1 433(1 1)1 472 5 1241 1300 t ( : 18)2 144( 5)1 808( 1334)1 707( 1)1 394( 1)1 383(1 64)1 497 6 1241 1420 t ( : 02)2 144( 5)1 808( 1334)1 707( 1)1 394( 1)1 408(64 1)1 497 6 1216 1540 t ( : 54)2 144( 14)1 833( 1058)1 707( 1)1 394( 1)1 408(8 8)1 472 6 1241 1660 t ( : 42)2 144( 9)1 808( 3949)1 707( 1)1 394( 8)1 408(8 1)1 472 6 1241 1780 t ( : 37)2 144( 9)1 808( 3949)1 707( 8)1 394( 1)1 408(8 1)1 472 6 1241 1900 t ( : 09)2 144( 9)1 808( 3949)1 707( 1)1 394( 8)1 408(1 8)1 472 6 1241 2020 t ( : 24)2 144( 9)1 808( 3949)1 707( 8)1 394( 1)1 408(1 8)1 472 6 1241 2140 t ( : 13)2 144( 7)1 808( 3984)1 707( 8)1 394( 8)1 408(1 1)1 472 6 1241 2260 t ( : 25)2 144( 7)1 808( 3984)1 682( 64)1 394( 64)1 433(1 1)1 472 6 1241 2380 t ( : 57)2 144( 15)1 833( 2646)1 707( 1)1 394( 4)1 408(4 4)1 472 6 1241 2500 t ( : 12)2 144( 16)1 833( 2646)1 707( 4)1 394( 1)1 408(4 4)1 472 6 1241 2620 t ( : 40)2 144( 15)1 833( 2682)1 707( 4)1 394( 4)1 408(4 1)1 472 6 1241 2740 t ( : 21)2 144( 15)1 833( 2682)1 707( 4)1 394( 4)1 408(1 4)1 472 6 1241 2860 t ( : 11 : 41)4 288( 9)1 736( 4144)1 707( 8)1 394( 8)1 408(6 6)1 472 6 1241 2980 t 10 S f ( \347)1 -3493(_ _____________________________________________________________________)1 3493 2 1080 3000 t (\347)1080 2920 w (\347)1080 2820 w (\347)1080 2720 w (\347)1080 2620 w (\347)1080 2520 w (\347)1080 2420 w (\347)1080 2320 w (\347)1080 2220 w (\347)1080 2120 w (\347)1080 2020 w (\347)1080 1920 w (\347)1080 1820 w (\347)1080 1720 w (\347)1080 1620 w (\347)1080 1520 w (\347)1080 1420 w (\347)1080 1320 w (\347)1080 1220 w (\347)1080 1120 w (\347)1080 1020 w (\347)1477 3000 w (\347)1477 2920 w (\347)1477 2820 w (\347)1477 2720 w (\347)1477 2620 w (\347)1477 2520 w (\347)1477 2420 w (\347)1477 2320 w (\347)1477 2220 w (\347)1477 2120 w (\347)1477 2020 w (\347)1477 1920 w (\347)1477 1820 w (\347)1477 1720 w (\347)1477 1620 w (\347)1477 1520 w (\347)1477 1420 w (\347)1477 1320 w (\347)1477 1220 w (\347)1477 1120 w (\347)1477 1020 w (\347)1899 3000 w (\347)1899 2920 w (\347)1899 2820 w (\347)1899 2720 w (\347)1899 2620 w (\347)1899 2520 w (\347)1899 2420 w (\347)1899 2320 w (\347)1899 2220 w (\347)1899 2120 w (\347)1899 2020 w (\347)1899 1920 w (\347)1899 1820 w (\347)1899 1720 w (\347)1899 1620 w (\347)1899 1520 w (\347)1899 1420 w (\347)1899 1320 w (\347)1899 1220 w (\347)1899 1120 w (\347)1899 1020 w (\347)2293 3000 w (\347)2293 2920 w (\347)2293 2820 w (\347)2293 2720 w (\347)2293 2620 w (\347)2293 2520 w (\347)2293 2420 w (\347)2293 2320 w (\347)2293 2220 w (\347)2293 2120 w (\347)2293 2020 w (\347)2293 1920 w (\347)2293 1820 w (\347)2293 1720 w (\347)2293 1620 w (\347)2293 1520 w (\347)2293 1420 w (\347)2293 1320 w (\347)2293 1220 w (\347)2293 1120 w (\347)2293 1020 w (\347)2687 3000 w (\347)2687 2920 w (\347)2687 2820 w (\347)2687 2720 w (\347)2687 2620 w (\347)2687 2520 w (\347)2687 2420 w (\347)2687 2320 w (\347)2687 2220 w (\347)2687 2120 w (\347)2687 2020 w (\347)2687 1920 w (\347)2687 1820 w (\347)2687 1720 w (\347)2687 1620 w (\347)2687 1520 w (\347)2687 1420 w (\347)2687 1320 w (\347)2687 1220 w (\347)2687 1120 w (\347)2687 1020 w (\347)3557 3000 w (\347)3557 2920 w (\347)3557 2820 w (\347)3557 2720 w (\347)3557 2620 w (\347)3557 2520 w (\347)3557 2420 w (\347)3557 2320 w (\347)3557 2220 w (\347)3557 2120 w (\347)3557 2020 w (\347)3557 1920 w (\347)3557 1820 w (\347)3557 1720 w (\347)3557 1620 w (\347)3557 1520 w (\347)3557 1420 w (\347)3557 1320 w (\347)3557 1220 w (\347)3557 1120 w (\347)3557 1020 w (\347)4573 3000 w (\347)4573 2920 w (\347)4573 2820 w (\347)4573 2720 w (\347)4573 2620 w (\347)4573 2520 w (\347)4573 2420 w (\347)4573 2320 w (\347)4573 2220 w (\347)4573 2120 w (\347)4573 2020 w (\347)4573 1920 w (\347)4573 1820 w (\347)4573 1720 w (\347)4573 1620 w (\347)4573 1520 w (\347)4573 1420 w (\347)4573 1320 w (\347)4573 1220 w (\347)4573 1120 w (\347)4573 1020 w 10 R f (Using the information in Table 1, we can predict that the test using \(NBEX,NBEY,NBIX,NBIY\))13 3870 1 970 3216 t 10 S f (= =)1 55 1 720 3336 t 10 R f (\()824 3336 w 10 I f ( /)1 0( /)1 36(t t)1 28 3 898 3336 t 10 R f (2 ,)1 83 1 970 3336 t 10 I f ( /)1 0( /)1 36(t t)1 28 3 1094 3336 t 10 R f (2 ,)1 83 1 1166 3336 t 10 I f (t t)1 28 1 1290 3336 t 10 R f (,)1326 3336 w 10 I f (t t)1 28 1 1392 3336 t 10 R f ( a run would test every mantissa pattern in \(2.2\) and a)11 2146( Such)1 250(\) would run for 36.8 hours.)5 1079 3 1461 3336 t ( full test, testing all exponents and mantissa patterns, would run for)11 2684( The)1 205(very large number of exponents.)4 1294 3 720 3456 t ( the manufacturer, this may be acceptable during development, for users this thorough a test)14 3671( For)1 189(12.3 days.)1 408 3 720 3576 t (would be a useful background job.)5 1381 1 720 3696 t (It is worthwhile noting that)4 1089 1 970 3852 t 10 B f (all)2084 3852 w 10 R f (floating-point errors detected so far have been found with the linear \()11 2757 1 2215 3852 t ( ,)1 33( 1)1 91(i.e., \()1 205 3 720 3972 t 10 I f (E E)1 61 1 1090 3972 t 10 R f ( etc. \) and/or quadratic \( i.e., \()7 1188( 1 \),)2 190( ,)1 33(, 1)1 116 4 1159 3972 t 10 I f (E E)1 61 1 2727 3972 t 10 R f ( ,)1 33(, 1)1 116 2 2796 3972 t 10 I f (T T)1 56 1 2986 3972 t 10 R f ( tests require)2 510( These)1 288( etc. \) test paradigms.)4 854(, 1 \),)2 215 4 3050 3972 t (only minutes to run and appear to be just as effective as the more expensive testing schemes.)16 3702 1 720 4092 t (It is also worth noting that)5 1053 1 970 4248 t 10 B f (all)2048 4248 w 10 R f (floating-point errors detected so far on machines with)7 2143 1 2179 4248 t 10 I f (b b)1 50 1 4347 4248 t 10 S f (> >)1 55 1 4446 4248 t 10 R f (2 have been)2 476 1 4550 4248 t ( it appears that only two Types of mantissa need be active)11 2310( Thus,)1 275(found with Type 1 and Type 4 matissas.)7 1604 3 720 4368 t ( could considerably lower the cost of running the test when)10 2363( This)1 228(for any given test.)3 721 3 720 4488 t 10 I f (b b)1 50 1 4057 4488 t 10 S f (> >)1 55 1 4156 4488 t 10 R f (2.)4260 4488 w 10 B f (7. Wish-List)1 548 1 720 4728 t 10 R f (There are many things that could or should be done to improve the efficiency and effectiveness of the)17 4055 1 970 4884 t ( no particular order, they are)5 1135( In)1 133( of these are easy to do and others will require substantial effort.)12 2564(test. Some)1 442 4 720 5004 t 10 B f (Register Arithmetic)1 844 1 720 5244 t 10 R f (Checking that register-to-register and register-to-memory operations work would be invaluable, but)10 3979 1 970 5400 t ( with a special compiler it may)6 1232( However,)1 440(from a standard FORTRAN environment this appears impossible.)7 2631 3 720 5520 t ( seems worthwhile, but difficult.)4 1299( This)1 228(be possible to force such arithmetic and thus test it.)9 2048 3 720 5640 t 10 B f (Correct Rounding)1 780 1 720 5880 t 10 R f (The current test does not report if the machine has done correct rounding because the model of [13])17 3971 1 970 6036 t ( would be a)3 463( It)1 111( manufacturers may wish to test that they have done it "right".)11 2479( However,)1 440(does not require it.)3 749 5 720 6156 t (bit of work, but the formulae for computing the containment intervals could be made to specify which end-)17 4277 1 720 6276 t ( seems fairly easy and worthwhile.)5 1386( This)1 228(point corresponds to correct rounding.)4 1528 3 720 6396 t 10 B f (Testing Underflow Operands)2 1245 1 720 6636 t 10 R f ( people assume that)3 785( Many)1 283(The current test assumes that all operands in the test are model numbers.)12 2898 3 970 6792 t ( current test only checks that any underflow)7 1749( The)1 205(computation can continue when underflows are generated.)6 2330 3 720 6912 t ( does not check that any subsequent operations with those underflowed)10 2840( It)1 111(results generated are correct.)3 1145 3 720 7032 t ( the formulae for the containment intervals to include the case where the)12 2888( Extending)1 461(quantities are valid.)2 785 3 720 7152 t (exponents for either)2 798 1 720 7272 t 10 I f (x x)1 44 1 1543 7272 t 10 R f (or)1612 7272 w 10 I f (y y)1 44 1 1720 7272 t 10 R f (are less then)2 493 1 1789 7272 t 10 I f (e e)1 44 1 2307 7272 t 7 R f (min)2362 7292 w 10 R f (would be fairly easy and worthwhile, see the Interdata)8 2164 1 2505 7272 t cleartomark showpage saveobj restore %%EndPage: 28 30 %%Page: 29 31 /saveobj save def mark 31 pagesetup 10 R f (- 29 -)2 216 1 2772 480 t (appendix.)720 840 w 10 B f (Extra-precise Operands)1 1024 1 720 1080 t 10 R f (The current test assumes that all patterns of the form \(2.2\) have)11 2528 1 970 1236 t 10 I f (i i)1 28 1 3523 1236 t 10 S f (\243)3592 1236 w 10 I f (t t)1 28 1 3688 1236 t 10 R f (, that is, they are all model num-)7 1296 1 3716 1236 t ( would be good to know that operations with extra-precise operands,)10 2737(bers. It)1 302 2 720 1356 t 10 I f (i i)1 28 1 3784 1356 t 10 S f (> >)1 55 1 3861 1356 t 10 I f (t t)1 28 1 3965 1356 t 10 R f (, if any, are also correct,)5 963 1 3993 1356 t ( 1-3 would then require looking at)6 1365( Axioms)1 367(see the DEC appendix dealing with the VAX 11/750.)8 2128 3 720 1476 t 10 I f (x x)1 44 1 4605 1476 t 10 S f (\242 \242)1 25 1 4681 1476 t 7 R f (*)4749 1450 w 10 I f (y y)1 44 1 4838 1476 t 10 S f (\242 \242)1 25 1 4914 1476 t 10 R f (,)4939 1476 w (rather than)1 429 1 720 1596 t 10 I f (x x)1 44 1 1174 1596 t 7 R f (*)1261 1570 w 10 I f (y y)1 44 1 1350 1596 t 10 R f ( any element)2 510(. Since)1 297 2 1394 1596 t 10 I f (x x)1 44 1 2226 1596 t 10 R f (of \(2.2\) with)2 502 1 2295 1596 t 10 I f (i i)1 28 1 2822 1596 t 10 S f (> >)1 55 1 2899 1596 t 10 I f (t t)1 28 1 3003 1596 t 10 R f (has the property that)3 818 1 3056 1596 t 10 I f (x x)1 44 1 3899 1596 t 10 S f (\242 \242)1 25 1 3975 1596 t 10 R f (is a model interval with)4 944 1 4025 1596 t (endpoints in \(2.2\), with)3 936 1 720 1716 t 10 I f (i i)1 28 1 1681 1716 t 10 S f (\243)1750 1716 w 10 I f (t t)1 28 1 1846 1716 t 10 R f ( the logic governing their use)5 1168( However,)1 440(, the current formulae can still be used.)7 1555 3 1874 1716 t ( is a rather messy and tedious, but worthwhile, job.)9 2037( This)1 228(would become more complex.)3 1209 3 720 1836 t 10 B f (Exponent Sampling)1 844 1 720 2076 t 10 R f ( However,)1 440(The cost of testing the mantissa arithmetic has been lowered tremendously in this test.)13 3441 2 970 2232 t ( should be done about exponent sam-)6 1487( Something)1 484(nothing has been done to sample the exponents cleverly.)8 2255 3 720 2352 t ( is unclear just what, however.)5 1217(pling. It)1 342 2 720 2472 t 10 B f (Integer Arithmetic)1 800 1 720 2712 t 10 R f ( example, with)2 591( For)1 189(The formulae used in the FP test can also be used to test Integer arithmetic.)14 3004 3 970 2868 t 10 I f (e e)1 44 1 4779 2868 t 10 S f (= =)1 55 1 4872 2868 t 10 I f (t t)1 28 1 4976 2868 t 10 R f (,)5004 2868 w 10 I f (b b)1 50 1 720 2988 t 7 I f (e e)1 31 1 781 2948 t 10 R f ( of the test to testing Integer arithmetic would be)9 1945( Conversion)1 511(times the mantissas of \(2.2\) are all integers.)7 1739 3 845 2988 t ( most Integer units work correctly because users really get upset when they)12 2999( However,)1 440(reasonably simple.)1 749 3 720 3108 t ( there seems little to gain from creating such a test.)10 2033(don't. Thus,)1 511 2 720 3228 t 10 B f (Mixed-Mode)720 3468 w 10 R f (Testing mixed-mode arithmetic, that is, Real-Integer, Integer-Double-precision, etc., would be a bit)11 3968 1 970 3624 t (of work and would be marginally useful.)6 1628 1 720 3744 t 10 B f (A Missing Type Combination)3 1260 1 720 3984 t 10 R f (All)970 4140 w 10 I f (x x)1 44 1 1123 4140 t 7 R f (*)1210 4114 w 10 I f (y y)1 44 1 1299 4140 t 10 R f (results have been successfully hand-computed, with the exception of the case of \(Type 2\))13 3564 1 1368 4140 t 10 I f (/ /)1 28 1 4957 4140 t 10 R f (\(Type 5\) of \(2.2\), with)4 898 1 720 4260 t 10 I f (i i)1 28 1 1643 4260 t 7 R f (1)1682 4280 w 10 S f (> >)1 55 1 1774 4260 t 10 I f (i i)1 28 1 1878 4260 t 7 R f (2)1917 4280 w 10 R f ( this case, the testing of the result has been ignored because the result is)14 2859(. For)1 214 2 1960 4260 t ( people have tried to get a closed-form, normalized result for this case, and nobody has)15 3468(unknown. Several)1 746 2 720 4380 t ( wishing to try is more than)6 1100( \(Anyone)1 399( this case would be satisfying and useful.)7 1637( Completing)1 523(succeeded, yet.)1 606 5 720 4500 t (welcome to it.\))2 602 1 720 4620 t 10 B f (8. Conclusions)1 643 1 720 4860 t 10 R f (The appendices show the ability of the test to detect floating-point arithmetic errors due to hardware)15 4001 1 970 5016 t ( results for the Interdata 8/32 and VAX 11/750 espe-)9 2104( The)1 205(malfunction and/or design, and software bugs.)5 1850 3 720 5136 t (cially show that simply testing a digit or two at the "end" of the mantissa or exponent range)17 3654 1 720 5256 t 10 B f (is not)1 231 1 4399 5256 t (sufficient to detect serious trouble.)4 1467 1 720 5376 t 10 R f (Anomalous behavior may be triggered by tickling the 40)8 2264 1 2237 5376 t 7 I f ( h)1 0(t th)1 55 2 4506 5336 t 10 R f (bit of the)2 361 1 4594 5376 t (mantissa or the exponent)3 996 1 720 5496 t 10 S f (- -)1 55 1 1741 5496 t 10 R f ( test allows such items to be tested easily in a methodical manner.)12 2628(64. The)1 330 2 1812 5496 t ( is, all mantissa)3 617( That)1 233(It does appear that treating the exponent and mantissa separately is sufficient.)11 3094 3 970 5652 t (problems uncovered so far have had the property that they can be triggered with an exponent at)16 3802 1 720 5772 t 10 I f (e e)1 44 1 4547 5772 t 7 R f (min)4602 5792 w 10 R f (,)4720 5772 w 10 S f (- -)1 55 1 720 5892 t 10 R f (2 ,)1 83 1 791 5892 t 10 S f (- -)1 55 1 923 5892 t 10 R f ( ,)1 33( 0)1 91(1 ,)1 83 3 994 5892 t 10 S f (+ +)1 55 1 1250 5892 t 10 R f (1 ,)1 83 1 1321 5892 t 10 S f (+ +)1 55 1 1453 5892 t 10 R f (2 or)1 158 1 1524 5892 t 10 I f (e e)1 44 1 1707 5892 t 7 R f (max)1762 5912 w 10 R f ( all exponent problems uncovered so far have had the property)10 2494(. Conversely,)1 555 2 1891 5892 t (that they can be triggered with a mantissa pattern with)9 2166 1 720 6012 t 10 I f (i i)1 28 1 2911 6012 t 10 S f (= =)1 55 1 2988 6012 t 10 R f (1,)3092 6012 w 10 I f ( /)1 0( /)1 36(t t)1 28 3 3192 6012 t 10 R f (2, or)1 183 1 3264 6012 t 10 I f (t t)1 28 1 3472 6012 t 10 R f ( it appears that there is no need)7 1239(. Since)1 297 2 3500 6012 t (to test all kinds of strange mantissa and exponent patterns together, testing them separately is a reasonable)16 4241 1 720 6132 t ( a test requires at most a few minutes of run time,)11 1975( Such)1 250(way to determine the floating-point unit's integrity.)6 2057 3 720 6252 t ( on the chance that there is evil lurking in a corner of exponent-)13 2536( However,)1 440(and seems extremely reliable.)3 1186 3 720 6372 t ( a background)2 565( Such)1 250(mantissa space, a complete exponent-mantissa test should be run in the background.)11 3359 3 720 6492 t (job, which might require a cpu-month or more, is also an excellent way to detect transient malfunction of)17 4202 1 720 6612 t (the floating-point units.)2 942 1 720 6732 t cleartomark showpage saveobj restore %%EndPage: 29 31 %%Page: 30 32 /saveobj save def mark 32 pagesetup 10 R f (- 30 -)2 216 1 2772 480 t 10 B f (Acknowledgments)720 840 w 10 R f (This effort is part of the continuing development of portable mathematical software at Bell Labs.)14 3869 1 970 996 t (Many enlightening and spirited discussions within the numerical group continue to accompany this devel-)13 4238 1 720 1116 t ( their interest in, and comments on, this test, A. D. Hall, S. I. Feldman and P. A. Fox deserve)19 3706(opment. For)1 514 2 720 1236 t ( S. Brown deserves great credit for creating a model of FP arithmetic that makes it possi-)16 3553( W.)1 169(many thanks.)1 533 3 720 1356 t (ble to test the arithmetic, for many comments on the test and a willingness to revise the model in response)19 4235 1 720 1476 t ( designers of the FP unit on)6 1100( The)1 205( model and the test have grown up together.)8 1750( The)1 205(to real-world FP behavior.)3 1054 5 720 1596 t (the Honeywell 600-6000 series deserve special thanks for having done nearly everything correctly, so that)14 4238 1 720 1716 t ( also deserve thanks for having)5 1239( They)1 255(the errors in the derivations and code could be detected and corrected.)11 2792 3 720 1836 t ( people at Cray Research, DEC, Honeywell)6 1735( The)1 205(done enough wrong to make the test an interesting project.)9 2341 3 720 1956 t ( quickly explained)2 738( They)1 255(and Perkin-Elmer were quite responsive to the bug reports generated by the test.)12 3202 3 720 2076 t ( I thank Jim Cody of Argonne for)7 1340( Finally,)1 359(and repaired all serious problems brought to their attention.)8 2372 3 720 2196 t (bringing the problem of NAN's on the CRAY-1 to my attention; see the CRAY-1 appendix.)14 3683 1 720 2316 t cleartomark showpage saveobj restore %%EndPage: 30 32 %%Page: 1 33 /saveobj save def mark 33 pagesetup 10 B f (Bibliography)2598 840 w 10 R f ( J. Cody and W. M. Waite,)6 1071([1] W.)1 369 2 720 1476 t 10 B f (Software Manual for the Elementary Functions,)5 2048 1 2185 1476 t 10 R f (Prentice-Hall,)4258 1476 w (1980.)970 1596 w ( Feldman, "The Programming Language EFL", Bell Laboratories Computing Science Technical)10 3833([2] S.I.)1 389 2 720 1752 t (Report #78, 1979.)2 722 1 970 1872 t ( Kernighan and L. L. Cherry, "A System for Typesetting Mathematics",)10 2867([3] B.W.)1 461 2 720 2028 t 10 I f ( M)1 0( CM)1 83( AC)1 67( A)1 86( .)1 0( mm m.)2 97( om)1 72(C Co)1 117 8 4073 2028 t 10 B f (18,)4620 2028 w 10 R f (151-)4770 2028 w (157\(1975\).)970 2148 w ( Forsythe and C. Moler,)4 955([4] G.)1 347 2 720 2304 t 10 B f (Computer Solution of Linear Algebraic Systems,)5 2077 1 2047 2304 t 10 R f (Prentice-Hall, New)1 770 1 4149 2304 t (York, 1967.)1 480 1 970 2424 t ( M. Gentleman and S. B. Marovich, "More on Algorithms that Reveal Properties of Floating-Point)14 3939([5] W.)1 369 2 720 2580 t (Arithmetic Units",)1 741 1 970 2700 t 10 I f ( ,)1 0( M,)1 25( CM)1 83( AC)1 67( A)1 86( .)1 0( mm m.)2 97( om)1 72(C Co)1 117 9 1736 2700 t 10 B f (17,)2308 2700 w 10 R f (276-277\(1974\).)2458 2700 w ( I. Feldman, "Make \320 A Program for Maintaining Computer Programs", Bell Laboratories Com-)13 3895([6] S.)1 331 2 720 2856 t (puting Science Technical Report #57, 1977.)5 1756 1 970 2976 t ( A. Malcolm, "Algorithms to Reveal Properties of Floating-Point Arithmetic",)9 3126([7] M.)1 364 2 720 3132 t 10 I f ( ,)1 0( M,)1 25( CM)1 83( AC)1 67( A)1 86( .)1 0( mm m.)2 97( om)1 72(C Co)1 117 9 4235 3132 t 10 B f (15,)4807 3132 w 10 R f (949-951\(1972\).)970 3252 w ( E. Moore,)2 427([8] R.)1 342 2 720 3408 t 10 B f (Interval Analysis,)1 756 1 1514 3408 t 10 R f (Prentice-Hall, 1966.)1 807 1 2295 3408 t ( Ryder, "The PFORT Verifier",)4 1258([9] B.G.)1 439 2 720 3564 t 10 I f ( ce e)2 44( nc)1 44( en)1 50( ie)1 44( ri)1 28( er)1 39( pe)1 44( xp)1 50( Ex)1 44( E)1 86( an nd d)3 100( a)1 75( ce e)2 44( ti ic)2 72( ct)1 28( ac)1 44( ra)1 50( Pr)1 39( P)1 86( \320)1 0( \320)1 114( e)1 0( re)1 44( ar)1 39( wa)1 50( ft tw)2 95(S So of)2 128 27 2442 3564 t 10 B f (4,)3948 3564 w 10 R f (359-377\(1974\).)4048 3564 w ( Fox, A.D. Hall and N.L. Schryer, "The PORT Library Mathematical Subroutine Library",)12 3613([10] P.A.)1 428 2 720 3720 t 10 I f ( ,)1 0( S,)1 25( MS)1 50( OM)1 83(T TO)1 128 5 970 3840 t 10 B f (4,)1281 3840 w 10 R f (104-126\(1978\).)1381 3840 w ( Time-Sharing System",)2 966([11] "UNIX)1 540 2 720 3996 t 10 I f ( J)1 0( TJ)1 44( ST)1 56(B BS)1 111 4 2251 3996 t 10 B f (57,)2487 3996 w 10 R f (1897-2312\(1978\).)2637 3996 w ( Wilkinson,)1 467([12] J.H.)1 411 2 720 4152 t 10 B f (Rounding Errors in Algebraic Processes,)4 1741 1 1623 4152 t 10 R f (Prentice-Hall, New York, 1963.)3 1275 1 3389 4152 t ( S. Brown, "A Simple but Realistic Model of Floating-Point Computation", Bell Laboratories)12 3736([13] W.)1 369 2 720 4308 t (Computing Science Technical Report 83, November, 1980.)6 2372 1 970 4428 t cleartomark showpage saveobj restore %%EndPage: 1 33 %%Page: 1 34 /saveobj save def mark 34 pagesetup 10 B f (Appendix Alliant)1 738 1 2511 840 t 10 R f (These machines have a base-2 hardware representation with an exponent range of)11 3259 1 970 1236 t 10 S f (- -)1 55 1 4254 1236 t 10 R f (125 to)1 253 1 4325 1236 t 10 S f (+ +)1 55 1 4603 1236 t 10 R f (128 and)1 319 1 4674 1236 t 10 I f (t t)1 28 1 720 1356 t 10 S f (= =)1 55 1 797 1356 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1356 t 10 S f (- -)1 55 1 3492 1356 t 10 R f (1021 to)1 303 1 3563 1356 t 10 S f (+ +)1 55 1 3891 1356 t 10 R f (1024 with)1 403 1 3962 1356 t 10 I f (t t)1 28 1 4390 1356 t 10 S f (= =)1 55 1 4467 1356 t 10 R f (53. Thus,)1 400 1 4571 1356 t (they implement the IEEE Floating-point standard for single and double precision.)10 3261 1 720 1476 t 12 B f (FX8)2770 1716 w 10 R f (This machine has been thoroughly tested by Prof. Wolfgang Fichtner of the ETH, Zurich, and Dave)15 3982 1 970 1872 t (Berkeley, and the above parameters are correctly supported.)7 2395 1 720 1992 t 10 B f (FX/2800)720 2232 w 10 R f (After an initial blaze of compiler errors, Dave Berkeley found that this machine correctly supports the)15 4069 1 970 2388 t (IEEE parameters.)1 703 1 720 2508 t cleartomark showpage saveobj restore %%EndPage: 1 34 %%Page: 1 35 /saveobj save def mark 35 pagesetup 10 B f (Appendix Amdahl)1 788 1 2486 840 t 12 B f (470/V8)2700 1320 w 10 R f (This machine has a base-16 hardware representation with an exponent range of)11 3155 1 970 1476 t 10 S f (- -)1 55 1 4150 1476 t 10 R f (64 to)1 203 1 4221 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (63,)4520 1476 w 10 I f (t t)1 28 1 4670 1476 t 10 S f (= =)1 55 1 4747 1476 t 10 R f (6 in)1 153 1 4851 1476 t (single-precision, and)1 832 1 720 1596 t 10 I f (t t)1 28 1 1577 1596 t 10 S f (= =)1 55 1 1654 1596 t 10 R f (14 in double-precision.)2 924 1 1758 1596 t (This machine has been thoroughly tested, and the above parameters are correctly supported under the)14 4043 1 970 1752 t (MVS operating system with the Fortran H Extended compiler.)8 2495 1 720 1872 t cleartomark showpage saveobj restore %%EndPage: 1 35 %%Page: 1 36 /saveobj save def mark 36 pagesetup 10 B f (Appendix Apollo)1 727 1 2516 840 t 12 B f (300)2790 1320 w 10 R f (The 300 has a base-2 FP representation with an exponent range of)11 2636 1 970 1476 t 10 S f (- -)1 55 1 3631 1476 t 10 R f (127 to)1 253 1 3702 1476 t 10 S f (+ +)1 55 1 3980 1476 t 10 R f (127,)4051 1476 w 10 I f (t t)1 28 1 4251 1476 t 10 S f (= =)1 55 1 4328 1476 t 10 R f (24 for single-)2 538 1 4432 1476 t (precision, and)1 560 1 720 1596 t 10 I f (t t)1 28 1 1305 1596 t 10 S f (= =)1 55 1 1382 1596 t 10 R f ( FP is implemented in software.)5 1272( The)1 205(56 for double-precision.)2 962 3 1486 1596 t (This machine has been probed by Prof. Bill Gropp of Yale and the above parameters are not yet cor-)18 4010 1 970 1752 t ( software is buggy and)4 904( The)1 205(rectly supported.)1 671 3 720 1872 t 10 I f (t t)1 28 1 2525 1872 t 10 S f (= =)1 55 1 2602 1872 t 10 R f (23,)2706 1872 w 10 I f (e e)1 44 1 2856 1872 t 7 R f (min)2911 1892 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 3078 1872 t 10 R f (75 and)1 269 1 3261 1872 t 10 I f (e e)1 44 1 3555 1872 t 7 R f (max)3610 1892 w 10 S f (= =)1 55 1 3788 1872 t 10 R f (50 are currently supported.)3 1075 1 3892 1872 t (The penalty on)2 599 1 720 1992 t 10 I f (e e)1 44 1 1344 1992 t 7 R f (min)1399 2012 w 10 R f (is due to comparisons being done by subtract and compare to zero, causing very small,)14 3461 1 1542 1992 t ( rest of the problems have been)6 1247( The)1 205(close but not identical numbers to compare equal through underflow.)9 2757 3 720 2112 t (reported to Apollo and are being fixed.)6 1555 1 720 2232 t 12 B f (420)2790 2472 w 10 R f (The 420 has a base-2 FP hardware representation with an exponent range of)12 3031 1 970 2628 t 10 S f (- -)1 55 1 4026 2628 t 10 R f (127 to)1 253 1 4097 2628 t 10 S f (+ +)1 55 1 4375 2628 t 10 R f (127,)4446 2628 w 10 I f (t t)1 28 1 4646 2628 t 10 S f (= =)1 55 1 4723 2628 t 10 R f (24)4827 2628 w (for single-precision, and)2 973 1 720 2748 t 10 I f (t t)1 28 1 1718 2748 t 10 S f (= =)1 55 1 1795 2748 t 10 R f (56 for double-precision.)2 962 1 1899 2748 t (This machine has been thoroughly tested by Prof. Bill Gropp of Yale and the above parameters are)16 3945 1 970 2904 t (correctly supported.)1 798 1 720 3024 t cleartomark showpage saveobj restore %%EndPage: 1 36 %%Page: 1 37 /saveobj save def mark 37 pagesetup 10 B f (Appendix CCI)1 626 1 2567 840 t 12 B f (6/32)2773 1320 w 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1476 t 10 S f (- -)1 55 1 4100 1476 t 10 R f (127 to)1 253 1 4171 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (127, with)1 378 1 4520 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 in single-precision and)3 1035 1 901 1596 t 10 I f (t t)1 28 1 1961 1596 t 10 S f (= =)1 55 1 2038 1596 t 10 R f ( machine was tested by John Walden and)7 1644( This)1 228(56 in double-precision.)2 924 3 2142 1596 t (found to be healthy.)3 799 1 720 1716 t 10 B f (The Past)1 375 1 720 1956 t 10 R f ( example, in double precision,)4 1204( For)1 189(Early versions of this machine had serious errors.)7 1974 3 970 2112 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2482 2292 t 10 R f (\( 1)1 115 1 2578 2292 t 10 S f (- -)1 55 1 2733 2292 t 10 R f (2)2828 2292 w 7 S f (- -)1 39 1 2889 2252 t 7 R f (55)2939 2252 w 10 R f (\))3049 2292 w 10 S f (\263)3131 2292 w 10 R f (1)3227 2292 w (and)720 2472 w 10 I f ( l)1 0( l)1 36(f f)1 28 3 1558 2702 t 10 R f (\( \( 2)2 180 1 1654 2702 t 7 R f (127)1839 2662 w 10 R f (\( 2)1 115 1 1984 2702 t 7 S f (- -)1 39 1 2110 2662 t 7 R f (1)2160 2662 w 10 S f (+ +)1 55 1 2243 2702 t 10 R f (2)2338 2702 w 7 S f (- -)1 39 1 2399 2662 t 7 R f (54)2449 2662 w 10 R f (\) \))1 106 1 2559 2702 t 10 S f (\264)2705 2702 w 10 R f (\()2792 2702 w 10 S f (- -)1 55 1 2865 2702 t 7 I f (i i)1 20 1 2960 2802 t 7 S f (= =)1 39 1 2996 2802 t 7 R f (1)3046 2802 w 15 S f (S)2976 2732 w 7 R f (53)2986 2602 w 10 R f (2)3081 2702 w 7 S f (- -)1 39 1 3142 2662 t 7 I f (i i)1 20 1 3192 2662 t 10 R f (\) \))1 106 1 3252 2702 t 10 S f ( -)1 0( -)1 112(= =)1 55 3 3415 2702 t 10 R f (2)3598 2702 w 7 S f (+ +)1 39 1 3659 2662 t 7 R f (126)3709 2662 w 10 S f (\264)3854 2702 w 7 R f (1)3984 2802 w 15 S f (S)3957 2732 w 7 R f (25)3967 2602 w 10 R f (2)4062 2702 w 7 S f (- -)1 39 1 4123 2662 t 7 I f (i i)1 20 1 4173 2662 t 10 R f (which is off in the 26)5 852 1 720 2962 t 7 I f ( h)1 0(t th)1 55 2 1577 2922 t 10 R f (bit.)1665 2962 w (In single precision, for)3 904 1 970 3118 t 10 I f (x x)1 44 1 1899 3118 t 10 S f (= =)1 55 1 1992 3118 t 10 R f (2)2096 3118 w 7 R f (25)2151 3078 w 10 R f (\( 2)1 115 1 2261 3118 t 7 S f (- -)1 39 1 2387 3078 t 7 R f (1)2437 3078 w 10 S f (+ +)1 55 1 2520 3118 t 10 R f (2)2615 3118 w 7 S f (- -)1 39 1 2676 3078 t 7 R f (15)2726 3078 w 10 R f (\) and)1 202 1 2836 3118 t 10 I f (y y)1 44 1 3063 3118 t 10 S f (= =)1 55 1 3131 3118 t 10 R f (0, got)1 228 1 3202 3118 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1813 3298 t 10 R f (\()1909 3298 w 10 I f (x x)1 44 1 1974 3298 t 10 S f (\264)2050 3298 w 10 I f (y y)1 44 1 2137 3298 t 10 R f (\))2213 3298 w 10 S f (= =)1 55 1 2303 3298 t 10 R f (2)2407 3298 w 7 S f (- -)1 39 1 2468 3258 t 7 R f (104)2518 3258 w 10 R f (\( 2)1 115 1 2663 3298 t 7 S f (- -)1 39 1 2789 3258 t 7 R f (1)2839 3258 w 10 S f (+ +)1 55 1 2922 3298 t 10 R f (2)3017 3298 w 7 S f (- -)1 39 1 3078 3258 t 7 R f (15)3128 3258 w 10 S f (+ +)1 55 1 3246 3298 t 10 R f (2)3341 3298 w 7 S f (- -)1 39 1 3402 3258 t 7 R f (28)3452 3258 w 10 S f (+ +)1 55 1 3570 3298 t 10 R f (. . .)2 125 1 3690 3273 t (\) ,)1 74 1 3872 3298 t (which is not 0.)3 589 1 720 3478 t cleartomark showpage saveobj restore %%EndPage: 1 37 %%Page: 1 38 /saveobj save def mark 38 pagesetup 10 B f (Appendix CDC)1 659 1 2550 840 t 12 B f (7600)2760 1320 w 10 R f (The CDC-7600 has a base-2 FP hardware representation with an exponent range of)12 3320 1 970 1476 t 10 S f (- -)1 55 1 4315 1476 t 10 R f (974 to +1070,)2 559 1 4370 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (48 in single-precision, and)3 1060 1 901 1596 t 10 I f (t t)1 28 1 1986 1596 t 10 S f (= =)1 55 1 2063 1596 t 10 R f ( test was run under the FTN5 compiler by)8 1670( The)1 205(95 in double-precision.)2 924 3 2167 1596 t (Kirby Fong at Lawrence Livermore Laboratories.)5 1978 1 720 1716 t 10 B f (Single Precision)1 681 1 720 1956 t 10 R f ( First,)1 259(Two penalties must be assessed to obtain correct model parameters.)9 2706 2 970 2112 t 10 I f (t t)1 28 1 3960 2112 t 10 S f (= =)1 55 1 4037 2112 t 10 R f (47, rather than 48,)3 729 1 4141 2112 t ( Second,)1 369(must be used.)2 547 2 720 2232 t 10 I f (e e)1 44 1 1661 2232 t 7 R f (min)1716 2252 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 1883 2232 t 10 R f (929 must be used, rather than)5 1176 1 2066 2232 t 10 S f (- -)1 55 1 3267 2232 t 10 R f (974.)3338 2232 w (The reason for the first, precision, penalty is that one bit is lost when certain pairs of operands are)18 3898 1 970 2388 t ( are done by subtraction followed by a compare to zero.)10 2225(compared. Comparisons)1 996 2 720 2508 t (The second, minimum exponent, penalty is due to FTN5 normalizing a result after subtracting two)14 3935 1 970 2664 t ( two numbers that are different but both very small, the normalization leads to an underflow so)16 3786(numbers. If)1 485 2 720 2784 t (that FTN5 thinks they are identical.)5 1421 1 720 2904 t (With these two penalties, the CDC-7600 passes the test in single-precision.)10 3003 1 970 3060 t 10 B f (Double-Precision)720 3300 w 10 R f (Even though the CDC-7600 software has)5 1645 1 970 3456 t 10 I f (t t)1 28 1 2640 3456 t 10 S f (= =)1 55 1 2717 3456 t 10 R f (96 bits in the mantissa, the manufacturer only claims)8 2112 1 2821 3456 t (95 bit accuracy.)2 634 1 720 3576 t (The parameters supported in the FP test are)7 1733 1 970 3732 t 10 I f (t t)1 28 1 2728 3732 t 10 S f (= =)1 55 1 2805 3732 t 10 R f (47,)2909 3732 w 10 I f (e e)1 44 1 3059 3732 t 7 R f (min)3114 3752 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 3281 3732 t 10 R f (926 and)1 319 1 3464 3732 t 10 I f (e e)1 44 1 3808 3732 t 7 R f (max)3863 3752 w 10 S f ( +)1 0( +)1 112(= =)1 55 3 4041 3732 t 10 R f (1069.)4224 3732 w (Most operations are good to 95 bits, but multiplication and division are sometimes only good to 49)16 3953 1 970 3888 t (bits.)720 4008 w (In .EQ. and .NE. FTN5 forgets that the hardware needs to shift coefficients to align exponents and)16 3926 1 970 4164 t (this can allow the 48)4 827 1 720 4284 t 7 I f ( h)1 0(t th)1 55 2 1552 4244 t 10 R f ( is thus possible for two numbers that differ in bit 48 to appear)13 2495( It)1 111(bit to be shifted off.)4 791 3 1640 4284 t (equal.)720 4404 w cleartomark showpage saveobj restore %%EndPage: 1 38 %%Page: 1 39 /saveobj save def mark 39 pagesetup 10 B f (Appendix Convex)1 765 1 2497 840 t 12 B f (Convex 200)1 596 1 2582 1320 t 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1476 t 10 S f (- -)1 55 1 4100 1476 t 10 R f (125 to)1 253 1 4171 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (128 and)1 319 1 4520 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1596 t 10 S f (- -)1 55 1 3492 1596 t 10 R f (1021 to)1 303 1 3563 1596 t 10 S f (+ +)1 55 1 3891 1596 t 10 R f (1024 with)1 403 1 3962 1596 t 10 I f (t t)1 28 1 4390 1596 t 10 S f (= =)1 55 1 4467 1596 t 10 R f (53. Thus,)1 400 1 4571 1596 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 1716 t (This machine has been thoroughly tested by John Walden and the above parameters are correctly)14 3874 1 970 1872 t (supported.)720 1992 w cleartomark showpage saveobj restore %%EndPage: 1 39 %%Page: 1 40 /saveobj save def mark 40 pagesetup 10 B f (Appendix Cray)1 659 1 2550 840 t 12 B f (Cray-1)2700 1320 w 10 R f (The Cray-1 has a base-2 FP hardware representation with an exponent range of)12 3158 1 970 1476 t 10 S f (- -)1 55 1 4153 1476 t 10 R f (8192 to +8191,)2 609 1 4208 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (48 in single-precision, and)3 1060 1 901 1596 t 10 I f (t t)1 28 1 1986 1596 t 10 S f (= =)1 55 1 2063 1596 t 10 R f ( test was run under the COS 1.08 operating)8 1723( The)1 205(96 in double-precision.)2 924 3 2167 1596 t (system on hardware modified to make multiplication commutative.)7 2687 1 720 1716 t 10 B f (Single Precision)1 681 1 720 1956 t 10 R f ( First,)1 259(Three penalties must be assessed to obtain correct model parameters.)9 2755 2 970 2112 t 10 I f (t t)1 28 1 4009 2112 t 10 S f (= =)1 55 1 4086 2112 t 10 R f (47, rather than 48,)3 729 1 4190 2112 t ( Second,)1 369(must be used.)2 547 2 720 2232 t 10 I f (e e)1 44 1 1661 2232 t 7 R f (min)1716 2252 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 1883 2232 t 10 R f (8189 must be used, rather than)5 1226 1 2066 2232 t 10 S f (- -)1 55 1 3317 2232 t 10 R f ( the largest exponent must)4 1049(8192. Third,)1 522 2 3388 2232 t (be)720 2352 w 10 I f (e e)1 44 1 839 2352 t 7 R f (max)894 2372 w 10 S f (= =)1 55 1 1039 2352 t 10 R f (8190, rather than 8191.)3 929 1 1110 2352 t (The reason for the first penalty is that multiplication uses a phantom 49)12 2853 1 970 2508 t 7 I f ( h)1 0(t th)1 55 2 3828 2468 t 10 R f ( For)1 189(bit for pre-rounding.)2 818 2 3916 2508 t (example, for)1 504 1 720 2628 t 10 I f (x x)1 44 1 1249 2628 t 10 S f (= =)1 55 1 1342 2628 t 10 R f (2 and)1 219 1 1446 2628 t 10 I f (y y)1 44 1 1690 2628 t 10 S f (= =)1 55 1 1783 2628 t 10 R f (0. 1)1 133 1 1887 2628 t (. . .)2 125 1 2077 2603 t (1)2259 2628 w 7 R f (2)2320 2648 w 10 R f (we have)1 329 1 2388 2628 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2742 2628 t 10 R f (\()2814 2628 w 10 I f (x x)1 44 1 2879 2628 t 10 S f (\264)2931 2628 w 10 I f (y y)1 44 1 2994 2628 t 10 R f (\))3070 2628 w 10 S f (= =)1 55 1 3160 2628 t 10 R f (2, and)1 244 1 3264 2628 t 10 I f (t t)1 28 1 3533 2628 t 10 S f (= =)1 55 1 3610 2628 t 10 R f (48 would not result in exact)5 1113 1 3714 2628 t (multiplication being valid.)2 1059 1 720 2748 t (The minimum exponent penalty is due to)6 1644 1 970 2904 t 10 I f ( y)1 0( y)1 85( /)1 0( /)1 69(x x)1 44 5 2639 2904 t 10 R f (being a composite operation, essentially we have)6 1955 1 2862 2904 t 10 I f ( y)1 0( y)1 85( /)1 0( /)1 69(x x)1 44 5 720 3024 t 10 S f (\272)959 3024 w 10 I f (x x)1 44 1 1055 3024 t 10 S f (\264)1107 3024 w 10 R f (\( 1)1 115 1 1170 3024 t 10 I f ( y)1 0( y)1 52(/ /)1 28 3 1293 3024 t 10 R f (\). Thus,)1 333 1 1405 3024 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1763 3024 t 10 R f (\()1835 3024 w 10 I f ( /)1 0( /)1 69(x x)1 44 3 1900 3024 t 10 R f (\( 2)1 115 1 2054 3024 t 7 S f (- -)1 39 1 2180 2984 t 7 R f (8192)2230 2984 w 10 S f (\264)2386 3024 w 10 R f (2)2449 3024 w 7 S f (- -)1 39 1 2510 2984 t 7 R f (1)2560 2984 w 10 R f (\) \))1 106 1 2635 3024 t 10 S f (\272)2790 3024 w 10 I f (x x)1 44 1 2886 3024 t 10 S f (\264)2938 3024 w 10 R f (\( 2)1 115 1 3001 3024 t 7 S f (+ +)1 39 1 3127 2984 t 7 R f (8194)3177 2984 w 10 S f (\264)3333 3024 w 10 R f (2)3396 3024 w 7 S f (- -)1 39 1 3457 2984 t 7 R f (1)3507 2984 w 10 R f (\))3582 3024 w 10 S f ( \245)1 122(= =)1 55 2 3672 3024 t 10 R f (, the projective, un-signed)3 1040 1 3849 3024 t (infinity.)720 3144 w (The maximum exponent penalty results from the way the Cray-1 tests for overflow in multiplication.)14 4032 1 970 3300 t (In taking a)2 427 1 720 3420 t 10 S f (\264)1172 3420 w 10 R f (b, if exponent\(a\)+exponent\(b\))2 1200 1 1252 3420 t 10 S f (> >)1 55 1 2477 3420 t 10 I f (e e)1 44 1 2581 3420 t 7 R f (max)2636 3440 w 10 R f ( is often correct,)3 648( This)1 228(, the result is defined to overflow.)6 1348 3 2765 3420 t (but sometimes is too conservative.)4 1380 1 720 3540 t (With these three penalties, the Cray-1 passes the test in single-precision.)10 2890 1 970 3696 t 10 B f (Double-Precision)720 3936 w 10 R f (Even though the Cray-1 hardware has)5 1510 1 970 4092 t 10 I f (t t)1 28 1 2505 4092 t 10 S f (= =)1 55 1 2582 4092 t 10 R f (96 bits in the mantissa, the manufacturer only claims 95)9 2237 1 2686 4092 t (bit accuracy.)1 509 1 720 4212 t (The parameters supported in the FP test are)7 1733 1 970 4368 t 10 I f (t t)1 28 1 2728 4368 t 10 S f (= =)1 55 1 2805 4368 t 10 R f (94,)2909 4368 w 10 I f (e e)1 44 1 3059 4368 t 7 R f (min)3114 4388 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 3281 4368 t 10 R f (8099 and)1 369 1 3464 4368 t 10 I f (e e)1 44 1 3858 4368 t 7 R f (max)3913 4388 w 10 S f ( +)1 0( +)1 112(= =)1 55 3 4091 4368 t 10 R f (8190.)4274 4368 w (The penalty on)2 599 1 970 4524 t 10 I f (t t)1 28 1 1594 4524 t 10 R f (is due to)2 339 1 1647 4524 t 10 I f (/ /)1 28 1 2011 4524 t 10 R f ( value of)2 349( The)1 205(being done in software, using multiple operations.)6 2004 3 2064 4524 t 10 I f (t t)1 28 1 4647 4524 t 10 S f (= =)1 55 1 4724 4524 t 10 R f (94)4828 4524 w (passes the FP test with)4 906 1 720 4644 t 10 I f ( e)1 0(o on ne)2 144 2 1651 4644 t 10 R f (expansion \()1 463 1 1820 4644 t 10 I f (X X)1 61 1 2308 4644 t 7 S f (+ +)1 39 1 2380 4604 t 10 R f (\) of the containment interval for division results.)7 1937 1 2452 4644 t (If)970 4800 w 10 I f ( o)1 0( wo)1 50(t tw)1 95 3 1061 4800 t 10 R f (expansions are allowed,)2 956 1 1231 4800 t 10 I f (t t)1 28 1 2212 4800 t 10 S f (= =)1 55 1 2289 4800 t 10 R f ( this extra expansion is contrary to)6 1376( However,)1 440(95 passes the test.)3 716 3 2393 4800 t ( it does show that the other arithmetic operations are supported to 95)12 2741( But)1 195(the model, and 95 is not used.)6 1194 3 720 4920 t ( since division involves three arithmetic sub-operations, it should require the extra expansion.)12 3740(bits. Also,)1 434 2 720 5040 t (So the designers of the double-precision division software can tell that they have introduced the minimum)15 4237 1 720 5160 t (possible error.)1 571 1 720 5280 t (The minimum exponent must be penalized by 93, to)8 2085 1 970 5436 t 10 S f (- -)1 55 1 3080 5436 t 10 R f (8099, because the comparison operations \()5 1702 1 3151 5436 t ( the 93 penalty is put on)6 961( Unless)1 322(.eq., .lt., etc. \) are done by subtraction and comparison to zero.)11 2492 3 720 5556 t 10 I f (e e)1 44 1 4520 5556 t 7 R f (min)4575 5576 w 10 R f (,)4693 5556 w 10 I f (x x)1 44 1 4743 5556 t 10 S f (- -)1 55 1 4827 5556 t 10 I f (y y)1 44 1 4922 5556 t 10 R f (may underflow causing)2 937 1 720 5676 t 10 I f (x x)1 44 1 1682 5676 t 10 R f (.eq.)1751 5676 w 10 I f (y y)1 44 1 1920 5676 t 10 R f (to be true when)3 618 1 1989 5676 t 10 I f (x x)1 44 1 2632 5676 t 10 S f (\271)2717 5676 w 10 I f (y y)1 44 1 2813 5676 t 10 R f ( problem does not arise in single-precision)6 1698(. This)1 253 2 2857 5676 t (because although)1 690 1 720 5796 t 10 I f (x x)1 44 1 1435 5796 t 10 S f (- -)1 55 1 1519 5796 t 10 I f (y y)1 44 1 1614 5796 t 10 R f (may underflow, its representation,)3 1367 1 1683 5796 t 10 I f ( ,)1 0( d,)1 25( ed)1 50( re)1 44( or)1 39( to)1 50( st)1 28( s)1 64( ng g)2 50( in)1 50( ei)1 28( be)1 44( b)1 75( e)1 0( re)1 44( or)1 39( fo)1 50( ef)1 28(b be)1 94 19 3075 5796 t 10 R f (has the correct sign.)3 798 1 3902 5796 t (The reason for the penalty on)5 1172 1 970 5952 t 10 I f (e e)1 44 1 2167 5952 t 7 R f (max)2222 5972 w 10 R f (is the same as it was in single-precision.)7 1604 1 2376 5952 t 10 B f (The Past \320 Single-Precision)3 1214 1 720 6192 t 10 R f (Early in 1980, the FP test reported most of the above results, but failed to detect the penalty on)18 3785 1 970 6348 t 10 I f (e e)1 44 1 4780 6348 t 7 R f (min)4835 6368 w 10 R f (.)4953 6348 w (The reason for this is that comparison operations on the machine give)11 2782 1 720 6468 t 10 I f (L L)1 56 1 3527 6468 t 10 S f (\243 \245)1 169 1 3624 6468 t 10 R f (and)3818 6468 w 10 S f (\245 \243)1 169 1 3987 6468 t 10 I f (R R)1 61 1 4197 6468 t 10 R f (for)4283 6468 w 10 B f (any)4424 6468 w 10 R f (FP num-)1 348 1 4605 6468 t (bers)720 6588 w 10 I f (L L)1 56 1 911 6588 t 10 R f (and)992 6588 w 10 I f (R R)1 61 1 1161 6588 t 10 R f ( this ano-)2 372( When)1 288( fooled the FP test into believing the result had been correctly computed.)12 2905(. This)1 253 4 1222 6588 t (maly was discovered, the not-a-number detector of section 4 was introduced into the FP test so that such)17 4172 1 720 6708 t ( fact,)1 199( In)1 133(fakery cannot happen so easily any more.)6 1654 3 720 6828 t 10 S f (\245)2731 6828 w 10 R f ( Let)1 183(has some strange properties on the Cray-1.)6 1705 2 2829 6828 t 10 I f (x x)1 44 1 4742 6828 t 10 R f (be)4811 6828 w (any floating-point number or)3 1157 1 720 6948 t 10 S f (\245)1902 6948 w 10 R f (. Then)1 280 1 1975 6948 t 10 S f (\245 \243)1 169 1 2280 6948 t 10 I f (x x)1 44 1 2490 6948 t 10 S f (\243 \245)1 169 1 2575 6948 t 10 R f ( none of the following are ever true:)7 1438(. Yet)1 219 2 2744 6948 t 10 I f (x x)1 44 1 4426 6948 t 10 S f ( \245)1 122(= =)1 55 2 4519 6948 t 10 R f (,)4696 6948 w 10 S f ( <)1 0(\245 <)1 177 2 4746 6948 t 10 I f (x x)1 44 1 4972 6948 t 10 R f (or)720 7068 w 10 I f (x x)1 44 1 828 7068 t 10 S f ( \245)1 122(< <)1 55 2 921 7068 t 10 R f (.)1098 7068 w (This example shows that)3 991 1 970 7224 t 10 CW f (FPTST)1986 7224 w 10 R f (should always be run on the final results with)8 1815 1 2311 7224 t 10 CW f (CHEKUF)4186 7224 w 10 R f (= .)1 106 1 4571 7224 t 10 CW f (FALSE)4677 7224 w 10 R f (.,)4977 7224 w cleartomark showpage saveobj restore %%EndPage: 1 40 %%Page: 2 41 /saveobj save def mark 41 pagesetup 10 R f (\261 Cray-2 \261)2 427 1 2666 480 t (and it should run correctly and)5 1223 1 720 840 t 10 I f ( s)1 0( es)1 39( ag ge)2 94( ss sa)2 89( es)1 39( me)1 44( m)1 97( r)1 0( or)1 39( rr ro)2 89( er)1 39( e)1 69( no o)2 50( n)1 75( ce e)2 44( od du uc)3 144( ro)1 50(p pr)1 89 18 1968 840 t 10 R f (\( underflow, overflow, divide-check, etc. \).)5 1717 1 3083 840 t 10 B f (The Past \320 Double-Precision)3 1258 1 720 1080 t 10 R f ( was due to a)4 521( This)1 228(Even with the above penalties, the double-precision arithmetic failed the test.)10 3084 3 970 1236 t ( example, given)2 635( For)1 189(rather obvious bug in the comparison operators .eq. and .ne. .)10 2443 3 720 1356 t 10 I f (x x)1 44 1 720 1536 t 10 S f (= =)1 55 1 813 1536 t 10 R f (2)917 1536 w 7 S f (- -)1 39 1 978 1496 t 7 R f (1)1028 1496 w 10 S f (+ +)1 55 1 1111 1536 t 10 R f (. . .)2 125 1 1231 1511 t 10 S f (+ +)1 55 1 1421 1536 t 10 R f (2)1516 1536 w 7 S f (- -)1 39 1 1577 1496 t 7 R f (48)1627 1496 w 10 R f (and)720 1716 w 10 I f (y y)1 44 1 720 1896 t 10 S f (= =)1 55 1 813 1896 t 10 R f (2)917 1896 w 7 S f (- -)1 39 1 978 1856 t 7 R f (1)1028 1856 w 10 S f (+ +)1 55 1 1111 1896 t 10 R f (. . .)2 125 1 1231 1871 t 10 S f (+ +)1 55 1 1421 1896 t 10 R f (2)1516 1896 w 7 S f (- -)1 39 1 1577 1856 t 7 R f (95)1627 1856 w 10 R f ( bug in the software was reported to Cray and)9 1821( The)1 205(we had that x .eq. y was true and that x .ne. y was false.)14 2220 3 720 2076 t ( had the effect of repairing a similar bug in the)10 1857( This)1 228(repaired in the next system release.)5 1402 3 720 2196 t 10 I f ( ex x)2 44( le)1 44( pl)1 28( mp)1 50( om)1 72(c co)1 94 6 4232 2196 t 10 R f (.eq. and)1 313 1 4589 2196 t (.ne. comparison operators, since the same software was used for both multiword comparisons.)12 3760 1 720 2316 t 10 B f ("Un-Rounded" Arithmetic)1 1153 1 720 2556 t 10 R f ( Hard-)1 257( The)1 205(The Cray-1 has the ability, in single precision, to turn "rounding" off for multiplication.)13 3502 3 970 2712 t (ware Reference Manual for that machine states that "The effect of this error \("rounding"\) is at most a round)18 4290 1 720 2832 t (up of bit 2)3 414 1 720 2952 t 7 S f (- -)1 39 1 1145 2912 t 7 R f (48)1195 2912 w 10 R f ( that statement, one might conclude that when "rounding" is off, multi-)11 2833( From)1 267(of the result.")2 543 3 1298 2952 t ( is not the case.)4 613( That)1 233(plication is "chopped.")2 912 3 720 3072 t (When)970 3228 w 10 CW f (FPTSB)1233 3228 w 10 R f (was run with "rounding" off, it reported that)7 1763 1 1558 3228 t 10 I f (t t)1 28 1 3346 3228 t 10 S f (= =)1 55 1 3423 3228 t 10 R f ( When)1 288(33 was correctly supported.)3 1103 2 3527 3228 t 10 CW f (FPTSD)720 3348 w 10 R f (was run with)2 516 1 1045 3348 t 10 I f (t t)1 28 1 1586 3348 t 10 S f (= =)1 55 1 1663 3348 t 10 R f (34 and)1 269 1 1767 3348 t 10 CW f (EPRINT)2061 3348 w 10 S f (= =)1 55 1 2446 3348 t 10 R f (.)2526 3348 w 10 CW f (TRUE)2551 3348 w 10 R f (., the first example of trouble was)6 1342 1 2791 3348 t 10 CW f ( *)1 180(failure for operation)2 1260 2 1140 3528 t ( 0200037777777777740000)1 1740(x =)1 480 2 1200 3648 t ( 0400007777777777740000)1 1740(y =)1 480 2 1200 3768 t ( 0200037777777777677777)1 1740(result =)1 480 2 1200 3888 t ( 0200037777777777700000)1 1740(l =)1 480 2 1200 4008 t ( 0200037777777777740000)1 1740(r =)1 480 2 1200 4128 t ( -8189)1 420( exponent\(x\) =)2 840( 34,)1 360(sign\(x\) = +, type\(x\) = 2, i\(x\) =)7 1920 4 1140 4248 t ( 0)1 420( exponent\(y\) =)2 840( 34,)1 360(sign\(y\) = +, type\(y\) = 2, i\(y\) =)7 1920 4 1140 4368 t 10 R f (The first line and the last two lines of the above output say that for)14 2658 1 720 4548 t 10 I f (x x)1 44 1 3403 4548 t 10 S f ( +)1 0( +)1 112(= =)1 55 3 3496 4548 t 10 R f (2)3703 4548 w 7 S f (- -)1 39 1 3764 4508 t 7 R f (8189)3814 4508 w 10 S f (\264)3970 4548 w 10 R f (\( 2)1 115 1 4033 4548 t 7 S f (- -)1 39 1 4159 4508 t 7 R f (1)4209 4508 w 10 S f (+ +)1 55 1 4292 4548 t 10 R f (. . .)2 125 1 4412 4523 t 10 S f (+ +)1 55 1 4602 4548 t 10 R f (2)4697 4548 w 7 S f (- -)1 39 1 4758 4508 t 7 R f (34)4808 4508 w 10 R f (\))4918 4548 w (and)720 4668 w 10 I f (y y)1 44 1 889 4668 t 10 S f ( +)1 0( +)1 112(= =)1 55 3 982 4668 t 10 R f (2)1189 4668 w 7 R f (0)1244 4628 w 10 S f (\264)1295 4668 w 10 R f (\( 2)1 115 1 1358 4668 t 7 S f (- -)1 39 1 1484 4628 t 7 R f (1)1534 4628 w 10 S f (+ +)1 55 1 1617 4668 t 10 R f (. . .)2 125 1 1737 4643 t 10 S f (+ +)1 55 1 1927 4668 t 10 R f (2)2022 4668 w 7 S f (- -)1 39 1 2083 4628 t 7 R f (34)2133 4628 w 10 R f (\), which are Type 2 mantissas \(see \(2.2\)\), result)8 1898 1 2243 4668 t 10 S f (= =)1 55 1 4166 4668 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 4278 4668 t 10 R f (\()4350 4668 w 10 I f (x x)1 44 1 4415 4668 t 10 S f (\264)4467 4668 w 10 I f (y y)1 44 1 4530 4668 t 10 R f (\) is not in)3 381 1 4606 4668 t ( clarity, the values of x, y, result l and r are printed in octal \(base)15 2578( For)1 189(the correct containment interval [l,r].)4 1474 3 720 4788 t ( last 16 octal digits give the mantissa and the leading octal digits give the sign and biased exponent.)18 3978(8\). The)1 313 2 720 4908 t (Thus, when "rounding" is turned off, multiplication sometimes produces a result which is smaller than the)15 4237 1 720 5028 t ( example also shows that "rounding" does more)7 1905( This)1 228(correct chopped result, by one bit in the last place.)9 2010 3 720 5148 t ( "rounding", some multiplication results are not even in the)9 2364( Without)1 378(than simply round the result to 48 bits.)7 1545 3 720 5268 t (correct model interval, let alone "chopped" to the wrong end-point.)9 2680 1 720 5388 t cleartomark showpage saveobj restore %%EndPage: 2 41 %%Page: 1 42 /saveobj save def mark 42 pagesetup 10 B f (Appendix DEC)1 654 1 2553 840 t 12 B f (VAX 11/780)1 622 1 2569 1320 t 10 R f (The VAX 11/780 has a base-2 FP hardware representation with an exponent range of)13 3400 1 970 1476 t 10 S f (- -)1 55 1 4395 1476 t 10 R f (127 to)1 253 1 4466 1476 t 10 S f (+ +)1 55 1 4744 1476 t 10 R f (127,)4815 1476 w 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 for single-precision, and)3 1098 1 901 1596 t 10 I f (t t)1 28 1 2024 1596 t 10 S f (= =)1 55 1 2101 1596 t 10 R f (56 for double-precision.)2 962 1 2205 1596 t (This machine has been thoroughly tested and the above parameters are correctly supported when run)14 4018 1 970 1752 t (under the)1 374 1 720 1872 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 1119 1872 t 10 R f (operating systems 32)2 844 1 1377 1872 t 10 I f (V V)1 61 1 2229 1872 t 10 R f (and 4)1 219 1 2315 1872 t 10 I f ( D)1 0( SD)1 72(B BS)1 111 3 2542 1872 t 10 R f (.)2725 1872 w (Although the 11/780 has correctly designed FP arithmetic, the machines don't necessarily stay cor-)13 3961 1 970 2028 t ( Murray Hill computing center has had considerable fun with FP intermittents in their zoo of a)16 3768(rect. Our)1 379 2 720 2148 t ( high point was when our statisticians spent a week looking for a bug in their)15 3072( The)1 205(dozen or so 11/780's.)3 860 3 720 2268 t ( FP accelerator \(FPA\))3 873( The)1 205(code only to discover the problem was that the FP on the 11/780 was broken.)14 3083 3 720 2388 t ( DEC field-engineers ran their test and diagnosis \(T&D\) soft-)9 2454( The)1 205(had partially fallen out of the backplane.)6 1616 3 720 2508 t ( knew better, and asked them to)6 1267( We)1 188(ware on the FPA and declared that all was well.)9 1907 3 720 2628 t 10 B f (remove)4107 2628 w 10 R f (the FPA and)2 500 1 4447 2628 t ( is just more proof of the old saw "T&D is the only)12 2040( This)1 228( and behold, it ran just fine!)6 1107( Lo)1 161(repeat the T&D.)2 651 5 720 2748 t ( example is not given to pick on DEC, which has been)11 2170( This)1 228(thing that will run when nothing else will".)7 1719 3 720 2868 t ( problem)1 358( The)1 205(most responsive to reports of FP problems in their hardware, see the 11/750 example below.)14 3684 3 720 2988 t ( Interdata and others suffer from the same)7 1670( IBM,)1 264(is generic in hardware, it needs continued maintenance.)7 2214 3 720 3108 t (problems.)720 3228 w (As a result of the week-long bug chase that ended at the backplane, the computing center installed a)17 3986 1 970 3384 t (tastefully designed use of)3 1018 1 720 3504 t 10 CW f (FPTST)1763 3504 w 10 R f (to be run at 3am)4 649 1 2088 3504 t 10 B f (every day on every 11/780)4 1104 1 2762 3504 t 10 R f ( its installation it has)4 829(. Since)1 297 2 3866 3504 t (found that FPA's have partially fallen out of the backplane on three occasions and sent that information to)17 4241 1 720 3624 t ( com-)1 230( The)1 205( each case, the system was repaired before the normal working shift began.)12 2992( In)1 133(the system gurus.)2 697 5 720 3744 t (puting center folks and their users can sleep better knowing such tests are being run daily.)15 3588 1 720 3864 t (The author was duly pleased to see his test running on the central computing center's 11/780s but)16 3895 1 970 4020 t ( enough, the same thing happened on May)7 1692( Sure)1 233(failed to apply the same alertness to our two local 11/780s.)10 2350 3 720 4140 t ( cost a member of the staff a day to track the problem down to the)15 2631( It)1 111(24, 1984 to one of our local 11/780s.)7 1474 3 720 4260 t (FPA. The)1 414 1 720 4380 t 10 CW f (FPTST)1159 4380 w 10 R f (now runs daily on our local 11/780s, and two of our 11/750s, as well.)13 2770 1 1484 4380 t 12 B f (VAX 11/750)1 622 1 2569 4620 t 10 R f (The VAX 11/750 has a base-2 FP hardware representation with an exponent range of)13 3400 1 970 4776 t 10 S f (- -)1 55 1 4395 4776 t 10 R f (127 to)1 253 1 4466 4776 t 10 S f (+ +)1 55 1 4744 4776 t 10 R f (127,)4815 4776 w 10 I f (t t)1 28 1 720 4896 t 10 S f (= =)1 55 1 797 4896 t 10 R f (24 for single-precision, and)3 1098 1 901 4896 t 10 I f (t t)1 28 1 2024 4896 t 10 S f (= =)1 55 1 2101 4896 t 10 R f (56 for double-precision.)2 962 1 2205 4896 t (The above parameters are correctly supported.)5 1849 1 970 5052 t 10 B f (The Past.)1 400 1 720 5292 t 10 R f (The above parameters were correctly supported for all floating-point operators except addition and)12 3940 1 970 5448 t (subtraction in double-precision, when tested under the)6 2166 1 720 5568 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 2911 5568 t 10 R f (operating systems 32)2 844 1 3169 5568 t 10 I f (V V)1 61 1 4021 5568 t 10 R f (and 4)1 219 1 4107 5568 t 10 I f ( D)1 0( SD)1 72(B BS)1 111 3 4334 5568 t 10 R f (.)4517 5568 w ( Specifically,)1 552(In double-precision, addition and subtraction were accurate to only single-precision.)9 3363 2 970 5724 t (when)720 5844 w 10 I f (t t)1 28 1 961 5844 t 10 S f (= =)1 55 1 1038 5844 t 10 R f (56 was tested, with)3 766 1 1142 5844 t 10 CW f (EPRINT)1933 5844 w 10 S f (= =)1 55 1 2318 5844 t 10 R f (.)2398 5844 w 10 CW f (TRUE)2423 5844 w 10 R f (., and \()2 277 1 2663 5844 t 10 CW f (NBEX)2940 5844 w 10 R f (,)3180 5844 w 10 CW f (NBEY)3205 5844 w 10 R f (,)3445 5844 w 10 CW f (NBIX)3470 5844 w 10 R f (,)3710 5844 w 10 CW f (NBIY)3735 5844 w 10 R f (\))3975 5844 w 10 S f (= =)1 55 1 4033 5844 t 10 R f ( the fol-)2 316( \),)1 66( 56)1 141( ,)1 33( 1)1 91( ,)1 33( 1)1 91(\( 1 ,)2 124 8 4137 5844 t (lowing "hexadecimal" example was produced by)5 1953 1 720 5964 t 10 CW f (FPTSD)2698 5964 w ( +)1 180(Failure for operation)2 1260 2 1140 6144 t ( 10000)1 660( 3F80)1 720(x =)1 480 3 1140 6264 t ( BF80 200)2 1380(y =)1 480 2 1140 6384 t ( 0)1 660( FFFFB07F)1 720(Result =)1 480 3 1140 6504 t ( 8000)1 660( FFFFB07F)1 720(L =)1 480 3 1140 6624 t ( 8000)1 660( FFFFB07F)1 720(R =)1 480 3 1140 6744 t ( -1)1 420( Exponent\(X\) =)2 840( 56,)1 360(Sign\(x\) = +, Type\(X\) = 1, I\(X\) =)7 1920 4 1140 6864 t ( -1)1 420( Exponent\(Y\) =)2 840( 31,)1 360(Sign\(y\) = -, Type\(Y\) = 1, I\(Y\) =)7 1920 4 1140 6984 t 10 R f (The first line and the last two lines of the above output say that for)14 2658 1 720 7164 t 10 I f (x x)1 44 1 3403 7164 t 10 S f ( +)1 0( +)1 112(= =)1 55 3 3496 7164 t 10 R f (2)3703 7164 w 7 S f (- -)1 39 1 3764 7124 t 7 R f (1)3814 7124 w 10 S f (\264)3865 7164 w 10 R f (\( 2)1 115 1 3928 7164 t 7 S f (- -)1 39 1 4054 7124 t 7 R f (1)4104 7124 w 10 S f (+ +)1 55 1 4187 7164 t 10 R f (2)4282 7164 w 7 S f (- -)1 39 1 4343 7124 t 7 R f (56)4393 7124 w 10 R f (\) and)1 202 1 4503 7164 t 10 I f (y y)1 44 1 720 7284 t 10 S f ( -)1 0( -)1 112(= =)1 55 3 813 7284 t 10 R f (2)1020 7284 w 7 S f (- -)1 39 1 1081 7244 t 7 R f (1)1131 7244 w 10 S f (\264)1182 7284 w 10 R f (\( 2)1 115 1 1245 7284 t 7 S f (- -)1 39 1 1371 7244 t 7 R f (1)1421 7244 w 10 S f (+ +)1 55 1 1504 7284 t 10 R f (2)1599 7284 w 7 S f (- -)1 39 1 1660 7244 t 7 R f (31)1710 7244 w 10 R f (\), which are Type 1 operands \(see \(2.2\)\), we have that Result)11 2432 1 1820 7284 t 10 S f (= =)1 55 1 4277 7284 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 4389 7284 t 10 R f (\()4461 7284 w 10 I f (x x)1 44 1 4526 7284 t 10 S f (+ +)1 55 1 4610 7284 t 10 I f (y y)1 44 1 4705 7284 t 10 R f (\) is)1 125 1 4781 7284 t cleartomark showpage saveobj restore %%EndPage: 1 42 %%Page: 2 43 /saveobj save def mark 43 pagesetup 10 R f (\261 DEC-2 \261)2 433 1 2663 480 t ( clarity, the values of x, y, Result, L and R are printed in)13 2250( For)1 189(not in the correct containment interval [L, R].)7 1822 3 720 840 t ( last two hex digits of the first word in the representation give the most significant)15 3278( The)1 205("hex" \(base-16\).)1 652 3 720 960 t (digits in the 56 bit mantissa \(the leading 1 in the mantissa is implicit\), the fifth and sixth hex digits give the)21 4284 1 720 1080 t (sign and biased exponent, the first four hex digits of the first word give more of the mantissa, the last four)20 4228 1 720 1200 t (hex digits of the second word give, in decreasing significance, even more of the mantissa, and the first four)18 4278 1 720 1320 t ( 0's are)2 293( Leading)1 377(hex digits of the second word give, in decreasing significance, the rest of the mantissa.)14 3458 3 720 1440 t ( output shows)2 556( The)1 205(suppressed in the hex output and the length of the representation of the words varies.)14 3386 3 720 1560 t (that addition failed in the 25)5 1130 1 720 1680 t 7 I f ( h)1 0(t th)1 55 2 1855 1640 t 10 R f (bit.)1943 1680 w (When tested for)2 637 1 970 1836 t 10 I f (t t)1 28 1 1632 1836 t 10 S f (= =)1 55 1 1709 1836 t 10 R f ( this was quite mis-)4 778( However,)1 440(54, the machine passed the above test correctly.)7 1904 3 1813 1836 t ( test allows detection of)4 949( The)1 205(leading since we knew that the precision of addition was no better than 24 bits.)14 3154 3 720 1956 t (the trouble with addition, but unless we keep that fact in mind, the test may also lull us into believing that)20 4221 1 720 2076 t ( is an example where testing "extra-)6 1432( This)1 228(addition is more accurate \( 54 bits \) than it really is \( 24 bits \).)15 2475 3 720 2196 t (precise" operands would be helpful in determining precision, see section 7.)10 2997 1 720 2316 t (The error was reported to DEC and the bug in the microcode for)12 2566 1 970 2472 t 10 S f (+ +)1 55 1 3561 2472 t 10 R f (and)3641 2472 w 10 S f (- -)1 55 1 3810 2472 t 10 R f (was repaired.)1 531 1 3890 2472 t 12 B f (System 20/60)1 671 1 2544 2712 t 10 R f (The System 20/60 has a base-2 FP hardware representation with an exponent range of)13 3429 1 970 2868 t 10 S f (- -)1 55 1 4424 2868 t 10 R f (128 to)1 253 1 4495 2868 t 10 S f (+ +)1 55 1 4773 2868 t 10 R f (127,)4844 2868 w 10 I f (t t)1 28 1 720 2988 t 10 S f (= =)1 55 1 797 2988 t 10 R f (27 for single-precision, and)3 1098 1 901 2988 t 10 I f (t t)1 28 1 2024 2988 t 10 S f (= =)1 55 1 2101 2988 t 10 R f ( first bit of the second 36 bit word is not)10 1605( The)1 205(62 for double-precision.)2 962 3 2205 2988 t (used in double-precision, so)3 1121 1 720 3108 t 10 I f (t t)1 28 1 1866 3108 t 10 S f (= =)1 55 1 1943 3108 t 10 R f (62)2047 3108 w 10 B f (not)2172 3108 w 10 R f (63.)2336 3108 w (This machine has been thoroughly tested by Prof. Stan Eisenstat of Yale and the above parameters)15 3932 1 970 3264 t (are correctly supported when run under the TOPS 20 operating system.)10 2842 1 720 3384 t 12 B f (DEC 10, Model 1091)3 1059 1 2350 3624 t 10 R f (This machine has a base-2 FP hardware representation with an exponent range of)12 3242 1 970 3780 t 10 S f (- -)1 55 1 4237 3780 t 10 R f (128 to)1 253 1 4308 3780 t 10 S f (+ +)1 55 1 4586 3780 t 10 R f (127,)4657 3780 w 10 I f (t t)1 28 1 720 3900 t 10 S f (= =)1 55 1 797 3900 t 10 R f (27 for single-precision, and)3 1098 1 901 3900 t 10 I f (t t)1 28 1 2024 3900 t 10 S f (= =)1 55 1 2101 3900 t 10 R f ( first bit of the second 36 bit word is not)10 1605( The)1 205(62 for double-precision.)2 962 3 2205 3900 t (used in double-precision, so)3 1121 1 720 4020 t 10 I f (t t)1 28 1 1866 4020 t 10 S f (= =)1 55 1 1943 4020 t 10 R f (62)2047 4020 w 10 B f (not)2172 4020 w 10 R f (63.)2336 4020 w (This machine has been thoroughly tested by Greg Astfalk of AT&T Technologies Research Center)13 3951 1 970 4176 t (and the above parameters are correctly supported when run under the TOPS 10 operating system, version)15 4202 1 720 4296 t (7.01v07.)720 4416 w cleartomark showpage saveobj restore %%EndPage: 2 43 %%Page: 1 44 /saveobj save def mark 44 pagesetup 10 B f (Appendix Data General)2 1017 1 2371 840 t 12 B f (Eagle)2736 1320 w 10 R f (This machine has a base-16 hardware representation with an exponent range of)11 3155 1 970 1476 t 10 S f (- -)1 55 1 4150 1476 t 10 R f (64 to)1 203 1 4221 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (63,)4520 1476 w 10 I f (t t)1 28 1 4670 1476 t 10 S f (= =)1 55 1 4747 1476 t 10 R f (6 in)1 153 1 4851 1476 t (single-precision, and)1 832 1 720 1596 t 10 I f (t t)1 28 1 1577 1596 t 10 S f (= =)1 55 1 1654 1596 t 10 R f (14 in double-precision.)2 924 1 1758 1596 t (This machine has been thoroughly tested, by Wolfi Fichtner of AT&T Bell Laboratories, and the)14 3867 1 970 1752 t (above parameters are correctly supported.)4 1669 1 720 1872 t cleartomark showpage saveobj restore %%EndPage: 1 44 %%Page: 1 45 /saveobj save def mark 45 pagesetup 10 B f (Appendix Elxsi)1 655 1 2552 840 t 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1236 t 10 S f (- -)1 55 1 4100 1236 t 10 R f (125 to)1 253 1 4171 1236 t 10 S f (+ +)1 55 1 4449 1236 t 10 R f (128 and)1 319 1 4520 1236 t 10 I f (t t)1 28 1 720 1356 t 10 S f (= =)1 55 1 797 1356 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1356 t 10 S f (- -)1 55 1 3492 1356 t 10 R f (1021 to)1 303 1 3563 1356 t 10 S f (+ +)1 55 1 3891 1356 t 10 R f (1024 with)1 403 1 3962 1356 t 10 I f (t t)1 28 1 4390 1356 t 10 S f (= =)1 55 1 4467 1356 t 10 R f (53. Thus,)1 400 1 4571 1356 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 1476 t (This machine has been thoroughly tested by John Walden and the above parameters are correctly)14 3874 1 970 1632 t (supported.)720 1752 w 10 B f (The Past)1 375 1 720 1992 t 10 R f ( is, things like "x .lt. y" were ".true.")8 1455( That)1 233(In single precision, comparison of 0 with 0 was incorrect.)9 2299 3 970 2148 t (when)720 2268 w 10 I f (x x)1 44 1 961 2268 t 10 S f (= =)1 55 1 1054 2268 t 10 I f (y y)1 44 1 1158 2268 t 10 S f (= =)1 55 1 1251 2268 t 10 R f (0.)1355 2268 w cleartomark showpage saveobj restore %%EndPage: 1 45 %%Page: 1 46 /saveobj save def mark 46 pagesetup 10 B f (Appendix Floating-point Systems)2 1424 1 2168 840 t 12 B f (164)2790 1320 w 10 R f (The 164 has a base-2 FP hardware representation with an exponent range of)12 3031 1 970 1476 t 10 S f (- -)1 55 1 4026 1476 t 10 R f (1021 to)1 303 1 4097 1476 t 10 S f (+ +)1 55 1 4425 1476 t 10 R f (1023, with)1 428 1 4496 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f ( is no double-precision on this array processor.)7 1869( There)1 282(52 for single-precision.)2 929 3 901 1596 t (This machine has been thoroughly tested by Prof. Bill Gropp of Yale and the above parameters are)16 3945 1 970 1752 t (correctly supported.)1 798 1 720 1872 t cleartomark showpage saveobj restore %%EndPage: 1 46 %%Page: 1 47 /saveobj save def mark 47 pagesetup 10 B f (Appendix Gould)1 711 1 2524 840 t 12 B f (NP 1)1 249 1 2755 1320 t 10 R f (This machine has a base-16 hardware representation with an exponent range of)11 3155 1 970 1476 t 10 S f (- -)1 55 1 4150 1476 t 10 R f (64 to)1 203 1 4221 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (63,)4520 1476 w 10 I f (t t)1 28 1 4670 1476 t 10 S f (= =)1 55 1 4747 1476 t 10 R f (6 in)1 153 1 4851 1476 t (single-precision, and)1 832 1 720 1596 t 10 I f (t t)1 28 1 1577 1596 t 10 S f (= =)1 55 1 1654 1596 t 10 R f (14 in double-precision.)2 924 1 1758 1596 t (This machine has been thoroughly tested by John Walden and the above parameters are correctly)14 3874 1 970 1752 t (supported.)720 1872 w 10 B f (The Past)1 375 1 720 2112 t 10 R f (An early version of this machine failed for the division of small numbers:)12 2941 1 970 2268 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1618 2448 t 10 R f (\( \( 16)2 230 1 1714 2448 t 7 S f (- -)1 39 1 1955 2408 t 7 R f (64)2005 2408 w 10 S f (\264)2115 2448 w 10 R f (16)2202 2448 w 7 S f (- -)1 39 1 2313 2408 t 7 R f (1)2363 2408 w 10 R f (\))2438 2448 w 10 I f (/ /)1 28 1 2511 2448 t 10 R f (\( 16)1 165 1 2571 2448 t 7 S f (- -)1 39 1 2747 2408 t 7 R f (64)2797 2408 w 10 S f (\264)2907 2448 w 10 R f (\( 16)1 165 1 2994 2448 t 7 S f (- -)1 39 1 3170 2408 t 7 R f (1)3220 2408 w 10 S f (+ +)1 55 1 3303 2448 t 10 R f (16)3398 2448 w 7 S f (- -)1 39 1 3509 2408 t 7 R f (2)3559 2408 w 10 R f (\) \) \))2 179 1 3634 2448 t 10 S f (~)3862 2428 w (~)3862 2453 w 10 R f (0. 03)1 183 1 3958 2448 t (instead of 16)2 516 1 720 2628 t 10 I f (/ /)1 28 1 1244 2628 t 10 R f (17)1280 2628 w 10 S f (~)1421 2608 w (~)1421 2633 w 10 R f (0. 94.)1 208 1 1517 2628 t cleartomark showpage saveobj restore %%EndPage: 1 47 %%Page: 1 48 /saveobj save def mark 48 pagesetup 10 B f (Appendix Honeywell)1 893 1 2433 840 t 12 B f (6080N)2717 1320 w 10 R f (This machine has a base-2 hardware FP representation with an exponent range of)12 3242 1 970 1476 t 10 S f (- -)1 55 1 4237 1476 t 10 R f (128 to +127,)2 509 1 4292 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (27 in single-precision, and)3 1060 1 901 1596 t 10 I f (t t)1 28 1 1986 1596 t 10 S f (= =)1 55 1 2063 1596 t 10 R f ( test was run under the SR-JS1 operating)7 1629( The)1 205(63 in double-precision.)2 924 3 2167 1596 t (system using the unoptimized fortran compiler.)5 1893 1 720 1716 t (The smallest positive number)3 1180 1 970 1872 t 10 I f (x x)1 44 1 2175 1872 t 10 S f (= =)1 55 1 2268 1872 t 10 R f (2)2372 1872 w 7 S f (- -)1 39 1 2433 1832 t 7 R f (128)2483 1832 w 10 S f (\264)2604 1872 w 10 R f (0. 1)1 133 1 2667 1872 t 7 R f (2)2811 1892 w 10 R f (does not have a representable negative because)6 1877 1 2879 1872 t ( Thus,)1 275(floating-point numbers are represented in 2's complement.)6 2343 2 720 1992 t 10 I f (e e)1 44 1 3363 1992 t 7 R f (min)3418 2012 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 3585 1992 t 10 R f (127, rather than)2 629 1 3768 1992 t 10 S f (- -)1 55 1 4422 1992 t 10 R f (128, must be)2 514 1 4493 1992 t (used.)720 2112 w (This machine has been thoroughly tested, and with the above penalty on)11 2885 1 970 2268 t 10 I f (e e)1 44 1 3880 2268 t 7 R f (min)3935 2288 w 10 R f (the model is correctly)3 868 1 4078 2268 t (supported.)720 2388 w 10 B f (The Past.)1 400 1 720 2628 t 10 R f (Before System Release J, when underflow was not tested \()9 2340 1 970 2784 t 10 CW f (CHEKUF)3335 2784 w 10 R f (= .)1 106 1 3720 2784 t 10 CW f (FALSE)3826 2784 w 10 R f (. \), this machine)3 641 1 4126 2784 t (passed the FP test with the minor penalty on)8 1772 1 720 2904 t 10 I f (e e)1 44 1 2517 2904 t 7 R f (min)2572 2924 w 10 R f ( in single-precision, when under-)4 1317( However,)1 440(noted above.)1 510 3 2715 2904 t ( exponent)1 391( FP)1 162(flow was tested, a gross error in the operating system underflow trap-handler was uncovered.)13 3716 3 720 3024 t ( operation whose mathemat-)3 1134( Any)1 222(wrap-around could occur and FP underflow could result in huge numbers.)10 2953 3 720 3144 t (ical result was)2 571 1 720 3264 t 10 S f (- -)1 55 1 1316 3264 t 10 R f (2)1411 3264 w 7 S f (- -)1 39 1 1472 3224 t 7 R f (129)1522 3224 w 10 R f (, an unrepresentable FP number, could result in a monstrously large computed result.)12 3393 1 1635 3264 t (The FP test detected this for both the)7 1474 1 970 3420 t 10 S f (\264)2469 3420 w 10 R f (and)2549 3420 w 10 I f (/ /)1 28 1 2718 3420 t 10 R f ( for example, a Type 1 mantissa, with)7 1506(operators. Take,)1 670 2 2771 3420 t 10 I f (i i)1 28 1 720 3540 t 10 S f (= =)1 55 1 797 3540 t 10 R f (27,)901 3540 w 10 I f (x x)1 44 1 1051 3540 t 10 S f (= =)1 55 1 1144 3540 t 10 R f (2)1248 3540 w 7 S f (- -)1 39 1 1309 3500 t 7 R f (127)1359 3500 w 10 R f (\( 2)1 115 1 1513 3540 t 7 S f (- -)1 39 1 1639 3500 t 7 R f (1)1689 3500 w 10 S f (+ +)1 55 1 1772 3540 t 10 R f (2)1867 3540 w 7 S f (- -)1 39 1 1928 3500 t 7 R f (27)1978 3500 w 10 R f (\) and a Type 2 mantissa, with)6 1179 1 2088 3540 t 10 I f (i i)1 28 1 3292 3540 t 10 S f (= =)1 55 1 3369 3540 t 10 R f (27,)3473 3540 w 10 I f (y y)1 44 1 3623 3540 t 10 S f ( -)1 0( -)1 112(= =)1 55 3 3716 3540 t 10 R f (2)3899 3540 w 7 S f (- -)1 39 1 3960 3500 t 7 R f (1)4010 3500 w 10 R f (\( 2)1 115 1 4094 3540 t 7 S f (- -)1 39 1 4220 3500 t 7 R f (1)4270 3500 w 10 S f (+ +)1 55 1 4353 3540 t 10 R f (. . .)2 125 1 4473 3515 t 10 S f (+ +)1 55 1 4663 3540 t 10 R f (2)4758 3540 w 7 S f (- -)1 39 1 4819 3500 t 7 R f (27)4869 3500 w 10 R f (\).)4979 3540 w (Then)720 3660 w 10 I f (x x)1 44 1 950 3660 t 10 S f (\264)1035 3660 w 10 I f (y y)1 44 1 1131 3660 t 10 S f ( -)1 0( -)1 112(= =)1 55 3 1224 3660 t 10 R f (2)1431 3660 w 7 S f (- -)1 39 1 1492 3620 t 7 R f (128)1542 3620 w 10 R f (\( 2)1 115 1 1696 3660 t 7 S f (- -)1 39 1 1822 3620 t 7 R f (1)1872 3620 w 10 S f (+ +)1 55 1 1955 3660 t 10 R f (2)2050 3660 w 7 S f (- -)1 39 1 2111 3620 t 7 R f (29)2161 3620 w 10 S f (+ +)1 55 1 2279 3660 t 10 R f (. . .)2 125 1 2399 3635 t ( 27 bits, this result is)5 829(\). To)1 219 2 2581 3660 t 10 S f (- -)1 55 1 3654 3660 t 10 R f (2)3749 3660 w 7 S f (- -)1 39 1 3810 3620 t 7 R f (129)3860 3620 w 10 R f ( the computed result)3 813(. Yet,)1 244 2 3973 3660 t (was)720 3780 w 10 S f (- -)1 55 1 900 3780 t 10 R f (2)995 3780 w 7 S f (+ +)1 39 1 1056 3740 t 7 R f (127)1106 3740 w 10 R f (, which is off by a factor of 2)8 1161 1 1219 3780 t 7 S f (+ +)1 39 1 2391 3740 t 7 R f (256)2441 3740 w 10 R f (.)2554 3780 w (Another example found was for any Type 1 \( see \(2.2\) \) mantissa)12 2602 1 970 3936 t 10 I f (m m)1 72 1 3597 3936 t ( l)1 0( l)1 36(f f)1 28 3 1938 4201 t 10 R f (\()2043 4201 w 10 S f (- -)1 55 1 2125 4201 t (\354)2228 4114 w (\355)2228 4214 w (\356)2228 4314 w 10 R f (2)2310 4216 w 7 S f (- -)1 39 1 2371 4176 t 7 R f (2)2421 4176 w 10 I f (m m)1 72 1 2496 4216 t 10 S f (\374)2601 4114 w (\375)2601 4214 w (\376)2601 4314 w 10 I f (/ /)1 28 1 2691 4201 t 10 S f (\354)2768 4114 w (\355)2768 4214 w (\356)2768 4314 w 10 R f (2)2850 4216 w 7 S f (+ +)1 39 1 2911 4176 t 7 R f (127)2961 4176 w 10 I f (m m)1 72 1 3106 4216 t 10 S f (\374)3211 4114 w (\375)3211 4214 w (\376)3211 4314 w 10 R f (\))3301 4201 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 3391 4201 t 10 R f (2)3598 4201 w 7 S f (+ +)1 39 1 3659 4161 t 7 R f (127)3709 4161 w 10 R f (just as in the previous case of)6 1176 1 720 4486 t 10 I f (x x)1 44 1 1921 4486 t 10 S f (\264)2006 4486 w 10 I f (y y)1 44 1 2102 4486 t 10 R f (.)2146 4486 w (The above errors were reported to Honeywell and the trap-handler has been repaired in System)14 3789 1 970 4642 t (Release J.)1 399 1 720 4762 t (The above situation shows that)4 1238 1 970 4918 t 10 B f (any)2233 4918 w 10 R f (anomaly may imply real trouble.)4 1307 1 2414 4918 t 10 CW f (FPTSB)3841 4918 w 10 R f (reported that)1 507 1 4166 4918 t 10 I f (e e)1 44 1 720 5038 t 7 R f (min)775 5058 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 942 5038 t 10 R f (127 was correctly supported when)4 1369 1 1125 5038 t 10 CW f (CHEKUF)2554 5038 w 10 R f (= .)1 106 1 2939 5038 t 10 CW f (FALSE)3045 5038 w 10 R f (., and the report that multiplication and)6 1560 1 3345 5038 t (division fail when)2 722 1 720 5158 t 10 CW f (CHEKUF)1467 5158 w 10 R f (= .)1 106 1 1852 5158 t 10 CW f (TRUE)1958 5158 w 10 R f (. could have been written-off as "small errors in small numbers.")10 2583 1 2198 5158 t 10 B f (Any)4831 5158 w 10 R f ( this case, with)3 594( In)1 133(anomaly may imply serious trouble, which further runs can define.)9 2665 3 720 5278 t 10 CW f (CHEKUF)4137 5278 w 10 S f (= =)1 55 1 4522 5278 t 10 R f (.)4602 5278 w 10 CW f (TRUE)4627 5278 w 10 R f (.)4867 5278 w (and)720 5398 w 10 CW f (EPRINT)889 5398 w 10 S f (= =)1 55 1 1274 5398 t 10 R f (.)1354 5398 w 10 CW f (TRUE)1379 5398 w 10 R f (. in)1 128 1 1619 5398 t 10 CW f (FPTSD)1772 5398 w 10 R f (, the above examples of gross trouble would be printed out and the user)13 2851 1 2072 5398 t (could see that the errors were not "small.")7 1673 1 720 5518 t cleartomark showpage saveobj restore %%EndPage: 1 48 %%Page: 1 49 /saveobj save def mark 49 pagesetup 10 B f (Appendix HP)1 582 1 2589 840 t 12 B f (9000/210)2653 1320 w 10 R f (The 9000/210 has a base-2 FP hardware representation with an exponent range of)12 3259 1 970 1476 t 10 S f (- -)1 55 1 4254 1476 t 10 R f (125 to)1 253 1 4325 1476 t 10 S f (+ +)1 55 1 4603 1476 t 10 R f (128,)4674 1476 w 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 for single-precision, and)3 1098 1 901 1596 t 10 I f (t t)1 28 1 2024 1596 t 10 S f (= =)1 55 1 2101 1596 t 10 R f (56 for double-precision.)2 962 1 2205 1596 t (This machine has been probed by Rick Becker.)7 1885 1 970 1752 t 10 I f (e e)1 44 1 2905 1752 t 7 R f (min)2960 1772 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 3127 1752 t 10 R f (102 and)1 319 1 3310 1752 t 10 I f (e e)1 44 1 3654 1752 t 7 R f (max)3709 1772 w 10 S f (= =)1 55 1 3887 1752 t 10 R f (127 are correctly sup-)3 872 1 3991 1752 t ( penalty on)2 444(ported. The)1 485 2 720 1872 t 10 I f (e e)1 44 1 1674 1872 t 7 R f (min)1729 1892 w 10 R f (is due to comparisons being done by subtraction followed by compare to zero.)12 3126 1 1872 1872 t ( largest exponent is)3 774( The)1 205(Thus, small, close but not equal numbers may compare equal through underflow.)11 3240 3 720 1992 t ( problems have been reported to HP and they are being fixed.)11 2450( These)1 288(simply not handled correctly.)3 1171 3 720 2112 t 12 B f (9000/720)2653 2352 w 10 R f (The 9000/720 has a base-2 FP hardware representation with an exponent range of)12 3259 1 970 2508 t 10 S f (- -)1 55 1 4254 2508 t 10 R f (125 to)1 253 1 4325 2508 t 10 S f (+ +)1 55 1 4603 2508 t 10 R f (128,)4674 2508 w 10 I f (t t)1 28 1 720 2628 t 10 S f (= =)1 55 1 797 2628 t 10 R f (24 for single-precision, and)3 1098 1 901 2628 t 10 I f (t t)1 28 1 2024 2628 t 10 S f (= =)1 55 1 2101 2628 t 10 R f ( Layman tested this machine and found)6 1570( Paul)1 228(56 for double-precision.)2 962 3 2205 2628 t (the parameters correctly supported.)3 1407 1 720 2748 t 12 B f (9836)2760 2988 w 10 R f (The 99836 has a base-2 FP representation with an exponent range of)11 2736 1 970 3144 t 10 S f (- -)1 55 1 3731 3144 t 10 R f (125 to)1 253 1 3802 3144 t 10 S f (+ +)1 55 1 4080 3144 t 10 R f (128,)4151 3144 w 10 I f (t t)1 28 1 4351 3144 t 10 S f (= =)1 55 1 4428 3144 t 10 R f (24 for)1 241 1 4532 3144 t (single-precision, and)1 832 1 720 3264 t 10 I f (t t)1 28 1 1577 3264 t 10 S f (= =)1 55 1 1654 3264 t 10 R f (56 for double-precision.)2 962 1 1758 3264 t ( too is being repaired.)4 868( It)1 111(The current situation for this machine is the same as for the 9000/210 above.)13 3062 3 970 3420 t cleartomark showpage saveobj restore %%EndPage: 1 49 %%Page: 1 50 /saveobj save def mark 50 pagesetup 10 B f (Appendix IBM)1 643 1 2558 840 t 12 B f (370/168, 3032, 3081, 4341-1)3 1394 1 2183 1320 t 10 R f (These machines have a base-16 hardware representation with an exponent range of)11 3309 1 970 1476 t 10 S f (- -)1 55 1 4304 1476 t 10 R f (64 to)1 203 1 4375 1476 t 10 S f (+ +)1 55 1 4603 1476 t 10 R f (63,)4674 1476 w 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (6 in single-precision, and)3 1010 1 901 1596 t 10 I f (t t)1 28 1 1936 1596 t 10 S f (= =)1 55 1 2013 1596 t 10 R f (14 in double-precision.)2 924 1 2117 1596 t (These machines have been thoroughly tested, and the above parameters are correctly supported.)12 3823 1 970 1752 t 10 B f (Intermittents)720 1992 w 10 R f ( testing, our 3032 had precisely one)6 1423( During)1 333(Intermittent errors are common and IBM is no exception.)8 2288 3 970 2148 t ( test reported that a containment interval [)7 1672( The)1 205(intermittent fault detected.)2 1057 3 720 2268 t 10 I f (L L)1 56 1 3695 2268 t 10 R f (,)3759 2268 w 10 I f (R R)1 61 1 3825 2268 t 10 R f (] for one of the results had)6 1053 1 3927 2268 t 10 I f (L L)1 56 1 720 2388 t 10 S f (> >)1 55 1 825 2388 t 10 I f (R R)1 61 1 929 2388 t 10 R f ( is not only a logical impossibility, but it has never happened before or since on that machine.)17 3738(. This)1 253 2 990 2388 t (The owner of this busy machine was concerned enough to run the test 15 minutes a day for two months)19 4130 1 720 2508 t (looking for the bug to pop up again, to no avail.)10 1910 1 720 2628 t 12 B f (PC/XT)2700 2868 w 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 3024 t 10 S f (- -)1 55 1 4100 3024 t 10 R f (125 to)1 253 1 4171 3024 t 10 S f (+ +)1 55 1 4449 3024 t 10 R f (128 and)1 319 1 4520 3024 t 10 I f (t t)1 28 1 720 3144 t 10 S f (= =)1 55 1 797 3144 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 3144 t 10 S f (- -)1 55 1 3492 3144 t 10 R f (1021 to)1 303 1 3563 3144 t 10 S f (+ +)1 55 1 3891 3144 t 10 R f (1024 with)1 403 1 3962 3144 t 10 I f (t t)1 28 1 4390 3144 t 10 S f (= =)1 55 1 4467 3144 t 10 R f (53. Thus,)1 400 1 4571 3144 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 3264 t (This machine has been thoroughly tested by Leonilda Farrow of Bell Central Research, and the above)15 4065 1 970 3420 t (parameters are correctly supported.)3 1406 1 720 3540 t 12 B f (RS6000)2683 3780 w 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 3936 t 10 S f (- -)1 55 1 4100 3936 t 10 R f (125 to)1 253 1 4171 3936 t 10 S f (+ +)1 55 1 4449 3936 t 10 R f (128 and)1 319 1 4520 3936 t 10 I f (t t)1 28 1 720 4056 t 10 S f (= =)1 55 1 797 4056 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 4056 t 10 S f (- -)1 55 1 3492 4056 t 10 R f (1021 to)1 303 1 3563 4056 t 10 S f (+ +)1 55 1 3891 4056 t 10 R f (1024 with)1 403 1 3962 4056 t 10 I f (t t)1 28 1 4390 4056 t 10 S f (= =)1 55 1 4467 4056 t 10 R f (53. Thus,)1 400 1 4571 4056 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 4176 t (This machine has been thoroughly tested and the above parameters are correctly supported.)12 3644 1 970 4332 t 10 B f (The Past)1 375 1 720 4572 t 10 R f (Due to compiler and micro-code errors, the early versions of these machines had some strange behav-)15 4062 1 970 4728 t ( example, in double precision)4 1179(ior. For)1 325 2 720 4848 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2511 5078 t 10 R f (\()2607 5078 w 7 I f (i i)1 20 1 2680 5178 t 7 S f (= =)1 39 1 2716 5178 t 7 R f (1)2766 5178 w 15 S f (S)2696 5108 w 7 R f (53)2706 4978 w 10 R f (2)2801 5078 w 7 S f (- -)1 39 1 2862 5038 t 7 I f (i i)1 20 1 2912 5038 t 10 R f (\))2972 5078 w 10 S f (> >)1 55 1 3062 5078 t 10 R f (1)3166 5078 w 10 I f (. .)1 25 1 3224 5078 t cleartomark showpage saveobj restore %%EndPage: 1 50 %%Page: 1 51 /saveobj save def mark 51 pagesetup 10 B f (Appendix ICL)1 621 1 2569 840 t 12 B f (2900)2760 1320 w 10 R f (This machine has a base-16 hardware representation with an exponent range of)11 3155 1 970 1476 t 10 S f (- -)1 55 1 4150 1476 t 10 R f (64 to)1 203 1 4221 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (63,)4520 1476 w 10 I f (t t)1 28 1 4670 1476 t 10 S f (= =)1 55 1 4747 1476 t 10 R f (6 in)1 153 1 4851 1476 t (single-precision, and)1 832 1 720 1596 t 10 I f (t t)1 28 1 1577 1596 t 10 S f (= =)1 55 1 1654 1596 t 10 R f (14 in double-precision.)2 924 1 1758 1596 t ( above param-)2 570( The)1 205(This machine has been thoroughly tested by Brian Wichmann of NPL in England.)12 3277 3 970 1752 t (eters are correctly supported with the exception that the machine suffers from terminal exponent wrap-)14 4101 1 720 1872 t ( smallest exponent in the machine is)6 1449(around. The)1 507 2 720 1992 t 10 S f (- -)1 55 1 2701 1992 t 10 R f (64 and if any computed result should have an exponent)9 2205 1 2772 1992 t ( example,)1 388( For)1 189(less than that it becomes positive.)5 1344 3 720 2112 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2666 2112 t 10 R f (\( 16)1 165 1 2762 2112 t 7 S f (- -)1 39 1 2938 2072 t 7 R f (65)2988 2072 w 10 I f (/ /)1 28 1 3107 2112 t 10 R f (16)3176 2112 w 7 R f (13)3281 2072 w 10 R f (\))3391 2112 w 10 S f (= =)1 55 1 3481 2112 t 10 R f (16)3585 2112 w 7 S f (+ +)1 39 1 3696 2072 t 7 R f (50)3746 2072 w 10 S f (~)3865 2092 w (~)3865 2117 w 10 R f ( 10)1 132(1. 6)1 133 2 3961 2112 t 7 S f (+ +)1 39 1 4237 2072 t 7 R f (60)4287 2072 w 10 R f (.)4365 2112 w cleartomark showpage saveobj restore %%EndPage: 1 51 %%Page: 1 52 /saveobj save def mark 52 pagesetup 10 B f (Appendix Intel)1 643 1 2558 840 t 12 B f (8087)2760 1320 w 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1476 t 10 S f (- -)1 55 1 4100 1476 t 10 R f (125 to)1 253 1 4171 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (128 and)1 319 1 4520 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1596 t 10 S f (- -)1 55 1 3492 1596 t 10 R f (1021 to)1 303 1 3563 1596 t 10 S f (+ +)1 55 1 3891 1596 t 10 R f (1024 with)1 403 1 3962 1596 t 10 I f (t t)1 28 1 4390 1596 t 10 S f (= =)1 55 1 4467 1596 t 10 R f (53. Thus,)1 400 1 4571 1596 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 1716 t (This machine has been thoroughly tested by Wayne Fullerton of IMSL, and the above parameters are)15 4042 1 970 1872 t (correctly supported.)1 798 1 720 1992 t cleartomark showpage saveobj restore %%EndPage: 1 52 %%Page: 1 53 /saveobj save def mark 53 pagesetup 10 B f (Appendix Interdata)1 848 1 2456 840 t 12 B f (8/32)2773 1320 w 10 R f (This machine has a base-16 hardware FP representation with an exponent range of)12 3292 1 970 1476 t 10 S f (- -)1 55 1 4287 1476 t 10 R f (64 to)1 203 1 4358 1476 t 10 S f (+ +)1 55 1 4586 1476 t 10 R f (63,)4657 1476 w 10 I f (t t)1 28 1 4807 1476 t 10 S f (= =)1 55 1 4884 1476 t 10 R f (6)4988 1476 w (in single-precision and)2 910 1 720 1596 t 10 I f (t t)1 28 1 1655 1596 t 10 S f (= =)1 55 1 1732 1596 t 10 R f (14 in double-precision.)2 924 1 1836 1596 t (This machine has been thoroughly tested and the above parameters are correctly supported under the)14 4018 1 970 1752 t (manufacturers operating system and complier.)4 1849 1 720 1872 t 10 B f (The Past.)1 400 1 720 2112 t 10 R f (This machine had a very serious design error)7 1793 1 970 2268 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2421 2448 t 10 R f (\()2517 2448 w 10 I f (x x)1 44 1 2558 2448 t 10 S f (- -)1 55 1 2651 2448 t 10 R f (16)2755 2448 w 7 S f (- -)1 39 1 2866 2408 t 7 R f (64)2916 2408 w 10 I f (x x)1 44 1 3035 2448 t 10 R f (\))3111 2448 w 10 S f (\272)3193 2448 w 10 R f (0)3289 2448 w (for)720 2628 w 10 I f ( y)1 0(a an ny)2 144 2 861 2628 t 10 R f (number)1030 2628 w 10 I f (x x)1 44 1 1360 2628 t 10 R f ( for example,)2 529(. Thus,)1 300 2 1404 2628 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2415 2808 t 10 R f (\( 1)1 115 1 2487 2808 t 10 S f (- -)1 55 1 2651 2808 t 10 R f (16)2755 2808 w 7 S f (- -)1 39 1 2866 2768 t 7 R f (64)2916 2768 w 10 R f (\))3026 2808 w 10 S f (= =)1 55 1 3116 2808 t 10 R f (0 !)1 124 1 3220 2808 t (This error was detected by)4 1058 1 720 2988 t 10 CW f (FPTSB)1803 2988 w 10 R f (and reported to Interdata, which had been purchased in the meantime by)11 2882 1 2128 2988 t ( immediately identified the error, in the division micro-code, and re-designed)10 3084(Perkin-Elmer. Perkin-Elmer)1 1151 2 720 3108 t (their newer models as a result.)5 1214 1 720 3228 t (Perkin-Elmer ran the test software in both single and double precision, under their own operating sys-)15 4066 1 970 3384 t ( single-precision, the machine tested correctly with)6 2038( In)1 133(tem, pretending that the machine was base-2.)6 1802 3 720 3504 t 10 I f (b b)1 50 1 4718 3504 t 10 S f (= =)1 55 1 4817 3504 t 10 R f (2,)4921 3504 w 10 I f (t t)1 28 1 720 3624 t 10 S f (= =)1 55 1 797 3624 t 10 R f (21,)901 3624 w 10 I f (e e)1 44 1 1051 3624 t 7 R f (min)1106 3644 w 10 S f ( -)1 0( -)1 112(= =)1 55 3 1273 3624 t 10 R f (256 and)1 319 1 1456 3624 t 10 I f (e e)1 44 1 1800 3624 t 7 R f (max)1855 3644 w 10 S f ( +)1 0( +)1 112(= =)1 55 3 2033 3624 t 10 R f ( In)1 133( is consistent with a base-16 machine with 6 hex digits.)10 2207(252. This)1 403 3 2216 3624 t (double-precision, the exponents were the same, and)6 2062 1 720 3744 t 10 I f (t t)1 28 1 2807 3744 t 10 S f (= =)1 55 1 2884 3744 t 10 R f ( is consistent with a base-16 machine with)7 1690(53. This)1 353 2 2988 3744 t (14 hex digits.)2 542 1 720 3864 t (The repaired machine is correct to all the digits the manufacturer claims.)11 2899 1 970 4020 t 10 B f (Local Intermittent Errors)2 1103 1 720 4260 t 10 R f (Fortunately for the floating-point test software, our Bell Laboratories in-house machine displayed)11 3900 1 970 4416 t ( division lost accu-)3 758( Specifically,)1 552(other anomalous FP behavior not found in any other 8/32's, old or new.)12 2864 3 720 4536 t ( shows the ability of the test to detect)8 1488( This)1 228(racy, and the amount varied from day to day, month to month.)11 2486 3 720 4656 t ( a result of this discovery, we corrected tem-)8 1776( As)1 161(and provide evidence of intermittent floating-point errors.)6 2310 3 720 4776 t ( then gave)2 410( We)1 188(perature control problems and expanded our program of machine repair and maintenance.)11 3579 3 720 4896 t (the machine away.)2 745 1 720 5016 t (The test was run on an in-house 8/32 that used the)10 2003 1 970 5172 t 10 I f ( X)1 0( IX)1 61( NI)1 33(U UN)1 139 4 2998 5172 t 10 R f ( The)1 205( operating system.)2 730(6. 0)1 133 3 3272 5172 t 10 CW f (FORTRAN)4365 5172 w 10 R f (com-)4810 5172 w ( program can say)3 684( The)1 205(piler on this system only supports double-precision.)6 2069 3 720 5292 t 10 CW f (REAL)3703 5292 w 10 R f (, but the compiler would)4 980 1 3943 5292 t ( continued to model)3 797( We)1 188( only double-precision could be checked in-house.)6 2010( So)1 156(compile double-precision.)1 1043 5 720 5412 t (the 8/32 as a)3 502 1 720 5532 t 10 I f (t t)1 28 1 1247 5532 t 7 R f (2)1286 5552 w 10 R f (bit base-2 machine, even though it was base-16, because the number of bits correctly sup-)14 3587 1 1354 5532 t (ported was not reflected by the number of hex digits)9 2088 1 720 5652 t 10 I f (t t)1 28 1 2833 5652 t 7 R f (16)2872 5672 w 10 R f ( is,)1 117(supported. That)1 652 2 2975 5652 t 10 I f (t t)1 28 1 3769 5652 t 7 R f (2)3808 5672 w 10 S f (\271)3892 5652 w 10 R f (4)3988 5652 w 10 I f (t t)1 28 1 4070 5652 t 7 R f (16)4109 5672 w 10 S f (- -)1 55 1 4227 5652 t 10 R f ( final bad)2 377(3. The)1 280 2 4322 5652 t (news on)1 330 1 720 5772 t 10 I f (/ /)1 28 1 1075 5772 t 10 R f (was that it was only good to 39 bits, that is, for)11 1875 1 1128 5772 t 10 I f (b b)1 50 1 3028 5772 t 10 S f (= =)1 55 1 3127 5772 t 10 R f (2 only)1 253 1 3231 5772 t 10 I f (t t)1 28 1 3509 5772 t 10 S f (= =)1 55 1 3586 5772 t 10 R f (39, rather than)2 579 1 3690 5772 t 10 I f (t t)1 28 1 4294 5772 t 10 S f (= =)1 55 1 4371 5772 t 10 R f (53, was cor-)2 490 1 4475 5772 t ( see what the problem was,)5 1081( To)1 161( happened to the 14 missing bits?)6 1333( What)1 266(rectly supported.)1 671 5 720 5892 t 10 CW f (FPTSD)4292 5892 w 10 R f (was run)1 313 1 4617 5892 t (with T)1 264 1 720 6012 t 10 S f (= =)1 55 1 1009 6012 t 10 R f (40.)1113 6012 w 10 CW f (FPTSD)1358 6012 w 10 R f (reported that T)2 593 1 1683 6012 t 10 S f (= =)1 55 1 2301 6012 t 10 R f (40 was correctly supported, provided that division was imple-)8 2472 1 2405 6012 t ( division on the 8/32 is)5 915( However,)1 440(mented as a composite operation.)4 1334 3 720 6132 t 10 B f (not)3434 6132 w 10 R f ( the)1 147( Thus,)1 275(a composite operation.)2 907 3 3598 6132 t ( see what the problem was, the above run was repeated with)11 2394( To)1 161(above warning about division is serious.)5 1610 3 720 6252 t 10 CW f (EXPAND)720 6372 w 10 S f (= =)1 55 1 1105 6372 t 10 R f (0 and)1 219 1 1209 6372 t 10 CW f (EPRINT)1453 6372 w 10 S f (= =)1 55 1 1838 6372 t 10 R f (.)1918 6372 w 10 CW f (TRUE)1943 6372 w 10 R f ( doesn't allow any Expanding of containment intervals for)8 2330( This)1 228(. .)1 75 3 2183 6372 t 10 I f (/ /)1 28 1 4841 6372 t 10 R f (.)4869 6372 w (The printout gave the following example.)5 1659 1 720 6492 t cleartomark showpage saveobj restore %%EndPage: 1 53 %%Page: 2 54 /saveobj save def mark 54 pagesetup 10 R f (\261 Interdata-2 \261)2 587 1 2586 480 t 10 CW f ( /)1 180(Failure for operation)2 1260 2 1140 900 t ( 40000)1 660( 40800000)1 720(x =)1 480 3 1140 1020 t ( 4000)1 660( 40200000)1 720(y =)1 480 3 1140 1140 t ( ffff)1 660( 41400000)1 720(Result =)1 480 3 1140 1260 t ( 10000)1 660( 41400000)1 720(L =)1 480 3 1140 1380 t ( 18000)1 660( 41400000)1 720(R =)1 480 3 1140 1500 t ( 0)1 420( Exponent\(X\) =)2 840( 38,)1 360(Sign\(x\) = +, Type\(X\) = 1, I\(X\) =)7 1920 4 1140 1620 t ( -2)1 420( Exponent\(Y\) =)2 840( 40,)1 360(Sign\(y\) = +, Type\(Y\) = 1, I\(Y\) =)7 1920 4 1140 1740 t 10 R f (The first line and last two lines of the above output shows that for)13 2628 1 720 1920 t 10 I f (x x)1 44 1 3373 1920 t 10 S f ( +)1 0( +)1 112(= =)1 55 3 3466 1920 t 10 R f (2)3673 1920 w 7 R f (0)3728 1880 w 10 R f (\( 2)1 124 1 3779 1920 t 7 S f (- -)1 39 1 3914 1880 t 7 R f (1)3964 1880 w 10 S f (+ +)1 55 1 4056 1920 t 10 R f (2)4160 1920 w 7 S f (- -)1 39 1 4221 1880 t 7 R f (38)4271 1880 w 10 R f (\) and)1 243 1 4390 1920 t 10 I f (y y)1 44 1 720 2040 t 10 S f ( +)1 0( +)1 112(= =)1 55 3 813 2040 t 10 R f (2)1020 2040 w 7 S f (- -)1 39 1 1081 2000 t 7 R f (2)1131 2000 w 10 R f (\( 2)1 91 1 1215 2040 t 7 S f (- -)1 39 1 1317 2000 t 7 R f (1)1367 2000 w 10 S f (+ +)1 55 1 1459 2040 t 10 R f (2)1563 2040 w 7 S f (- -)1 39 1 1624 2000 t 7 R f (40)1674 2000 w 10 R f (\) we have that Result)4 843 1 1793 2040 t 10 S f (= =)1 55 1 2661 2040 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2773 2040 t 10 R f (\()2845 2040 w 10 I f ( y)1 0( y)1 76( /)1 0( /)1 60(x x)1 44 5 2910 2040 t 10 R f (\) was not in the correct containment interval [L,)8 1910 1 3122 2040 t ( last 14 hex digits are)5 852( The)1 205( clarity, the values of x, y, Result, L and R are printed in "hex" \(base-16\).)15 2927(R]. For)1 314 4 720 2160 t ( 0's are suppressed in the hex)6 1175( Leading)1 377(the mantissa and leading hex digits are the sign and biased exponent.)11 2752 3 720 2280 t ( error was)2 398( The)1 205(output and the length of the second word in the representation of the FP numbers varies.)15 3523 3 720 2400 t ( this division was done correctly on other 8/32's, both old and new.)12 2692( However,)1 440(very small, in the last bit.)5 1014 3 720 2520 t (When the user is told that the test has been passed with the assumption that division is a composite)18 3948 1 970 2676 t ( the user is a physicist trying to get some work done, he can be)14 2505( If)1 116(operator, there are two possible responses.)5 1693 3 720 2796 t ( if the user is a mainframe designer or maintenance engineer,)10 2435( However,)1 440(happy and go on with his work.)6 1263 3 720 2916 t (who knows that division was not intended to be composite, the response must be to see if the message)18 4077 1 720 3036 t (means digits are being dropped.)4 1273 1 720 3156 t cleartomark showpage saveobj restore %%EndPage: 2 54 %%Page: 1 55 /saveobj save def mark 55 pagesetup 10 B f (Appendix MIPS)1 693 1 2533 840 t 12 B f (Mips 2000)1 531 1 2614 1320 t 10 R f (These machines have a base-2 hardware representation with an exponent range of)11 3259 1 970 1476 t 10 S f (- -)1 55 1 4254 1476 t 10 R f (125 to)1 253 1 4325 1476 t 10 S f (+ +)1 55 1 4603 1476 t 10 R f (128 and)1 319 1 4674 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1596 t 10 S f (- -)1 55 1 3492 1596 t 10 R f (1021 to)1 303 1 3563 1596 t 10 S f (+ +)1 55 1 3891 1596 t 10 R f (1024 with)1 403 1 3962 1596 t 10 I f (t t)1 28 1 4390 1596 t 10 S f (= =)1 55 1 4467 1596 t 10 R f (53. Thus,)1 400 1 4571 1596 t (they implement the IEEE Floating-point standard for single and double precision.)10 3261 1 720 1716 t (These machines have been thoroughly tested and the above parameters are correctly supported.)12 3798 1 970 1872 t cleartomark showpage saveobj restore %%EndPage: 1 55 %%Page: 1 56 /saveobj save def mark 56 pagesetup 10 B f (Appendix Miscellaneous Machines)2 1479 1 2140 840 t 10 R f ( test has not been run on these)7 1201( The)1 205(This appendix is a compilation of tidbits about various machines.)9 2610 3 970 1236 t ( errors are)2 403( The)1 205(machines but the errors discussed would have been found if the test had been run on them.)16 3613 3 720 1356 t (too good to pass up discussing.)5 1245 1 720 1476 t 10 B f (Ancient History)1 680 1 720 1716 t 10 R f (The first two examples are from "old" machines.)7 1945 1 970 1872 t 12 B f (Atlas-1)2696 2112 w 10 R f ( the last bit of its)5 670( had)1 194(David Wheeler of Cambridge notes that the Atlas-1 made by Ferranti in 195?)12 3089 3 970 2268 t (FP result register stuck at 1, permanently.)6 1665 1 720 2388 t 12 B f (HP-45 Hand Calculator)2 1222 1 2269 2628 t 10 R f (A somewhat offbeat example of the utility of \(2.2\) in detecting errors is the now famous wiring error)17 4026 1 970 2784 t ( not even being)3 613( \))1 73( \( 1. 01 \))4 273( \( exp)2 241( error resulted in log)4 815( That)1 233(on the early models of the HP-45 hand calculator.)8 1988 7 720 2904 t ( is one of the numbers which would be used from)10 1975( 01)1 108( the HP-45 is a base 10 machine, 1.)8 1409( Since)1 272( 01.)1 133(close to 1.)2 408 6 720 3024 t ( \( exp \()3 234( and exp are hard-wired processes and log)7 1675(\(2.2\). log)1 394 3 720 3144 t 10 I f (x x)1 44 1 3031 3144 t 10 R f (\) \))1 74 1 3083 3144 t 10 S f (~)3206 3124 w (~)3206 3149 w 10 I f (x x)1 44 1 3302 3144 t 10 R f ( In)1 133(would be a logical relation to test.)6 1357 2 3371 3144 t ( \( exp \()3 234(fact, log)1 327 2 720 3264 t 10 I f (x x)1 44 1 1289 3264 t 10 R f (\) \))1 74 1 1341 3264 t 10 S f (~)1464 3244 w (~)1464 3269 w 10 I f (x x)1 44 1 1560 3264 t 10 R f (failed for)1 368 1 1629 3264 t 10 B f (all)2022 3264 w 10 I f (x x)1 44 1 2153 3264 t 10 R f ( 01.)1 133('s with type 1 mantissas from \(2.2\), not just 1.)9 1844 2 2197 3264 t 10 B f (The Present)1 513 1 720 3504 t 10 R f (Now for some more modern machines.)5 1558 1 970 3660 t 12 B f (Apple II Plus and Apple IIe)5 1420 1 2170 3900 t 10 R f (This example is from Prof. Kendall Atkinson of the University of Iowa and was also reported in the)17 3983 1 970 4056 t ( base is 2 and the mantissas of these machines are 4)11 2060( The)1 205(SIGNUM Newsletter, volume 18, 1983, page 2.)6 1914 3 720 4176 t ( is,)1 117( That)1 233(bytes \( 32 bits \) long.)5 850 3 720 4296 t 10 I f (t t)1 28 1 1945 4296 t 10 S f (= =)1 55 1 2022 4296 t 10 R f (32. Let)1 308 1 2126 4296 t 10 I f (z z)1 39 1 2459 4296 t 10 S f (= =)1 55 1 2547 4296 t 10 R f (0. 5)1 133 1 2651 4296 t 10 S f (+ +)1 55 1 2833 4296 t 10 R f (2)2937 4296 w 7 S f (- -)1 39 1 2998 4256 t 7 R f (25)3048 4256 w 10 R f ( would expect that)3 735(. We)1 213 2 3126 4296 t 10 I f (w w)1 67 1 4099 4296 t 10 S f (= =)1 55 1 4215 4296 t 10 R f (2)4319 4296 w 10 I f (* *)1 50 1 4377 4296 t 10 R f (\()4435 4296 w 10 I f ( /)1 0( /)1 36(z z)1 39 3 4476 4296 t 10 R f ( should)1 292(2 \))1 91 2 4559 4296 t (give)720 4416 w 10 I f (w w)1 67 1 917 4416 t 10 S f (= =)1 55 1 1033 4416 t 10 I f (z z)1 39 1 1137 4416 t 10 R f ( we get)2 288(. However,)1 465 2 1176 4416 t 10 I f (w w)1 67 1 1954 4416 t 10 S f (= =)1 55 1 2070 4416 t 10 R f (0. 5)1 133 1 2174 4416 t 10 S f (+ +)1 55 1 2356 4416 t 10 R f (2)2460 4416 w 7 S f (- -)1 39 1 2521 4376 t 7 R f (26)2571 4376 w 10 R f ( the best supported value of)5 1101(. Thus,)1 300 2 2649 4416 t 10 I f (t t)1 28 1 4075 4416 t 10 R f (is 24, quite a bit dif-)5 811 1 4128 4416 t (ferent from 32.)2 601 1 720 4536 t 12 B f (A C language Vax 11/780 FP Simulator)6 2014 1 1873 4776 t 10 R f ( The)1 205(Andy Koenig made a simulator for Vax 11/780 FP arithmetic in the C programming language.)14 3777 2 970 4932 t (intent was to provide a familiar FP to micro-computers with the only assumption being that 16 bit integer)17 4212 1 720 5052 t ( wanted to test his simulator.)5 1150( He)1 166(arithmetic is correctly supported.)3 1320 3 720 5172 t (This was done by changing 12 lines of code in the)10 2003 1 970 5328 t 10 CW f (FPTST)2998 5328 w 10 R f (software to call the C simulation routines)6 1649 1 3323 5328 t ( The)1 205( is, statements like "z = x + y" were changed to read "call add\(x,y,z\)".)14 2781( That)1 233(to do the FP operations.)4 953 4 720 5448 t ( the Vax was used to check the)7 1233( So)1 156(test was run on a Vax 11/780, which has the identical FP representation.)12 2885 3 720 5568 t ( the sign bit was lost when adding 0 to a negative num-)12 2204( First,)1 259( minor errors were found.)4 1022( Two)1 233(C simulator.)1 495 5 720 5688 t ( underflow was checked against an exponent threshold that was one too small.)12 3125(ber. Second,)1 521 2 720 5808 t 12 B f (Prime 400/550.)1 767 1 2496 6048 t 10 R f (This machine has a base-2 hardware representation with)7 2241 1 970 6204 t 10 I f (t t)1 28 1 3236 6204 t 10 S f (= =)1 55 1 3313 6204 t 10 R f (47 and)1 269 1 3417 6204 t 10 I f (e e)1 44 1 3711 6204 t 7 R f (max)3766 6224 w 10 S f (= =)1 55 1 3944 6204 t 10 R f (32639 in single-)2 650 1 4048 6204 t ( problems discussed below were reported by E. H. Stafford at Georgia Tech in "A Report on)16 3689(precision. The)1 596 2 720 6324 t (the Accuracy of Prime Computer's Floating Point Hardware and Software", Technical Report GIT-ICS-)12 4158 1 720 6444 t (83/09, 1983.)1 503 1 720 6564 t (Whenever a number)2 808 1 970 6720 t 10 I f (x x)1 44 1 1803 6720 t 10 R f (with the smallest possible exponent is multiplied by a number greater than 0.5)12 3123 1 1872 6720 t (an overflow occurs, thus, 1)4 1081 1 720 6840 t 10 S f (\264)1809 6840 w 10 I f (x x)1 44 1 1872 6840 t 10 R f ( multiplication always sets the last two bits of the result to)11 2325(overflows. Also,)1 688 2 1941 6840 t ( 1 is not the multiplicative identity unless)7 1654(zero. Thus,)1 471 2 720 6960 t 10 I f (t t)1 28 1 2870 6960 t 10 S f (= =)1 55 1 2947 6960 t 10 R f (45 is used.)2 425 1 3051 6960 t 12 B f (Telefunken TR 440)2 987 1 2386 7200 t cleartomark showpage saveobj restore %%EndPage: 1 56 %%Page: 2 57 /saveobj save def mark 57 pagesetup 10 R f (\261 Miscellaneous Machines-2 \261)3 1223 1 2268 480 t (This is a bizarre base-16 machine with 9.5 base-16 digits in the mantissa and a base-16 exponent)16 3863 1 970 840 t (range of)1 329 1 720 960 t 10 S f (- -)1 55 1 1074 960 t 10 R f ( was brought to my attention by Thomas Haarmann of the University of Osnabruck.)13 3351( It)1 111(64 to 63.)2 353 3 1145 960 t ( using)1 242( Clearly,)1 369(The problem here is how to represent 9.5 hex digits in the model used in the test.)16 3230 3 720 1080 t 10 I f (b b)1 50 1 4586 1080 t 10 S f (= =)1 55 1 4685 1080 t 10 R f (16 is)1 192 1 4789 1080 t ( by using)2 367( However,)1 440(out of the question.)3 772 3 720 1200 t 10 I f (b b)1 50 1 2324 1200 t 10 S f (= =)1 55 1 2423 1200 t 10 R f (2 the arithmetic can be modeled with)6 1481 1 2527 1200 t 10 I f (t t)1 28 1 4033 1200 t 10 S f (= =)1 55 1 4110 1200 t 10 R f ( 3 bits lost)3 415(35. The)1 330 2 4214 1200 t (are due to the "wobbling" precision of hex arithmetic.)8 2148 1 720 1320 t cleartomark showpage saveobj restore %%EndPage: 2 57 %%Page: 1 58 /saveobj save def mark 58 pagesetup 10 B f (Appendix Multiflow)1 865 1 2447 840 t 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1236 t 10 S f (- -)1 55 1 4100 1236 t 10 R f (125 to)1 253 1 4171 1236 t 10 S f (+ +)1 55 1 4449 1236 t 10 R f (128 and)1 319 1 4520 1236 t 10 I f (t t)1 28 1 720 1356 t 10 S f (= =)1 55 1 797 1356 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1356 t 10 S f (- -)1 55 1 3492 1356 t 10 R f (1021 to)1 303 1 3563 1356 t 10 S f (+ +)1 55 1 3891 1356 t 10 R f (1024 with)1 403 1 3962 1356 t 10 I f (t t)1 28 1 4390 1356 t 10 S f (= =)1 55 1 4467 1356 t 10 R f (53. Thus,)1 400 1 4571 1356 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 1476 t 10 B f (The Past)1 375 1 720 1716 t 10 R f ( In)1 133(An early version of this machine was thoroughly tested by John Walden and errors were found.)15 3809 2 970 1872 t (double precision,)1 688 1 720 1992 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1969 2222 t 10 R f (\( \( 2)2 180 1 2065 2222 t 7 S f (- -)1 39 1 2256 2182 t 7 R f (1021)2306 2182 w 10 S f (\264)2486 2222 w 7 I f (i i)1 20 1 2581 2322 t 7 S f (= =)1 39 1 2617 2322 t 7 R f (1)2667 2322 w 15 S f (S)2597 2252 w 7 R f (53)2607 2122 w 10 R f (2)2702 2222 w 7 S f (- -)1 39 1 2763 2182 t 7 I f (i i)1 20 1 2813 2182 t 10 R f (\))2873 2222 w 10 I f (/ /)1 28 1 2946 2222 t 10 R f (\( 2)1 115 1 3006 2222 t 7 R f (1)3126 2182 w 10 S f (\264)3201 2222 w 10 R f (2)3288 2222 w 7 S f (- -)1 39 1 3349 2182 t 7 R f (1)3399 2182 w 10 R f (\) \))1 106 1 3474 2222 t 10 S f (= =)1 55 1 3637 2222 t 10 R f (0)3741 2222 w (instead of just returning the first argument.)6 1712 1 720 2482 t cleartomark showpage saveobj restore %%EndPage: 1 58 %%Page: 1 59 /saveobj save def mark 59 pagesetup 10 B f (Appendix Perkin-Elmer)1 1031 1 2364 840 t 12 B f (3320.)2745 1320 w 10 R f (The Perkin-Elmer 3220 has a base-16 hardware FP representation with an exponent range from)13 3805 1 970 1476 t 10 S f (- -)1 55 1 4800 1476 t 10 R f (64)4871 1476 w (to)720 1596 w 10 S f (+ +)1 55 1 823 1596 t 10 R f (63,)894 1596 w 10 I f (t t)1 28 1 1044 1596 t 10 S f (= =)1 55 1 1121 1596 t 10 R f (6 in single-precision, and)3 1010 1 1225 1596 t 10 I f (t t)1 28 1 2260 1596 t 10 S f (= =)1 55 1 2337 1596 t 10 R f (14 in double-precision.)2 924 1 2441 1596 t (This machine has been thoroughly tested, and the above parameters are correctly supported when run)14 4043 1 970 1752 t (under the manufacturer's operating system and compiler.)6 2281 1 720 1872 t cleartomark showpage saveobj restore %%EndPage: 1 59 %%Page: 1 60 /saveobj save def mark 60 pagesetup 10 B f (Appendix Pyramid)1 815 1 2472 840 t 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1236 t 10 S f (- -)1 55 1 4100 1236 t 10 R f (125 to)1 253 1 4171 1236 t 10 S f (+ +)1 55 1 4449 1236 t 10 R f (128 and)1 319 1 4520 1236 t 10 I f (t t)1 28 1 720 1356 t 10 S f (= =)1 55 1 797 1356 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1356 t 10 S f (- -)1 55 1 3492 1356 t 10 R f (1021 to)1 303 1 3563 1356 t 10 S f (+ +)1 55 1 3891 1356 t 10 R f (1024 with)1 403 1 3962 1356 t 10 I f (t t)1 28 1 4390 1356 t 10 S f (= =)1 55 1 4467 1356 t 10 R f (53. Thus,)1 400 1 4571 1356 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 1476 t (This machine has been thoroughly tested and the above parameters appear to be correctly supported)14 3985 1 970 1632 t ( is, the errors reported by the test are)8 1460( That)1 233(by the hardware, but the machine gives non-reproducable results.)8 2605 3 720 1752 t ( Stu Feldman of Bell Central Research has deter-)8 1958( Furthermore,)1 574(not repeatable from one run to the next.)7 1580 3 720 1872 t (mined that a small)3 736 1 720 1992 t 10 CW f (FORTRAN)1516 1992 w 10 R f ( current conjecture is that the)5 1161( The)1 205(program can get random results as well.)6 1594 3 1961 1992 t (problem is due to internal FP registers not being saved on context switches or page faults.)15 3585 1 720 2112 t 10 B f (The Past)1 375 1 720 2352 t 10 R f (This machine had a serious design error)6 1591 1 970 2508 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1816 2738 t 10 R f (\( 2)1 115 1 1912 2738 t 7 S f (- -)1 39 1 2038 2698 t 7 R f (54)2088 2698 w 7 I f (i i)1 20 1 2206 2838 t 7 S f (= =)1 39 1 2242 2838 t 7 R f (1)2292 2838 w 15 S f (S)2222 2768 w 7 R f (53)2232 2638 w 10 R f (2)2327 2738 w 7 S f (- -)1 39 1 2388 2698 t 7 I f (i i)1 20 1 2438 2698 t 10 S f (- -)1 55 1 2515 2738 t 10 R f (2)2619 2738 w 7 S f (- -)1 39 1 2680 2698 t 7 R f (54)2730 2698 w 10 R f (\))2840 2738 w 10 S f ( -)1 0(\272 -)1 159 2 2922 2738 t 10 R f (2)3097 2738 w 7 S f (- -)1 39 1 3158 2698 t 7 R f (85)3208 2698 w 10 R f (\( 2)1 115 1 3318 2738 t 7 S f (- -)1 39 1 3444 2698 t 7 R f (1)3494 2698 w 10 S f (+ +)1 55 1 3586 2738 t 10 R f (2)3690 2738 w 7 S f (- -)1 39 1 3751 2698 t 7 R f (22)3801 2698 w 10 R f (\))3911 2738 w (The correct result is)3 795 1 720 2998 t 10 S f (- -)1 55 1 1540 2998 t 10 R f (2)1611 2998 w 7 S f (- -)1 39 1 1672 2958 t 7 R f (107)1722 2958 w 10 R f (and the computed result is off by about 2)8 1637 1 1860 2998 t 7 S f (+ +)1 39 1 3508 2958 t 7 R f (22)3558 2958 w 10 R f (.)3636 2998 w cleartomark showpage saveobj restore %%EndPage: 1 60 %%Page: 1 61 /saveobj save def mark 61 pagesetup 10 B f (Appendix Sequent)1 788 1 2486 840 t 12 B f (Balance 8000)1 677 1 2541 1320 t 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1476 t 10 S f (- -)1 55 1 4100 1476 t 10 R f (125 to)1 253 1 4171 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (128 and)1 319 1 4520 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1596 t 10 S f (- -)1 55 1 3492 1596 t 10 R f (1021 to)1 303 1 3563 1596 t 10 S f (+ +)1 55 1 3891 1596 t 10 R f (1024 with)1 403 1 3962 1596 t 10 I f (t t)1 28 1 4390 1596 t 10 S f (= =)1 55 1 4467 1596 t 10 R f (53. Thus,)1 400 1 4571 1596 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 1716 t (This machine has been thoroughly tested by Ken Thompson, in double precision, and the above)14 3823 1 970 1872 t (parameters are correctly supported.)3 1406 1 720 1992 t cleartomark showpage saveobj restore %%EndPage: 1 61 %%Page: 1 62 /saveobj save def mark 62 pagesetup 10 B f (Appendix Silicon Graphics)2 1153 1 2303 840 t 10 R f (These machines have a base-2 hardware representation with an exponent range of)11 3259 1 970 1236 t 10 S f (- -)1 55 1 4254 1236 t 10 R f (125 to)1 253 1 4325 1236 t 10 S f (+ +)1 55 1 4603 1236 t 10 R f (128 and)1 319 1 4674 1236 t 10 I f (t t)1 28 1 720 1356 t 10 S f (= =)1 55 1 797 1356 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1356 t 10 S f (- -)1 55 1 3492 1356 t 10 R f (1021 to)1 303 1 3563 1356 t 10 S f (+ +)1 55 1 3891 1356 t 10 R f (1024 with)1 403 1 3962 1356 t 10 I f (t t)1 28 1 4390 1356 t 10 S f (= =)1 55 1 4467 1356 t 10 R f (53. Thus,)1 400 1 4571 1356 t (they implement the IEEE Floating-point standard for single and double precision.)10 3261 1 720 1476 t (These machines have been thoroughly tested and the above parameters are correctly supported.)12 3798 1 970 1632 t 10 B f (The Past)1 375 1 720 1872 t 10 R f (Early verions of the Iris 2400 Turbo using the Weitek chip had problems in single precision, causing)16 4020 1 970 2028 t (things like)1 420 1 720 2148 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 2251 2328 t 10 R f (\( \( 2)2 180 1 2347 2328 t 7 S f (- -)1 39 1 2538 2288 t 7 R f (125)2588 2288 w 10 S f (\264)2733 2328 w 10 R f (2)2820 2328 w 7 S f (- -)1 39 1 2881 2288 t 7 R f (1)2931 2288 w 10 R f (\))3006 2328 w 10 S f (\264)3079 2328 w 10 R f (1 \))1 115 1 3166 2328 t 10 S f (\272)3330 2328 w 10 R f (0)3426 2328 w 10 I f (. .)1 25 1 3484 2328 t cleartomark showpage saveobj restore %%EndPage: 1 62 %%Page: 1 63 /saveobj save def mark 63 pagesetup 10 B f (Appendix Solbourne)1 883 1 2438 840 t 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1236 t 10 S f (- -)1 55 1 4100 1236 t 10 R f (125 to)1 253 1 4171 1236 t 10 S f (+ +)1 55 1 4449 1236 t 10 R f (128 and)1 319 1 4520 1236 t 10 I f (t t)1 28 1 720 1356 t 10 S f (= =)1 55 1 797 1356 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1356 t 10 S f (- -)1 55 1 3492 1356 t 10 R f (1021 to)1 303 1 3563 1356 t 10 S f (+ +)1 55 1 3891 1356 t 10 R f (1024 with)1 403 1 3962 1356 t 10 I f (t t)1 28 1 4390 1356 t 10 S f (= =)1 55 1 4467 1356 t 10 R f (53. Thus,)1 400 1 4571 1356 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 1476 t (This machine has been thoroughly tested by John Walden and the above parameters are correctly)14 3874 1 970 1632 t (supported.)720 1752 w cleartomark showpage saveobj restore %%EndPage: 1 63 %%Page: 1 64 /saveobj save def mark 64 pagesetup 10 B f (Appendix Sun)1 611 1 2574 840 t 12 B f (Sun 3 and Sun 4/280)4 1050 1 2355 1320 t 10 R f (These machines have a base-2 hardware representation with an exponent range of)11 3259 1 970 1476 t 10 S f (- -)1 55 1 4254 1476 t 10 R f (125 to)1 253 1 4325 1476 t 10 S f (+ +)1 55 1 4603 1476 t 10 R f (128 and)1 319 1 4674 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1596 t 10 S f (- -)1 55 1 3492 1596 t 10 R f (1021 to)1 303 1 3563 1596 t 10 S f (+ +)1 55 1 3891 1596 t 10 R f (1024 with)1 403 1 3962 1596 t 10 I f (t t)1 28 1 4390 1596 t 10 S f (= =)1 55 1 4467 1596 t 10 R f (53. Thus,)1 400 1 4571 1596 t (they implement the IEEE Floating-point standard for single and double precision.)10 3261 1 720 1716 t (These machines have been thoroughly tested by John Walden and the above parameters are correctly)14 4028 1 970 1872 t (supported.)720 1992 w cleartomark showpage saveobj restore %%EndPage: 1 64 %%Page: 1 65 /saveobj save def mark 65 pagesetup 10 B f (Appendix Tandy)1 722 1 2519 840 t 12 B f (2000)2760 1320 w 10 R f (This machine has a base-2 hardware representation with an exponent range of)11 3105 1 970 1476 t 10 S f (- -)1 55 1 4100 1476 t 10 R f (125 to)1 253 1 4171 1476 t 10 S f (+ +)1 55 1 4449 1476 t 10 R f (128 and)1 319 1 4520 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (24 in single-precision, in double-precision the exponent range is)8 2566 1 901 1596 t 10 S f (- -)1 55 1 3492 1596 t 10 R f (1021 to)1 303 1 3563 1596 t 10 S f (+ +)1 55 1 3891 1596 t 10 R f (1024 with)1 403 1 3962 1596 t 10 I f (t t)1 28 1 4390 1596 t 10 S f (= =)1 55 1 4467 1596 t 10 R f (53. Thus,)1 400 1 4571 1596 t (the machine implements the IEEE Floating-point standard for single and double precision.)11 3613 1 720 1716 t (This machine has been thoroughly tested by David Gay of AT& Bell Laboratories and the above)15 3863 1 970 1872 t (parameters are correctly supported.)3 1406 1 720 1992 t cleartomark showpage saveobj restore %%EndPage: 1 65 %%Page: 1 66 /saveobj save def mark 66 pagesetup 10 B f (Appendix Univac)1 743 1 2508 840 t 12 B f (1100)2760 1320 w 10 R f (This machine has a base-2 hardware FP representation with an exponent range of)12 3242 1 970 1476 t 10 S f (- -)1 55 1 4237 1476 t 10 R f (128 to +127,)2 509 1 4292 1476 t 10 I f (t t)1 28 1 720 1596 t 10 S f (= =)1 55 1 797 1596 t 10 R f (27 in single-precision, and)3 1060 1 901 1596 t 10 I f (t t)1 28 1 1986 1596 t 10 S f (= =)1 55 1 2063 1596 t 10 R f (63 in double-precision.)2 924 1 2167 1596 t (The compiler used \( "field-data" \) was so buggy that not much of the test could be run, but we got)20 3907 1 970 1752 t ( first fact we got was that 1 is not the multiplicative identity, that is,)14 2705( The)1 205(some information.)1 733 3 720 1872 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 4388 1872 t 10 R f (\( 1)1 115 1 4484 1872 t 10 S f (\264)4607 1872 w 10 I f (x x)1 44 1 4670 1872 t 10 R f (\))4746 1872 w 10 S f (\271)4828 1872 w 10 I f (x x)1 44 1 4924 1872 t 10 R f (for some)1 352 1 720 1992 t 10 I f (x x)1 44 1 1097 1992 t 10 R f ( next piece of news was much more)7 1427( The)1 205( last bit is lost in such operations, not a great loss.)11 1986(. The)1 230 4 1141 1992 t ( are numbers)2 515(interesting. There)1 729 2 720 2112 t 10 I f (x x)1 44 1 1989 2112 t 10 S f (< <)1 55 1 2082 2112 t 10 R f (0 and)1 219 1 2186 2112 t 10 I f (y y)1 44 1 2430 2112 t 10 S f (< <)1 55 1 2523 2112 t 10 R f (0 such that)2 433 1 2627 2112 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 3085 2112 t 10 R f (\()3181 2112 w 10 I f (x x)1 44 1 3246 2112 t 10 S f (\264)3298 2112 w 10 I f (y y)1 44 1 3361 2112 t 10 R f (\))3437 2112 w 10 S f (< <)1 55 1 3527 2112 t 10 R f ( problem arises when)3 851(0! The)1 288 2 3631 2112 t 10 I f (x x)1 44 1 4795 2112 t 10 R f (and)4864 2112 w 10 I f (y y)1 44 1 720 2232 t 10 R f (are chosen to be so small that)6 1176 1 789 2232 t 10 I f ( l)1 0( l)1 36(f f)1 28 3 1990 2232 t 10 R f (\()2086 2232 w 10 I f (x x)1 44 1 2151 2232 t 10 S f (\264)2203 2232 w 10 I f (y y)1 44 1 2266 2232 t 10 R f ( underflow trap then sets the sign of the)8 1581( The)1 205(\) will underflow.)2 674 3 2342 2232 t (result to be the same as one of the operands.)9 1763 1 720 2352 t (The test of this machine remains incomplete: the machine has been sold and we no longer have)16 3799 1 970 2508 t (access to one.)2 551 1 720 2628 t cleartomark showpage saveobj restore %%EndPage: 1 66 %%Trailer done %%Pages: 66 %%DocumentFonts: Courier Times-Bold Times-Italic Times-Roman Times-Roman Symbol