8 namespace alps {
namespace alea {
namespace internal {
14 throw std::runtime_error(
"Number of batches must be even to allow " 51 void galois_hopper::advance_fill()
58 if (current_ == size_) {
64 void galois_hopper::advance_galois()
68 if (level_pos_ == size_/2) {
74 current_ = (current_ + 2 * skip_) % (size_ + 1);
75 assert(current_ != size_);
79 assert(level_pos_ == 0);
std::enable_if<!is_sequence< T >::value, std::size_t >::type size(T const &)
void reset(bool merge_mode=false)
size_t merge_into() const
galois_hopper(size_t size)
galois_hopper & operator++()
std::enable_if< is_alea_result< T >::value, void >::type save(Archive &ar, const T &r, const unsigned int)