Boost logo

Boost Users :

Subject: [Boost-users] [accumulators] help/advise required: Need a container to hold accumulator_set
From: dhruva (dhruva_at_[hidden])
Date: 2009-02-21 22:51:57


Hello, I am writing a wrapper class which gets data over time and has to compute a variety of statistics using boost::accumulators. The accumulator cannot be a variable on the stack (function local variable) as it will go out of scope after the function invocation. I will have to make it a member variable of a class. I will not know the type of calculations to requested at compile time. I therefore need a generic accumulator type as member and add the specific type at runtime. In short, I need a container to hold accumulator_set objects. Different type of accumulator_set objects in the container will perform different calculations. The type of calculation I want to perform will be based on input at runtime. pseudo code: #define MEAN 1 #define MAX 2 class calc { public: setmetric(int metricType) { accumulator_set<double, features<> > *pacc; if (1 == metricType) { pacc = new accumulator_set<double, features <tag::mean> >; } else if(2 == metricType) { pacc = new accumulator_set<double, features <tag::max> >; } m_Vacc.push_back(pacc); } compute(double input) { // I will iterate over the vector, get the accumulator_set objects // acc_obj(input) followed by extract } private: std::vector <accumulator_set<double, features<> > *> m_Vacc; }; If features could be added at runtime, I probably could have solved this problem. Other approach is to have an accumulator_set with all supported features (supported by my application) as dropable. Drop all the unnecessary features based on user input. By adding all supported types, I will get a complete accumulator_set class at compile time and having a container to hold it is straight forward. Any help or advise is really appreciated. I may have raised a lot of basic questions but I am a boost newbie and taking a plunge. -dhruva Cricket on your mind? Visit the ultimate cricket website. Enter http://beta.cricket.yahoo.com


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net