123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- ///////////////////////////////////////////////////////////////////////////////
- // 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;
- struct sum_kahan;
- struct sum_of_weights_kahan;
- template<typename VariateType, typename VariateTag>
- struct sum_of_variates_kahan;
- 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 Tag>
- struct sum_kahan_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 Tag>
- struct weighted_sum_kahan_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 {};
- // modifier for sum_kahan, sum_of_weights_kahan, sum_of_variates_kahan, weighted_sum_kahan
- struct kahan {};
- }} // namespace boost::accumulators
- #endif
|