30#ifndef SACADO_FAD_SLFADTRAITS_HPP
31#define SACADO_FAD_SLFADTRAITS_HPP
35#ifdef SACADO_NEW_FAD_DESIGN_IS_DEFAULT
47 template <
typename T,
int Num>
class SLFad;
57 template <
typename ValueT,
int Num>
63 template <
typename ValueT,
int Num>
69 template <
typename ValueT,
int Num>
75 template <
typename ValueT,
int Num>
77 static const bool value =
false;
81 template <
typename ValueT,
int Num>
87 template <
typename ValueT,
int Num>
88 struct Value< Fad::SLFad<ValueT,Num> > {
96 template <
typename ValueT,
int Num>
106 template <
typename ValueT,
int Num>
109 std::stringstream ss;
110 ss <<
"Sacado::Fad::SLFad< "
117 template <
typename ValueT,
int Num>
122 return x.isEqualTo(
y);
127 template <
typename ValueT,
int Num>
133 template <
typename ValueT,
int Num>
145#ifdef HAVE_SACADO_TEUCHOSNUMERICS
146#include "Teuchos_PromotionTraits.hpp"
148 template <
typename ValueT,
int Num>
149 struct PromotionTraits<
Sacado::Fad::SLFad<ValueT,Num>,
156 template <
typename ValueT,
int Num,
typename R>
157 struct PromotionTraits<
Sacado::Fad::SLFad<ValueT,Num>,
R > {
162 template <
typename L,
typename ValueT,
int Num>
163 struct PromotionTraits< L,
Sacado::Fad::SLFad<ValueT,Num> > {
172#ifdef HAVE_SACADO_TEUCHOSCORE
175 template <
typename ValueT,
int Num>
176 struct ScalarTraits<
Sacado::Fad::SLFad<ValueT,Num> > :
177 public Sacado::Fad::ScalarTraitsImp< Sacado::Fad::SLFad<ValueT,Num> >
183#ifdef HAVE_SACADO_TEUCHOSCOMM
186 template <
typename Ordinal,
typename ValueT,
int Num>
187 struct SerializationTraits<
Ordinal,
Sacado::Fad::SLFad<ValueT,Num> > :
188 public Sacado::Fad::SerializationTraitsImp< Ordinal,
189 Sacado::Fad::SLFad<ValueT,Num> >
192 template <
typename Ordinal,
typename ValueT,
int Num>
193 struct ValueTypeSerializer<
Ordinal,
Sacado::Fad::SLFad<ValueT,Num> > :
194 public Sacado::Fad::SerializerImp< Ordinal,
195 Sacado::Fad::SLFad<ValueT,Num>,
196 ValueTypeSerializer<Ordinal,ValueT> >
199 typedef ValueTypeSerializer<Ordinal,ValueT> ValueSerializer;
200 typedef Sacado::Fad::SerializerImp< Ordinal,FadType,ValueSerializer> Base;
201 ValueTypeSerializer(
const Teuchos::RCP<const ValueSerializer>& vs,
209#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_SFAD_PROMOTE_SPEC(NS, FAD)
Sacado::Fad::DFad< double > FadType
Base template specification for IsADType.
static SACADO_INLINE_FUNCTION bool eval(const Fad::SLFad< ValueT, Num > &x, const Fad::SLFad< ValueT, Num > &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::SLFad< ValueT, Num >::ScalarT type
Base template specification for ScalarType.
ValueType< Fad::SLFad< ValueT, Num > >::type value_type
static SACADO_INLINE_FUNCTION const scalar_type & eval(const Fad::SLFad< ValueT, Num > &x)
ScalarType< Fad::SLFad< ValueT, Num > >::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.
static SACADO_INLINE_FUNCTION const value_type & eval(const Fad::SLFad< ValueT, Num > &x)
ValueType< Fad::SLFad< ValueT, Num > >::type value_type
Base template specification for Value.