Random_ Derived Type

type, public :: Random_


Contents


Components

TypeVisibility AttributesNameInitial
integer(kind=int32), public :: random_int
integer(kind=int32), public, allocatable:: random_int_seed(:)
integer(kind=int32), public, allocatable:: random_int_vec(:)
real(kind=real64), public :: random_real
real(kind=real64), public, allocatable:: random_real_vec(:)

Type-Bound Procedures

procedure, public :: init => initRandom

  • public subroutine initRandom(obj)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj

procedure, public :: random => getRandom

  • public function getRandom(obj, distribution) result(x)

    Arguments

    Type IntentOptional AttributesName
    class(Random_) :: obj
    character(len=*), intent(in), optional :: distribution

    Return Value real(kind=real64)

procedure, public :: randint => getRandomInt

  • public function getRandomInt(obj, From, To) result(x)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(in) :: obj
    integer(kind=int32), intent(in) :: From
    integer(kind=int32), intent(in) :: To

    Return Value integer(kind=int32)

procedure, public :: name => nameRandom

  • public function nameRandom(obj) result(str)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj

    Return Value character(len=200)

procedure, public :: choiceInt => choiceRandomInt

  • public function choiceRandomInt(obj, Vector, Array) result(val)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(in) :: obj
    integer(kind=int32), intent(in), optional :: Vector(:)
    integer(kind=int32), intent(in), optional :: Array(:,:)

    Return Value integer(kind=int32)

procedure, public :: choiceReal => choiceRandomReal

  • public function choiceRandomReal(obj, Vector, Array) result(val)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(in) :: obj
    real(kind=real64), intent(in), optional :: Vector(:)
    real(kind=real64), intent(in), optional :: Array(:,:)

    Return Value real(kind=real64)

procedure, public :: uniform => uniformRandom

  • public function uniformRandom(obj, From, To) result(x)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(in) :: obj
    real(kind=real64), intent(in) :: From
    real(kind=real64), intent(in) :: To

    Return Value real(kind=real64)

procedure, public :: gauss => gaussRandom

  • public function gaussRandom(obj, mu, sigma) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    real(kind=real64), intent(in) :: mu
    real(kind=real64), intent(in) :: sigma

    Return Value real(kind=real64)

procedure, public :: ChiSquared => ChiSquaredRandom

  • public function ChiSquaredRandom(obj, k) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    real(kind=real64), intent(in) :: k

    Return Value real(kind=real64)

procedure, public :: Chauchy => ChauchyRandom

  • public function ChauchyRandom(obj, mu, gamma) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    real(kind=real64), intent(in) :: mu
    real(kind=real64), intent(in) :: gamma

    Return Value real(kind=real64)

procedure, public :: Lognormal => LognormalRandom

  • public function LognormalRandom(obj, mu, sigma) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    real(kind=real64), intent(in) :: mu
    real(kind=real64), intent(in) :: sigma

    Return Value real(kind=real64)

procedure, public :: InverseGauss => InverseGaussRandom

  • public function InverseGaussRandom(obj, mu, lambda) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    real(kind=real64), intent(in) :: mu
    real(kind=real64), intent(in) :: lambda

    Return Value real(kind=real64)

procedure, public :: save => saveRandom

  • public subroutine saveRandom(obj)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj

procedure, public, pass :: randnRandomVector

  • public function randnRandomVector(obj, d0) result(array)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: d0

    Return Value real(kind=real64), allocatable, (:)

procedure, public, pass :: randnRandomArray

  • public function randnRandomArray(obj, d0, d1) result(array)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: d0
    integer(kind=int32), intent(in) :: d1

    Return Value real(kind=real64), allocatable, (:,:)

generic, public :: randn => randnRandomArray, randnRandomVector

  • public function randnRandomArray(obj, d0, d1) result(array)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: d0
    integer(kind=int32), intent(in) :: d1

    Return Value real(kind=real64), allocatable, (:,:)

  • public function randnRandomVector(obj, d0) result(array)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: d0

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: fill => fillRandom

  • public subroutine fillRandom(obj, array, vector)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    real(kind=real64), intent(inout), optional :: array(:,:)
    real(kind=real64), intent(inout), optional :: vector(:)

procedure, public :: histogram => histogramRandom

  • public function histogramRandom(obj, list, division) result(histogram)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    real(kind=real64), intent(in) :: list(:)
    integer(kind=int32), intent(in), optional :: division

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: scalar => scalarRandom

  • public function scalarRandom(obj, size1) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: size1

    Return Value real(kind=real64), allocatable

procedure, public :: vector => vectorRandom

  • public function vectorRandom(obj, size1) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: size1

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: matrix => matrixRandom

  • public function matrixRandom(obj, size1, size2) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: size1
    integer(kind=int32), intent(in) :: size2

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: cube => cubeRandom

  • public function cubeRandom(obj, size1, size2, size3) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(Random_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: size1
    integer(kind=int32), intent(in) :: size2
    integer(kind=int32), intent(in) :: size3

    Return Value real(kind=real64), allocatable, (:,:,:)