diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2024-03-03 11:07:09 +0100 |
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-03-04 06:58:12 +0100 |
| commit | d0065f07cdcb62f49586e2067fd164897fddba6f (patch) | |
| tree | 8d8c9e3408d6959ac4725546a324c370c95f676b /src/timer.cpp | |
| parent | 947c86aae15a59401b11f2d134dd540e38e3ceb6 (diff) | |
src/timer: a?
Diffstat (limited to 'src/timer.cpp')
| -rw-r--r-- | src/timer.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/timer.cpp b/src/timer.cpp index bd4baad8..b068c55d 100644 --- a/src/timer.cpp +++ b/src/timer.cpp @@ -46,20 +46,30 @@ uint64_t Time::init() noexcept { return get_time(); } bool Time::operator==(const Time&) const noexcept = default; std::strong_ordering Time::operator<=>(const Time&) const noexcept = default; -double Time::to_seconds(const Ns& ts) noexcept +float Time::to_seconds(const Ns& ts) noexcept { - auto x1 = double{ts}; - auto x2 = x1 * 1e-9; - fm_assert(x2 < double{1 << 24}); - return x2; + if (ts.stamp == 0) [[unlikely]] + return 0; + else + { + auto x = double(ts.stamp) * 1e-9; + fm_assert(x < double{1 << 24}); + //fm_assert(x >= 1e-10f); + return (float)x; + } } -double Time::to_milliseconds(const Ns& ts) noexcept +float Time::to_milliseconds(const Ns& ts) noexcept { - auto x1 = double{ts}; - auto x2 = x1 * 1e-6; - fm_assert(x2 < double{1 << 24}); - return x2; + if (ts.stamp == 0) [[unlikely]] + return 0; + else + { + auto x = double(ts.stamp) * 1e-6; + fm_assert(x < double{1 << 24}); + fm_assert(x >= 1e-10); + return (float)x; + } } const char* format_datetime_to_string(char (&buf)[fm_DATETIME_BUF_SIZE]) |
