Skip to content

Commit 9da6698

Browse files
committed
Propagated patch from trex_stable for RealTimeClock
to this branch
1 parent 5e0206e commit 9da6698

1 file changed

Lines changed: 21 additions & 12 deletions

File tree

trex/agent/RealTimeClock.hh

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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\ttick period: ", m_period);
323324
oss<<"\n\tfrequency: ";
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\tsleep 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\tsleep timer: ", m_sleep_watchdog);
337346
return oss.str();
338347
}
339348

0 commit comments

Comments
 (0)