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