@@ -10,96 +10,91 @@ module stdlib_experimental_stats
1010 ! Public API
1111 public :: corr, cov, mean, moment, var
1212
13+
1314 interface corr
14- #:for k1, t1 in RC_KINDS_TYPES
15- #:set RName = rname("corr",1, t1, k1)
16- module function ${RName}$(x, dim, mask) result(res)
17- ${t1}$, intent(in) :: x(:)
18- integer, intent(in) :: dim
19- logical, intent(in), optional :: mask
20- real(${k1}$) :: res
21- end function ${RName}$
22- #:endfor
23-
24-
25- #:for k1, t1 in INT_KINDS_TYPES
26- #:set RName = rname("corr",1, t1, k1, 'dp')
27- module function ${RName}$(x, dim, mask) result(res)
28- ${t1}$, intent(in) :: x(:)
29- integer, intent(in) :: dim
30- logical, intent(in), optional :: mask
31- real(dp) :: res
32- end function ${RName}$
33- #:endfor
34-
35-
36- #:for k1, t1 in RC_KINDS_TYPES
37- #:set RName = rname("corr_mask",1, t1, k1)
38- module function ${RName}$(x, dim, mask) result(res)
39- ${t1}$, intent(in) :: x(:)
40- integer, intent(in) :: dim
41- logical, intent(in) :: mask(:)
42- real(${k1}$) :: res
43- end function ${RName}$
44- #:endfor
45-
46-
47- #:for k1, t1 in INT_KINDS_TYPES
48- #:set RName = rname("corr_mask",1, t1, k1, 'dp')
49- module function ${RName}$(x, dim, mask) result(res)
50- ${t1}$, intent(in) :: x(:)
51- integer, intent(in) :: dim
52- logical, intent(in) :: mask(:)
53- real(dp) :: res
54- end function ${RName}$
55- #:endfor
56-
57-
58- #:for k1, t1 in RC_KINDS_TYPES
59- #:set RName = rname("corr",2, t1, k1)
60- module function ${RName}$(x, dim, mask) result(res)
61- ${t1}$, intent(in) :: x(:, :)
62- integer, intent(in) :: dim
63- logical, intent(in), optional :: mask
64- ${t1}$ :: res(merge(size(x, 1), size(x, 2), mask = 1<dim)&
65- , merge(size(x, 1), size(x, 2), mask = 1<dim))
66- end function ${RName}$
67- #:endfor
68-
69-
70- #:for k1, t1 in INT_KINDS_TYPES
71- #:set RName = rname("corr",2, t1, k1, 'dp')
72- module function ${RName}$(x, dim, mask) result(res)
73- ${t1}$, intent(in) :: x(:, :)
74- integer, intent(in) :: dim
75- logical, intent(in), optional :: mask
76- real(dp) :: res(merge(size(x, 1), size(x, 2), mask = 1<dim)&
77- , merge(size(x, 1), size(x, 2), mask = 1<dim))
78- end function ${RName}$
79- #:endfor
80-
81-
82- #:for k1, t1 in RC_KINDS_TYPES
83- #:set RName = rname("corr_mask",2, t1, k1)
84- module function ${RName}$(x, dim, mask) result(res)
85- ${t1}$, intent(in) :: x(:, :)
86- integer, intent(in) :: dim
87- logical, intent(in) :: mask(:,:)
88- ${t1}$ :: res(merge(size(x, 1), size(x, 2), mask = 1<dim)&
89- , merge(size(x, 1), size(x, 2), mask = 1<dim))
90- end function ${RName}$
91- #:endfor
92-
93- #:for k1, t1 in INT_KINDS_TYPES
94- #:set RName = rname("corr_mask",2, t1, k1, 'dp')
95- module function ${RName}$(x, dim, mask) result(res)
96- ${t1}$, intent(in) :: x(:, :)
97- integer, intent(in) :: dim
98- logical, intent(in) :: mask(:,:)
99- real(dp) :: res(merge(size(x, 1), size(x, 2), mask = 1<dim)&
100- , merge(size(x, 1), size(x, 2), mask = 1<dim))
101- end function ${RName}$
102- #:endfor
15+ #:for k1, t1 in RC_KINDS_TYPES
16+ #:set RName = rname("corr",1, t1, k1)
17+ module function ${RName}$(x, dim, mask) result(res)
18+ ${t1}$, intent(in) :: x(:)
19+ integer, intent(in) :: dim
20+ logical, intent(in), optional :: mask
21+ real(${k1}$) :: res
22+ end function ${RName}$
23+ #:endfor
24+
25+ #:for k1, t1 in INT_KINDS_TYPES
26+ #:set RName = rname("corr",1, t1, k1, 'dp')
27+ module function ${RName}$(x, dim, mask) result(res)
28+ ${t1}$, intent(in) :: x(:)
29+ integer, intent(in) :: dim
30+ logical, intent(in), optional :: mask
31+ real(dp) :: res
32+ end function ${RName}$
33+ #:endfor
34+
35+ #:for k1, t1 in RC_KINDS_TYPES
36+ #:set RName = rname("corr_mask",1, t1, k1)
37+ module function ${RName}$(x, dim, mask) result(res)
38+ ${t1}$, intent(in) :: x(:)
39+ integer, intent(in) :: dim
40+ logical, intent(in) :: mask(:)
41+ real(${k1}$) :: res
42+ end function ${RName}$
43+ #:endfor
44+
45+ #:for k1, t1 in INT_KINDS_TYPES
46+ #:set RName = rname("corr_mask",1, t1, k1, 'dp')
47+ module function ${RName}$(x, dim, mask) result(res)
48+ ${t1}$, intent(in) :: x(:)
49+ integer, intent(in) :: dim
50+ logical, intent(in) :: mask(:)
51+ real(dp) :: res
52+ end function ${RName}$
53+ #:endfor
54+
55+ #:for k1, t1 in RC_KINDS_TYPES
56+ #:set RName = rname("corr",2, t1, k1)
57+ module function ${RName}$(x, dim, mask) result(res)
58+ ${t1}$, intent(in) :: x(:, :)
59+ integer, intent(in) :: dim
60+ logical, intent(in), optional :: mask
61+ ${t1}$ :: res(merge(size(x, 1), size(x, 2), mask = 1<dim)&
62+ , merge(size(x, 1), size(x, 2), mask = 1<dim))
63+ end function ${RName}$
64+ #:endfor
65+
66+ #:for k1, t1 in INT_KINDS_TYPES
67+ #:set RName = rname("corr",2, t1, k1, 'dp')
68+ module function ${RName}$(x, dim, mask) result(res)
69+ ${t1}$, intent(in) :: x(:, :)
70+ integer, intent(in) :: dim
71+ logical, intent(in), optional :: mask
72+ real(dp) :: res(merge(size(x, 1), size(x, 2), mask = 1<dim)&
73+ , merge(size(x, 1), size(x, 2), mask = 1<dim))
74+ end function ${RName}$
75+ #:endfor
76+
77+ #:for k1, t1 in RC_KINDS_TYPES
78+ #:set RName = rname("corr_mask",2, t1, k1)
79+ module function ${RName}$(x, dim, mask) result(res)
80+ ${t1}$, intent(in) :: x(:, :)
81+ integer, intent(in) :: dim
82+ logical, intent(in) :: mask(:,:)
83+ ${t1}$ :: res(merge(size(x, 1), size(x, 2), mask = 1<dim)&
84+ , merge(size(x, 1), size(x, 2), mask = 1<dim))
85+ end function ${RName}$
86+ #:endfor
87+
88+ #:for k1, t1 in INT_KINDS_TYPES
89+ #:set RName = rname("corr_mask",2, t1, k1, 'dp')
90+ module function ${RName}$(x, dim, mask) result(res)
91+ ${t1}$, intent(in) :: x(:, :)
92+ integer, intent(in) :: dim
93+ logical, intent(in) :: mask(:,:)
94+ real(dp) :: res(merge(size(x, 1), size(x, 2), mask = 1<dim)&
95+ , merge(size(x, 1), size(x, 2), mask = 1<dim))
96+ end function ${RName}$
97+ #:endfor
10398
10499 end interface corr
105100
0 commit comments