49#ifndef SACADO_FAD_DVFADTRAITS_HPP
50#define SACADO_FAD_DVFADTRAITS_HPP
54#ifdef SACADO_NEW_FAD_DESIGN_IS_DEFAULT
65 template <
typename T>
class DVFad;
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>
113 template <
typename ValueT>
122 template <
typename ValueT>
125 return std::string(
"Sacado::Fad::DVFad< ") +
130 template <
typename ValueT>
133 return x.isEqualTo(y);
138 template <
typename ValueT>
143 template <
typename T>
155#ifdef HAVE_SACADO_TEUCHOSNUMERICS
156#include "Teuchos_PromotionTraits.hpp"
158 template <
typename ValueT>
159 struct PromotionTraits<
Sacado::Fad::DVFad<ValueT>,
166 template <
typename ValueT,
typename R>
167 struct PromotionTraits< Sacado::Fad::DVFad<ValueT>,
R > {
168 typedef typename Sacado::Promote< Sacado::Fad::DVFad<ValueT>,
R >::type
172 template <
typename L,
typename ValueT>
173 struct PromotionTraits< L, Sacado::Fad::DVFad<ValueT> > {
175 typedef typename Sacado::Promote< L, Sacado::Fad::DVFad<ValueT> >::type
182#ifdef HAVE_SACADO_TEUCHOSCORE
185 template <
typename ValueT>
186 struct ScalarTraits< Sacado::Fad::DVFad<ValueT> > :
187 public Sacado::Fad::ScalarTraitsImp< Sacado::Fad::DVFad<ValueT> >
#define SACADO_FAD_PROMOTE_SPEC(NS, FAD)
Forward-mode AD class using dynamic memory allocation and expression templates.
ScalarType< ValueT >::type ScalarT
Typename of scalar's (which may be different from ValueT)
Namespace for forward-mode AD classes.
Base template specification for IsADType.
static bool eval(const Fad::DVFad< ValueT > &x, const Fad::DVFad< ValueT > &y)
Base template specification for testing equivalence.
Base template specification for whether a type is a Fad type.
Base template specification for IsScalarType.
Base template specification for IsSimdType.
Base template specification for testing whether type is statically sized.
Fad::DVFad< ValueT >::ScalarT type
Base template specification for ScalarType.
ScalarType< Fad::DVFad< ValueT > >::type scalar_type
static const scalar_type & eval(const Fad::DVFad< ValueT > &x)
ValueType< Fad::DVFad< ValueT > >::type value_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.
static const value_type & eval(const Fad::DVFad< ValueT > &x)
ValueType< Fad::DVFad< ValueT > >::type value_type
Base template specification for Value.