splitmix64_next_u64 Function

private function splitmix64_next_u64(self) result(r)

Full 64-bit random word. For SplitMix64 this is simply next; it exists so that both engines present the same interface to the shared real and bounded-integer conversions.

Type Bound

splitmix64_t

Arguments

Type IntentOptional Attributes Name
class(splitmix64_t), intent(inout) :: self

Return Value integer(kind=int64)


Calls

proc~~splitmix64_next_u64~~CallsGraph proc~splitmix64_next_u64 splitmix64_t%splitmix64_next_u64 proc~splitmix64_next splitmix64_t%splitmix64_next proc~splitmix64_next_u64->proc~splitmix64_next proc~mix64 mix64 proc~splitmix64_next->proc~mix64 proc~u64_add u64_add proc~splitmix64_next->proc~u64_add proc~u64_mul u64_mul proc~mix64->proc~u64_mul proc~u64_shr u64_shr proc~mix64->proc~u64_shr

Called by

proc~~splitmix64_next_u64~~CalledByGraph proc~splitmix64_next_u64 splitmix64_t%splitmix64_next_u64 proc~splitmix64_next_below splitmix64_next_below proc~splitmix64_next_below->proc~splitmix64_next_u64 proc~splitmix64_next_exponential_int splitmix64_next_exponential_int proc~splitmix64_next_exponential_int->proc~splitmix64_next_u64 proc~splitmix64_next_real_dp splitmix64_next_real_dp proc~splitmix64_next_real_dp->proc~splitmix64_next_u64 proc~splitmix64_uniform_below splitmix64_uniform_below proc~splitmix64_uniform_below->proc~splitmix64_next_u64 interface~next_below next_below interface~next_below->proc~splitmix64_next_below interface~next_exponential_int next_exponential_int interface~next_exponential_int->proc~splitmix64_next_exponential_int interface~next_real_dp next_real_dp interface~next_real_dp->proc~splitmix64_next_real_dp proc~splitmix64_next_bernoulli_ppm splitmix64_next_bernoulli_ppm proc~splitmix64_next_bernoulli_ppm->proc~splitmix64_uniform_below proc~splitmix64_next_poisson_int splitmix64_next_poisson_int proc~splitmix64_next_poisson_int->proc~splitmix64_next_exponential_int proc~splitmix64_next_range splitmix64_next_range proc~splitmix64_next_range->proc~splitmix64_uniform_below interface~next_bernoulli_ppm next_bernoulli_ppm interface~next_bernoulli_ppm->proc~splitmix64_next_bernoulli_ppm interface~next_poisson_int next_poisson_int interface~next_poisson_int->proc~splitmix64_next_poisson_int interface~next_range next_range interface~next_range->proc~splitmix64_next_range proc~pcg32_next_exponential_dp pcg32_next_exponential_dp proc~pcg32_next_exponential_dp->interface~next_real_dp proc~pcg32_next_normal_dp pcg32_next_normal_dp proc~pcg32_next_normal_dp->interface~next_real_dp proc~splitmix64_next_exponential_dp splitmix64_next_exponential_dp proc~splitmix64_next_exponential_dp->interface~next_real_dp proc~splitmix64_next_normal_dp splitmix64_next_normal_dp proc~splitmix64_next_normal_dp->interface~next_real_dp interface~next_exponential_dp next_exponential_dp interface~next_exponential_dp->proc~pcg32_next_exponential_dp interface~next_exponential_dp->proc~splitmix64_next_exponential_dp interface~next_normal_dp next_normal_dp interface~next_normal_dp->proc~pcg32_next_normal_dp interface~next_normal_dp->proc~splitmix64_next_normal_dp

Source Code

   function splitmix64_next_u64(self) result(r)
      !! Full 64-bit random word. For SplitMix64 this is simply `next`; it
      !! exists so that both engines present the same interface to the shared
      !! real and bounded-integer conversions.
      class(splitmix64_t), intent(inout) :: self
      integer(int64) :: r

      r = self%next()
   end function splitmix64_next_u64