SUBROUTINE LAMCDF(X,ALAMBA,CDF) C C PURPOSE--THIS SUBROUTINE COMPUTES THE CUMULATIVE DISTRIBUTION C FUNCTION VALUE FOR THE (TUKEY) LAMBDA DISTRIBUTION C WITH TAIL LENGTH PARAMETER VALUE = ALAMBA. C IN GENERAL, THE PROBABILITY DENSITY FUNCTION C FOR THIS DISTRIBUTION IS NOT SIMPLE. C THE PERCENT POINT FUNCTION FOR THIS DISTRIBUTION IS C G(P) = ((P**ALAMBA)-((1-P)**ALAMBA))/ALAMBA C INPUT ARGUMENTS--X = THE SINGLE PRECISION VALUE AT C WHICH THE CUMULATIVE DISTRIBUTION C FUNCTION IS TO BE EVALUATED. C --ALAMBA = THE SINGLE PRECISION VALUE OF LAMBDA C (THE TAIL LENGTH PARAMETER). C OUTPUT ARGUMENTS--CDF = THE SINGLE PRECISION CUMULATIVE C DISTRIBUTION FUNCTION VALUE. C OUTPUT--THE SINGLE PRECISION CUMULATIVE DISTRIBUTION C FUNCTION VALUE CDF FOR THE TUKEY LAMBDA DISTRIBUTION C WITH TAIL LENGTH PARAMETER = ALAMBA. C PRINTING--NONE UNLESS AN INPUT ARGUMENT ERROR CONDITION EXISTS. C RESTRICTIONS--FOR ALAMBA NON-POSITIVE, NO RESTRICTIONS ON X. C --FOR ALAMBA POSITIVE, X SHOULD BE BETWEEN (-1/ALAMBA) C AND (+1/ALAMBA), INCLUSIVELY. C OTHER DATAPAC SUBROUTINES NEEDED--NONE. C FORTRAN LIBRARY SUBROUTINES NEEDED--NONE. C MODE OF INTERNAL OPERATIONS--SINGLE PRECISION. C LANGUAGE--ANSI FORTRAN. C REFERENCES--HASTINGS, MOSTELLER, TUKEY, AND WINDSOR, C 'LOW MOMENTS FOR SMALL SAMPLES: A COMPARATIVE C STUDY OF ORDER STATISTICS', ANNALS OF C MATHEMATICAL STATISTICS, 18, 1947, C PAGES 413-426. C --FILLIBEN, SIMPLE AND ROBUST LINEAR ESTIMATION C OF THE LOCATION PARAMETER OF A SYMMETRIC C DISTRIBUTION (UNPUBLISHED PH.D. DISSERTATION, C PRINCETON UNIVERSITY), 1969, PAGES 42-44, 53-58. C WRITTEN BY--JAMES J. FILLIBEN C STATISTICAL ENGINEERING LABORATORY (205.03) C NATIONAL BUREAU OF STANDARDS C WASHINGTON, D. C. 20234 C PHONE: 301-921-2315 C ORIGINAL VERSION--JUNE 1972. C UPDATED --MAY 1974. C UPDATED --SEPTEMBER 1975. C UPDATED --NOVEMBER 1975. C C--------------------------------------------------------------------- C IPR=6 C C CHECK THE INPUT ARGUMENTS FOR ERRORS C IF(ALAMBA.LE.0.0)GOTO90 XMAX=1.0/ALAMBA XMIN=-XMAX IF(X.LT.XMIN.OR.X.GT.XMAX)GOTO50 GOTO90 50 WRITE(IPR,2) WRITE(IPR,46)X IF(X.LT.XMIN)CDF=0.0 IF(X.GT.XMAX)CDF=1.0 RETURN 90 CONTINUE 2 FORMAT(1H ,126H***** NON-FATAL DIAGNOSTIC--THE FIRST INPUT ARGUMEN 1T TO THE LAMCDF SUBROUTINE IS OUTSIDE THE USUAL +-(1/ALAMBA) INTER 1VAL *****) 46 FORMAT(1H ,35H***** THE VALUE OF THE ARGUMENT IS ,E15.8,6H *****) C C-----START POINT----------------------------------------------------- C IF(ALAMBA.GT.0.0)GOTO110 GOTO120 C 110 XMAX=1.0/ALAMBA XMIN=-XMAX IF(X.LE.XMIN)CDF=0.0 IF(X.GE.XMAX)CDF=1.0 IF(X.LE.XMIN.OR.X.GE.XMAX)RETURN C 120 CONTINUE IF(-0.001.LT.ALAMBA.AND.ALAMBA.LT.0.001)GOTO150 GOTO170 150 IF(X.GE.0.0)GOTO160 CDF=EXP(X)/(1.0+EXP(X)) RETURN 160 CDF=1.0/(1.0+EXP(-X)) RETURN C 170 IF(-0.001.LT.ALAMBA.AND.ALAMBA.LT.0.001)GOTO150 PMIN=0.0 PMID=0.5 PMAX=1.0 PLOWER=PMIN PUPPER=PMAX ICOUNT=0 210 XCALC=(PMID**ALAMBA-(1.0-PMID)**ALAMBA)/ALAMBA IF(XCALC.EQ.X)GOTO240 IF(XCALC.GT.X)GOTO220 PLOWER=PMID PMID=(PMID+PUPPER)/2.0 GOTO230 220 PUPPER=PMID PMID=(PMID+PLOWER)/2.0 230 PDEL=ABS(PMID-PLOWER) ICOUNT=ICOUNT+1 IF(PDEL.LT.0.000001.OR.ICOUNT.GT.30)GOTO240 GOTO210 240 CDF=PMID RETURN C END