IOSS 2.0
Loading...
Searching...
No Matches
pdqsort.h File Reference
#include <algorithm>
#include <cstddef>
#include <functional>
#include <iterator>
#include <utility>
Include dependency graph for pdqsort.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  pdqsort_detail
 

Macros

#define PDQSORT_PREFER_MOVE(x)
 

Enumerations

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

Functions

template<class T >
int pdqsort_detail::pdq_log2 (T n)
 
template<class Iter , class Compare >
void pdqsort_detail::insertion_sort (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
void pdqsort_detail::unguarded_insertion_sort (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
bool pdqsort_detail::partial_insertion_sort (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
void pdqsort_detail::sort2 (Iter a, Iter b, Compare comp)
 
template<class Iter , class Compare >
void pdqsort_detail::sort3 (Iter a, Iter b, Iter c, Compare comp)
 
template<class T >
T * pdqsort_detail::align_cacheline (T *p)
 
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)
 
template<class Iter , class Compare >
std::pair< Iter, bool > pdqsort_detail::partition_right_branchless (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
std::pair< Iter, bool > pdqsort_detail::partition_right (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare >
Iter pdqsort_detail::partition_left (Iter begin, Iter end, Compare comp)
 
template<class Iter , class Compare , bool Branchless>
void pdqsort_detail::pdqsort_loop (Iter begin, Iter end, Compare comp, int bad_allowed, bool leftmost=true)
 
template<class Iter , class Compare >
void pdqsort (Iter begin, Iter end, Compare comp)
 
template<class Iter >
void pdqsort (Iter begin, Iter end)
 
template<class Iter , class Compare >
void pdqsort_branchless (Iter begin, Iter end, Compare comp)
 
template<class Iter >
void pdqsort_branchless (Iter begin, Iter end)
 

Macro Definition Documentation

◆ PDQSORT_PREFER_MOVE

#define PDQSORT_PREFER_MOVE ( x)
Value:
(x)

Function Documentation

◆ pdqsort() [1/2]

template<class Iter >
void pdqsort ( Iter begin,
Iter end )
inline

◆ pdqsort() [2/2]

template<class Iter , class Compare >
void pdqsort ( Iter begin,
Iter end,
Compare comp )
inline

◆ pdqsort_branchless() [1/2]

template<class Iter >
void pdqsort_branchless ( Iter begin,
Iter end )
inline

◆ pdqsort_branchless() [2/2]

template<class Iter , class Compare >
void pdqsort_branchless ( Iter begin,
Iter end,
Compare comp )
inline