IOSS 2.0
Loading...
Searching...
No Matches
pdqsort_detail Namespace Reference

Enumerations

enum  {
  insertion_sort_threshold = 24 , ninther_threshold = 128 , partial_insertion_sort_limit = 8 , block_size = 64 ,
  cacheline_size = 64
}
 

Functions

template<class T >
int pdq_log2 (T n)
 
template<class Iter , class Compare >
void insertion_sort (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
void unguarded_insertion_sort (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
bool partial_insertion_sort (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
void sort2 (Iter a, Iter b, Compare comp)
 
template<class Iter , class Compare >
void sort3 (Iter a, Iter b, Iter c, Compare comp)
 
template<class T >
T * align_cacheline (T *p)
 
template<class Iter >
void swap_offsets (Iter first, Iter last, unsigned char *offsets_l, unsigned char *offsets_r, size_t num, bool use_swaps)
 
template<class Iter , class Compare >
std::pair< Iter, bool > partition_right_branchless (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
std::pair< Iter, bool > partition_right (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
Iter partition_left (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare , bool Branchless>
void pdqsort_loop (Iter begin, Iter end, Compare comp, int bad_allowed, bool leftmost=true)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
insertion_sort_threshold 
ninther_threshold 
partial_insertion_sort_limit 
block_size 
cacheline_size 

Function Documentation

◆ align_cacheline()

template<class T >
T * pdqsort_detail::align_cacheline ( T * p)
inline

◆ insertion_sort()

template<class Iter , class Compare >
void pdqsort_detail::insertion_sort ( Iter begin,
Iter end,
Compare comp )
inline

◆ partial_insertion_sort()

template<class Iter , class Compare >
bool pdqsort_detail::partial_insertion_sort ( Iter begin,
Iter end,
Compare comp )
inline

◆ partition_left()

template<class Iter , class Compare >
Iter pdqsort_detail::partition_left ( Iter begin,
Iter end,
Compare comp )
inline

◆ partition_right()

template<class Iter , class Compare >
std::pair< Iter, bool > pdqsort_detail::partition_right ( Iter begin,
Iter end,
Compare comp )
inline

◆ partition_right_branchless()

template<class Iter , class Compare >
std::pair< Iter, bool > pdqsort_detail::partition_right_branchless ( Iter begin,
Iter end,
Compare comp )
inline

◆ pdq_log2()

template<class T >
int pdqsort_detail::pdq_log2 ( T n)
inline

◆ pdqsort_loop()

template<class Iter , class Compare , bool Branchless>
void pdqsort_detail::pdqsort_loop ( Iter begin,
Iter end,
Compare comp,
int bad_allowed,
bool leftmost = true )
inline

◆ sort2()

template<class Iter , class Compare >
void pdqsort_detail::sort2 ( Iter a,
Iter b,
Compare comp )
inline

◆ sort3()

template<class Iter , class Compare >
void pdqsort_detail::sort3 ( Iter a,
Iter b,
Iter c,
Compare comp )
inline

◆ swap_offsets()

template<class Iter >
void pdqsort_detail::swap_offsets ( Iter first,
Iter last,
unsigned char * offsets_l,
unsigned char * offsets_r,
size_t num,
bool use_swaps )
inline

◆ unguarded_insertion_sort()

template<class Iter , class Compare >
void pdqsort_detail::unguarded_insertion_sort ( Iter begin,
Iter end,
Compare comp )
inline