00001
00002
00008 #if !defined(__ads_algorithm_extremeElement_h__)
00009 #define __ads_algorithm_extremeElement_h__
00010
00011 #include "../defs.h"
00012
00013 #include <iterator>
00014
00015 #include <cassert>
00016
00017 BEGIN_NAMESPACE_ADS
00018
00019
00021
00022
00024 template<typename _RandomAccessIterator>
00025 _RandomAccessIterator
00026 findMinimumElementUnrolledEven(_RandomAccessIterator begin, _RandomAccessIterator end);
00027
00029 template<typename _RandomAccessIterator>
00030 _RandomAccessIterator
00031 findMinimumElementUnrolledOdd(_RandomAccessIterator begin, _RandomAccessIterator end);
00032
00034 template<typename _RandomAccessIterator>
00035 _RandomAccessIterator
00036 findMinimumElementUnrolled(_RandomAccessIterator begin,
00037 _RandomAccessIterator end);
00038
00040 template<typename _RandomAccessIterator>
00041 _RandomAccessIterator
00042 findMaximumElementUnrolledEven(_RandomAccessIterator begin, _RandomAccessIterator end);
00043
00045 template<typename _RandomAccessIterator>
00046 _RandomAccessIterator
00047 findMaximumElementUnrolledOdd(_RandomAccessIterator begin, _RandomAccessIterator end);
00048
00050 template<typename _RandomAccessIterator>
00051 _RandomAccessIterator
00052 findMaximumElementUnrolled(_RandomAccessIterator begin,
00053 _RandomAccessIterator end);
00054
00056 template<typename _RandomAccessIterator, typename _BinaryPredicate>
00057 _RandomAccessIterator
00058 findExtremeElementUnrolledEven(_RandomAccessIterator begin, _RandomAccessIterator end,
00059 _BinaryPredicate compare);
00060
00062 template<typename _RandomAccessIterator, typename _BinaryPredicate>
00063 _RandomAccessIterator
00064 findExtremeElementUnrolledOdd(_RandomAccessIterator begin, _RandomAccessIterator end,
00065 _BinaryPredicate compare);
00066
00068 template<typename _RandomAccessIterator, typename _BinaryPredicate>
00069 _RandomAccessIterator
00070 findExtremeElementUnrolled(_RandomAccessIterator begin,
00071 _RandomAccessIterator end, _BinaryPredicate compare);
00072
00073
00074
00075 END_NAMESPACE_ADS
00076
00077 #define __ads_algorithm_extremeElement_ipp__
00078 #include "extremeElement.ipp"
00079 #undef __ads_algorithm_extremeElement_ipp__
00080
00081 #endif