double TimerBase::ConvertTo(word64 t, Unit unit) { static unsigned long unitsPerSecondTable[] = {1, 1000, 1000*1000, 1000*1000*1000}; assert(unit < sizeof(unitsPerSecondTable) / sizeof(unitsPerSecondTable[0])); return (double)t * unitsPerSecondTable[unit] / TicksPerSecond(); }
double TimerBase::ConvertTo(TimerWord t, Unit unit) { static unsigned long unitsPerSecondTable[] = {1, 1000, 1000*1000, 1000*1000*1000}; // When 'unit' is an enum 'Unit', a Clang warning is generated. CRYPTOPP_ASSERT(static_cast<unsigned int>(unit) < COUNTOF(unitsPerSecondTable)); return static_cast<double>(t) * unitsPerSecondTable[unit] / TicksPerSecond(); }
void dumpprinttime(ProxyStream& os, __int64 x, __int64 q) { double xx = double(x)/(double(TicksPerSecond())*double(q)*3600.0); if(xx > 10.0) { dumpprint(os,int(xx),0,"h"); return; }; if(xx >= 1.0) { int h = int(xx); dumpprint(os,h); dumpprint(os,":"); xx-=h; xx*=60; int m = int(xx); if(m<10) dumpprint(os,"0"); dumpprint(os,m); return; }; xx*=60; if(xx >= 1.0) { dumpprint(os,":"); int m = int(xx); if(m<10) dumpprint(os,"0"); dumpprint(os,m); dumpprint(os,":"); xx-=m; xx*=60; int s = int(xx); if(s<10) dumpprint(os,"0"); dumpprint(os,s); return; }; xx*=600; char* Unit[6] = {"s","ms","µs","ns","ps","fs"}; for(int i=1;i<18;i++) { if(xx >= 100.0) { dumpprint(os,int(xx),i%3,Unit[i/3]); return; }; xx*=10; }; dumpprint(os,"0"); };
double TimerBase::ConvertTo(TimerWord t, Unit unit) { static unsigned long unitsPerSecondTable[] = {1, 1000, 1000*1000, 1000*1000*1000}; assert(unit < sizeof(unitsPerSecondTable) / sizeof(unitsPerSecondTable[0])); return (double)CRYPTOPP_VC6_INT64 t * unitsPerSecondTable[unit] / CRYPTOPP_VC6_INT64 TicksPerSecond(); }
double TimerBase::ConvertTo(TimerWord t, Unit unit) { static unsigned long unitsPerSecondTable[] = {1, 1000, 1000*1000, 1000*1000*1000}; // When 'unit' is an enum 'Unit', a Clang warning is generated. assert(static_cast<unsigned int>(unit) < COUNTOF(unitsPerSecondTable)); return (double)CRYPTOPP_VC6_INT64 t * unitsPerSecondTable[unit] / CRYPTOPP_VC6_INT64 TicksPerSecond(); }
double TimerBase::ConvertTo(TimerWord t, Unit unit) { static unsigned long unitsPerSecondTable[] = {1, 1000, 1000*1000, 1000*1000*1000}; CRYPTOPP_ASSERT(unit < COUNTOF(unitsPerSecondTable)); return (double)CRYPTOPP_VC6_INT64 t * unitsPerSecondTable[unit] / CRYPTOPP_VC6_INT64 TicksPerSecond(); }
int64_t XWindow::TicksPerUpdate() { return TicksPerSecond() / UpdatesPerSecond(); }
int64_t XWindow::TicksPerFrame() { return TicksPerSecond() / FramesPerSecond(); }