10 #ifndef SACADO_FAD_EXP_GENERALFADTRAITS_HPP
11 #define SACADO_FAD_EXP_GENERALFADTRAITS_HPP
19 template <
typename S>
class GeneralFad;
30 template <typename Storage>
36 template <
typename Storage>
42 template <
typename Storage>
43 struct IsADType< Fad::Exp::GeneralFad<Storage> > {
48 template <
typename Storage>
50 static const bool value =
false;
54 template <
typename Storage>
61 template <
typename Storage>
62 struct Value< Fad::Exp::GeneralFad<Storage> > {
70 template <
typename Storage>
80 template <
typename Storage>
82 static std::string
eval() {
83 return std::string(
"Sacado::Fad::Exp::GeneralFad< ") +
88 template <
typename Storage>
89 struct IsEqual< Fad::Exp::GeneralFad<Storage> > {
93 return x.isEqualTo(y);
98 template <
typename Storage>
100 static const bool value = Storage::is_statically_sized;
104 template <
typename Storage>
106 static const bool value = Storage::is_statically_sized;
110 template <
typename Storage>
112 static const unsigned value = Storage::static_size;
116 template <
typename Storage>
118 static const unsigned value = Storage::static_size;
128 #ifdef HAVE_SACADO_TEUCHOSNUMERICS
131 template <
typename Storage>
132 struct PromotionTraits< Sacado::Fad::Exp::GeneralFad<Storage>,
140 template <
typename Storage,
typename R>
141 struct PromotionTraits< Sacado::Fad::Exp::GeneralFad<Storage>,
R > {
148 template <
typename L,
typename Storage>
149 struct PromotionTraits< L, Sacado::Fad::Exp::GeneralFad<Storage> > {
159 #ifdef HAVE_SACADO_TEUCHOSCORE
162 template <
typename Storage>
163 struct ScalarTraits< Sacado::Fad::Exp::GeneralFad<Storage> > :
164 public Sacado::Fad::ScalarTraitsImp< Sacado::Fad::Exp::GeneralFad<Storage> >
170 #ifdef HAVE_SACADO_TEUCHOSCOMM
173 template <
typename Ordinal,
typename Storage>
174 struct SerializationTraits<
Ordinal, Sacado::Fad::Exp::GeneralFad<Storage> > :
175 public Sacado::Fad::SerializationTraitsImp< Ordinal,
176 Sacado::Fad::Exp::GeneralFad<Storage> >
179 template <
typename Ordinal,
typename Storage>
180 struct ValueTypeSerializer<
Ordinal, Sacado::Fad::Exp::GeneralFad<Storage> > :
181 public Sacado::Fad::SerializerImp< Ordinal,
182 Sacado::Fad::Exp::GeneralFad<Storage>,
183 ValueTypeSerializer<Ordinal,typename Storage::value_type> >
186 typedef ValueTypeSerializer<Ordinal,typename Storage::value_type> ValueSerializer;
187 typedef Sacado::Fad::SerializerImp< Ordinal,FadType,ValueSerializer> Base;
196 #if defined(HAVE_SACADO_KOKKOS) && defined(HAVE_SACADO_TEUCHOSKOKKOSCOMM) && defined(HAVE_SACADO_VIEW_SPEC) && !defined(SACADO_DISABLE_FAD_VIEW_SPEC)
200 #endif // SACADO_FAD_EXP_GENERALFADTRAITS_HPP
static SACADO_INLINE_FUNCTION const T & eval(const T &x)
static std::string eval()
Base template specification for ScalarValue.
Base template specification for ScalarType.
static SACADO_INLINE_FUNCTION bool eval(const Fad::Exp::GeneralFad< Storage > &x, const Fad::Exp::GeneralFad< Storage > &y)
Base template specification for string names of types.
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.
Base template specification for IsSimdType.
#define SACADO_FAD_PROMOTE_SPEC(NS, FAD)
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.
static SACADO_INLINE_FUNCTION const value_type & eval(const Fad::Exp::GeneralFad< Storage > &x)
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()
#define SACADO_INLINE_FUNCTION
static const unsigned value
Base template specification for ValueType.
Fad::Exp::GeneralFad< Storage >::scalar_type type
static SACADO_INLINE_FUNCTION const scalar_type & eval(const Fad::Exp::GeneralFad< Storage > &x)
Base template specification for testing whether type is statically sized.