cauchy Function

private function cauchy(location, scale)

Cauchy random number with specified location and scale parameters. The Cauchy distribution has heavier tails than the normal distribution, which can be useful for occasional large jumps in simulated annealing.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: location

location parameter (median)

real(kind=wp), intent(in) :: scale

scale parameter

Return Value real(kind=wp)


Calls

proc~~cauchy~~CallsGraph proc~cauchy cauchy proc~uniform_random_number uniform_random_number proc~cauchy->proc~uniform_random_number

Called by

proc~~cauchy~~CalledByGraph proc~cauchy cauchy proc~perturb_variable simulated_annealing_type%perturb_variable proc~perturb_variable->proc~cauchy proc~perturb_and_evaluate simulated_annealing_type%perturb_and_evaluate proc~perturb_and_evaluate->proc~perturb_variable proc~sa simulated_annealing_type%sa proc~sa->proc~perturb_and_evaluate proc~solve_simulated_annealing solve_simulated_annealing proc~solve_simulated_annealing->proc~sa

Source Code

   function cauchy(location, scale)

      real(wp),intent(in) :: location !! location parameter (median)
      real(wp),intent(in) :: scale    !! scale parameter
      real(wp) :: cauchy

      real(wp) :: u

      u = uniform_random_number()
      cauchy = location + scale * tan(pi * (u - 0.5_wp))

   end function cauchy