Pakman
ABCRejectionController.h
1 #ifndef ABCREJECTIONCONTROLLER_H
2 #define ABCREJECTIONCONTROLLER_H
3 
4 #include <string>
5 #include <vector>
6 #include <istream>
7 
8 #include "core/Command.h"
9 
10 #include "AbstractController.h"
11 
12 class LongOptions;
13 class Arguments;
14 
42 {
43  public:
44 
45  // Forward declaration of Input
46  struct Input;
47 
52  ABCRejectionController(const Input& input_obj);
53 
55  virtual ~ABCRejectionController() override = default;
56 
59  virtual void iterate() override;
60 
62  virtual Command getSimulator() const override;
63 
65  static std::string help();
66 
72  static void addLongOptions(LongOptions& lopts);
73 
80  static ABCRejectionController* makeController(const Arguments& args);
81 
84  struct Input
85  {
92  static Input makeInput(const Arguments& args);
93 
96 
99 
102 
104  std::vector<ParameterName> parameter_names;
105 
108  };
109 
110  private:
111 
113  // Epsilon
114  Epsilon m_epsilon;
115 
116  // Parameter names
117  std::vector<ParameterName> m_parameter_names;
118 
119  // Number of parameter to accept
120  int m_number_accept;
121 
122  // Vector of accepted parameters
123  std::vector<Parameter> m_prmtr_accepted;
124 
125  // Number of parameters simulated
126  int m_number_simulated = 0;
127 
128  // Simulator command
129  Command m_simulator;
130 
131  // Prior_sampler command
132  Command m_prior_sampler;
133 
134  // Entered iterate()
135  bool m_entered = false;
136 };
137 
138 #endif // ABCREJECTIONCONTROLLER_H
static ABCRejectionController * makeController(const Arguments &args)
static Input makeInput(const Arguments &args)
static void addLongOptions(LongOptions &lopts)
virtual Command getSimulator() const override
virtual void iterate() override
virtual ~ABCRejectionController() override=default
std::vector< ParameterName > parameter_names
ABCRejectionController(const Input &input_obj)