Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0134/xspeed.fcl
There is 1 other file named xspeed.fcl in the archive. Click here to see a list.
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