30#ifndef SACADO_ELRCACHEFAD_SLFADTRAITS_HPP
31#define SACADO_ELRCACHEFAD_SLFADTRAITS_HPP
38 namespace ELRCacheFad {
39 template <
typename T,
int Num>
class SLFad;
49 template <
typename ValueT,
int Num>
55 template <
typename ValueT,
int Num>
56 struct ValueType< ELRCacheFad::SLFad<ValueT,Num> > {
61 template <
typename ValueT,
int Num>
62 struct IsADType< ELRCacheFad::SLFad<ValueT,Num> > {
67 template <
typename ValueT,
int Num>
69 static const bool value =
false;
73 template <
typename ValueT,
int Num>
74 struct Value< ELRCacheFad::SLFad<ValueT,Num> > {
82 template <
typename ValueT,
int Num>
92 template <
typename ValueT,
int Num>
94 static std::string
eval() {
96 ss <<
"Sacado::ELRCacheFad::SLFad< "
103 template <
typename ValueT,
int Num>
104 struct IsEqual< ELRCacheFad::SLFad<ValueT,Num> > {
108 return x.isEqualTo(
y);
113 template <
typename ValueT,
int Num>
119 template <
typename ValueT,
int Num>
131#ifdef HAVE_SACADO_TEUCHOSNUMERICS
132#include "Teuchos_PromotionTraits.hpp"
134 template <
typename ValueT,
int Num>
135 struct PromotionTraits<
Sacado::ELRCacheFad::SLFad<ValueT,Num>,
142 template <
typename ValueT,
int Num,
typename R>
143 struct PromotionTraits<
Sacado::ELRCacheFad::SLFad<ValueT,Num>,
R > {
148 template <
typename L,
typename ValueT,
int Num>
149 struct PromotionTraits< L,
Sacado::ELRCacheFad::SLFad<ValueT,Num> > {
158#ifdef HAVE_SACADO_TEUCHOSCORE
161 template <
typename ValueT,
int Num>
162 struct ScalarTraits<
Sacado::ELRCacheFad::SLFad<ValueT,Num> > :
163 public Sacado::Fad::ScalarTraitsImp< Sacado::ELRCacheFad::SLFad<ValueT,Num> >
169#ifdef HAVE_SACADO_TEUCHOSCOMM
172 template <
typename Ordinal,
typename ValueT,
int Num>
173 struct SerializationTraits<
Ordinal,
Sacado::ELRCacheFad::SLFad<ValueT,Num> > :
174 public Sacado::Fad::SerializationTraitsImp< Ordinal,
175 Sacado::ELRCacheFad::SLFad<ValueT,Num> >
178 template <
typename Ordinal,
typename ValueT,
int Num>
179 struct ValueTypeSerializer<
Ordinal,
Sacado::ELRCacheFad::SLFad<ValueT,Num> > :
180 public Sacado::Fad::SerializerImp< Ordinal,
181 Sacado::ELRCacheFad::SLFad<ValueT,Num>,
182 ValueTypeSerializer<Ordinal,ValueT> >
185 typedef ValueTypeSerializer<Ordinal,ValueT> ValueSerializer;
186 typedef Sacado::Fad::SerializerImp< Ordinal,FadType,ValueSerializer> Base;
187 ValueTypeSerializer(
const Teuchos::RCP<const ValueSerializer>& vs,
195#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 ELRCacheFad::SLFad< ValueT, Num > &x, const ELRCacheFad::SLFad< ValueT, Num > &y)
Base template specification for testing equivalence.
Base template specification for IsScalarType.
Base template specification for testing whether type is statically sized.
ELRCacheFad::SLFad< ValueT, Num >::ScalarT type
Base template specification for ScalarType.
static SACADO_INLINE_FUNCTION const scalar_type & eval(const ELRCacheFad::SLFad< ValueT, Num > &x)
ScalarType< ELRCacheFad::SLFad< ValueT, Num > >::type scalar_type
ValueType< ELRCacheFad::SLFad< ValueT, Num > >::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 SACADO_INLINE_FUNCTION const value_type & eval(const ELRCacheFad::SLFad< ValueT, Num > &x)
ValueType< ELRCacheFad::SLFad< ValueT, Num > >::type value_type
Base template specification for Value.