Module osl_dist

module osl_dist

    ! Uses
    use osl_core, wp => osl_wp

    ! Subroutines and functions
    public function osl_normal_pdf(x, mu, sigma)
    public function osl_normal_cdf(x, mu, sigma)
    public function osl_normal_inv(p, mu, sigma)
    private subroutine uniform_parameters(l, u, a, b)
    public real (kind=wp) function osl_uniform_pdf(x, a, b)
    public real (kind=wp) function osl_uniform_cdf(x, a, b)
    public real (kind=wp) function osl_uniform_inv(p, a, b)
    public real (kind=wp) function osl_exponential_pdf(x, lambda)
    public real (kind=wp) function osl_exponential_cdf(x, lambda)
    public real (kind=wp) function osl_exponential_inv(p, lambda)
    public function osl_gumbel_pdf(x, mu, beta)
    public function osl_gumbel_cdf(x, mu, beta)
    public function osl_gumbel_inv(p, mu, beta)

end module osl_dist

Description of Subroutines and Functions

osl_normal_pdf

public function osl_normal_pdf(x, mu, sigma)
    real (kind=wp), intent(in) :: x
    real (kind=wp), optional, intent(in) :: mu
    real (kind=wp), optional, intent(in) :: sigma
    real (kind=wp) :: osl_normal_pdf
end function osl_normal_pdf

osl_normal_cdf

public function osl_normal_cdf(x, mu, sigma)
    real (kind=wp), intent(in) :: x
    real (kind=wp), optional, intent(in) :: mu
    real (kind=wp), optional, intent(in) :: sigma
    real (kind=wp) :: osl_normal_cdf
end function osl_normal_cdf

osl_normal_inv

public function osl_normal_inv(p, mu, sigma)
    real (kind=wp), intent(in) :: p
    real (kind=wp), optional, intent(in) :: mu
    real (kind=wp), optional, intent(in) :: sigma
    real (kind=wp) :: osl_normal_inv
end function osl_normal_inv

uniform_parameters

private subroutine uniform_parameters(l, u, a, b)
    real (kind=wp), intent(out) :: l
    real (kind=wp), intent(out) :: u
    real (kind=wp), optional, intent(in) :: a
    real (kind=wp), optional, intent(in) :: b
end subroutine uniform_parameters

osl_uniform_pdf

public real (kind=wp) function osl_uniform_pdf(x, a, b)
    real (kind=wp), intent(in) :: x
    real (kind=wp), optional, intent(in) :: a
    real (kind=wp), optional, intent(in) :: b
    ! Calls: uniform_parameters
end function osl_uniform_pdf

osl_uniform_cdf

public real (kind=wp) function osl_uniform_cdf(x, a, b)
    real (kind=wp), intent(in) :: x
    real (kind=wp), optional, intent(in) :: a
    real (kind=wp), optional, intent(in) :: b
    ! Calls: uniform_parameters
end function osl_uniform_cdf

osl_uniform_inv

public real (kind=wp) function osl_uniform_inv(p, a, b)
    real (kind=wp), intent(in) :: p
    real (kind=wp), optional, intent(in) :: a
    real (kind=wp), optional, intent(in) :: b
    ! Calls: uniform_parameters
end function osl_uniform_inv

osl_exponential_pdf

public real (kind=wp) function osl_exponential_pdf(x, lambda)
    real (kind=wp), intent(in) :: x
    real (kind=wp), intent(in) :: lambda
end function osl_exponential_pdf

osl_exponential_cdf

public real (kind=wp) function osl_exponential_cdf(x, lambda)
    real (kind=wp), intent(in) :: x
    real (kind=wp), intent(in) :: lambda
end function osl_exponential_cdf

osl_exponential_inv

public real (kind=wp) function osl_exponential_inv(p, lambda)
    real (kind=wp), intent(in) :: p
    real (kind=wp), intent(in) :: lambda
end function osl_exponential_inv

osl_gumbel_pdf

public function osl_gumbel_pdf(x, mu, beta)
    real (kind=wp), intent(in) :: x
    real (kind=wp), optional, intent(in) :: mu
    real (kind=wp), optional, intent(in) :: beta
    real (kind=wp) :: osl_gumbel_pdf
end function osl_gumbel_pdf

Return the value of the PDF of the Gumbel distribution with parameters MU and BETA at X. The default values for MU and BETA are 0.0_wp and 1.0_wp, respectively, corresponding to the standard Gumbel distribution.

osl_gumbel_cdf

public function osl_gumbel_cdf(x, mu, beta)
    real (kind=wp), intent(in) :: x
    real (kind=wp), optional, intent(in) :: mu
    real (kind=wp), optional, intent(in) :: beta
    real (kind=wp) :: osl_gumbel_cdf
end function osl_gumbel_cdf

Return the value of the CDF of the Gumbel distribution with parameters MU and BETA at X. The default values for MU and BETA are 0.0_wp and 1.0_wp, respectively, corresponding to the standard Gumbel distribution.

osl_gumbel_inv

public function osl_gumbel_inv(p, mu, beta)
    real (kind=wp), intent(in) :: p
    real (kind=wp), optional, intent(in) :: mu
    real (kind=wp), optional, intent(in) :: beta
    real (kind=wp) :: osl_gumbel_inv
end function osl_gumbel_inv

Return the value of the inverse CDF of the Gumbel distribution with parameters MU and BETA at X. The default values for MU and BETA are 0.0_wp and 1.0_wp, respectively, corresponding to the standard Gumbel distribution.