Statistics
| Revision:

root / tmp / org.txm.statsengine.r.core.win32 / res / win32 / library / BH / include / boost / accumulators / statistics_fwd.hpp @ 2486

History | View | Annotate | Download (13.3 kB)

1
///////////////////////////////////////////////////////////////////////////////
2
// statistics_fwd.hpp
3
//
4
//  Copyright 2005 Eric Niebler. Distributed under the Boost
5
//  Software License, Version 1.0. (See accompanying file
6
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7

    
8
#ifndef BOOST_ACCUMULATORS_STATISTICS_STATISTICS_FWD_HPP_EAN_23_11_2005
9
#define BOOST_ACCUMULATORS_STATISTICS_STATISTICS_FWD_HPP_EAN_23_11_2005
10

    
11
#include <boost/mpl/apply_fwd.hpp> // for mpl::na
12
#include <boost/mpl/print.hpp>
13
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
14
#include <boost/accumulators/accumulators_fwd.hpp>
15
#include <boost/accumulators/framework/depends_on.hpp>
16
#include <boost/accumulators/framework/extractor.hpp>
17

    
18
namespace boost { namespace accumulators
19
{
20

    
21
///////////////////////////////////////////////////////////////////////////////
22
// base struct and base extractor for quantiles
23
namespace tag
24
{
25
    struct quantile
26
      : depends_on<>
27
    {
28
        typedef mpl::print<class ____MISSING_SPECIFIC_QUANTILE_FEATURE_IN_ACCUMULATOR_SET____ > impl;
29
    };
30
}
31
namespace extract
32
{
33
    extractor<tag::quantile> const quantile = {};
34

    
35
    BOOST_ACCUMULATORS_IGNORE_GLOBAL(quantile)
36
}
37
using extract::quantile;
38

    
39
///////////////////////////////////////////////////////////////////////////////
40
// base struct and base extractor for *coherent* tail means
41
namespace tag
42
{
43
    struct tail_mean
44
      : depends_on<>
45
    {
46
        typedef mpl::print<class ____MISSING_SPECIFIC_TAIL_MEAN_FEATURE_IN_ACCUMULATOR_SET____ > impl;
47
    };
48
}
49
namespace extract
50
{
51
    extractor<tag::tail_mean> const tail_mean = {};
52

    
53
    BOOST_ACCUMULATORS_IGNORE_GLOBAL(tail_mean)
54
}
55
using extract::tail_mean;
56

    
57
namespace tag
58
{
59
    ///////////////////////////////////////////////////////////////////////////////
60
    // Variates tags
61
    struct weights;
62
    struct covariate1;
63
    struct covariate2;
64

    
65
    ///////////////////////////////////////////////////////////////////////////////
66
    // Statistic tags
67
    struct count;
68
    template<typename VariateType, typename VariateTag>
69
    struct covariance;
70
    struct density;
71
    template<typename Feature>
72
    struct error_of;
73
    struct extended_p_square;
74
    struct extended_p_square_quantile;
75
    struct extended_p_square_quantile_quadratic;
76
    struct kurtosis;
77
    struct max;
78
    struct mean;
79
    struct immediate_mean;
80
    struct mean_of_weights;
81
    struct immediate_mean_of_weights;
82
    template<typename VariateType, typename VariateTag>
83
    struct mean_of_variates;
84
    template<typename VariateType, typename VariateTag>
85
    struct immediate_mean_of_variates;
86
    struct median;
87
    struct with_density_median;
88
    struct with_p_square_cumulative_distribution_median;
89
    struct min;
90
    template<int N>
91
    struct moment;
92
    template<typename LeftRight>
93
    struct peaks_over_threshold;
94
    template<typename LeftRight>
95
    struct peaks_over_threshold_prob;
96
    template<typename LeftRight>
97
    struct pot_tail_mean;
98
    template<typename LeftRight>
99
    struct pot_tail_mean_prob;
100
    template<typename LeftRight>
101
    struct pot_quantile;
102
    template<typename LeftRight>
103
    struct pot_quantile_prob;
104
    struct p_square_cumulative_distribution;
105
    struct p_square_quantile;
106
    struct p_square_quantile_for_median;
107
    struct skewness;
108
    struct sum;
109
    struct sum_of_weights;
110
    template<typename VariateType, typename VariateTag>
111
    struct sum_of_variates;
112
    struct sum_kahan;
113
    struct sum_of_weights_kahan;
114
    template<typename VariateType, typename VariateTag>
115
    struct sum_of_variates_kahan;
116
    template<typename LeftRight>
117
    struct tail;
118
    template<typename LeftRight>
119
    struct coherent_tail_mean;
120
    template<typename LeftRight>
121
    struct non_coherent_tail_mean;
122
    template<typename LeftRight>
123
    struct tail_quantile;
124
    template<typename VariateType, typename VariateTag, typename LeftRight>
125
    struct tail_variate;
126
    template<typename LeftRight>
127
    struct tail_weights;
128
    template<typename VariateType, typename VariateTag, typename LeftRight>
129
    struct right_tail_variate;
130
    template<typename VariateType, typename VariateTag, typename LeftRight>
131
    struct left_tail_variate;
132
    template<typename LeftRight, typename VariateType, typename VariateTag>
133
    struct tail_variate_means;
134
    template<typename LeftRight, typename VariateType, typename VariateTag>
135
    struct absolute_tail_variate_means;
136
    template<typename LeftRight, typename VariateType, typename VariateTag>
137
    struct relative_tail_variate_means;
138
    struct lazy_variance;
139
    struct variance;
140
    template<typename VariateType, typename VariateTag>
141
    struct weighted_covariance;
142
    struct weighted_density;
143
    struct weighted_kurtosis;
144
    struct weighted_mean;
145
    struct immediate_weighted_mean;
146
    template<typename VariateType, typename VariateTag>
147
    struct weighted_mean_of_variates;
148
    template<typename VariateType, typename VariateTag>
149
    struct immediate_weighted_mean_of_variates;
150
    struct weighted_median;
151
    struct with_density_weighted_median;
152
    struct with_p_square_cumulative_distribution_weighted_median;
153
    struct weighted_extended_p_square;
154
    struct weighted_extended_p_square_quantile;
155
    struct weighted_extended_p_square_quantile_quadratic;
156
    template<int N>
157
    struct weighted_moment;
158
    template<typename LeftRight>
159
    struct weighted_peaks_over_threshold;
160
    template<typename LeftRight>
161
    struct weighted_peaks_over_threshold_prob;
162
    template<typename LeftRight>
163
    struct weighted_pot_quantile;
164
    template<typename LeftRight>
165
    struct weighted_pot_quantile_prob;
166
    template<typename LeftRight>
167
    struct weighted_pot_tail_mean;
168
    template<typename LeftRight>
169
    struct weighted_pot_tail_mean_prob;
170
    struct weighted_p_square_cumulative_distribution;
171
    struct weighted_p_square_quantile;
172
    struct weighted_p_square_quantile_for_median;
173
    struct weighted_skewness;
174
    template<typename LeftRight>
175
    struct weighted_tail_quantile;
176
    template<typename LeftRight>
177
    struct non_coherent_weighted_tail_mean;
178
    template<typename LeftRight>
179
    struct weighted_tail_quantile;
180
    template<typename LeftRight, typename VariateType, typename VariateTag>
181
    struct weighted_tail_variate_means;
182
    template<typename LeftRight, typename VariateType, typename VariateTag>
183
    struct absolute_weighted_tail_variate_means;
184
    template<typename LeftRight, typename VariateType, typename VariateTag>
185
    struct relative_weighted_tail_variate_means;
186
    struct lazy_weighted_variance;
187
    struct weighted_variance;
188
    struct weighted_sum;
189
    template<typename VariateType, typename VariateTag>
190
    struct weighted_sum_of_variates;
191
    struct rolling_window_plus1;
192
    struct rolling_window;
193
    struct rolling_sum;
194
    struct rolling_count;
195
    struct rolling_mean;
196
} // namespace tag
197

    
198
namespace impl
199
{
200
    ///////////////////////////////////////////////////////////////////////////////
201
    // Statistics impls
202
    struct count_impl;
203

    
204
    template<typename Sample, typename VariateType, typename VariateTag>
205
    struct covariance_impl;
206

    
207
    template<typename Sample>
208
    struct density_impl;
209

    
210
    template<typename Sample, typename Feature>
211
    struct error_of_impl;
212

    
213
    template<typename Sample, typename Variance>
214
    struct error_of_mean_impl;
215

    
216
    template<typename Sample>
217
    struct extended_p_square_impl;
218

    
219
    template<typename Sample, typename Impl1, typename Impl2>
220
    struct extended_p_square_quantile_impl;
221

    
222
    template<typename Sample>
223
    struct kurtosis_impl;
224

    
225
    template<typename Sample>
226
    struct max_impl;
227

    
228
    template<typename Sample>
229
    struct median_impl;
230

    
231
    template<typename Sample>
232
    struct with_density_median_impl;
233

    
234
    template<typename Sample>
235
    struct with_p_square_cumulative_distribution_median_impl;
236

    
237
    template<typename Sample>
238
    struct min_impl;
239

    
240
    template<typename Sample, typename SumFeature = tag::sum>
241
    struct mean_impl;
242

    
243
    template<typename Sample, typename Tag = tag::sample>
244
    struct immediate_mean_impl;
245

    
246
    template<typename N, typename Sample>
247
    struct moment_impl;
248

    
249
    template<typename Sample, typename LeftRight>
250
    struct peaks_over_threshold_prob_impl;
251

    
252
    template<typename Sample, typename Impl, typename LeftRight>
253
    struct pot_quantile_impl;
254

    
255
    template<typename Sample, typename Impl, typename LeftRight>
256
    struct pot_tail_mean_impl;
257

    
258
    template<typename Sample>
259
    struct p_square_cumulative_distribution_impl;
260

    
261
    template<typename Sample, typename Impl>
262
    struct p_square_quantile_impl;
263

    
264
    template<typename Sample>
265
    struct skewness_impl;
266

    
267
    template<typename Sample, typename Tag = tag::sample>
268
    struct sum_impl;
269

    
270
    template<typename Sample, typename Tag>
271
    struct sum_kahan_impl;
272

    
273
    template<typename Sample, typename LeftRight>
274
    struct tail_impl;
275

    
276
    template<typename Sample, typename LeftRight>
277
    struct coherent_tail_mean_impl;
278

    
279
    template<typename Sample, typename LeftRight>
280
    struct non_coherent_tail_mean_impl;
281

    
282
    template<typename Sample, typename LeftRight>
283
    struct tail_quantile_impl;
284

    
285
    template<typename VariateType, typename VariateTag, typename LeftRight>
286
    struct tail_variate_impl;
287

    
288
    template<typename Sample, typename Impl, typename LeftRight, typename VariateTag>
289
    struct tail_variate_means_impl;
290

    
291
    template<typename Sample, typename MeanFeature>
292
    struct lazy_variance_impl;
293

    
294
    template<typename Sample, typename MeanFeature, typename Tag>
295
    struct variance_impl;
296

    
297
    template<typename Sample, typename Weight, typename VariateType, typename VariateTag>
298
    struct weighted_covariance_impl;
299

    
300
    template<typename Sample, typename Weight>
301
    struct weighted_density_impl;
302

    
303
    template<typename Sample, typename Weight>
304
    struct weighted_kurtosis_impl;
305

    
306
    template<typename Sample>
307
    struct weighted_median_impl;
308

    
309
    template<typename Sample>
310
    struct with_density_weighted_median_impl;
311

    
312
    template<typename Sample, typename Weight>
313
    struct with_p_square_cumulative_distribution_weighted_median_impl;
314

    
315
    template<typename Sample, typename Weight, typename Tag>
316
    struct weighted_mean_impl;
317

    
318
    template<typename Sample, typename Weight, typename Tag>
319
    struct immediate_weighted_mean_impl;
320

    
321
    template<typename Sample, typename Weight, typename LeftRight>
322
    struct weighted_peaks_over_threshold_impl;
323

    
324
    template<typename Sample, typename Weight, typename LeftRight>
325
    struct weighted_peaks_over_threshold_prob_impl;
326

    
327
    template<typename Sample, typename Weight>
328
    struct with_p_square_cumulative_distribution_weighted_median_impl;
329

    
330
    template<typename Sample, typename Weight>
331
    struct weighted_extended_p_square_impl;
332

    
333
    template<typename N, typename Sample, typename Weight>
334
    struct weighted_moment_impl;
335

    
336
    template<typename Sample, typename Weight>
337
    struct weighted_p_square_cumulative_distribution_impl;
338

    
339
    template<typename Sample, typename Weight, typename Impl>
340
    struct weighted_p_square_quantile_impl;
341

    
342
    template<typename Sample, typename Weight>
343
    struct weighted_skewness_impl;
344

    
345
    template<typename Sample, typename Weight, typename Tag>
346
    struct weighted_sum_impl;
347

    
348
    template<typename Sample, typename Weight, typename Tag>
349
    struct weighted_sum_kahan_impl;
350

    
351
    template<typename Sample, typename Weight, typename LeftRight>
352
    struct non_coherent_weighted_tail_mean_impl;
353

    
354
    template<typename Sample, typename Weight, typename LeftRight>
355
    struct weighted_tail_quantile_impl;
356

    
357
    template<typename Sample, typename Weight, typename Impl, typename LeftRight, typename VariateType>
358
    struct weighted_tail_variate_means_impl;
359

    
360
    template<typename Sample, typename Weight, typename MeanFeature>
361
    struct lazy_weighted_variance_impl;
362

    
363
    template<typename Sample, typename Weight, typename MeanFeature, typename Tag>
364
    struct weighted_variance_impl;
365

    
366
    template<typename Sample>
367
    struct rolling_window_plus1_impl;
368

    
369
    template<typename Sample>
370
    struct rolling_window_impl;
371

    
372
    template<typename Sample>
373
    struct rolling_sum_impl;
374

    
375
    template<typename Sample>
376
    struct rolling_count_impl;
377

    
378
    template<typename Sample>
379
    struct rolling_mean_impl;
380
} // namespace impl
381

    
382
///////////////////////////////////////////////////////////////////////////////
383
// stats
384
//      A more descriptive name for an MPL sequence of statistics.
385
template<BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(BOOST_ACCUMULATORS_MAX_FEATURES, typename Feature, mpl::na)>
386
struct stats;
387

    
388
template<BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(BOOST_ACCUMULATORS_MAX_FEATURES, typename Feature, mpl::na)>
389
struct with_error;
390

    
391
// modifiers for the mean and variance stats
392
struct lazy {};
393
struct immediate {};
394

    
395
// modifiers for the variance stat
396
// struct fast {};
397
// struct accurate {};
398

    
399
// modifiers for order
400
struct right {};
401
struct left {};
402
// typedef right default_order_tag_type;
403

    
404
// modifiers for the tail_variate_means stat
405
struct absolute {};
406
struct relative {};
407

    
408
// modifiers for median and weighted_median stats
409
struct with_density {};
410
struct with_p_square_cumulative_distribution {};
411
struct with_p_square_quantile {};
412

    
413
// modifiers for peaks_over_threshold stat
414
struct with_threshold_value {};
415
struct with_threshold_probability {};
416

    
417
// modifiers for extended_p_square_quantile and weighted_extended_p_square_quantile stats
418
struct weighted {};
419
struct unweighted {};
420
struct linear {};
421
struct quadratic {};
422

    
423
// modifiers for p_square_quantile
424
struct regular {};
425
struct for_median {};
426

    
427
// modifier for sum_kahan, sum_of_weights_kahan, sum_of_variates_kahan, weighted_sum_kahan
428
struct kahan {};
429

    
430
}} // namespace boost::accumulators
431

    
432
#endif