hops
Classes | Namespaces | Functions
pcg_uint128.hpp File Reference
#include <cstdint>
#include <cstdio>
#include <cassert>
#include <climits>
#include <utility>
#include <initializer_list>
#include <type_traits>
Include dependency graph for pcg_uint128.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  pcg_extras::uint_x4< UInt, UIntX2 >
 

Namespaces

 pcg_extras
 

Functions

bitcount_t pcg_extras::flog2 (uint32_t v)
 
bitcount_t pcg_extras::trailingzeros (uint32_t v)
 
bitcount_t pcg_extras::flog2 (uint64_t v)
 
bitcount_t pcg_extras::trailingzeros (uint64_t v)
 
template<typename UInt >
bitcount_t pcg_extras::clog2 (UInt v)
 
template<typename UInt >
UInt pcg_extras::addwithcarry (UInt x, UInt y, bool carryin, bool *carryout)
 
template<typename UInt >
UInt pcg_extras::subwithcarry (UInt x, UInt y, bool carryin, bool *carryout)
 
template<typename U , typename V >
bitcount_t pcg_extras::flog2 (const uint_x4< U, V > &v)
 
template<typename U , typename V >
bitcount_t pcg_extras::trailingzeros (const uint_x4< U, V > &v)
 
template<typename UInt , typename UIntX2 >
std::pair< uint_x4< UInt, UIntX2 >, uint_x4< UInt, UIntX2 > > pcg_extras::divmod (const uint_x4< UInt, UIntX2 > &orig_dividend, const uint_x4< UInt, UIntX2 > &divisor)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator/ (const uint_x4< UInt, UIntX2 > &dividend, const uint_x4< UInt, UIntX2 > &divisor)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator% (const uint_x4< UInt, UIntX2 > &dividend, const uint_x4< UInt, UIntX2 > &divisor)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator* (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator+ (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator- (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator& (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator| (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator^ (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator~ (const uint_x4< UInt, UIntX2 > &v)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator- (const uint_x4< UInt, UIntX2 > &v)
 
template<typename UInt , typename UIntX2 >
bool pcg_extras::operator== (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
bool pcg_extras::operator!= (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
bool pcg_extras::operator< (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
bool pcg_extras::operator> (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
bool pcg_extras::operator<= (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
bool pcg_extras::operator>= (const uint_x4< UInt, UIntX2 > &a, const uint_x4< UInt, UIntX2 > &b)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator<< (const uint_x4< UInt, UIntX2 > &v, const bitcount_t shift)
 
template<typename UInt , typename UIntX2 >
uint_x4< UInt, UIntX2 > pcg_extras::operator>> (const uint_x4< UInt, UIntX2 > &v, const bitcount_t shift)