Smallest 2**k - 1 that is at least n - 1, for n >= 1.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | n |
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