@@ -100,6 +100,7 @@ namespace TREX {
100100 * The duration represent using Period as a core tick value
101101 */
102102 typedef typename clock_type::duration tick_rate;
103+ typedef typename clock_type::period period;
103104 typedef typename clock_type::rep rep;
104105
105106 /* * @brief Constructor
@@ -322,18 +323,26 @@ namespace TREX {
322323 utils::display (oss<<" \n\t tick period: " , m_period);
323324 oss<<" \n\t frequency: " ;
324325
325- boost::math::gcd_evaluator<rep> gcdf;
326- rep factor = gcdf (m_period.count ()*Period::num, Period::den),
327- num = (Period::num*m_period.count ())/factor,
328- den = Period::den/factor;
329- if ( 1 ==num )
330- oss<<den<<" Hz" ;
331- else {
332- long double hz = den;
333- hz /= num;
334- oss<<hz<<" Hz (" <<den<<" /" <<num<<" )" ;
335- }
336- utils::display (oss<<" \n\t sleep timer:" , m_sleep_watchdog);
326+
327+ boost::math::gcd_evaluator<rep> gcd_f;
328+
329+ rep const base_num (period::num);
330+ rep const base_den (period::den);
331+
332+ rep x_num (base_num*m_period.count ()), x_den (base_den), factor;
333+ factor = gcd_f (x_num, x_den);
334+
335+ x_num /= factor;
336+ x_den /= factor;
337+
338+ if ( 1 ==x_num )
339+ oss<<x_den<<" Hz" ;
340+ else {
341+ long double hz = x_den;
342+ hz /= x_num;
343+ oss<<hz<<" Hz (" <<x_den<<' /' <<x_num<<' )' ;
344+ }
345+ utils::display (oss<<" \n\t sleep timer: " , m_sleep_watchdog);
337346 return oss.str ();
338347 }
339348
0 commit comments