サンプルの動作確認バージョン [GCC4.4/1.40.0] [VC9/1.40.0]
#include <iostream>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics.hpp>
using namespace std;
using namespace boost::accumulators;
int main()
{
// 最小値と平均値と中間値が知りたい
accumulator_set< double, features<tag::min, tag::mean, tag::median> > acc;
// データ集計
acc(1.2);
acc(5.6);
acc(3.4);
acc(8.9);
acc(0.1);
// 結果
cout << extract::min(acc) << endl;
cout << extract::mean(acc) << endl;
cout << extract::median(acc) << endl;
}
0.1 3.84 3.4
いろいろな 集計項目 が提供されているようです。
計算量が TODO の項目が多いのは、これから改善されていくということでしょうか。
小さい方から、あるいは大きい方から N 個までを記憶する tail
などは集計処理以外の場面でも便利かも知れません。