15#ifndef dealii_differentiation_sd_symengine_product_types_h
16#define dealii_differentiation_sd_symengine_product_types_h
20#ifdef DEAL_II_WITH_SYMENGINE
29# include <boost/type_traits.hpp>
31# include <type_traits>
62 template <
typename T,
typename U,
typename V =
void>
68 std::enable_if_t<std::is_arithmetic_v<T>>>
77 std::enable_if_t<boost::is_complex<T>::value &&
78 std::is_arithmetic_v<typename T::value_type>>>
83 template <
int rank,
int dim,
typename T>
93 template <
int rank,
int dim,
typename T>
114 template <
typename T>
118 GeneralProductTypeImpl<T, Differentiation::SD::Expression>::type;
121 template <
typename T>
125 GeneralProductTypeImpl<T, Differentiation::SD::Expression>::type;
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
Differentiation::SD::Expression type
typename internal::ProductTypeImpl< std::decay_t< T >, std::decay_t< U > >::type type
typename SD:: GeneralProductTypeImpl< T, Differentiation::SD::Expression >::type type
Differentiation::SD::Expression type
typename SD:: GeneralProductTypeImpl< T, Differentiation::SD::Expression >::type type
SymmetricTensor< rank, dim, typename ProductType< T, Differentiation::SD::Expression >::type > type
Differentiation::SD::Expression type
Differentiation::SD::Expression type
Tensor< rank, dim, typename ProductType< T, Differentiation::SD::Expression >::type > type