Skip to content

Commit 4b2152d

Browse files
Update src/stdlib_stats_distribution_uniform.fypp
Co-authored-by: Jeremie Vandenplas <jeremie.vandenplas@gmail.com>
1 parent fecbedf commit 4b2152d

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/stdlib_stats_distribution_uniform.fypp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,25 +86,24 @@ module stdlib_stats_distribution_uniform
8686
!
8787
! Fortran 90 translated from c by Jim-215-fisher
8888
${t1}$, intent(in) :: scale
89-
${t1}$ :: res, u, mask, n
89+
${t1}$ :: res, u, mask
9090
integer :: zeros, bits_left, bits
9191

92-
n = scale
93-
if(n <= 0_${k1}$) call error_stop("Error(unif_dist_rvs_1): Uniform" &
92+
if(scale <= 0_${k1}$) call error_stop("Error(unif_dist_rvs_1): Uniform" &
9493
//" distribution scale parameter must be positive")
95-
zeros = leadz(n)
96-
bits = bit_size(n) - zeros
94+
zeros = leadz(scale)
95+
bits = bit_size(scale) - zeros
9796
mask = shiftr(not(0_${k1}$), zeros)
9897
L1 : do
99-
u = dist_rand(n)
98+
u = dist_rand(scale)
10099
res = iand(u, mask)
101-
if(res <= n) exit L1
100+
if(res <= scale) exit L1
102101
bits_left = zeros
103102
L2 : do
104103
if(bits_left < bits) exit L2
105104
u = shiftr(u, bits)
106105
res = iand(u, mask)
107-
if(res <= n) exit L1
106+
if(res <= scale) exit L1
108107
bits_left = bits_left - bits
109108
end do L2
110109
end do L1

0 commit comments

Comments
 (0)