From 29e4e9ad0ffd06f3c3e9a17a4622aae3e31e5e8d Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Sat, 22 Oct 2022 21:10:50 +0200 Subject: [PATCH] Reduce the exposition of s_smpi_factor_t --- src/smpi/include/smpi_host.hpp | 4 ++-- src/smpi/include/smpi_utils.hpp | 9 ++++----- src/smpi/internals/smpi_utils.cpp | 8 ++++---- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/smpi/include/smpi_host.hpp b/src/smpi/include/smpi_host.hpp index 4223134f71..48c7ce5949 100644 --- a/src/smpi/include/smpi_host.hpp +++ b/src/smpi/include/smpi_host.hpp @@ -14,9 +14,9 @@ #include namespace simgrid::smpi { -static auto factor_lambda(s_smpi_factor_t const& fact, double size) +static auto factor_lambda(std::vector const& values, double size) { - return fact.values[0] + fact.values[1] * static_cast(size); + return values[0] + values[1] * static_cast(size); } class Host { utils::FactorSet orecv_{"smpi/or", 0.0, factor_lambda}; diff --git a/src/smpi/include/smpi_utils.hpp b/src/smpi/include/smpi_utils.hpp index 0e8b6fb0fa..f382fb60be 100644 --- a/src/smpi/include/smpi_utils.hpp +++ b/src/smpi/include/smpi_utils.hpp @@ -27,19 +27,18 @@ class FactorSet { const std::string& name_; std::vector factors_; double default_value_; - const std::function lambda_; + const std::function const&, double)> lambda_; bool initialized_ = false; public: // Parse the factor from a string FactorSet( const std::string& name, double default_value = 1, - std::function const& lambda = [](s_smpi_factor_t const& factor, double) { - return factor.values.front(); - }); + std::function const&, double)> const& lambda = [](std::vector const& values, + double) { return values.front(); }); void parse(const std::string& values); bool is_initialized() const { return initialized_; } - // Get the default factor, the one that is not a function of the size + // Get the default value double operator()(); // Get the factor to use for the provided size double operator()(double size); diff --git a/src/smpi/internals/smpi_utils.cpp b/src/smpi/internals/smpi_utils.cpp index 6660c506fb..8ccf2db3d5 100644 --- a/src/smpi/internals/smpi_utils.cpp +++ b/src/smpi/internals/smpi_utils.cpp @@ -56,14 +56,14 @@ void FactorSet::parse(const std::string& values) } FactorSet::FactorSet(const std::string& name, double default_value, - std::function const& lambda) + std::function const&, double)> const& lambda) : name_(name), default_value_(default_value), lambda_(lambda) { } double FactorSet::operator()() { - return lambda_(factors_.front(), 0); + return default_value_; } double FactorSet::operator()(double size) @@ -80,12 +80,12 @@ double FactorSet::operator()(double size) XBT_DEBUG("%s: %f <= %zu return default %f", name_.c_str(), size, fact.factor, default_value_); return default_value_; } - double val = lambda_(factors_[i - 1], size); + double val = lambda_(factors_[i - 1].values, size); XBT_DEBUG("%s: %f <= %zu return %f", name_.c_str(), size, fact.factor, val); return val; } } - double val = lambda_(factors_.back(), size); + double val = lambda_(factors_.back().values, size); XBT_DEBUG("%s: %f > %zu return %f", name_.c_str(), size, factors_.back().factor, val); return val; -- 2.20.1