Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // statistics_fwd.hpp Chris@16: // Chris@16: // Copyright 2005 Eric Niebler. Distributed under the Boost Chris@16: // Software License, Version 1.0. (See accompanying file Chris@16: // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #ifndef BOOST_ACCUMULATORS_STATISTICS_STATISTICS_FWD_HPP_EAN_23_11_2005 Chris@16: #define BOOST_ACCUMULATORS_STATISTICS_STATISTICS_FWD_HPP_EAN_23_11_2005 Chris@16: Chris@16: #include // for mpl::na Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost { namespace accumulators Chris@16: { Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // base struct and base extractor for quantiles Chris@16: namespace tag Chris@16: { Chris@16: struct quantile Chris@16: : depends_on<> Chris@16: { Chris@16: typedef mpl::print impl; Chris@16: }; Chris@16: } Chris@16: namespace extract Chris@16: { Chris@16: extractor const quantile = {}; Chris@16: Chris@16: BOOST_ACCUMULATORS_IGNORE_GLOBAL(quantile) Chris@16: } Chris@16: using extract::quantile; Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // base struct and base extractor for *coherent* tail means Chris@16: namespace tag Chris@16: { Chris@16: struct tail_mean Chris@16: : depends_on<> Chris@16: { Chris@16: typedef mpl::print impl; Chris@16: }; Chris@16: } Chris@16: namespace extract Chris@16: { Chris@16: extractor const tail_mean = {}; Chris@16: Chris@16: BOOST_ACCUMULATORS_IGNORE_GLOBAL(tail_mean) Chris@16: } Chris@16: using extract::tail_mean; Chris@16: Chris@16: namespace tag Chris@16: { Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // Variates tags Chris@16: struct weights; Chris@16: struct covariate1; Chris@16: struct covariate2; Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // Statistic tags Chris@16: struct count; Chris@16: template Chris@16: struct covariance; Chris@16: struct density; Chris@16: template Chris@16: struct error_of; Chris@16: struct extended_p_square; Chris@16: struct extended_p_square_quantile; Chris@16: struct extended_p_square_quantile_quadratic; Chris@16: struct kurtosis; Chris@16: struct max; Chris@16: struct mean; Chris@16: struct immediate_mean; Chris@16: struct mean_of_weights; Chris@16: struct immediate_mean_of_weights; Chris@16: template Chris@16: struct mean_of_variates; Chris@16: template Chris@16: struct immediate_mean_of_variates; Chris@16: struct median; Chris@16: struct with_density_median; Chris@16: struct with_p_square_cumulative_distribution_median; Chris@16: struct min; Chris@16: template Chris@16: struct moment; Chris@16: template Chris@16: struct peaks_over_threshold; Chris@16: template Chris@16: struct peaks_over_threshold_prob; Chris@16: template Chris@16: struct pot_tail_mean; Chris@16: template Chris@16: struct pot_tail_mean_prob; Chris@16: template Chris@16: struct pot_quantile; Chris@16: template Chris@16: struct pot_quantile_prob; Chris@16: struct p_square_cumulative_distribution; Chris@16: struct p_square_quantile; Chris@16: struct p_square_quantile_for_median; Chris@16: struct skewness; Chris@16: struct sum; Chris@16: struct sum_of_weights; Chris@16: template Chris@16: struct sum_of_variates; Chris@16: struct sum_kahan; Chris@16: struct sum_of_weights_kahan; Chris@16: template Chris@16: struct sum_of_variates_kahan; Chris@16: template Chris@16: struct tail; Chris@16: template Chris@16: struct coherent_tail_mean; Chris@16: template Chris@16: struct non_coherent_tail_mean; Chris@16: template Chris@16: struct tail_quantile; Chris@16: template Chris@16: struct tail_variate; Chris@16: template Chris@16: struct tail_weights; Chris@16: template Chris@16: struct right_tail_variate; Chris@16: template Chris@16: struct left_tail_variate; Chris@16: template Chris@16: struct tail_variate_means; Chris@16: template Chris@16: struct absolute_tail_variate_means; Chris@16: template Chris@16: struct relative_tail_variate_means; Chris@16: struct lazy_variance; Chris@16: struct variance; Chris@16: template Chris@16: struct weighted_covariance; Chris@16: struct weighted_density; Chris@16: struct weighted_kurtosis; Chris@16: struct weighted_mean; Chris@16: struct immediate_weighted_mean; Chris@16: template Chris@16: struct weighted_mean_of_variates; Chris@16: template Chris@16: struct immediate_weighted_mean_of_variates; Chris@16: struct weighted_median; Chris@16: struct with_density_weighted_median; Chris@16: struct with_p_square_cumulative_distribution_weighted_median; Chris@16: struct weighted_extended_p_square; Chris@16: struct weighted_extended_p_square_quantile; Chris@16: struct weighted_extended_p_square_quantile_quadratic; Chris@16: template Chris@16: struct weighted_moment; Chris@16: template Chris@16: struct weighted_peaks_over_threshold; Chris@16: template Chris@16: struct weighted_peaks_over_threshold_prob; Chris@16: template Chris@16: struct weighted_pot_quantile; Chris@16: template Chris@16: struct weighted_pot_quantile_prob; Chris@16: template Chris@16: struct weighted_pot_tail_mean; Chris@16: template Chris@16: struct weighted_pot_tail_mean_prob; Chris@16: struct weighted_p_square_cumulative_distribution; Chris@16: struct weighted_p_square_quantile; Chris@16: struct weighted_p_square_quantile_for_median; Chris@16: struct weighted_skewness; Chris@16: template Chris@16: struct weighted_tail_quantile; Chris@16: template Chris@16: struct non_coherent_weighted_tail_mean; Chris@16: template Chris@16: struct weighted_tail_quantile; Chris@16: template Chris@16: struct weighted_tail_variate_means; Chris@16: template Chris@16: struct absolute_weighted_tail_variate_means; Chris@16: template Chris@16: struct relative_weighted_tail_variate_means; Chris@16: struct lazy_weighted_variance; Chris@16: struct weighted_variance; Chris@16: struct weighted_sum; Chris@16: template Chris@16: struct weighted_sum_of_variates; Chris@16: struct rolling_window_plus1; Chris@16: struct rolling_window; Chris@16: struct rolling_sum; Chris@16: struct rolling_count; Chris@16: struct rolling_mean; Chris@16: } // namespace tag Chris@16: Chris@16: namespace impl Chris@16: { Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // Statistics impls Chris@16: struct count_impl; Chris@16: Chris@16: template Chris@16: struct covariance_impl; Chris@16: Chris@16: template Chris@16: struct density_impl; Chris@16: Chris@16: template Chris@16: struct error_of_impl; Chris@16: Chris@16: template Chris@16: struct error_of_mean_impl; Chris@16: Chris@16: template Chris@16: struct extended_p_square_impl; Chris@16: Chris@16: template Chris@16: struct extended_p_square_quantile_impl; Chris@16: Chris@16: template Chris@16: struct kurtosis_impl; Chris@16: Chris@16: template Chris@16: struct max_impl; Chris@16: Chris@16: template Chris@16: struct median_impl; Chris@16: Chris@16: template Chris@16: struct with_density_median_impl; Chris@16: Chris@16: template Chris@16: struct with_p_square_cumulative_distribution_median_impl; Chris@16: Chris@16: template Chris@16: struct min_impl; Chris@16: Chris@16: template Chris@16: struct mean_impl; Chris@16: Chris@16: template Chris@16: struct immediate_mean_impl; Chris@16: Chris@16: template Chris@16: struct moment_impl; Chris@16: Chris@16: template Chris@16: struct peaks_over_threshold_prob_impl; Chris@16: Chris@16: template Chris@16: struct pot_quantile_impl; Chris@16: Chris@16: template Chris@16: struct pot_tail_mean_impl; Chris@16: Chris@16: template Chris@16: struct p_square_cumulative_distribution_impl; Chris@16: Chris@16: template Chris@16: struct p_square_quantile_impl; Chris@16: Chris@16: template Chris@16: struct skewness_impl; Chris@16: Chris@16: template Chris@16: struct sum_impl; Chris@16: Chris@16: template Chris@16: struct sum_kahan_impl; Chris@16: Chris@16: template Chris@16: struct tail_impl; Chris@16: Chris@16: template Chris@16: struct coherent_tail_mean_impl; Chris@16: Chris@16: template Chris@16: struct non_coherent_tail_mean_impl; Chris@16: Chris@16: template Chris@16: struct tail_quantile_impl; Chris@16: Chris@16: template Chris@16: struct tail_variate_impl; Chris@16: Chris@16: template Chris@16: struct tail_variate_means_impl; Chris@16: Chris@16: template Chris@16: struct lazy_variance_impl; Chris@16: Chris@16: template Chris@16: struct variance_impl; Chris@16: Chris@16: template Chris@16: struct weighted_covariance_impl; Chris@16: Chris@16: template Chris@16: struct weighted_density_impl; Chris@16: Chris@16: template Chris@16: struct weighted_kurtosis_impl; Chris@16: Chris@16: template Chris@16: struct weighted_median_impl; Chris@16: Chris@16: template Chris@16: struct with_density_weighted_median_impl; Chris@16: Chris@16: template Chris@16: struct with_p_square_cumulative_distribution_weighted_median_impl; Chris@16: Chris@16: template Chris@16: struct weighted_mean_impl; Chris@16: Chris@16: template Chris@16: struct immediate_weighted_mean_impl; Chris@16: Chris@16: template Chris@16: struct weighted_peaks_over_threshold_impl; Chris@16: Chris@16: template Chris@16: struct weighted_peaks_over_threshold_prob_impl; Chris@16: Chris@16: template Chris@16: struct with_p_square_cumulative_distribution_weighted_median_impl; Chris@16: Chris@16: template Chris@16: struct weighted_extended_p_square_impl; Chris@16: Chris@16: template Chris@16: struct weighted_moment_impl; Chris@16: Chris@16: template Chris@16: struct weighted_p_square_cumulative_distribution_impl; Chris@16: Chris@16: template Chris@16: struct weighted_p_square_quantile_impl; Chris@16: Chris@16: template Chris@16: struct weighted_skewness_impl; Chris@16: Chris@16: template Chris@16: struct weighted_sum_impl; Chris@16: Chris@16: template Chris@16: struct weighted_sum_kahan_impl; Chris@16: Chris@16: template Chris@16: struct non_coherent_weighted_tail_mean_impl; Chris@16: Chris@16: template Chris@16: struct weighted_tail_quantile_impl; Chris@16: Chris@16: template Chris@16: struct weighted_tail_variate_means_impl; Chris@16: Chris@16: template Chris@16: struct lazy_weighted_variance_impl; Chris@16: Chris@16: template Chris@16: struct weighted_variance_impl; Chris@16: Chris@16: template Chris@16: struct rolling_window_plus1_impl; Chris@16: Chris@16: template Chris@16: struct rolling_window_impl; Chris@16: Chris@16: template Chris@16: struct rolling_sum_impl; Chris@16: Chris@16: template Chris@16: struct rolling_count_impl; Chris@16: Chris@16: template Chris@16: struct rolling_mean_impl; Chris@16: } // namespace impl Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // stats Chris@16: // A more descriptive name for an MPL sequence of statistics. Chris@16: template Chris@16: struct stats; Chris@16: Chris@16: template Chris@16: struct with_error; Chris@16: Chris@16: // modifiers for the mean and variance stats Chris@16: struct lazy {}; Chris@16: struct immediate {}; Chris@16: Chris@16: // modifiers for the variance stat Chris@16: // struct fast {}; Chris@16: // struct accurate {}; Chris@16: Chris@16: // modifiers for order Chris@16: struct right {}; Chris@16: struct left {}; Chris@16: // typedef right default_order_tag_type; Chris@16: Chris@16: // modifiers for the tail_variate_means stat Chris@16: struct absolute {}; Chris@16: struct relative {}; Chris@16: Chris@16: // modifiers for median and weighted_median stats Chris@16: struct with_density {}; Chris@16: struct with_p_square_cumulative_distribution {}; Chris@16: struct with_p_square_quantile {}; Chris@16: Chris@16: // modifiers for peaks_over_threshold stat Chris@16: struct with_threshold_value {}; Chris@16: struct with_threshold_probability {}; Chris@16: Chris@16: // modifiers for extended_p_square_quantile and weighted_extended_p_square_quantile stats Chris@16: struct weighted {}; Chris@16: struct unweighted {}; Chris@16: struct linear {}; Chris@16: struct quadratic {}; Chris@16: Chris@16: // modifiers for p_square_quantile Chris@16: struct regular {}; Chris@16: struct for_median {}; Chris@16: Chris@16: // modifier for sum_kahan, sum_of_weights_kahan, sum_of_variates_kahan, weighted_sum_kahan Chris@16: struct kahan {}; Chris@16: Chris@16: }} // namespace boost::accumulators Chris@16: Chris@16: #endif