25 static std::vector<std::string> agent_names(
void);
26 static std::unique_ptr<Agent> make_unique(
const std::string &agent_name);
38 virtual void init(
int level,
const std::vector<int> &fan_in,
bool is_level_root) = 0;
56 std::vector<std::vector<double> > &out_policy) = 0;
68 std::vector<double> &out_sample) = 0;
89 virtual void wait(
void) = 0;
92 virtual std::vector<std::pair<std::string, std::string> >
report_header(
void)
const = 0;
94 virtual std::vector<std::pair<std::string, std::string> >
report_host(
void)
const = 0;
96 virtual std::map<uint64_t, std::vector<std::pair<std::string, std::string> > >
report_region(
void)
const = 0;
100 virtual std::vector<std::function<std::string(
double)> > trace_formats(
void)
const;
115 static int num_policy(
const std::map<std::string, std::string> &dictionary);
120 static int num_policy(
const std::string &agent_name);
128 static int num_sample(
const std::map<std::string, std::string> &dictionary);
133 static int num_sample(
const std::string &agent_name);
141 static std::vector<std::string> policy_names(
const std::map<std::string, std::string> &dictionary);
146 static std::vector<std::string> policy_names(
const std::string &agent_name);
154 static std::vector<std::string> sample_names(
const std::map<std::string, std::string> &dictionary);
159 static std::vector<std::string> sample_names(
const std::string &agent_name);
166 static std::map<std::string, std::string> make_dictionary(
const std::vector<std::string> &policy_names,
167 const std::vector<std::string> &sample_names);
180 static void aggregate_sample(
const std::vector<std::vector<double> > &in_sample,
181 const std::vector<std::function<
double(
const std::vector<double>&)> > &agg_func,
182 std::vector<double> &out_sample);
185 static const std::string m_num_sample_string;
186 static const std::string m_num_policy_string;
187 static const std::string m_sample_prefix;
188 static const std::string m_policy_prefix;
virtual void init(int level, const std::vector< int > &fan_in, bool is_level_root)=0
Set the level where this Agent is active and push signals/controls for that level.