|
- 10 PRINT "PROGRAM FILE 121: ACCURACY OF EXP FUNCTION."
- 20 PRINT " ANSI STANDARD 7.6, 8.4"
- 30 PRINT
- 40 PRINT "SECTION 121.1: ACCURACY OF EXP FUNCTION."
- 50 PRINT
- 60 PRINT "THIS PROGRAM TESTS VALUES RETURNED BY INVOCATIONS OF THE"
- 70 PRINT "EXP FUNCTION FOR ACCURACY. THE INVOCATION MUST RETURN,"
- 80 PRINT "ACCURATE TO SIX DIGITS, SOME VALUE ACTUALLY TAKEN ON BY"
- 90 PRINT "THE FUNCTION WITHIN A DOMAIN BOUNDED BY THE ACTUAL ARGUMENT"
- 100 PRINT "PLUS OR MINUS ONE IN THE SIXTH DIGIT. ALSO, AN"
- 110 PRINT "'ERROR MEASURE' IS COMPUTED AND REPORTED. THIS MEASURE"
- 120 PRINT "IS JUST 2 * THE ABSOLUTE ERROR OVER THE SIZE OF THE RANGE;"
- 130 PRINT "THUS, A VALUE JUST BARELY PASSING OR FAILING WILL USUALLY"
- 140 PRINT "HAVE A MEASURE OF ABOUT 1. A VALUE 3 TIMES"
- 150 PRINT "AS INACCURATE AS EXPECTED WILL HAVE A MEASURE OF 3."
- 160 PRINT
- 170 PRINT "THIS TEST IS INFORMATIVE ONLY, SINCE THE ANSI STANDARD"
- 180 PRINT "DOES NOT MANDATE ANY ACCURACY FOR SUPPLIED-FUNCTIONS."
- 190 PRINT
- 200 PRINT " BEGIN TEST"
- 210 PRINT
- 220 PRINT "ARGUMENT","TRUE","COMPUTED","ERROR","OUTCOME"
- 230 PRINT " ","VALUE","VALUE","MEASURE"
- 240 PRINT
- 250 LET F=0
- 260 READ A,T,L,H
- 270 IF A=999 THEN 2000
- 280 LET C=EXP(A)
- 290 IF C=T THEN 333
- 300 IF C<L THEN 444
- 310 IF C>H THEN 444
- 320 LET O$=" OK "
- 330 GOTO 500
- 333 LET O$=" OK - EXACT"
- 340 GOTO 500
- 444 LET O$="FAIL"
- 445 LET F=F+1
- 450 GOTO 500
- 500 LET R=H-L
- 510 IF R=0 THEN 700
- 520 LET E=ABS((C-T)/R)
- 525 LET E=E+E
- 530 PRINT A,T,C,E,O$
- 540 GOTO 260
- 700 PRINT A,T,C,"RANGE ZERO",O$
- 710 GOTO 260
- 2000 PRINT
- 2010 IF F=0 THEN 2100
- 2020 PRINT "*** INFORMATIVE TEST FAILED IN ";F;" CASE(S) ***"
- 2030 GOTO 2110
- 2100 PRINT "*** INFORMATIVE TEST PASSED ***"
- 2110 PRINT
- 2120 PRINT " END TEST"
- 2130 PRINT
- 2140 PRINT "END PROGRAM 121"
- 3000 DATA -0.874981000E+02, 0.100013354E-37
- 3010 DATA 0.100002853E-37, 0.100023857E-37
- 3020 DATA -0.859876000E+02, 0.452959954E-37
- 3030 DATA 0.452914160E-37, 0.453005753E-37
- 3040 DATA -0.750000000E+02, 0.267863696E-32
- 3050 DATA 0.267836411E-32, 0.267890984E-32
- 3060 DATA -0.444444000E+02, 0.498933114E-19
- 3070 DATA 0.498882722E-19, 0.498983510E-19
- 3080 DATA -0.234567000E+02, 0.649957001E-10
- 3090 DATA 0.649891508E-10, 0.650022501E-10
- 3100 DATA -0.777777000E+01, 0.418945382E-03
- 3110 DATA 0.418940692E-03, 0.418950072E-03
- 3120 DATA -0.222222000E+01, 0.108368264E+00
- 3130 DATA 0.108366680E+00, 0.108369848E+00
- 3140 DATA -0.100000000E+01, 0.367879441E+00
- 3150 DATA 0.367875262E+00, 0.367883620E+00
- 3160 DATA -0.999999000E+00, 0.367879809E+00
- 3170 DATA 0.367878941E+00, 0.367880677E+00
- 3180 DATA -0.456789000E+00, 0.633313955E+00
- 3190 DATA 0.633312821E+00, 0.633315089E+00
- 3200 DATA -0.987654000E-01, 0.905955220E+00
- 3210 DATA 0.905954629E+00, 0.905955811E+00
- 3220 DATA -0.987654000E-02, 0.990172073E+00
- 3230 DATA 0.990171562E+00, 0.990172583E+00
- 3240 DATA -0.987654000E-03, 0.999012834E+00
- 3250 DATA 0.999012332E+00, 0.999013335E+00
- 3260 DATA -0.987654000E-04, 0.999901239E+00
- 3270 DATA 0.999900739E+00, 0.999901740E+00
- 3280 DATA -0.987654000E-05, 0.999990124E+00
- 3290 DATA 0.999989623E+00, 0.999990624E+00
- 3300 DATA -0.987654000E-06, 0.999999012E+00
- 3310 DATA 0.999998512E+00, 0.999999513E+00
- 3320 DATA -0.987654000E-07, 0.999999901E+00
- 3330 DATA 0.999999401E+00, 1.000000402E+00
- 3340 DATA -0.987654000E-08, 0.999999990E+00
- 3350 DATA 0.999999490E+00, 1.000000491E+00
- 3360 DATA -0.987654000E-09, 0.999999999E+00
- 3370 DATA 0.999999499E+00, 1.000000500E+00
- 3380 DATA -0.987654000E-14, 1.000000000E+00
- 3390 DATA 0.999999499E+00, 1.000000500E+00
- 3400 DATA -0.987654000E-19, 1.000000000E+00
- 3410 DATA 0.999999499E+00, 1.000000500E+00
- 3420 DATA -0.987654000E-29, 1.000000000E+00
- 3430 DATA 0.999999499E+00, 1.000000500E+00
- 3442 DATA -0.987654000E-37, 1.000000000E+00
- 3444 DATA 0.999999499E+00, 1.000000500E+00
- 3445 DATA 0,1,1,1
- 3446 DATA 0.987654000E-37, 0.100000000E+01
- 3448 DATA .0999995000E+01, 0.100000500E+01
- 3449 DATA 0.987654000E-29, 0.100000000E+01
- 3450 DATA .0999995000E+01, 0.100000500E+01
- 3460 DATA 0.987654000E-19, 0.100000000E+01
- 3470 DATA .0999995000E+01, 0.100000500E+01
- 3480 DATA 0.987654000E-14, 0.100000000E+01
- 3490 DATA .0999995000E+01, 0.100000501E+01
- 3500 DATA 0.987654000E-09, 0.100000000E+01
- 3510 DATA .0999995000E+01, 0.100000501E+01
- 3520 DATA 0.987654000E-08, 0.100000001E+01
- 3530 DATA .0999995009E+01, 0.100000501E+01
- 3540 DATA 0.987654000E-07, 0.100000010E+01
- 3550 DATA .0999995098E+01, 0.100000510E+01
- 3560 DATA 0.987654000E-06, 0.100000099E+01
- 3570 DATA .0999995987E+01, 0.100000599E+01
- 3580 DATA 0.987654000E-05, 0.100000988E+01
- 3590 DATA 0.100000487E+01, 0.100001488E+01
- 3600 DATA 0.987654000E-04, 0.100009877E+01
- 3610 DATA 0.100009377E+01, 0.100010378E+01
- 3620 DATA 0.987654000E-03, 0.100098814E+01
- 3630 DATA 0.100098314E+01, 0.100099315E+01
- 3640 DATA 0.987654000E-02, 0.100992547E+01
- 3650 DATA 0.100992046E+01, 0.100993049E+01
- 3660 DATA 0.987654000E-01, 0.110380732E+01
- 3670 DATA 0.110380220E+01, 0.110381243E+01
- 3680 DATA 0.456789000E+00, 0.157899568E+01
- 3690 DATA 0.157898910E+01, 0.157900227E+01
- 3700 DATA 0.999999000E+00, 0.271827911E+01
- 3710 DATA 0.271827139E+01, 0.271828683E+01
- 3720 DATA 0.100000000E+01, 0.271828183E+01
- 3730 DATA 0.271824964E+01, 0.271831402E+01
- 3740 DATA 0.222222000E+01, 0.922779385E+01
- 3750 DATA 0.922769656E+01, 0.922789113E+01
- 3760 DATA 0.777777000E+01, 0.238694599E+04
- 3770 DATA 0.238691712E+04, 0.238697487E+04
- 3780 DATA 0.234567000E+02, 0.153856332E+11
- 3790 DATA 0.153840446E+11, 0.153872219E+11
- 3800 DATA 0.444444000E+02, 0.200427667E+20
- 3810 DATA 0.200407125E+20, 0.200448211E+20
- 3820 DATA 0.750000000E+02, 0.373324200E+33
- 3830 DATA 0.373286369E+33, 0.373362034E+33
- 3840 DATA 0.859876000E+02, 0.220770068E+38
- 3850 DATA 0.220747492E+38, 0.220792647E+38
- 3860 DATA 0.874981000E+02, 0.999866475E+38
- 3870 DATA 0.999765993E+38, 0.999966967E+38
- 9000 DATA 999,0,0,0
- 9400 END
|