Returns a 32 bit pseudo random integer, harvest
, distributed uniformly over
the odd integers of the int32
kind.
(Specification)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(out) | :: | harvest |
subroutine odd_random_integer( harvest )
!! Version: experimental
!!
!! Returns a 32 bit pseudo random integer, `harvest`, distributed uniformly over
!! the odd integers of the `int32` kind.
!! ([Specification](../page/specs/stdlib_hash_procedures.html#odd_random_integer-returns-an-odd-integer))
integer(int32), intent(out) :: harvest
real(dp) :: sample
call random_number( sample )
harvest = int( floor( sample * 2_int64**32, int64 ) - 2_int64**31, &
int32 )
harvest = ishft( harvest, 1 ) + 1_int32
end subroutine odd_random_integer