TransitionInfo.h revision 10447
1#ifndef __DSENT_MODEL_TRANSITION_INFO_H__ 2#define __DSENT_MODEL_TRANSITION_INFO_H__ 3 4#include "util/CommonType.h" 5 6namespace DSENT 7{ 8 /** 9 * \brief This class contains the number of transitions and the frequency multiplier information 10 */ 11 class TransitionInfo 12 { 13 public: 14 TransitionInfo(); 15 TransitionInfo(double number_transitions_00_, double number_transitions_01_, double number_transitions_11_); 16 ~TransitionInfo(); 17 18 public: 19 inline double getNumberTransitions00() const { return m_number_transitions_00_; } 20 inline double getNumberTransitions01() const { return m_number_transitions_01_; } 21 inline double getNumberTransitions11() const { return m_number_transitions_11_; } 22 inline double getFrequencyMultiplier() const { return m_frequency_multiplier_; } 23 inline double getProbability0() const { return m_probability_1_; } 24 inline double getProbability1() const { return m_probability_1_; } 25 26 inline void setNumberTransitions00(double value_) { m_number_transitions_00_ = value_; } 27 inline void setNumberTransitions01(double value_) { m_number_transitions_01_ = value_; } 28 inline void setNumberTransitions11(double value_) { m_number_transitions_11_ = value_; } 29 inline void setFrequencyMultiplier(double value_) { m_frequency_multiplier_ = value_; } 30 31 void update(); 32 TransitionInfo scaleFrequencyMultiplier(double frequency_multiplier_) const; 33 34 void print(std::ostream& ost_) const; 35 36 private: 37 // m_number_transitions_xy_ defines number of transitions from x to y 38 double m_number_transitions_00_; 39 double m_number_transitions_01_; 40 double m_number_transitions_11_; 41 // The multiplier that defines the ratio of the transition frequency and the main core clock frequency 42 double m_frequency_multiplier_; 43 // Probability of being at state 0/1 44 double m_probability_0_; 45 double m_probability_1_; 46 }; // class TransitionInfo 47} // namespace DSENT 48 49#endif // __DSENT_MODEL_TRANSITION_INFO_H__ 50 51