Skip to content

Commit

Permalink
change stdlib-random function rtol to ishftc (#714)
Browse files Browse the repository at this point in the history
* Update stdlib_random.fypp

change function `rtol` to fortran intrinsic `ishftc`

* Update stdlib_random.fypp
  • Loading branch information
Euler-37 authored May 14, 2023
1 parent 6ea8484 commit 933916b
Showing 1 changed file with 2 additions and 13 deletions.
15 changes: 2 additions & 13 deletions src/stdlib_random.fypp
Original file line number Diff line number Diff line change
Expand Up @@ -78,27 +78,16 @@ module stdlib_random
integer(int64) :: res, t

if(.not. seed_initialized) call random_distribution_seed_iint64(si,t)
res = rol64(st(2) * 5, 7) * 9
res = ishftc(st(2) * 5, 7) * 9
t = shiftl(st(2), 17)
st(3) = ieor(st(3), st(1))
st(4) = ieor(st(4), st(2))
st(2) = ieor(st(2), st(3))
st(1) = ieor(st(1), st(4))
st(3) = ieor(st(3), t)
st(4) = rol64(st(4), 45)
st(4) = ishftc(st(4), 45)
end function xoshiro256ss

pure function rol64(x, k) result(res)
integer(int64), intent(in) :: x
integer, intent(in) :: k
integer(int64) :: t1, t2, res

t1 = shiftr(x, (64 - k))
t2 = shiftl(x, k)
res = ior(t1, t2)
end function rol64


function splitmix64(s) result(res)
! Written in 2015 by Sebastiano Vigna ([email protected])
! This is a fixed-increment version of Java 8's SplittableRandom
Expand Down

0 comments on commit 933916b

Please sign in to comment.