Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.40 KB | None | 0 0
  1. constexpr uint64_t lo(uint64_t x) { return x & UINT64_C(0xffffffff); }
  2. constexpr uint64_t hi(uint64_t x) { return x >> 32; }
  3.  
  4. constexpr uint64_t mulu64(uint64_t a, uint64_t b)
  5. {
  6. return lo(lo(a) * lo(b))
  7. + (lo(hi(lo(a) * lo(b))
  8. + lo(a) * hi(b)
  9. + hi(a) * lo(b)) << 32);
  10. }
  11.  
  12. constexpr uint64_t addu64(uint64_t a, uint64_t b)
  13. {
  14. return lo(lo(a) + lo(b))
  15. + (lo(hi(lo(a) + lo(b)) + (hi(a) + hi(b))) << 32);
  16. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement