tlx
Loading...
Searching...
No Matches
tlx::sort_networks::bose_nelson Namespace Reference

Implementation of Bose-Nelson sorting networks for up to sixteen elements. More...

Typedefs

template<typename Iterator>
using DefaultCSwap
 default conditional swap implementation

Functions

template<typename Iterator, typename CSwap>
static void merge1_1 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length one and one
template<typename Iterator, typename CSwap>
static void merge1_2 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length one and two
template<typename Iterator, typename CSwap>
static void merge2_1 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length two and one
template<typename Iterator, typename CSwap>
static void merge2_2 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length two and two
template<typename Iterator, typename CSwap>
static void merge2_3 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length two and three
template<typename Iterator, typename CSwap>
static void merge3_2 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length three and two
template<typename Iterator, typename CSwap>
static void merge3_3 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length three and three
template<typename Iterator, typename CSwap>
static void merge3_4 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length three and four
template<typename Iterator, typename CSwap>
static void merge4_3 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length four and three
template<typename Iterator, typename CSwap>
static void merge4_4 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length four and four
template<typename Iterator, typename CSwap>
static void merge4_5 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length four and five
template<typename Iterator, typename CSwap>
static void merge5_5 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length five and five
template<typename Iterator, typename CSwap>
static void merge5_6 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length five and six
template<typename Iterator, typename CSwap>
static void merge6_6 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length six and six
template<typename Iterator, typename CSwap>
static void merge6_7 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length six and seven
template<typename Iterator, typename CSwap>
static void merge7_7 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length seven and seven
template<typename Iterator, typename CSwap>
static void merge7_8 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length seven and eight
template<typename Iterator, typename CSwap>
static void merge8_8 (Iterator a, Iterator b, CSwap cswap)
 merge network for element arrays length eight and eight
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort2 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for two elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort3 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for three elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort4 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for four elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort5 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for five elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort6 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for six elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort7 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for seven elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort8 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for eight elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort9 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for nine elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort10 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for ten elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort11 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for eleven elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort12 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for twelve elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort13 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for thirteen elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort14 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for fourteen elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort15 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson sorting network for fifteen elements.
template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
static void sort16 (Iterator a, CSwap cswap=CSwap())
 Bose-Nelson 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 Bose-Network sorting network for up to sixteen elements with given comparison method.

Detailed Description

Implementation of Bose-Nelson sorting networks for up to sixteen elements.

Typedef Documentation

◆ DefaultCSwap

template<typename Iterator>
using DefaultCSwap

default conditional swap implementation

Definition at line 36 of file bose_nelson.hpp.

Function Documentation

◆ merge1_1()

template<typename Iterator, typename CSwap>
void merge1_1 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length one and one

Definition at line 43 of file bose_nelson.hpp.

◆ merge1_2()

template<typename Iterator, typename CSwap>
void merge1_2 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length one and two

Definition at line 49 of file bose_nelson.hpp.

◆ merge2_1()

template<typename Iterator, typename CSwap>
void merge2_1 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length two and one

Definition at line 56 of file bose_nelson.hpp.

◆ merge2_2()

template<typename Iterator, typename CSwap>
void merge2_2 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length two and two

Definition at line 63 of file bose_nelson.hpp.

◆ merge2_3()

template<typename Iterator, typename CSwap>
void merge2_3 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length two and three

Definition at line 71 of file bose_nelson.hpp.

◆ merge3_2()

template<typename Iterator, typename CSwap>
void merge3_2 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length three and two

Definition at line 79 of file bose_nelson.hpp.

◆ merge3_3()

template<typename Iterator, typename CSwap>
void merge3_3 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length three and three

Definition at line 87 of file bose_nelson.hpp.

◆ merge3_4()

template<typename Iterator, typename CSwap>
void merge3_4 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length three and four

Definition at line 95 of file bose_nelson.hpp.

◆ merge4_3()

