+ /** @brief Get the available speed ratio, in [0:1]. This accounts for external load (see @ref set_speed_profile()). */
+ virtual double get_speed_ratio() { return speed_.scale; }
+
+ /** @brief Get the peak processor speed (in flops/s), at the specified pstate */
+ virtual double get_pstate_peak_speed(int pstate_index) const;
+
+ virtual int get_pstate_count() const { return speed_per_pstate_.size(); }
+
+ virtual int get_pstate() const { return pstate_; }
+ virtual CpuImpl* set_pstate(int pstate_index);
+
+ /*< @brief Setup the profile file with availability events (peak speed changes due to external load).
+ * Profile must contain relative values (ratio between 0 and 1)
+ */
+ virtual CpuImpl* set_speed_profile(profile::Profile* profile);
+
+ /**
+ * @brief Set the CPU's speed
+ *
+ * @param speed_per_state list of powers for this processor (default power is at index 0)
+ */
+ CpuImpl* set_pstate_speed(const std::vector<double>& speed_per_state);