tlx
tlx::sort_networks::best Namespace Reference

Implementation of best known sorting networks for up to sixteen elements. More...

Typedefs

template<typename Iterator >
using DefaultCSwap = CS_IfSwap< std::less< typename std::iterator_traits< Iterator >::value_type > >
 default conditional swap implementation More...
 

Functions

template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort2 (Iterator a, CSwap cswap=CSwap())
 sorting network for two elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort3 (Iterator a, CSwap cswap=CSwap())
 sorting network for three elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort4 (Iterator a, CSwap cswap=CSwap())
 sorting network for four elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort5 (Iterator a, CSwap cswap=CSwap())
 sorting network for five elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort6 (Iterator a, CSwap cswap=CSwap())
 sorting network for six elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort7 (Iterator a, CSwap cswap=CSwap())
 sorting network for seven elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort8 (Iterator a, CSwap cswap=CSwap())
 sorting network for eight elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort9 (Iterator a, CSwap cswap=CSwap())
 sorting network for nine elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort10 (Iterator a, CSwap cswap=CSwap())
 sorting network for ten elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort11 (Iterator a, CSwap cswap=CSwap())
 sorting network for eleven elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort12 (Iterator a, CSwap cswap=CSwap())
 sorting network for twelve elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort13 (Iterator a, CSwap cswap=CSwap())
 sorting network for thirteen elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort14 (Iterator a, CSwap cswap=CSwap())
 sorting network for fourteen elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort15 (Iterator a, CSwap cswap=CSwap())
 sorting network for fifteen elements More...
 
template<typename Iterator , typename CSwap = DefaultCSwap<Iterator>>
static void sort16 (Iterator a, CSwap cswap=CSwap())
 sorting network for sixteen elements More...
 
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. More...
 

Detailed Description

Implementation of best known sorting networks for up to sixteen elements.

Typedef Documentation

◆ DefaultCSwap

using DefaultCSwap = CS_IfSwap< std::less<typename std::iterator_traits<Iterator>::value_type> >

default conditional swap implementation

Definition at line 58 of file best.hpp.

Function Documentation

◆ sort()

static void tlx::sort_networks::best::sort ( Iterator  begin,
Iterator  end,
Comparator  cmp = Comparator() 
)
static

Call best known sorting network for up to sixteen elements with given comparison method.

Definition at line 545 of file best.hpp.

◆ sort10()

static void tlx::sort_networks::best::sort10 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for ten elements

Definition at line 193 of file best.hpp.

◆ sort11()

static void tlx::sort_networks::best::sort11 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for eleven elements

Definition at line 227 of file best.hpp.

◆ sort12()

static void tlx::sort_networks::best::sort12 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for twelve elements

Definition at line 267 of file best.hpp.

◆ sort13()

static void tlx::sort_networks::best::sort13 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for thirteen elements

Definition at line 311 of file best.hpp.

◆ sort14()

static void tlx::sort_networks::best::sort14 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for fourteen elements

Definition at line 361 of file best.hpp.

◆ sort15()

static void tlx::sort_networks::best::sort15 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for fifteen elements

Definition at line 417 of file best.hpp.

◆ sort16()

static void tlx::sort_networks::best::sort16 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for sixteen elements

Definition at line 478 of file best.hpp.

◆ sort2()

static void tlx::sort_networks::best::sort2 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for two elements

Definition at line 63 of file best.hpp.

◆ sort3()

static void tlx::sort_networks::best::sort3 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for three elements

Definition at line 69 of file best.hpp.

◆ sort4()

static void tlx::sort_networks::best::sort4 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for four elements

Definition at line 77 of file best.hpp.

◆ sort5()

static void tlx::sort_networks::best::sort5 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for five elements

Definition at line 87 of file best.hpp.

◆ sort6()

static void tlx::sort_networks::best::sort6 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for six elements

Definition at line 101 of file best.hpp.

◆ sort7()

static void tlx::sort_networks::best::sort7 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for seven elements

Definition at line 118 of file best.hpp.

◆ sort8()

static void tlx::sort_networks::best::sort8 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for eight elements

Definition at line 139 of file best.hpp.

◆ sort9()

static void tlx::sort_networks::best::sort9 ( Iterator  a,
CSwap  cswap = CSwap() 
)
static

sorting network for nine elements

Definition at line 163 of file best.hpp.