#include <cstdint>
#include <vector>
Go to the source code of this file.
|
template<typename T > |
void | BitonicCompare (sort_direction aDir, typename std::vector< T >::iterator &aDataStart, typename std::vector< T >::iterator &aDataEnd) |
|
template<typename T > |
void | BitonicMerge (sort_direction aDir, typename std::vector< T >::iterator &aDataStart, typename std::vector< T >::iterator &aDataEnd) |
|
template<typename T > |
void | BitonicSort (sort_direction aDir, typename std::vector< T >::iterator &aDataStart, typename std::vector< T >::iterator &aDataEnd) |
|
template<typename T >
void BitonicCompare |
( |
sort_direction |
aDir, |
|
|
typename std::vector< T >::iterator & |
aDataStart, |
|
|
typename std::vector< T >::iterator & |
aDataEnd |
|
) |
| |
Definition at line 73 of file BitonicSort.h.
References down, std::swap(), and up.
79 uint32_t lSize( aDataEnd - aDataStart );
81 typename std::vector<T>::iterator lFirst( aDataStart );
82 typename std::vector<T>::iterator lSecond( aDataStart+(lSize>>1) );
84 for( ; lSecond != aDataEnd ; ++lFirst , ++lSecond ){
85 bool lComp( *lFirst > *lSecond );
86 if( ( lComp && (aDir ==
up) ) || ( !lComp && (aDir ==
down) ) ) {
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
template<typename T >
void BitonicMerge |
( |
sort_direction |
aDir, |
|
|
typename std::vector< T >::iterator & |
aDataStart, |
|
|
typename std::vector< T >::iterator & |
aDataEnd |
|
) |
| |
Definition at line 55 of file BitonicSort.h.
60 uint32_t lSize( aDataEnd - aDataStart );
63 BitonicCompare<T> ( aDir, aDataStart , aDataEnd );
64 typename std::vector<T>::iterator lMidpoint( aDataStart+(lSize>>1) );
65 BitonicMerge<T> ( aDir, aDataStart , lMidpoint );
66 BitonicMerge<T> ( aDir, lMidpoint , aDataEnd );
template<typename T >
void BitonicSort |
( |
sort_direction |
aDir, |
|
|
typename std::vector< T >::iterator & |
aDataStart, |
|
|
typename std::vector< T >::iterator & |
aDataEnd |
|
) |
| |
Definition at line 37 of file BitonicSort.h.
References down, and up.
42 uint32_t lSize( aDataEnd - aDataStart );
45 typename std::vector<T>::iterator lMidpoint( aDataStart+(lSize>>1) );
46 BitonicSort<T> (
up, aDataStart , lMidpoint );
47 BitonicSort<T> (
down, lMidpoint , aDataEnd );
48 BitonicMerge<T> (aDir, aDataStart , aDataEnd );