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
