|
template<typename CharT , typename Traits > |
std::basic_ostream< CharT, Traits > & | operator<< (std::basic_ostream< CharT, Traits > &out, pcg128_t value) |
|
template<typename CharT , typename Traits > |
std::basic_istream< CharT, Traits > & | operator>> (std::basic_istream< CharT, Traits > &in, pcg128_t &value) |
|
template<typename CharT , typename Traits > |
std::basic_ostream< CharT, Traits > & | operator<< (std::basic_ostream< CharT, Traits > &out, uint8_t value) |
|
template<typename CharT , typename Traits > |
std::basic_istream< CharT, Traits > & | operator>> (std::basic_istream< CharT, Traits > &in, uint8_t &target) |
|
std::ostream & | operator<< (std::ostream &out, uint8_t value) |
|
std::istream & | operator>> (std::istream &in, uint8_t &value) |
|
template<typename itype > |
itype | unxorshift (itype x, bitcount_t bits, bitcount_t shift) |
|
template<typename itype > |
itype | rotl (itype value, bitcount_t rot) |
|
template<typename itype > |
itype | rotr (itype value, bitcount_t rot) |
|
template<class SrcIter , class DestIter > |
SrcIter | uneven_copy_impl (SrcIter src_first, DestIter dest_first, DestIter dest_last, std::true_type) |
|
template<class SrcIter , class DestIter > |
SrcIter | uneven_copy_impl (SrcIter src_first, DestIter dest_first, DestIter dest_last, std::false_type) |
|
template<class SrcIter , class DestIter > |
SrcIter | uneven_copy (SrcIter src_first, DestIter dest_first, DestIter dest_last) |
|
template<size_t size, typename SeedSeq , typename DestIter > |
void | generate_to_impl (SeedSeq &&generator, DestIter dest, std::true_type) |
|
template<size_t size, typename SeedSeq , typename DestIter > |
void | generate_to_impl (SeedSeq &&generator, DestIter dest, std::false_type) |
|
template<size_t size, typename SeedSeq , typename DestIter > |
void | generate_to (SeedSeq &&generator, DestIter dest) |
|
template<typename UInt , size_t i = 0UL, size_t N = i+1UL, typename SeedSeq > |
UInt | generate_one (SeedSeq &&generator) |
|
template<typename RngType > |
auto | bounded_rand (RngType &rng, typename RngType::result_type upper_bound) -> typename RngType::result_type |
|
template<typename Iter , typename RandType > |
void | shuffle (Iter from, Iter to, RandType &&rng) |
|
bitcount_t | flog2 (uint32_t v) |
|
bitcount_t | trailingzeros (uint32_t v) |
|
bitcount_t | flog2 (uint64_t v) |
|
bitcount_t | trailingzeros (uint64_t v) |
|
template<typename UInt > |
bitcount_t | clog2 (UInt v) |
|
template<typename UInt > |
UInt | addwithcarry (UInt x, UInt y, bool carryin, bool *carryout) |
|
template<typename UInt > |
UInt | subwithcarry (UInt x, UInt y, bool carryin, bool *carryout) |
|
template<typename U , typename V > |
bitcount_t | flog2 (const uint_x4< U, V > &v) |
|
template<typename U , typename V > |
bitcount_t | trailingzeros (const uint_x4< U, V > &v) |
|
template<typename UInt , typename UIntX2 > |
std::pair< uint_x4< UInt, UIntX2 >, uint_x4< UInt, UIntX2 > > | divmod (const uint_x4< UInt, UIntX2 > &orig_dividend, const uint_x4< UInt, UIntX2 > &divisor) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator/ (const uint_x4< UInt, UIntX2 > ÷nd, const uint_x4< UInt, UIntX2 > &divisor) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator% (const uint_x4< UInt, UIntX2 > ÷nd, const uint_x4< UInt, UIntX2 > &divisor) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator* (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator+ (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator- (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator& (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator| (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator^ (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator~ (const uint_x4< UInt, UIntX2 > &v) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator- (const uint_x4< UInt, UIntX2 > &v) |
|
template<typename UInt , typename UIntX2 > |
bool | operator== (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
bool | operator!= (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
bool | operator< (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
bool | operator> (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
bool | operator<= (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
bool | operator>= (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator<< (const uint_x4< UInt, UIntX2 > &v, const bitcount_t shift) |
|
template<typename UInt , typename UIntX2 > |
uint_x4< UInt, UIntX2 > | operator>> (const uint_x4< UInt, UIntX2 > &v, const bitcount_t shift) |
|