Skip to content

Commit 21f68dd

Browse files
committed
var_corrected_dev: review following comments in #151
1 parent fdfd7f0 commit 21f68dd

File tree

1 file changed

+19
-26
lines changed

1 file changed

+19
-26
lines changed

src/stdlib_experimental_stats_var.fypp

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@ contains
2727
return
2828
end if
2929

30-
n = real(size(x, kind = int64), ${k1}$)
30+
n = size(x, kind = int64)
3131
mean = sum(x) / n
3232

3333
#:if t1[0] == 'r'
34-
res = sum((x - mean)**2) / (n - merge(1._${k1}$, 0._${k1}$,&
35-
optval(corrected, .true.)))
34+
res = sum((x - mean)**2) / (n - merge(1, 0 , optval(corrected, .true.)))
3635
#:else
37-
res = sum(abs(x - mean)**2) / (n - merge(1._${k1}$, 0._${k1}$,&
38-
optval(corrected, .true.)))
36+
res = sum(abs(x - mean)**2) / (n - merge(1, 0, optval(corrected, .true.)))
3937
#:endif
4038

4139
end function ${RName}$
@@ -59,11 +57,10 @@ contains
5957
return
6058
end if
6159

62-
n = real(size(x, kind = int64), dp)
60+
n = size(x, kind = int64)
6361
mean = sum(real(x, dp)) / n
6462

65-
res = sum((real(x, dp) - mean)**2) / (n - merge(1._dp, 0._dp,&
66-
optval(corrected, .true.)))
63+
res = sum((real(x, dp) - mean)**2) / (n - merge(1, 0, optval(corrected, .true.)))
6764

6865
end function ${RName}$
6966
#:endfor
@@ -93,7 +90,7 @@ contains
9390
select case(dim)
9491
#:for fi in range(1, rank+1)
9592
case(${fi}$)
96-
n = real(size(x, dim), ${k1}$)
93+
n = size(x, dim)
9794
mean = sum(x, dim) / n
9895
do i = 1, size(x, dim)
9996
#:if t1[0] == 'r'
@@ -106,8 +103,7 @@ contains
106103
case default
107104
call error_stop("ERROR (mean): wrong dimension")
108105
end select
109-
res = res / (n - merge(1._${k1}$, 0._${k1}$,&
110-
optval(corrected, .true.)))
106+
res = res / (n - merge(1, 0, optval(corrected, .true.)))
111107

112108
end function ${RName}$
113109
#:endfor
@@ -137,7 +133,7 @@ contains
137133
select case(dim)
138134
#:for fi in range(1, rank+1)
139135
case(${fi}$)
140-
n = real(size(x, dim), dp)
136+
n = size(x, dim)
141137
mean = sum(real(x, dp), dim) / n
142138
do i = 1, size(x, dim)
143139
res = res + (real(x${select_subarray(rank, [(fi, 'i')])}$, dp) - mean)**2
@@ -146,8 +142,7 @@ contains
146142
case default
147143
call error_stop("ERROR (mean): wrong dimension")
148144
end select
149-
res = res / (n - merge(1._dp, 0._dp,&
150-
optval(corrected, .true.)))
145+
res = res / (n - merge(1, 0, optval(corrected, .true.)))
151146

152147
end function ${RName}$
153148
#:endfor
@@ -166,16 +161,15 @@ contains
166161
real(${k1}$) :: n
167162
${t1}$ :: mean
168163

169-
n = real(count(mask, kind = int64), ${k1}$)
164+
n = count(mask, kind = int64)
170165
mean = sum(x, mask) / n
171166

172167
#:if t1[0] == 'r'
173168
res = sum((x - mean)**2, mask) / (n -&
174-
merge(1._${k1}$, 0._${k1}$, (optval(corrected, .true.)) .and. n > 0._${k1}$))
175169
#:else
176-
res = sum(abs(x - mean)**2, mask) / (n - merge(1._${k1}$, 0._${k1}$,&
177-
(optval(corrected, .true.) .and. n > 0._${k1}$)))
170+
res = sum(abs(x - mean)**2, mask) / (n -&
178171
#:endif
172+
merge(1, 0, (optval(corrected, .true.) .and. n > 0)))
179173

180174
end function ${RName}$
181175
#:endfor
@@ -193,11 +187,11 @@ contains
193187

194188
real(dp) :: n, mean
195189

196-
n = real(count(mask, kind = int64), dp)
190+
n = count(mask, kind = int64)
197191
mean = sum(real(x, dp), mask) / n
198192

199-
res = sum((real(x, dp) - mean)**2, mask) / (n - merge(1._dp, 0._dp,&
200-
(optval(corrected, .true.) .and. n > 0._dp)))
193+
res = sum((real(x, dp) - mean)**2, mask) / (n -&
194+
merge(1, 0, (optval(corrected, .true.) .and. n > 0)))
201195

202196
end function ${RName}$
203197
#:endfor
@@ -222,7 +216,7 @@ contains
222216
select case(dim)
223217
#:for fi in range(1, rank+1)
224218
case(${fi}$)
225-
n = real(count(mask, dim), ${k1}$)
219+
n = count(mask, dim)
226220
mean = sum(x, dim, mask) / n
227221
do i = 1, size(x, dim)
228222
#:if t1[0] == 'r'
@@ -237,8 +231,7 @@ contains
237231
case default
238232
call error_stop("ERROR (mean): wrong dimension")
239233
end select
240-
res = res / (n - merge(1._${k1}$, 0._${k1}$,&
241-
(optval(corrected, .true.) .and. n > 0._${k1}$)))
234+
res = res / (n - merge(1, 0, (optval(corrected, .true.) .and. n > 0)))
242235

243236
end function ${RName}$
244237
#:endfor
@@ -263,7 +256,7 @@ contains
263256
select case(dim)
264257
#:for fi in range(1, rank+1)
265258
case(${fi}$)
266-
n = real(count(mask, dim), dp)
259+
n = count(mask, dim)
267260
mean = sum(real(x, dp), dim, mask) / n
268261
do i = 1, size(x, dim)
269262
res = res + merge((real(x${select_subarray(rank, [(fi, 'i')])}$, dp) - mean)**2,&
@@ -273,7 +266,7 @@ contains
273266
case default
274267
call error_stop("ERROR (mean): wrong dimension")
275268
end select
276-
res = res / (n - merge(1._dp, 0._dp, (optval(corrected, .true.) .and. n > 0._dp)))
269+
res = res / (n - merge(1, 0, (optval(corrected, .true.) .and. n > 0)))
277270

278271
end function ${RName}$
279272
#:endfor

0 commit comments

Comments
 (0)