-class FactorSet {
- const std::string& name_;
- std::vector<s_smpi_factor_t> factors_;
- double default_value_;
- const std::function<double(std::vector<double> const&, double)> lambda_;
- bool initialized_ = false;
-
-public:
- // Parse the factor from a string
- FactorSet(
- const std::string& name, double default_value = 1,
- std::function<double(std::vector<double> const&, double)> const& lambda = [](std::vector<double> const& values,
- double) { return values.front(); });
- void parse(const std::string& values);
- bool is_initialized() const { return initialized_; }
- // Get the default value
- double operator()();
- // Get the factor to use for the provided size
- double operator()(double size);
-};
-XBT_PUBLIC std::vector<s_smpi_factor_t> parse_factor(const std::string& smpi_coef_string);