49#ifndef SACADO_FAD_DFADTRAITS_HPP
50#define SACADO_FAD_DFADTRAITS_HPP
54#ifdef SACADO_NEW_FAD_DESIGN_IS_DEFAULT
65 template <
typename T>
class DFad;
75 template <
typename ValueT>
81 template <
typename ValueT>
87 template <
typename ValueT>
93 template <
typename ValueT>
95 static const bool value =
false;
99 template <
typename ValueT>
105 template <
typename ValueT>
114 template <
typename ValueT>
124 template <
typename ValueT>
127 return std::string(
"Sacado::Fad::DFad< ") +
132 template <
typename ValueT>
136 return x.isEqualTo(
y);
141 template <
typename ValueT>
147 template <
typename ValueT>
159#ifdef HAVE_SACADO_TEUCHOSNUMERICS
160#include "Teuchos_PromotionTraits.hpp"
162 template <
typename ValueT>
163 struct PromotionTraits<
Sacado::Fad::DFad<ValueT>,
170 template <
typename ValueT,
typename R>
171 struct PromotionTraits<
Sacado::Fad::DFad<ValueT>,
R > {
176 template <
typename L,
typename ValueT>
177 struct PromotionTraits< L,
Sacado::Fad::DFad<ValueT> > {
186#ifdef HAVE_SACADO_TEUCHOSCORE
189 template <
typename ValueT>
190 struct ScalarTraits<
Sacado::Fad::DFad<ValueT> > :
191 public Sacado::Fad::ScalarTraitsImp< Sacado::Fad::DFad<ValueT> >
197#ifdef HAVE_SACADO_TEUCHOSCOMM
200 template <
typename Ordinal,
typename ValueT>
201 struct SerializationTraits<
Ordinal,
Sacado::Fad::DFad<ValueT> > :
202 public Sacado::Fad::SerializationTraitsImp< Ordinal,
203 Sacado::Fad::DFad<ValueT> >
206 template <
typename Ordinal,
typename ValueT>
207 struct ValueTypeSerializer<
Ordinal,
Sacado::Fad::DFad<ValueT> > :
208 public Sacado::Fad::SerializerImp< Ordinal,
209 Sacado::Fad::DFad<ValueT>,
210 ValueTypeSerializer<Ordinal,ValueT> >
213 typedef ValueTypeSerializer<Ordinal,ValueT> ValueSerializer;
214 typedef Sacado::Fad::SerializerImp< Ordinal,FadType,ValueSerializer> Base;
215 ValueTypeSerializer(
const Teuchos::RCP<const ValueSerializer>& vs,
223#if defined(HAVE_SACADO_KOKKOSCORE) && defined(HAVE_SACADO_TEUCHOSKOKKOSCOMM) && defined(HAVE_SACADO_VIEW_SPEC) && !defined(SACADO_DISABLE_FAD_VIEW_SPEC)
#define SACADO_INLINE_FUNCTION
#define SACADO_FAD_PROMOTE_SPEC(NS, FAD)
Sacado::Fad::DFad< double > FadType
Base template specification for IsADType.
static SACADO_INLINE_FUNCTION bool eval(const Fad::DFad< ValueT > &x, const Fad::DFad< ValueT > &y)
Base template specification for testing equivalence.
Base template specification for IsScalarType.
Base template specification for IsSimdType.
Base template specification for testing whether type is statically sized.
Fad::DFad< ValueT >::ScalarT type
Base template specification for ScalarType.
static SACADO_INLINE_FUNCTION const scalar_type & eval(const Fad::DFad< ValueT > &x)
ValueType< Fad::DFad< ValueT > >::type value_type
ScalarType< Fad::DFad< ValueT > >::type scalar_type
Base template specification for ScalarValue.
static SACADO_INLINE_FUNCTION const T & eval(const T &x)
static std::string eval()
Base template specification for string names of types.
static std::string eval()
Base template specification for ValueType.
ValueType< Fad::DFad< ValueT > >::type value_type
static SACADO_INLINE_FUNCTION const value_type & eval(const Fad::DFad< ValueT > &x)
Base template specification for Value.