hops
Classes | Namespaces | Macros | Typedefs | Functions
pcg_extras.hpp File Reference
#include <cinttypes>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <limits>
#include <iostream>
#include <type_traits>
#include <utility>
#include <locale>
#include <iterator>
#include "pcg_uint128.hpp"
Include dependency graph for pcg_extras.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  pcg_extras::seed_seq_from< RngType >
 
struct  pcg_extras::static_arbitrary_seed< IntType >
 

Namespaces

 pcg_extras
 

Macros

#define PCG_NOINLINE
 
#define PCG_128BIT_CONSTANT(high, low)   pcg128_t(high,low)
 
#define PCG_EMULATED_128BIT_MATH   1
 

Typedefs

typedef pcg_extras::uint_x4< uint32_t, uint64_t > pcg_extras::pcg128_t
 
typedef uint8_t pcg_extras::bitcount_t
 

Functions

template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & pcg_extras::operator<< (std::basic_ostream< CharT, Traits > &out, pcg128_t value)
 
template<typename CharT , typename Traits >
std::basic_istream< CharT, Traits > & pcg_extras::operator>> (std::basic_istream< CharT, Traits > &in, pcg128_t &value)
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & pcg_extras::operator<< (std::basic_ostream< CharT, Traits > &out, uint8_t value)
 
template<typename CharT , typename Traits >
std::basic_istream< CharT, Traits > & pcg_extras::operator>> (std::basic_istream< CharT, Traits > &in, uint8_t &target)
 
std::ostream & pcg_extras::operator<< (std::ostream &out, uint8_t value)
 
std::istream & pcg_extras::operator>> (std::istream &in, uint8_t &value)
 
template<typename itype >
itype pcg_extras::unxorshift (itype x, bitcount_t bits, bitcount_t shift)
 
template<typename itype >
itype pcg_extras::rotl (itype value, bitcount_t rot)
 
template<typename itype >
itype pcg_extras::rotr (itype value, bitcount_t rot)
 
template<class SrcIter , class DestIter >
SrcIter pcg_extras::uneven_copy_impl (SrcIter src_first, DestIter dest_first, DestIter dest_last, std::true_type)
 
template<class SrcIter , class DestIter >
SrcIter pcg_extras::uneven_copy_impl (SrcIter src_first, DestIter dest_first, DestIter dest_last, std::false_type)
 
template<class SrcIter , class DestIter >
SrcIter pcg_extras::uneven_copy (SrcIter src_first, DestIter dest_first, DestIter dest_last)
 
template<size_t size, typename SeedSeq , typename DestIter >
void pcg_extras::generate_to_impl (SeedSeq &&generator, DestIter dest, std::true_type)
 
template<size_t size, typename SeedSeq , typename DestIter >
void pcg_extras::generate_to_impl (SeedSeq &&generator, DestIter dest, std::false_type)
 
template<size_t size, typename SeedSeq , typename DestIter >
void pcg_extras::generate_to (SeedSeq &&generator, DestIter dest)
 
template<typename UInt , size_t i = 0UL, size_t N = i+1UL, typename SeedSeq >
UInt pcg_extras::generate_one (SeedSeq &&generator)
 
template<typename RngType >
auto pcg_extras::bounded_rand (RngType &rng, typename RngType::result_type upper_bound) -> typename RngType::result_type
 
template<typename Iter , typename RandType >
void pcg_extras::shuffle (Iter from, Iter to, RandType &&rng)
 

Macro Definition Documentation

◆ PCG_128BIT_CONSTANT

#define PCG_128BIT_CONSTANT (   high,
  low 
)    pcg128_t(high,low)

◆ PCG_EMULATED_128BIT_MATH

#define PCG_EMULATED_128BIT_MATH   1

◆ PCG_NOINLINE

#define PCG_NOINLINE