| 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 quantilesnamespace 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 meansnamespace 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 tagnamespace 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 statsstruct lazy {};struct immediate {};// modifiers for the variance stat// struct fast {};// struct accurate {};// modifiers for orderstruct right {};struct left {};// typedef right default_order_tag_type;// modifiers for the tail_variate_means statstruct absolute {};struct relative {};// modifiers for median and weighted_median statsstruct with_density {};struct with_p_square_cumulative_distribution {};struct with_p_square_quantile {};// modifiers for peaks_over_threshold statstruct with_threshold_value {};struct with_threshold_probability {};// modifiers for extended_p_square_quantile and weighted_extended_p_square_quantile statsstruct weighted {};struct unweighted {};struct linear {};struct quadratic {};// modifiers for p_square_quantilestruct regular {};struct for_median {};// modifier for sum_kahan, sum_of_weights_kahan, sum_of_variates_kahan, weighted_sum_kahanstruct kahan {};}} // namespace boost::accumulators#endif
 |