Its not likely, but it might be possible that in some complex chain of
operations we're left with one of these intermediates that needs to be
operated on or used. If this is the case then having these
specialisations facilitate the driver and helper classes to function
with these number types.
{};
+ template <typename NumberType>
+ struct is_sacado_dfad_number<
+ NumberType,
+ typename std::enable_if<std::is_same<
+ NumberType,
+ Sacado::Fad::Expr<typename NumberType::value_type>>::value>::type>
+ : std::true_type
+ {};
+
+
template <typename NumberType>
struct is_sacado_rad_number<
NumberType,
{};
+ template <typename NumberType>
+ struct is_sacado_rad_number<
+ NumberType,
+ typename std::enable_if<std::is_same<
+ NumberType,
+ Sacado::Rad::ADvari<Sacado::Fad::DFad<
+ typename NumberType::ADVari::scalar_type>>>::value>::type>
+ : std::true_type
+ {};
+
+
template <typename NumberType>
struct is_sacado_number<
NumberType,
In the beginning the Universe was created. This has made a lot of
people very angry and has been widely regarded as a bad move.
Douglas Adams