1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        CONLM2:   COMPUTES CONFIDENCE LIMITS FOR THE DIFFERENCE
4  REM                  BETWEEN TWO POPULATION MEANS
5  REM        36693 REV  A   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
9000  REM CONLM2--CONFIDENCE LIMITS FOR DIFFERENCE BETWEEN 2 MEANS
9002  DATA 5.E+06,5.39828E+06,5.7926E+06,6.17911E+06,6.55422E+06,6.91462E+06,7.25747E+06
9004  DATA 7.58036E+06,7.88145E+06,8.1594E+06,8.41345E+06,8.64334E+06,8.8493E+06,9.032E+06
9006  DATA 9.19243E+06,9.33193E+06,9.45201E+06,9.55435E+06,9.6407E+06,9.71283E+06,9.7725E+06
9008  DATA 9.82136E+06,9.86097E+06,9.89276E+06,9.91803E+06,9.9379E+06,9.95339E+06,9.96533E+06
9010  DATA 9.97445E+06,9.98134E+06,9.9865E+06,9.99032E+06,9.99313E+06,9.99517E+06,9.99663E+06
9012  DATA 9.99767E+06,9.99841E+06,9.99892E+06,9.99928E+06,9.99952E+06,9.99968E+06,9.99979E+06
9014  DATA 9.99987E+06,9.99992E+06,9.99995E+06,9.99997E+06,9.99998E+06,9.99999E+06,9.99999E+06
9016  DIM X[49]
9018  DEF FNQ()=M3+*R3
9020  DEF FND()=X[+1]-X[]
9022  DEF FNB()=U-*(-1)*(D2/(2*D1)+(-2)*D3/(6*D1))
9024  DEF FNZ()=1+((^2)+1)/(4*D)+(((^2)+3)*(5*(^2)+1))/(96*D^2)
9026  FOR I=1 TO 49
9028  READ X[I]
9030  NEXT I
9032  READ H1,N1,M1,S1,H2,N2,M2,S2
9034  IF H1 <> 0 THEN 9038
9036  LET H1=1.E+20
9038  IF H2 <> 0 THEN 9042
9040  LET H2=1.E+20
9042  LET M3=M1-M2
9044  LET T1=S1*SQR((N1*(H1-1))/(H1*(N1-1)))
9046  LET T2=S2*SQR((N2*(H2-1))/(H2*(N2-1)))
9048  LET R1=T1*SQR((H1-N1)/(N1*(H1-1)))
9050  LET R2=T2*SQR((H2-N2)/(N2*(H2-1)))
9052  LET R5=R1^2
9054  LET R6=R2^2
9056  LET R3=SQR(R5+R6)
9058  LET W=R5/(R5+R6)
9060  LET D=((N1-1)*(N2-1))/((N2-1)*W^2+(N1-1)*(1-W)^2)
9062  LET D=.1*INT(10*D+.5)
9064  PRINT 
9066  PRINT "       STATISTIC    ","SAMPLE 1","SAMPLE 2"
9068  PRINT 
9070  PRINT "SAMPLE MEAN         ",M1,M2
9072  PRINT "SAMPLE VARIANCE     ",S1^2,S2^2
9074  PRINT "SAMPLE STD DEVIATION",S1,S2
9076  PRINT "SAMPLE SIZE         ",N1,N2
9078  PRINT "POPULATION SIZE     ",
9080  IF H1 <> 1.E+20 THEN 9086
9082  PRINT "INFINITE",
9084  GOTO 9088
9086  PRINT H1,
9088  IF H2 <> 1.E+20 THEN 9094
9090  PRINT "INFINITE"
9092  GOTO 9096
9094  PRINT H2
9096  PRINT "ESTIM POPN STD DEV  ",T1,T2
9098  PRINT "STD ERROR OF MEAN   ",R1,R2
9100  PRINT 
9102  PRINT "DIFF BETWEEN MEANS    ","         ";M3
9104  PRINT "STD ERROR OF DIFF     ","         ";R3
9106  PRINT "DEGR OF F"'2"EEDOM (DIFF)","         ";D
9108  PRINT 
9110  PRINT 
9112  PRINT "CONFIDENCE LIMITS ON DIFFERENCE BETWEEN MEANS:"
9114  PRINT 
9116  PRINT "CONF LEVEL","LOWER LIM","UPPER LIM"
9118  PRINT 
9120  READ P
9122  IF P=1.E+32 THEN 9999
9124  LET A1=.5*(1+P)
9126  GOSUB 9138
9128  IF D=0 THEN 9134
9130  REM  FNZ CONVERTS STUDENT'S T TO A NORMAL DEVIATE:
9132  LET A2=A2*FNZ(A2)
9134  PRINT 100*P,FNQ(-A2),FNQ(A2)
9136  GOTO 9120
9138  IF A1>.5 THEN 9148
9140  LET A1=1-A1
9142  GOSUB 9156
9144  LET A2=-Q
9146  GOTO 9152
9148  GOSUB 9156
9150  LET A2=Q
9152  RETURN 
9154  REM  REVERSE INTERPOLATION FOR STD NORMAL DEVIATE:
9156  LET Z=1.E+07*A1
9158  FOR I=1 TO 46
9160  IF Z<X[I] THEN 9166
9162  NEXT I
9164  LET I=I-1
9166  LET I=I-1
9168  LET D1=FND(I)
9170  LET E1=FND(I+1)
9172  LET D2=E1-D1
9174  LET D3=FND(I+2)-E1-D2
9176  LET U=(Z-X[I])/D1
9178  LET Q=FNB(FNB(U))
9180  LET Q=.1*(Q+I-1)
9182  RETURN 
9900  DATA 1.E+20,18,28,26.2
9901  DATA 1.E+20,23,33,29.6
9998  DATA .5,.75,.9,.95,.99,.999,.9999,.99999,1.E+32
9999  END 
