Interal routine: get the next value (returned as 64 bit signed integer)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rng_t), | intent(inout) | :: | self |
function next(self) result(res) class(rng_t), intent(inout) :: self integer(i8) :: res integer(i8) :: global_time(2) global_time = self%s res = global_time(1) + global_time(2) global_time(2) = ieor(global_time(1), global_time(2)) self%s(1) = ieor(ieor(rotl(global_time(1), 55), global_time(2)),& shiftl(global_time(2), 14)) self%s(2) = rotl(global_time(2), 36) end function next