@@ -201,5 +201,106 @@ module stdlib_experimental_stats
201
201
202
202
end interface var
203
203
204
+ interface moment
205
+ #:for k1, t1 in RC_KINDS_TYPES
206
+ #:for rank in RANKS
207
+ #:set RName = rname("moment_all",rank, t1, k1)
208
+ module function ${RName}$(x, order, mask) result(res)
209
+ ${t1}$, intent(in) :: x${ranksuffix(rank)}$
210
+ integer, intent(in) :: order
211
+ logical, intent(in), optional :: mask
212
+ real(${k1}$) :: res
213
+ end function ${RName}$
214
+ #:endfor
215
+ #:endfor
216
+
217
+ #:for k1, t1 in INT_KINDS_TYPES
218
+ #:for rank in RANKS
219
+ #:set RName = rname("moment_all",rank, t1, k1, 'dp')
220
+ module function ${RName}$(x, order, mask) result(res)
221
+ ${t1}$, intent(in) :: x${ranksuffix(rank)}$
222
+ integer, intent(in) :: order
223
+ logical, intent(in), optional :: mask
224
+ real(dp) :: res
225
+ end function ${RName}$
226
+ #:endfor
227
+ #:endfor
228
+
229
+ #:for k1, t1 in RC_KINDS_TYPES
230
+ #:for rank in RANKS
231
+ #:set RName = rname("moment",rank, t1, k1)
232
+ module function ${RName}$(x, order, dim, mask) result(res)
233
+ ${t1}$, intent(in) :: x${ranksuffix(rank)}$
234
+ integer, intent(in) :: order
235
+ integer, intent(in) :: dim
236
+ logical, intent(in), optional :: mask
237
+ real(${k1}$) :: res${reduced_shape('x', rank, 'dim')}$
238
+ end function ${RName}$
239
+ #:endfor
240
+ #:endfor
241
+
242
+ #:for k1, t1 in INT_KINDS_TYPES
243
+ #:for rank in RANKS
244
+ #:set RName = rname("moment",rank, t1, k1, 'dp')
245
+ module function ${RName}$(x, order, dim, mask) result(res)
246
+ ${t1}$, intent(in) :: x${ranksuffix(rank)}$
247
+ integer, intent(in) :: order
248
+ integer, intent(in) :: dim
249
+ logical, intent(in), optional :: mask
250
+ real(dp) :: res${reduced_shape('x', rank, 'dim')}$
251
+ end function ${RName}$
252
+ #:endfor
253
+ #:endfor
254
+
255
+ #:for k1, t1 in RC_KINDS_TYPES
256
+ #:for rank in RANKS
257
+ #:set RName = rname("moment_mask_all",rank, t1, k1)
258
+ module function ${RName}$(x, order, mask) result(res)
259
+ ${t1}$, intent(in) :: x${ranksuffix(rank)}$
260
+ integer, intent(in) :: order
261
+ logical, intent(in) :: mask${ranksuffix(rank)}$
262
+ real(${k1}$) :: res
263
+ end function ${RName}$
264
+ #:endfor
265
+ #:endfor
266
+
267
+ #:for k1, t1 in INT_KINDS_TYPES
268
+ #:for rank in RANKS
269
+ #:set RName = rname("moment_mask_all",rank, t1, k1, 'dp')
270
+ module function ${RName}$(x, order, mask) result(res)
271
+ ${t1}$, intent(in) :: x${ranksuffix(rank)}$
272
+ integer, intent(in) :: order
273
+ logical, intent(in) :: mask${ranksuffix(rank)}$
274
+ real(dp) :: res
275
+ end function ${RName}$
276
+ #:endfor
277
+ #:endfor
278
+
279
+ #:for k1, t1 in RC_KINDS_TYPES
280
+ #:for rank in RANKS
281
+ #:set RName = rname("moment_mask",rank, t1, k1)
282
+ module function ${RName}$(x, order, dim, mask) result(res)
283
+ ${t1}$, intent(in) :: x${ranksuffix(rank)}$
284
+ integer, intent(in) :: order
285
+ integer, intent(in) :: dim
286
+ logical, intent(in) :: mask${ranksuffix(rank)}$
287
+ real(${k1}$) :: res${reduced_shape('x', rank, 'dim')}$
288
+ end function ${RName}$
289
+ #:endfor
290
+ #:endfor
291
+
292
+ #:for k1, t1 in INT_KINDS_TYPES
293
+ #:for rank in RANKS
294
+ #:set RName = rname("moment_mask",rank, t1, k1, 'dp')
295
+ module function ${RName}$(x, order, dim, mask) result(res)
296
+ ${t1}$, intent(in) :: x${ranksuffix(rank)}$
297
+ integer, intent(in) :: order
298
+ integer, intent(in) :: dim
299
+ logical, intent(in) :: mask${ranksuffix(rank)}$
300
+ real(dp) :: res${reduced_shape('x', rank, 'dim')}$
301
+ end function ${RName}$
302
+ #:endfor
303
+ #:endfor
304
+ end interface moment
204
305
205
306
end module stdlib_experimental_stats
0 commit comments