21 Ağustos 2017 Pazartesi

accumulators

accumulator_set Sınıfı
Şu satırları dahil ederiz.
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/rolling_mean.hpp>
Daha rahat kullanmak için şöyle yaparız.
namespace acc = boost::accumulators;
Bu sınıfa değerleri eklemek, tüm değerleri biriktirip daha sonra istatistiki hesap yapmaktan daha hızlı.

Tanımlama
Şöyle yaparız.
typedef acc::accumulator_set<double, acc::stats<acc::tag::rolling_mean >> ac_type;
Şöyle yaparız.
accumulator_set<double, stats<tag::variance> > ac;
Şöyle yaparız.
acc::accumulator_set
< 
  double, 
  acc::stats
  <
    acc::tag::min , 
    acc::tag::max ,
    acc::tag::mean,
    acc::tag::variance
  > 
> stat_acc;
Constructor
Şöyle yaparız.
accumulator_set<double, stats<tag::variance> > ac;
Constructor
Şöyle yaparız.
ac_type ac (acc::tag::rolling_window::window_size = 3);
operator ()
Şöyle yaparız.
ac (0.5);
ac (1.5);
ac (2.5);
ac (3.5);
Şöyle yaparız.
for_each(v.begin(), v.end(), bind<void>(ref(ac), _1));
Şöyle yaparız.
std::vector < double > v;
...
std::for_each (v.begin(), v.end(),
  boost::bind < void > (boost::ref(ac), boost::_1));
Free Style Metodlar
min metodu
Şöyle yaparız.
std::cout << "min[distance error]: " << acc::min (ac) << std::endl;
max metodu
Şöyle yaparız.
std::cout << "MAX[distance error]: " << acc::max (ac) << std::endl;
mean metodu
Şöyle yaparız.
std::cout << "  E[distance error]: " << acc::mean (ac) << std::endl;
rolling mean metodu
Şöyle yaparız.
std::cout << "roll_mean: " << acc::rolling_mean (ac) << std::endl;
standart deviation
Şöyle yaparız.
cout << sqrt(variance(acc)) << endl;
variance metodu
Şöyle yaparız.
std::cout << "VAR[distance error]: " << acc::variance (ac) << std::endl;



Hiç yorum yok:

Yorum Gönder