diff options
author | Frank Busse <bb0xfb@gmail.com> | 2019-03-11 11:09:34 +0000 |
---|---|---|
committer | MartinNowack <martin.nowack@gmail.com> | 2019-03-12 00:20:57 +0000 |
commit | 59eb5a817471ad0887706637c4e43ff474e7fb63 (patch) | |
tree | b6f00f7c34d231f8feca0c320970289b8cd136b3 /lib/Support | |
parent | 0e92811fe7ba7b98425391ef8f8995174afc4f74 (diff) | |
download | klee-59eb5a817471ad0887706637c4e43ff474e7fb63.tar.gz |
time: add double type for span multiplications
Diffstat (limited to 'lib/Support')
-rw-r--r-- | lib/Support/Time.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/Support/Time.cpp b/lib/Support/Time.cpp index 7cd9659b..219b07b0 100644 --- a/lib/Support/Time.cpp +++ b/lib/Support/Time.cpp @@ -106,13 +106,23 @@ error: time::Span& time::Span::operator=(const time::Duration &d) { duration = d; return *this; }; time::Span& time::Span::operator+=(const time::Span &other) { duration += other.duration; return *this; } time::Span& time::Span::operator-=(const time::Span &other) { duration -= other.duration; return *this; } -time::Span& time::Span::operator*=(const time::Duration::rep &rep) { duration *= rep; return *this; } +time::Span& time::Span::operator*=(unsigned factor) { duration *= factor; return *this; } +time::Span& time::Span::operator*=(double factor) { + duration = std::chrono::microseconds((std::uint64_t)((double)toMicroseconds() * factor)); + return *this; +} time::Span time::operator+(const time::Span &lhs, const time::Span &rhs) { return time::Span(lhs.duration + rhs.duration); } time::Span time::operator-(const time::Span &lhs, const time::Span &rhs) { return time::Span(lhs.duration - rhs.duration); } -time::Span time::operator*(const time::Span &span, const time::Duration::rep &rep) { return time::Span(span.duration * rep); } -time::Span time::operator*(const time::Duration::rep &rep, const time::Span &span) { return time::Span(span.duration * rep); } -time::Span time::operator/(const time::Span &span, const time::Duration::rep &rep) { return time::Span(span.duration / rep); } +time::Span time::operator*(const time::Span &span, double factor) { + return time::Span(std::chrono::microseconds((std::uint64_t)((double)span.toMicroseconds() * factor))); +}; +time::Span time::operator*(double factor, const time::Span &span) { + return time::Span(std::chrono::microseconds((std::uint64_t)((double)span.toMicroseconds() * factor))); +}; +time::Span time::operator*(const time::Span &span, unsigned factor) { return time::Span(span.duration * factor); } +time::Span time::operator*(unsigned factor, const time::Span &span) { return time::Span(span.duration * factor); } +time::Span time::operator/(const time::Span &span, unsigned divisor) { return time::Span(span.duration / divisor); } bool time::operator==(const time::Span &lhs, const time::Span &rhs) { return lhs.duration == rhs.duration; } bool time::operator<=(const time::Span &lhs, const time::Span &rhs) { return lhs.duration <= rhs.duration; } bool time::operator>=(const time::Span &lhs, const time::Span &rhs) { return lhs.duration >= rhs.duration; } |