1#[doc(alias = "gsl_stats_wtss")]
6pub fn wtss(w: &[f64], wstride: usize, data: &[f64], stride: usize) -> f64 {
7 unsafe { sys::gsl_stats_wtss(w.as_ptr(), wstride, data.as_ptr(), stride, data.len() as _) }
8}
9
10#[doc(alias = "gsl_stats_wtss_m")]
11pub fn wtss_m(w: &[f64], wstride: usize, data: &[f64], stride: usize, wmean: f64) -> f64 {
12 unsafe {
13 sys::gsl_stats_wtss_m(
14 w.as_ptr(),
15 wstride,
16 data.as_ptr(),
17 stride,
18 data.len() as _,
19 wmean,
20 )
21 }
22}
23
24#[doc(alias = "gsl_stats_wabsdev")]
25pub fn wabsdev(w: &[f64], wstride: usize, data: &[f64], stride: usize) -> f64 {
26 unsafe { sys::gsl_stats_wabsdev(w.as_ptr(), wstride, data.as_ptr(), stride, data.len() as _) }
27}
28
29#[doc(alias = "gsl_stats_wskew")]
30pub fn wskew(w: &[f64], wstride: usize, data: &[f64], stride: usize) -> f64 {
31 unsafe { sys::gsl_stats_wskew(w.as_ptr(), wstride, data.as_ptr(), stride, data.len() as _) }
32}
33
34#[doc(alias = "gsl_stats_wkurtosis")]
35pub fn wkurtosis(w: &[f64], wstride: usize, data: &[f64], stride: usize) -> f64 {
36 unsafe { sys::gsl_stats_wkurtosis(w.as_ptr(), wstride, data.as_ptr(), stride, data.len() as _) }
37}
38
39#[doc(alias = "gsl_stats_wvariance_m")]
40pub fn wvariance_m(w: &[f64], wstride: usize, data: &[f64], stride: usize, wmean: f64) -> f64 {
41 unsafe {
42 sys::gsl_stats_wvariance_m(
43 w.as_ptr(),
44 wstride,
45 data.as_ptr(),
46 stride,
47 data.len() as _,
48 wmean,
49 )
50 }
51}
52
53#[doc(alias = "gsl_stats_wabsdev_m")]
54pub fn wabsdev_m(w: &[f64], wstride: usize, data: &[f64], stride: usize, wmean: f64) -> f64 {
55 unsafe {
56 sys::gsl_stats_wabsdev_m(
57 w.as_ptr(),
58 wstride,
59 data.as_ptr(),
60 stride,
61 data.len() as _,
62 wmean,
63 )
64 }
65}
66
67#[doc(alias = "gsl_stats_wskew_m_sd")]
68pub fn wskew_m_sd(
69 w: &[f64],
70 wstride: usize,
71 data: &[f64],
72 stride: usize,
73 wmean: f64,
74 wsd: f64,
75) -> f64 {
76 unsafe {
77 sys::gsl_stats_wskew_m_sd(
78 w.as_ptr(),
79 wstride,
80 data.as_ptr(),
81 stride,
82 data.len() as _,
83 wmean,
84 wsd,
85 )
86 }
87}
88
89#[doc(alias = "gsl_stats_wkurtosis_m_sd")]
90pub fn wkurtosis_m_sd(
91 w: &[f64],
92 wstride: usize,
93 data: &[f64],
94 stride: usize,
95 wmean: f64,
96 wsd: f64,
97) -> f64 {
98 unsafe {
99 sys::gsl_stats_wkurtosis_m_sd(
100 w.as_ptr(),
101 wstride,
102 data.as_ptr(),
103 stride,
104 data.len() as _,
105 wmean,
106 wsd,
107 )
108 }
109}
110
111#[doc(alias = "gsl_stats_pvariance")]
112pub fn pvariance(data1: &[f64], stride1: usize, data2: &[f64], stride2: usize) -> f64 {
113 unsafe {
114 sys::gsl_stats_pvariance(
115 data1.as_ptr(),
116 stride1,
117 data1.len() as _,
118 data2.as_ptr(),
119 stride2,
120 data2.len() as _,
121 )
122 }
123}
124
125#[doc(alias = "gsl_stats_ttest")]
126pub fn ttest(data1: &[f64], stride1: usize, data2: &[f64], stride2: usize) -> f64 {
127 unsafe {
128 sys::gsl_stats_ttest(
129 data1.as_ptr(),
130 stride1,
131 data1.len() as _,
132 data2.as_ptr(),
133 stride2,
134 data2.len() as _,
135 )
136 }
137}
138
139#[doc(alias = "gsl_stats_max")]
140pub fn max(data: &[f64], stride: usize) -> f64 {
141 unsafe { sys::gsl_stats_max(data.as_ptr(), stride, data.len() as _) }
142}
143
144#[doc(alias = "gsl_stats_min")]
145pub fn min(data: &[f64], stride: usize) -> f64 {
146 unsafe { sys::gsl_stats_min(data.as_ptr(), stride, data.len() as _) }
147}
148
149#[doc(alias = "gsl_stats_minmax")]
151pub fn stats_minmax(data: &[f64], stride: usize) -> (f64, f64) {
152 let mut min = 0.;
153 let mut max = 0.;
154
155 unsafe { sys::gsl_stats_minmax(&mut min, &mut max, data.as_ptr(), stride, data.len() as _) }
156 (min, max)
157}
158
159#[doc(alias = "gsl_stats_max_index")]
160pub fn max_index(data: &[f64], stride: usize) -> usize {
161 unsafe { sys::gsl_stats_max_index(data.as_ptr(), stride, data.len() as _) }
162}
163
164#[doc(alias = "gsl_stats_min_index")]
165pub fn min_index(data: &[f64], stride: usize) -> usize {
166 unsafe { sys::gsl_stats_min_index(data.as_ptr(), stride, data.len() as _) }
167}
168
169#[doc(alias = "gsl_stats_minmax_index")]
171pub fn stats_minmax_index(data: &[f64], stride: usize) -> (usize, usize) {
172 let mut min = 0;
173 let mut max = 0;
174
175 unsafe {
176 sys::gsl_stats_minmax_index(&mut min, &mut max, data.as_ptr(), stride, data.len() as _)
177 }
178 (min, max)
179}
180
181#[cfg(feature = "v2_5")]
182#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
183#[doc(alias = "gsl_stats_select")]
184pub fn select(data: &mut [f64], stride: usize, k: usize) -> f64 {
185 unsafe { sys::gsl_stats_select(data.as_mut_ptr(), stride, data.len() as _, k) }
186}
187
188#[cfg(feature = "v2_5")]
189#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
190#[doc(alias = "gsl_stats_median")]
191pub fn median(data: &mut [f64], stride: usize) -> f64 {
192 unsafe { sys::gsl_stats_median(data.as_mut_ptr(), stride, data.len() as _) }
193}