|
5 | 5 | #ifndef CLAD_DIFFERENTIATOR_KOKKOSBUILTINS_H |
6 | 6 | #define CLAD_DIFFERENTIATOR_KOKKOSBUILTINS_H |
7 | 7 |
|
| 8 | +#include "clad/Differentiator/Differentiator.h" |
8 | 9 | #include <Kokkos_Core.hpp> |
| 10 | +#include <Kokkos_ExecPolicy.hpp> |
9 | 11 | #include <cstddef> |
10 | 12 | #include <string> |
11 | 13 | #include <type_traits> |
12 | | -#include "clad/Differentiator/Differentiator.h" |
13 | 14 |
|
14 | 15 | namespace clad::custom_derivatives { |
15 | 16 | namespace class_functions { |
@@ -734,6 +735,24 @@ void parallel_for_pushforward( |
734 | 735 | parallel_for_pushforward(::std::string("anonymous_parallel_for"), policy, |
735 | 736 | functor, ::std::string(""), d_policy, d_functor); |
736 | 737 | } |
| 738 | +template <typename FunctorType> |
| 739 | +void parallel_for_pushforward(const size_t range, const FunctorType& functor, |
| 740 | + size_t d_range, const FunctorType& d_functor) { |
| 741 | + parallel_for_pushforward( |
| 742 | + ::std::string("anonymous_parallel_for"), |
| 743 | + ::Kokkos::RangePolicy<size_t>(0, range), functor, ::std::string(""), |
| 744 | + ::Kokkos::RangePolicy<size_t>(0, d_range), d_functor); |
| 745 | +} |
| 746 | + |
| 747 | +template <typename FunctorType> |
| 748 | +void parallel_for_pushforward(const ::std::string& str, size_t range, |
| 749 | + const FunctorType& functor, |
| 750 | + const ::std::string& d_str, size_t d_range, |
| 751 | + const FunctorType& d_functor) { |
| 752 | + parallel_for_pushforward( |
| 753 | + str, ::Kokkos::RangePolicy<size_t>(0, range), functor, d_str, |
| 754 | + ::Kokkos::RangePolicy<size_t>(0, d_range), d_functor); |
| 755 | +} |
737 | 756 | template <typename Policy, class FunctorType> // alternative signature |
738 | 757 | void parallel_for_pushforward(Policy policy, const FunctorType& functor, |
739 | 758 | const ::std::string& str, Policy d_policy, |
|
0 commit comments