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>
82 template <
typename Storage>
83 struct Value< Fad::Exp::GeneralFad<Storage> > {
91 template <
typename Storage>
101 template <
typename Storage>
104 return std::string(
"Sacado::Fad::Exp::GeneralFad< ") +
109 template <
typename Storage>
110 struct IsEqual< Fad::Exp::GeneralFad<Storage> > {
114 return x.isEqualTo(y);
119 template <
typename Storage>
121 static const bool value = Storage::is_statically_sized;
125 template <
typename Storage>
127 static const bool value = Storage::is_statically_sized;
131 template <
typename Storage>
133 static const unsigned value = Storage::static_size;
137 template <
typename Storage>
139 static const unsigned value = Storage::static_size;
149 #ifdef HAVE_SACADO_TEUCHOSNUMERICS
152 template <
typename Storage>
153 struct PromotionTraits< Sacado::Fad::Exp::GeneralFad<Storage>,
161 template <
typename Storage,
typename R>
162 struct PromotionTraits< Sacado::Fad::Exp::GeneralFad<Storage>,
R > {
169 template <
typename L,
typename Storage>
170 struct PromotionTraits< L, Sacado::Fad::Exp::GeneralFad<Storage> > {
180 #ifdef HAVE_SACADO_TEUCHOSCORE
183 template <
typename Storage>
184 struct ScalarTraits< Sacado::Fad::Exp::GeneralFad<Storage> > :
185 public Sacado::Fad::ScalarTraitsImp< Sacado::Fad::Exp::GeneralFad<Storage> >
191 #ifdef HAVE_SACADO_TEUCHOSCOMM
194 template <
typename Ordinal,
typename Storage>
195 struct SerializationTraits<
Ordinal, Sacado::Fad::Exp::GeneralFad<Storage> > :
196 public Sacado::Fad::SerializationTraitsImp< Ordinal,
197 Sacado::Fad::Exp::GeneralFad<Storage> >
200 template <
typename Ordinal,
typename Storage>
201 struct ValueTypeSerializer<
Ordinal, Sacado::Fad::Exp::GeneralFad<Storage> > :
202 public Sacado::Fad::SerializerImp< Ordinal,
203 Sacado::Fad::Exp::GeneralFad<Storage>,
204 ValueTypeSerializer<Ordinal,typename Storage::value_type> >
207 typedef ValueTypeSerializer<Ordinal,typename Storage::value_type> ValueSerializer;
208 typedef Sacado::Fad::SerializerImp< Ordinal,FadType,ValueSerializer> Base;
217 #if defined(HAVE_SACADO_KOKKOSCORE) && defined(HAVE_SACADO_TEUCHOSKOKKOSCOMM) && defined(HAVE_SACADO_VIEW_SPEC) && !defined(SACADO_DISABLE_FAD_VIEW_SPEC)
221 #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.
Base template specification for IsSimdType.
#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.