IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
sort.hxx File Reference
#include <ice/base.hxx>
#include <ice/span.hxx>
#include <algorithm>

Go to the source code of this file.

Namespaces

namespace  ice
 SPDX-License-Identifier: MIT.
namespace  ice::detail

Functions

template<typename Type, typename Fn>
auto ice::accumulate_over (ice::Span< Type > objects, Fn &&fn) noexcept -> ice::u32
template<typename T, typename U = T>
requires (std::convertible_to<T, U>)
constexpr auto ice::lower_bound (ice::Span< T > values, U const &value) noexcept -> ice::u32
template<typename T, typename Comp, typename U = T>
requires (std::convertible_to<T, U>)
constexpr auto ice::lower_bound (ice::Span< T > values, U const &value, Comp &&comp) noexcept -> ice::u32
template<typename T, typename U = T>
requires (std::convertible_to<T, U>)
constexpr auto ice::upper_bound (ice::Span< T > values, U const &value) noexcept -> ice::u32
template<typename T, typename Comp, typename U = T>
requires (std::convertible_to<T, U>)
constexpr auto ice::upper_bound (ice::Span< T > values, U const &value, Comp &&comp) noexcept -> ice::u32
template<typename T, typename U = T>
requires (std::convertible_to<T, U>)
constexpr bool ice::binary_search (ice::Span< T > values, U const &value, ice::u32 &out_index) noexcept
template<typename T, typename Comp, typename U = T>
requires (std::convertible_to<T, U>)
constexpr bool ice::binary_search (ice::Span< T > values, U const &value, Comp &&comp, ice::u32 &out_index) noexcept
template<typename T, typename U = T>
requires (std::convertible_to<T, U>)
constexpr bool ice::search (ice::Span< T > values, U const &value, ice::u32 &out_index) noexcept
template<typename T, typename Comp, typename U = T>
constexpr bool ice::search (ice::Span< T > values, U const &value, Comp &&comp, ice::u32 &out_index) noexcept
template<typename T>
void ice::sort (ice::Span< T > span) noexcept
template<typename T, typename Pred>
void ice::sort (ice::Span< T > span, Pred &&pred) noexcept
template<typename K, typename V, typename Pred>
void ice::sort (ice::Span< K > keys, ice::Span< V > values, Pred &&pred) noexcept
template<typename T>
constexpr auto ice::constexpr_sort_stdarray (T const &arrarr, ice::u32 start_offset=0) noexcept -> T
template<typename K, typename Pred>
void ice::sort_indices (ice::Span< K > keys, ice::Span< ice::u32 > indices, Pred &&pred) noexcept
template<typename Node, typename Pred>
auto ice::sort_linked_list (Node *left_list, ice::u32 size, Pred &&pred) noexcept -> Node *
template<typename T, typename Comp, typename... U>
constexpr bool ice::search_with (ice::Span< T > values, Comp &&comp, ice::u32 &out_index, U const &... params) noexcept
template<typename K, typename V, typename Pred>
auto ice::detail::qsort_partition (ice::Span< K > keys, ice::Span< V > &values, Pred &&pred, ice::i32 left, ice::i32 right) noexcept -> ice::i32
template<typename Pred, typename Key, typename... Values>
auto ice::detail::qsort_partition_many (Pred &&pred, ice::i32 left, ice::i32 right, ice::Span< Key > keys, ice::Span< Values >... values) noexcept -> ice::i32
template<typename K, typename Pred>
auto ice::detail::qsort_partition_indices (ice::Span< K > keys, ice::Span< ice::u32 > &indices, Pred &&pred, ice::i32 left, ice::i32 right) noexcept -> ice::i32
template<typename K, typename V, typename Pred>
void ice::detail::qsort (ice::Span< K > keys, ice::Span< V > values, Pred &&pred, ice::i32 left, ice::i32 right) noexcept
template<typename Pred, typename Key, typename... Values>
void ice::detail::qsort_many (Pred &&pred, ice::i32 left, ice::i32 right, ice::Span< Key > keys, ice::Span< Values >... values) noexcept
template<typename K, typename Pred>
void ice::detail::qsort_indices (ice::Span< K > keys, ice::Span< ice::u32 > indices, Pred &&pred, ice::i32 left, ice::i32 right) noexcept
template<typename Key, typename Pred, typename... Values>
requires ice::concepts::ComparisonFunction<Pred, Key, Key>
void ice::sort_many (ice::Span< Key > keys, Pred &&pred, ice::Span< Values >... values) noexcept