|
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 |