31 #ifndef SACADO_FAD_EXP_GENERALFADTRAITS_HPP 32 #define SACADO_FAD_EXP_GENERALFADTRAITS_HPP 40 template <
typename S>
class GeneralFad;
51 template <
typename Storage>
57 template <
typename Storage>
63 template <
typename Storage>
64 struct IsADType< Fad::Exp::GeneralFad<Storage> > {
69 template <
typename Storage>
71 static const bool value =
false;
75 template <
typename Storage>
76 struct Value< Fad::Exp::GeneralFad<Storage> > {
84 template <
typename Storage>
94 template <
typename Storage>
96 static std::string
eval() {
97 return std::string(
"Sacado::Fad::Exp::GeneralFad< ") +
102 template <
typename Storage>
103 struct IsEqual< Fad::Exp::GeneralFad<Storage> > {
107 return x.isEqualTo(y);
112 template <
typename Storage>
114 static const bool value = Storage::is_statically_sized;
118 template <
typename Storage>
120 static const bool value = Storage::is_statically_sized;
124 template <
typename Storage>
126 static const unsigned value = Storage::static_size;
130 template <
typename Storage>
132 static const unsigned value = Storage::static_size;
138 #ifdef HAVE_SACADO_TEUCHOS 147 template <
typename Storage>
148 struct PromotionTraits<
Sacado::Fad::Exp::GeneralFad<Storage>,
156 template <
typename Storage,
typename R>
157 struct PromotionTraits<
Sacado::Fad::Exp::GeneralFad<Storage>,
R > {
164 template <
typename L,
typename Storage>
165 struct PromotionTraits< L,
Sacado::Fad::Exp::GeneralFad<Storage> > {
173 template <
typename Storage>
174 struct ScalarTraits<
Sacado::Fad::Exp::GeneralFad<Storage> > :
175 public Sacado::Fad::ScalarTraitsImp< Sacado::Fad::Exp::GeneralFad<Storage> >
179 template <
typename Ordinal,
typename Storage>
180 struct SerializationTraits<
Ordinal,
Sacado::Fad::Exp::GeneralFad<Storage> > :
181 public Sacado::Fad::SerializationTraitsImp< Ordinal,
182 Sacado::Fad::Exp::GeneralFad<Storage> >
186 template <
typename Ordinal,
typename Storage>
187 struct ValueTypeSerializer<
Ordinal,
Sacado::Fad::Exp::GeneralFad<Storage> > :
188 public Sacado::Fad::SerializerImp< Ordinal,
189 Sacado::Fad::Exp::GeneralFad<Storage>,
190 ValueTypeSerializer<Ordinal,typename Storage::value_type> >
193 typedef ValueTypeSerializer<Ordinal,typename Storage::value_type> ValueSerializer;
194 typedef Sacado::Fad::SerializerImp< Ordinal,FadType,ValueSerializer> Base;
200 #endif // HAVE_SACADO_TEUCHOS 202 #endif // SACADO_FAD_EXP_GENERALFADTRAITS_HPP static std::string eval()
static KOKKOS_INLINE_FUNCTION bool eval(const Fad::Exp::GeneralFad< Storage > &x, const Fad::Exp::GeneralFad< Storage > &y)
Base template specification for ScalarValue.
Base template specification for ScalarType.
Base template specification for string names of types.
static KOKKOS_INLINE_FUNCTION const value_type & eval(const Fad::Exp::GeneralFad< Storage > &x)
Base template specification for IsADType.
Sacado::Fad::DFad< double > FadType
ScalarType< Fad::Exp::GeneralFad< Storage > >::type scalar_type
Base template specification for static size.
Base template specification for Value.
#define SACADO_FAD_PROMOTE_SPEC(NS, FAD)
#define KOKKOS_INLINE_FUNCTION
ValueType< Fad::Exp::GeneralFad< Storage > >::type value_type
Fad::Exp::GeneralFad< Storage >::value_type type
ValueType< Fad::Exp::GeneralFad< Storage > >::type value_type
Base template specification for testing equivalence.
Forward-mode AD class templated on the storage for the derivative array.
ScalarType< value_type >::type scalar_type
Typename of scalar's (which may be different from T)
Base template specification for IsScalarType.
static std::string eval()
static const unsigned value
static KOKKOS_INLINE_FUNCTION const scalar_type & eval(const Fad::Exp::GeneralFad< Storage > &x)
Base template specification for ValueType.
static KOKKOS_INLINE_FUNCTION const T & eval(const T &x)
Fad::Exp::GeneralFad< Storage >::scalar_type type
Base template specification for testing whether type is statically sized.