|
Boost Users : |
From: Neill Clift (NeillClift_at_[hidden])
Date: 2019-07-12 05:15:47
>Iff you're gonna fiddle with the limbs anyway, why not just set the bits to zero, directly.
I am unsure what you mean by this. For clearing the bottom b set bits in a value I do assign them to zero unless I wont be clearing them all.
Then I use the packed deposit instruction of x86. This is a bit complicated but it has a huge effect on performance for the 64 bit code.
>You'll have to compile the code for 64-bits (x64), then you'll get 64-bit limbs.
I am compiling with 64 bit and I get 32 bit limbs.
It seems I need a compiler supporting __int64.
> You should use the std-types std::int64_t and std::uint64_t (#include <cstdint>).
Sorry I misspoke here. My reading suggests the compiler needs to support __int128 to get 64 bit limbs. I compile normally as 64 bit and use 64 bit unsigned ints.
>Clang/LLVM (and gcc) has a builtin type (in 64-bit mode only) as an extension __uint128_t (pass (-Xclang) -fforce-enable-int128).
Ill give that a go thanks.
Neill.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net