tlx
Loading...
Searching...
No Matches
best.hpp File Reference
#include <tlx/sort/networks/cswap.hpp>
#include <functional>

Go to the source code of this file.

Namespaces

namespace  tlx
namespace  tlx::sort_networks
 Implementations of sorting networks for up to sixteen elements.
namespace  tlx::sort_networks::best
 Implementation of best known sorting networks for up to sixteen elements.

Typedefs

template<typename Iterator>
using DefaultCSwap
 default conditional swap implementation

Functions

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort2 (Iterator a, CSwap cswap=CSwap())
 sorting network for two elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort3 (Iterator a, CSwap cswap=CSwap())
 sorting network for three elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort4 (Iterator a, CSwap cswap=CSwap())
 sorting network for four elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort5 (Iterator a, CSwap cswap=CSwap())
 sorting network for five elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort6 (Iterator a, CSwap cswap=CSwap())
 sorting network for six elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort7 (Iterator a, CSwap cswap=CSwap())
 sorting network for seven elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort8 (Iterator a, CSwap cswap=CSwap())
 sorting network for eight elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort9 (Iterator a, CSwap cswap=CSwap())
 sorting network for nine elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort10 (Iterator a, CSwap cswap=CSwap())
 sorting network for ten elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort11 (Iterator a, CSwap cswap=CSwap())
 sorting network for eleven elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort12 (Iterator a, CSwap cswap=CSwap())
 sorting network for twelve elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort13 (Iterator a, CSwap cswap=CSwap())
 sorting network for thirteen elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort14 (Iterator a, CSwap cswap=CSwap())
 sorting network for fourteen elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort15 (Iterator a, CSwap cswap=CSwap())
 sorting network for fifteen elements
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort16 (Iterator a, CSwap cswap=CSwap())
 sorting network for sixteen elements
template<typename Iterator, typename Comparator = std::less<typename std::iterator_traits<Iterator>::value_type>>
static void sort (Iterator begin, Iterator end, Comparator cmp=Comparator())
 Call best known sorting network for up to sixteen elements with given comparison method.