1 #ifndef _GNM_RANGEFUNC_H_
2 # define _GNM_RANGEFUNC_H_
3 
4 #include <numbers.h>
5 #include <goffice/goffice.h>
6 
7 G_BEGIN_DECLS
8 
9 #ifdef GNM_WITH_LONG_DOUBLE
10 #	define gnm_range_sum go_range_suml
11 #	define gnm_range_sumsq go_range_sumsql
12 #	define gnm_range_average go_range_averagel
13 #	define gnm_range_min go_range_minl
14 #	define gnm_range_max go_range_maxl
15 #	define gnm_range_maxabs go_range_maxabsl
16 #	define gnm_range_devsq go_range_devsql
17 #	define gnm_range_fractile_inter_sorted go_range_fractile_inter_sortedl
18 #	define gnm_range_median_inter go_range_median_interl
19 #	define gnm_range_median_inter_sorted go_range_median_inter_sortedl
20 #       define gnm_range_increasing go_range_increasingl
21 #       define gnm_range_sort go_range_sortl
22 #else
23 #	define gnm_range_sum go_range_sum
24 #	define gnm_range_sumsq go_range_sumsq
25 #	define gnm_range_average go_range_average
26 #	define gnm_range_min go_range_min
27 #	define gnm_range_max go_range_max
28 #	define gnm_range_maxabs go_range_maxabs
29 #	define gnm_range_devsq go_range_devsq
30 #	define gnm_range_fractile_inter_sorted go_range_fractile_inter_sorted
31 #	define gnm_range_median_inter go_range_median_inter
32 #	define gnm_range_median_inter_sorted go_range_median_inter_sorted
33 #       define gnm_range_increasing go_range_increasing
34 #       define gnm_range_sort go_range_sort
35 #endif
36 
37 int gnm_range_count		(gnm_float const *xs, int n, gnm_float *res);
38 
39 int gnm_range_product	(gnm_float const *xs, int n, gnm_float *res);
40 int gnm_range_multinomial	(gnm_float const *xs, int n, gnm_float *res);
41 
42 int gnm_range_avedev	(gnm_float const *xs, int n, gnm_float *res);
43 int gnm_range_hypot		(gnm_float const *xs, int n, gnm_float *res);
44 
45 int gnm_range_harmonic_mean	(gnm_float const *xs, int n, gnm_float *res);
46 int gnm_range_geometric_mean (gnm_float const *xs, int n, gnm_float *res);
47 
48 int gnm_range_var_pop	(gnm_float const *xs, int n, gnm_float *res);
49 int gnm_range_var_est	(gnm_float const *xs, int n, gnm_float *res);
50 int gnm_range_stddev_pop	(gnm_float const *xs, int n, gnm_float *res);
51 int gnm_range_stddev_est	(gnm_float const *xs, int n, gnm_float *res);
52 int gnm_range_skew_pop	(gnm_float const *xs, int n, gnm_float *res);
53 int gnm_range_skew_est	(gnm_float const *xs, int n, gnm_float *res);
54 int gnm_range_kurtosis_m3_pop (gnm_float const *xs, int n, gnm_float *res);
55 int gnm_range_kurtosis_m3_est (gnm_float const *xs, int n, gnm_float *res);
56 
57 int gnm_range_covar_pop		(gnm_float const *xs, const gnm_float *ys, int n, gnm_float *res);
58 int gnm_range_covar_est		(gnm_float const *xs, const gnm_float *ys, int n, gnm_float *res);
59 int gnm_range_correl_pop	(gnm_float const *xs, const gnm_float *ys, int n, gnm_float *res);
60 int gnm_range_rsq_pop	(gnm_float const *xs, const gnm_float *ys, int n, gnm_float *res);
61 
62 int gnm_range_mode	(gnm_float const *xs, int n, gnm_float *res);
63 
64 int gnm_range_adtest    (gnm_float const *xs, int n, gnm_float *p,
65 			 gnm_float *statistics);
66 
67 G_END_DECLS
68 
69 #endif /* _GNM_RANGEFUNC_H_ */
70