template<typename Iterator, typename CSwap>
void merge4_3 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length four and three

Definition at line 103 of file bose_nelson.hpp.

◆ merge4_4()

template<typename Iterator, typename CSwap>
void merge4_4 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length four and four

Definition at line 111 of file bose_nelson.hpp.

◆ merge4_5()

template<typename Iterator, typename CSwap>
void merge4_5 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length four and five

Definition at line 119 of file bose_nelson.hpp.

◆ merge5_5()

template<typename Iterator, typename CSwap>
void merge5_5 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length five and five

Definition at line 127 of file bose_nelson.hpp.

◆ merge5_6()

template<typename Iterator, typename CSwap>
void merge5_6 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length five and six

Definition at line 135 of file bose_nelson.hpp.

◆ merge6_6()

template<typename Iterator, typename CSwap>
void merge6_6 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length six and six

Definition at line 143 of file bose_nelson.hpp.

◆ merge6_7()

template<typename Iterator, typename CSwap>
void merge6_7 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length six and seven

Definition at line 151 of file bose_nelson.hpp.

◆ merge7_7()

template<typename Iterator, typename CSwap>
void merge7_7 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length seven and seven

Definition at line 159 of file bose_nelson.hpp.

◆ merge7_8()

template<typename Iterator, typename CSwap>
void merge7_8 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length seven and eight

Definition at line 167 of file bose_nelson.hpp.

◆ merge8_8()

template<typename Iterator, typename CSwap>
void merge8_8 ( Iterator a,
Iterator b,
CSwap cswap )
inlinestatic

merge network for element arrays length eight and eight

Definition at line 175 of file bose_nelson.hpp.

◆ sort()

template<typename Iterator, typename Comparator = std::less<typename std::iterator_traits<Iterator>::value_type>>
void sort ( Iterator begin,
Iterator end,
Comparator cmp = Comparator() )
static

Call Bose-Network sorting network for up to sixteen elements with given comparison method.

Definition at line 306 of file bose_nelson.hpp.

◆ sort10()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort10 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for ten elements.

Definition at line 246 of file bose_nelson.hpp.

◆ sort11()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort11 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for eleven elements.

Definition at line 254 of file bose_nelson.hpp.

◆ sort12()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort12 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for twelve elements.

Definition at line 262 of file bose_nelson.hpp.

◆ sort13()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort13 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for thirteen elements.

Definition at line 270 of file bose_nelson.hpp.

◆ sort14()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort14 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for fourteen elements.

Definition at line 278 of file bose_nelson.hpp.

◆ sort15()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort15 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for fifteen elements.

Definition at line 286 of file bose_nelson.hpp.

◆ sort16()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort16 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for sixteen elements.

Definition at line 294 of file bose_nelson.hpp.

◆ sort2()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort2 ( Iterator a,
CSwap cswap = CSwap() )
inlinestatic

Bose-Nelson sorting network for two elements.

Definition at line 185 of file bose_nelson.hpp.

◆ sort3()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort3 ( Iterator a,
CSwap cswap = CSwap() )
inlinestatic

Bose-Nelson sorting network for three elements.

Definition at line 191 of file bose_nelson.hpp.

◆ sort4()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort4 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for four elements.

Definition at line 198 of file bose_nelson.hpp.

◆ sort5()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort5 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for five elements.

Definition at line 206 of file bose_nelson.hpp.

◆ sort6()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort6 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for six elements.

Definition at line 214 of file bose_nelson.hpp.

◆ sort7()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort7 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for seven elements.

Definition at line 222 of file bose_nelson.hpp.

◆ sort8()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort8 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for eight elements.

Definition at line 230 of file bose_nelson.hpp.

◆ sort9()

template<typename Iterator, typename CSwap = DefaultCSwap<Iterator>>
void sort9 ( Iterator a,
CSwap cswap = CSwap() )
static

Bose-Nelson sorting network for nine elements.

Definition at line 238 of file bose_nelson.hpp.