<
typename_Traits,
typename_AllowDuplicates>
60std::numeric_limits<hash_type>::is_integer ||
65 template<
typename_Init>
66 staticconstexpr
auto sort(_Init&&
init) noexcept
71 template<
bool_SortByValues,
typename_Init>
72 staticconstexpr
auto sort(std::integral_constant<bool, _SortByValues> _Tag, _Init&&
init) noexcept
77 template<
typename_Init>
82 returnstd::make_pair(real_size, indices);
89 template<
typename_Input>
90constexpr
bool operator()(
const_Input& input,
size_t l,
size_t r)
const 92 return typenamesort_traits::hashed_key_type::hash_compare{}(
93sort_traits::get_init_hash(input[
l]),
94sort_traits::get_init_hash(input[
r])
105 returnstd::make_tuple(indices.first, values, hashes);
113 returnstd::make_pair(indices.first, values);
116 template<
typename_Indices>
119 while(
head!= tail)
122indices[
prev] = indices[tail];
124indices[
head] = current;
126 template<
typename_Indices,
typename_Input,
typename_Pred>
135 const size_type_UMid = _UFirst + _Count2;
136 if(pred(input, indices[_UMid],
value))
138_UFirst = (_UMid + 1);
139_Count -= _Count2 + 1;
149 template<
typename_Indices,
typename_Input,
typename_Pred>
158 const size_type_UMid = _UFirst + _Count2;
159 if(pred(input,
value, indices[_UMid]))
165_UFirst = (_UMid + 1);
166_Count -= _Count2 + 1;
173 template<
typename_Indices,
typename_Input>
188 while(current !=
size)
202need_to_move = (fit == 0) || pred(input,
result[fit-1], current);
215 while(++current !=
size)
223 template<
typename_Input,
typename_Indices,
size_type... I>
224 staticconstexpr
auto construct_hashes(
const_Input& input,
const_Indices& indices, std::index_sequence<I...>) noexcept
225-> std::array<
hash_type,
sizeof...(I)>
228 return{ sort_traits::get_init_hash(input[indices.second[I < real_size ? I : real_size - 1]]) ...};
231 template<
typename_Input,
typename_Indices,
size_type... I>
232 staticconstexpr
auto construct_values(
const_Input& input,
const_Indices& indices, std::index_sequence<I...>) noexcept
235 autoreal_size = indices.first;
236 return{ sort_traits::construct(input[indices.second[I < real_size ? I : real_size - 1]]) ...};
static constexpr void insert_down(_Indices &indices, size_type head, size_type tail, size_type current)
static constexpr auto make_indices(_Init &&input) noexcept
static constexpr auto x_sort(tag_SortByHashes, const _Init &init) noexcept
static constexpr size_type const_lower_bound(_Pred pred, const _Indices &indices, const _Input &input, size_type size, size_type value)
static constexpr size_type insert_sort_indices(_Indices &result, const _Input &input)
static constexpr auto sort(_Init &&init) noexcept
typename sort_traits::init_type init_type
static constexpr auto x_sort(tag_SortByValues, const _Init &init) noexcept
static constexpr size_type const_upper_bound(_Pred pred, const _Indices &indices, const _Input &input, size_type size, size_type value)
typename sort_traits::value_type value_type
static constexpr bool remove_duplicates
static constexpr bool can_index
typename sort_traits::hash_type hash_type
static constexpr auto construct_hashes(const _Input &input, const _Indices &indices, std::index_sequence< I... >) noexcept -> std::array< hash_type, sizeof...(I)>
static constexpr auto sort(std::integral_constant< bool, _SortByValues > _Tag, _Init &&init) noexcept
std::integral_constant< bool, can_index > tag_can_index
static constexpr auto construct_values(const _Input &input, const _Indices &indices, std::index_sequence< I... >) noexcept -> std::array< value_type, sizeof...(I)>
static void DLIST_NAME() init(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() prev(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
std::false_type tag_SortByValues
std::true_type tag_SortByHashes
double value_type
The numeric datatype used by the parser.
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
constexpr bool operator()(const _Input &input, size_t l, size_t r) const
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4