rejection_mask Function

private pure function rejection_mask(n) result(mask)

Smallest 2**k - 1 that is at least n - 1, for n >= 1.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: n

Return Value integer(kind=int64)


Called by

proc~~rejection_mask~~CalledByGraph proc~rejection_mask rejection_mask proc~pcg32_next_below pcg32_next_below proc~pcg32_next_below->proc~rejection_mask proc~splitmix64_next_below splitmix64_next_below proc~splitmix64_next_below->proc~rejection_mask interface~next_below next_below interface~next_below->proc~pcg32_next_below interface~next_below->proc~splitmix64_next_below

Source Code

   pure function rejection_mask(n) result(mask)
      !! Smallest `2**k - 1` that is at least `n - 1`, for `n >= 1`.
      integer(int64), intent(in) :: n
      integer(int64) :: mask

      mask = 0_int64
      do while (mask < n - 1_int64)
         mask = ior(ishft(mask, 1), 1_int64)
      end do
   end function rejection_mask