#ifndef _WMR_STATISTICS_H
#define _WMR_STATISTICS_H

typedef enum filtered_statistics_type {
  f_stat_value,
  f_stat_min,
  f_stat_max,
  f_stat_avg,
  f_stat_var,
  f_stat_std,
  f_stat_jd,
  f_stat_int,
  f_stat_sentinel
} filtered_statistics_type;

#define NR_FILTERED_STATS (f_stat_sentinel)

typedef enum super_filtered_statistics_type {
  s_stat_value,
  s_stat_min,
  s_stat_max,
  s_stat_favg,
  s_stat_var,
  s_stat_std,
  s_stat_avg,
  s_stat_sum,
  s_stat_cnt,
  s_stat_min_time,
  s_stat_max_time,
  s_stat_filtered_upper,
  s_stat_filtered_lower,
  s_stat_sentinel
} super_filtered_statistics_type;

#define NR_SUPERFILTERED_STATS (s_stat_sentinel)

typedef enum statistics_type {
  stat_src,
  stat_avg,
  stat_min,
  stat_max,
  stat_sum,
  stat_cnt,
  stat_min_time,
  stat_max_time,
  stat_sentinel
} statistics_type;

#define NR_STATS (stat_sentinel)

void
set_filtered_stats(
	const meteo_data_type stats[NR_FILTERED_STATS],
	double value,
	char const * format,
	double alpha);

void
set_superfiltered_stats(
	const meteo_data_type stats[NR_SUPERFILTERED_STATS],
	char const * format,
	double alpha,
	double alpha1,
	double alpha2);

void
set_avg_min_max_sum_cnt(
	const meteo_data_type stats[NR_STATS],
	char const * format);

#endif