21 #ifndef FUB_EXECUTION_HPP
22 #define FUB_EXECUTION_HPP
45 template <
typename Tag,
typename T>
struct LocalType {
46 using type = std::optional<T>;
48 template <
typename T>
struct LocalType<execution::OpenMpTag, T> {
49 using type = OmpLocal<T>;
51 template <
typename T>
struct LocalType<execution::OpenMpSimdTag, T> {
52 using type = OmpLocal<T>;
55 template <
typename Tag,
typename T>
56 using Local =
typename detail::LocalType<Tag, T>::type;
58 template <
typename T>
const T&
Min(
const std::optional<T>& x) {
return *x; }
const T & Min() const noexcept
Definition: omp.hpp:123
constexpr SequentialTag seq
Definition: Execution.hpp:31
constexpr OpenMpTag openmp
Definition: Execution.hpp:37
constexpr OpenMpSimdTag openmp_simd
Definition: Execution.hpp:40
constexpr SimdTag simd
Definition: Execution.hpp:34
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
typename detail::LocalType< Tag, T >::type Local
Definition: Execution.hpp:56
const T & Min(const std::optional< T > &x)
Definition: Execution.hpp:58
Definition: Execution.hpp:39
Definition: Execution.hpp:36
Definition: Execution.hpp:30
Definition: Execution.hpp:33