dexppf(3f) - [M_datapac:PERCENT_POINT] compute the double exponential
percent point function
SUBROUTINE DEXPPF(P,Ppf)
REAL(kind=wp),intent(in) :: P
REAL(kind=wp),intent(out) :: Ppf
DEXPPF(3f) computes the percent point function value for the double
exponential (laplace) distribution with mean = 0 and standard deviation
= sqrt(2).
This distribution is defined for all x and has the probability
density function
f(x) = 0.5*exp(-abs(x)).
Note that the percent point function of a distribution is identically
the same as the inverse cumulative distribution function of the
distribution.
P The value (between 0.0 and 1.0, EXCLUSIVELY) at which the
percent point function is to be evaluated.
PPF The percent point function value.
Sample program:
program demo_dexppf
use M_datapac, only : dexppf
implicit none
! call dexppf(x,y)
end program demo_dexppf
Results:
The original DATAPAC library was written by James Filliben of the
Statistical Engineering Division, National Institute of Standards
and Technology.
John Urban, 2022.05.31
CC0-1.0
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in) | :: | P | |||
real(kind=wp), | intent(out) | :: | Ppf |
SUBROUTINE DEXPPF(P,Ppf) REAL(kind=wp),intent(in) :: P REAL(kind=wp),intent(out) :: Ppf ! ! CHECK THE INPUT ARGUMENTS FOR ERRORS ! IF ( P<=0.0_wp .OR. P>=1.0_wp ) THEN WRITE (G_IO,99001) 99001 FORMAT (' ***** FATAL ERROR--THE FIRST INPUT ARGUMENT TO DEXPPF(3f) IS OUTSIDE THE ALLOWABLE (0,1) INTERVAL *****') WRITE (G_IO,99002) P 99002 FORMAT (' ','***** THE VALUE OF THE ARGUMENT IS ',E15.8, ' *****') RETURN ELSE IF ( P<=0.5_wp ) Ppf = LOG(2.0_wp*P) IF ( P>0.5_wp ) Ppf = -LOG(2.0_wp*(1.0_wp-P)) ENDIF END SUBROUTINE DEXPPF