Tatooine
|
Go to the source code of this file.
Classes | |
struct | tatooine::detail::for_loop::for_loop_impl< Int, N, I, ParallelIndex > |
struct | tatooine::detail::for_loop::for_loop_impl< Int, N, 1, ParallelIndex > |
Last nesting of nested for loops, I is 1. More... | |
struct | tatooine::detail::for_loop::for_loop_impl< Int, N, I, I > |
struct | tatooine::detail::for_loop::for_loop_impl< Int, N, 1, 1 > |
Last nesting of nested for loops, I is 1 and also reached parallel state. More... | |
Namespaces | |
namespace | tatooine |
namespace | tatooine::detail |
namespace | tatooine::detail::for_loop |
Concepts | |
concept | tatooine::for_loop_range_iteration |
concept | tatooine::for_loop_nested_index_iteration |
Functions | |
auto | tatooine::for_loop_num_parallel_threads () |
template<typename T > | |
auto | tatooine::create_aligned_data_for_parallel () |
template<std::size_t ParallelIndex, typename Int , Int... IndexSequence, integral... Ranges, invocable< decltype(((void) IndexSequence, Int{}))... > Iteration> | |
constexpr auto | tatooine::detail::for_loop::for_loop (Iteration &&iteration, std::integer_sequence< Int, IndexSequence... >, std::pair< Ranges, Ranges > const &... ranges) |
template<typename Int = std::size_t, typename Iteration , integral... Ranges> | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, execution_policy::sequential_t, Ranges(&&... ranges)[2]) -> void |
Use this function for creating a sequential nested loop. More... | |
template<typename Int = std::size_t, typename Iteration , integral... Ranges> | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, execution_policy::sequential_t, std::pair< Ranges, Ranges > const &... ranges) -> void |
Use this function for creating a sequential nested loop. More... | |
template<typename Int = std::size_t, typename Iteration , integral... Ends> | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, execution_policy::sequential_t, Ends const ... ends) -> void |
Use this function for creating a sequential nested loop. More... | |
template<typename Int = std::size_t, typename Iteration , integral... Ranges> requires parallel_for_loop_support | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, execution_policy::parallel_t, Ranges(&&... ranges)[2]) -> void |
Use this function for creating a parallel nested loop. More... | |
template<typename Int = std::size_t, typename Iteration , integral... Ranges> requires parallel_for_loop_support | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, execution_policy::parallel_t, std::pair< Ranges, Ranges > const &... ranges) -> void |
Use this function for creating a parallel nested loop. More... | |
template<typename Int = std::size_t, typename Iteration , integral... Ends> requires parallel_for_loop_support | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, execution_policy::parallel_t, Ends const ... ends) -> void |
Use this function for creating a parallel nested loop. More... | |
template<typename Int = std::size_t, typename Iteration , integral... Ranges> | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, Ranges(&&... ranges)[2]) -> void |
Use this function for creating a sequential nested loop. More... | |
template<typename Int = std::size_t, typename Iteration , integral... Ranges> | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, std::pair< Ranges, Ranges > const &... ranges) -> void |
Use this function for creating a sequential nested loop. More... | |
template<typename Int = std::size_t, typename Iteration , integral... Ends> | |
constexpr auto | tatooine::for_loop (Iteration &&iteration, Ends const ... ends) -> void |
Use this function for creating a sequential nested loop. More... | |
template<typename Iteration , integral Int, std::size_t N> | |
auto | tatooine::for_loop_unpacked (Iteration &&iteration, execution_policy_tag auto policy, std::array< Int, N > const &sizes) |
template<typename Iteration , integral Int, std::size_t N> | |
auto | tatooine::for_loop_unpacked (Iteration &&iteration, std::array< Int, N > const &sizes) |
template<typename Int = std::size_t, integral... Ends> | |
constexpr auto | tatooine::chunked_for_loop (invocable< decltype(((void) std::declval< Ends >(), std::declval< Int >()))... > auto &&iteration, execution_policy_tag auto policy, integral auto const chunk_size, Ends const ... ends) -> void |
template<typename Int = std::size_t, typename Iteration , integral... Ends> requires invocable<Iteration, decltype((std::declval<Ends>(), std::declval<Int>()))...> | |
constexpr auto | tatooine::chunked_for_loop (Iteration &&iteration, integral auto const chunk_size, Ends const ... ends) -> void |
template<integral_pair_range IntPairRange, for_loop_nested_index_iteration< std::vector< common_type< typename std::ranges::range_value_t< IntPairRange >::first_type, typename std::ranges::range_value_t< IntPairRange >::second_type > > > Iteration> | |
auto | tatooine::for_loop (Iteration &&iteration, IntPairRange const &ranges, execution_policy::sequential_t) |
template<integral_pair_range IntPairRange, for_loop_nested_index_iteration< std::vector< common_type< typename std::ranges::range_value_t< IntPairRange >::first_type, typename std::ranges::range_value_t< IntPairRange >::second_type > > > Iteration> | |
auto | tatooine::for_loop (Iteration &&iteration, IntPairRange const &ranges, execution_policy_tag auto policy) |
template<integral_pair_range IntPairRange, for_loop_nested_index_iteration< std::vector< common_type< typename std::ranges::range_value_t< IntPairRange >::first_type, typename std::ranges::range_value_t< IntPairRange >::second_type > > > Iteration> | |
auto | tatooine::for_loop (Iteration &&iteration, IntPairRange const &ranges) |
template<integral_range IntRange, for_loop_nested_index_iteration< IntRange > Iteration> | |
auto | tatooine::for_loop (Iteration &&iteration, IntRange const &begin, IntRange const &ends, execution_policy::sequential_t) |
template<integral_range IntRange, for_loop_nested_index_iteration< IntRange > Iteration> | |
auto | tatooine::for_loop (Iteration &&iteration, IntRange const &begin, IntRange const &ends) |
template<integral_range IntRange, for_loop_nested_index_iteration< IntRange > Iteration> | |
auto | tatooine::for_loop (Iteration &&iteration, IntRange const &ends, execution_policy_tag auto policy) |
template<integral_range IntRange, for_loop_nested_index_iteration< IntRange > Iteration> | |
auto | tatooine::for_loop (Iteration &&iteration, IntRange const &ends) |
template<range Range, for_loop_range_iteration< Range > Iteration> requires (!integral<std::ranges::range_value_t<Range>>) && (!integral_pair<std::ranges::range_value_t<Range>>) | |
auto | tatooine::for_loop (Iteration &&iteration, Range &&r, execution_policy::parallel_t) parallel_for_loop_support |
Sequential nested loop over a generic range. More... | |
template<range Range, for_loop_range_iteration< Range > Iteration> requires (!integral<std::ranges::range_value_t<Range>>) && (!integral_pair<std::ranges::range_value_t<Range>>) | |
auto | tatooine::for_loop (Iteration &&iteration, Range &&r, execution_policy::sequential_t) |
Sequential nested loop over a generic range. More... | |
template<range Range, for_loop_range_iteration< Range > Iteration> requires (!integral<std::ranges::range_value_t<Range>>) && (!integral_pair<std::ranges::range_value_t<Range>>) | |
auto | tatooine::for_loop (Iteration &&iteration, Range const &r) |
Sequential loop over a generic range. More... | |
Variables | |
static constexpr bool | tatooine::parallel_for_loop_support = true |