ERASE ALL, C - ACCURACY TEST. 01.01 C- ACCURACY OF INTERNAL NUMBERS ... 01.02 X FOCAL(1,1),FOCAL(2,2);S INI=GETTAB(4,-1),X=1,DX=1 01.03 S M=N,DX=DX/2,Y=X+DX;D 30;IF (N-1000) 1.03 01.04 TYPE %2,M," BITS ACCURACY FOR INTERNAL NUMBERS."! 01.05 S Y=1.0000001,M=7;D 30;IF(1000-N)1.25 01.06 S Y=1.00000001,M=8;D 30;IF(1000-N)1.25 01.07 S Y=1.000000001,M=9;D 30;IF(1000-N)1.25 01.08 S Y=1.0000000001,M=10;D 30;I(1000-N)1.25 01.09 S Y=1.00000000001,M=11;D 30;I(1000-N)1.25 01.10 S Y=1.000000000001,M=12;D 30;I(1000-N)1.25 01.11 S Y=1.0000000000001,M=13;D 30;I(1000-N)1.25 01.12 S Y=1.00000000000001,M=14;D 30;I(1000-N)1.25 01.13 S Y=1.000000000000001,M=15;D 30;I(1000-N)1.25 01.14 S Y=1.0000000000000001,M=17;D 30;I(1000-N)1.25 01.15 S Y=1.000000000000000001,M=18;D 30;I(1000-N)1.25 01.16 S Y=1.0000000000000000001,M=19;D 30;I(1000-N)1.25 01.17 S Y=1.00000000000000000001,M=20;D 30;I(1000-N)1.25 01.18 S Y=1.000000000000000000001,M=21;D 30;I(1000-N)1.25 01.19 S Y=1.0000000000000000000001,M=22;D 30;I(1000-N)1.25 01.20 S Y=1.00000000000000000000001,M=23;D 30;I(1000-N)1.25 01.21 S Y=1.000000000000000000000001,M=24;D 30;I(1000-N)1.25 01.22 S Y=1.0000000000000000000000001,M=25;D 30;I(1000-N)1.25 01.23 S Y=1.00000000000000000000000001,M=26;D 30;I(1000-N)1.25 01.24 TYPE!"?ERROR IN NUMERIC INPUT ROUTINE"!;RETURN 01.25 TYPE%2,M," SIGNIFICANT DIGITS DISCERNED ON INPUT."! 01.40 T %9.03;C TYPE IN MILLISECONDS TO NEAREST MICRO-SECOND. 01.45 S JIF=50;IF FITR(FITR(2^6+GETTAB(9,15)/2^29)/2)-FITR(2^6+GETTAB(9,15)/2^29)/2 1.5;S JIF=60 01.50 T!"FOLLOWING FIGURES ARE BASED ON A"%2,JIF," CYCLE CLOCK:"! 01.80 G 3.01;COMMENCE EXECUTION. 01.90 C GROUP 2 IS A SCRATCH AREA. 03.01 OPERATE OUTPUT DSK:FOCAL.TMP;F X=2.01,.01,2.99;T%3.02,X,"C"!;C MAKE TEMPORARY FILE 03.02 OPERATE OUTPUT TTY:;L C FOCAL.TMP;T%5.03;C SET UP GROUP 2 FULL OF COMMENTS 03.03 31.02 F X=1,999;C 03.04 D 31;S A=B 03.05 31.02 F X=1,999; C 03.06 D 31;S SPT=B 03.07 31.02 F X=1,999;C12345678901234567890123456789012345678901234567890 03.08 D 31;S INT=B 03.09 31.02 F X=1,999;D 2.01 03.10 D 31;S DOT=B 03.11 2.01 G 2.02 03.12 D 31;S GOT=B 03.14 31.02 F X=1,999;D 2.99 03.16 D 31; S DPT=B 03.22 31.02 F X=1,999;S Y=0 03.23 D 31;S SET=B 03.24 31.02 F X=1,999;X 03.25 D 31;S XET=B 03.26 31.02 F X=1,999;X . 03.28 D 31;S DP=B 03.32 31.02 F X=1,999;X 0 03.34 D 31;S ZER=B 03.36 31.02 F X=1,999;X .0 03.38 D 31;S DRP=B 03.40 31.02 F X=1,999;X E 03.42 D 31;S DEX=B 03.44 31.02 F X=1,999;X +0 03.46 D 31;S SGN=B 03.50 31.02 F X=1,999;X 1+1 03.52 D 31;S OPA=B 03.54 31.02 F X=1,999;X 1-1 03.56 D 31;S OPS=B 03.58 31.02 F X=1,999;X 1*1 03.60 D 31;S OPM=B 03.62 31.02 F X=1,999;X 1/1 03.64 D 31;S OPD=B 03.66 31.02 F X=1,999;X 1^0 03.68 D 31;S OPE=B 03.70 31.02 F X=1,999;X 1^8 03.72 D 31;S OPF=B 03.74 31.02 F X=1,999;X () 03.76 D 31;S OPB=B 03.78 31.02 F X=1,999;X FSIN(2) 03.80 D 31;S OFS=B 03.82 31.02 F X=1,999;X FEXP(2) 03.84 D 31;S OFE=B 03.86 31.02 F X=1,999;X FLOG(2) 03.88 D 31;S OFL=B 03.90 31.02 F X=1,999;X FRAN(0) 03.92 D 31;S OFR=B 03.94 31.02 F X=1,999;X FATN(2) 03.96 D 31;S OFA=B 10.01 C TYPE-OUT SECTION. 10.02 T!!!"FEATURE TIME (MILLISEC) NOTES."! 10.04 T!"TO INTERPRET 1 SPACE ",(SPT-A)/999/50 10.06 T!"TO INTERPRET 1 CHARACTER ",(INT-A)/999/50 10.08 T!"TO SCAN FOR A LINE NUMBER ",(DPT-DOT)/999/98," PER LINE SCANNED OVER" 10.10 T!"TO EXECUTE A "'DO"' ",(DOT-A)/999," INCL. # INTERPRETATION" 10.12 T!"TO EXECUTE A "'GO TO"' ",(GOT-DOT)/999," INCL. # INTERPRETATION" 10.14 T!"TO EXECUTE A "'SET"' ",(SET-A)/999," INCLUDES DATA STORAGE" 10.16 T!"NUMERIC INPUT..."!" DECIMAL POINT ",(DP-XET)/999 10.18 T!" DIGITS LEFT OF POINT ",(ZER-XET)/999," PER DIGIT" 10.20 T!" DIGITS RIGHT OF POINT ",(DRP-DP)/999," PER DIGIT" 10.22 T!" EXPONENT ",(DEX-XET)/999," PLUS TIME FOR INTEGER" 10.24 T!" SIGN (+ OR -) ",(SGN-ZER)/999 10.26 T!"OPERATION + ",(OPA-SGN+ZER-XET)/999," PLUS INTERPRETATION" 10.28 T!"OPERATION - ",(OPS-SGN+ZER-XET)/999," PLUS INTERPRETATION" 10.30 T!"OPERATION * ",(OPM-SGN+ZER-XET)/999," PLUS INTERPRETATION" 10.32 T!"OPERATION / ",(OPD-SGN+ZER-XET)/999," PLUS INTERPRETATION" 10.34 T!"OPERATION ^ ",(OPE-SGN+ZER-DP)/999," IF FRACTIONAL POWER" 10.36 T!" PLUS ",(OPF-OPE)/999/4," PER POWER-OF-2 IN EXPONENT" 10.38 T!"OPERATION () ",(OPB-XET)/999," *" 10.40 T!"OPERATION FSIN(2) ",(OFS-XET)/999," *" 10.42 T!"OPERATION FEXP(2) ",(OFE-XET)/999," *" 10.44 T!"OPERATION FLOG(2) ",(OFL-XET)/999," *" 10.46 T!"OPERATION FRAN(0) ",(OFR-XET)/999," *" 10.48 T!"OPERATION FATN(2) ",(OFA-XET)/999," *" 10.98 T!!"* INCLUDING TIME TO INTERPRET THE CHARACTERS" 10.99 T!!"TIME FOR THIS TEST PROGRAM ",%3,(GETTAB(4,-1)-INI)/JIF," SECONDS."! 29.99 T!!!!;E 2;LIBRARY DELETE FOCAL.TMP;QUIT 30.10 C- SUBROUTINE TO MEASURE DIFFERENCE BETWEEN X AND Y. 30.11 C- N IS THE NUMBER OF BITS REQUIRED TO SEPARATE X FROM Y. 30.20 SET N=100000;IF (-FABS(X-Y)) 30.3;RETURN 30.30 SET N=1-FLOG(FABS(2*(X-Y)/(X+Y)))/FLOG(2);RETURN 31.01 S B=GETTAB(4,-1) 31.02 F X=1,999;S Y=+0 31.03 S B=(GETTAB(4,-1)-B)*1000/JIF;R TYPE !"FOCAL SPEED TRIALS. TO COMMENCE, TYPE 'GO'."! C - END OF XSPEED