16 #ifndef dealii_differentiation_sd_symengine_product_types_h 17 #define dealii_differentiation_sd_symengine_product_types_h 19 #include <deal.II/base/config.h> 21 #ifdef DEAL_II_WITH_SYMENGINE 24 # include <deal.II/base/template_constraints.h> 26 # include <deal.II/differentiation/sd/symengine_number_types.h> 28 # include <boost/type_traits.hpp> 30 # include <type_traits> 33 DEAL_II_NAMESPACE_OPEN
63 template <
typename T,
typename U,
typename V =
void>
70 typename std::enable_if<std::is_arithmetic<T>::value>::type>
79 typename std::enable_if<
80 boost::is_complex<T>::value &&
81 std::is_arithmetic<typename T::value_type>::value>::type>
101 typename SD::GeneralProductTypeImpl<T,
106 template <
typename T>
110 typename SD::GeneralProductTypeImpl<T,
117 DEAL_II_NAMESPACE_CLOSE
119 #endif // DEAL_II_WITH_SYMENGINE