Cumulative distribution function for exponential distribution.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in) | :: | x |
sample position |
||
real(kind=wp), | intent(in) | :: | lambda |
lambda parameter, beta(scale) = 1/lambda = mu/mean |
||
real(kind=wp), | intent(in) | :: | loc |
location parameter |
||
character(len=*), | intent(in) | :: | tail |
tail options |
returned probability integral
elemental function f_dst_exp_cdf_core(x, lambda, loc, tail) result(p) ! ==== Description !! Cumulative distribution function for exponential distribution. ! ==== Declarations real(wp) , intent(in) :: x !! sample position real(wp) , intent(in) :: loc !! location parameter real(wp) , intent(in) :: lambda !! lambda parameter, beta(scale) = 1/lambda = mu/mean character(len=*), intent(in) :: tail !! tail options real(wp) :: p !! returned probability integral ! ==== Instructions ! ---- compute CDF ! compute integral (left tailed) if (x .lt. loc) then p = 0.0_wp elseif (lambda .lt. 0.0_wp) then p = 0.0_wp else p = 1.0_wp - exp( - lambda * (x - loc) ) endif ! tail options select case(tail) ! left-tailed; P(z<x) case("left") p = p ! right-tailed; P(z>x) case("right") p = 1.0_wp - p end select end function f_dst_exp_cdf_core