diff DEPENDENCIES/generic/include/boost/accumulators/statistics_fwd.hpp @ 16:2665513ce2d3

Add boost headers
author Chris Cannam
date Tue, 05 Aug 2014 11:11:38 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DEPENDENCIES/generic/include/boost/accumulators/statistics_fwd.hpp	Tue Aug 05 11:11:38 2014 +0100
@@ -0,0 +1,432 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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