49#ifndef SACADO_CACHEFAD_SFADTRAITS_HPP
50#define SACADO_CACHEFAD_SFADTRAITS_HPP
58 template <
typename T,
int Num>
class SFad;
68 template <
typename ValueT,
int Num>
74 template <
typename ValueT,
int Num>
80 template <
typename ValueT,
int Num>
81 struct IsADType< CacheFad::SFad<ValueT,Num> > {
86 template <
typename ValueT,
int Num>
88 static const bool value =
false;
92 template <
typename ValueT,
int Num>
93 struct Value< CacheFad::SFad<ValueT,Num> > {
101 template <
typename ValueT,
int Num>
111 template <
typename ValueT,
int Num>
114 std::stringstream ss;
115 ss <<
"Sacado::CacheFad::SFad< "
122 template <
typename ValueT,
int Num>
123 struct IsEqual< CacheFad::SFad<ValueT,Num> > {
127 return x.isEqualTo(
y);
132 template <
typename ValueT,
int Num>
138 template <
typename ValueT,
int Num>
144 template <
typename ValueT,
int Num>
150 template <
typename ValueT,
int Num>
162#ifdef HAVE_SACADO_TEUCHOSNUMERICS
163#include "Teuchos_PromotionTraits.hpp"
165 template <
typename ValueT,
int Num>
166 struct PromotionTraits<
Sacado::CacheFad::SFad<ValueT,Num>,
173 template <
typename ValueT,
int Num,
typename R>
174 struct PromotionTraits<
Sacado::CacheFad::SFad<ValueT,Num>,
R > {
179 template <
typename L,
typename ValueT,
int Num>
180 struct PromotionTraits< L,
Sacado::CacheFad::SFad<ValueT,Num> > {
189#ifdef HAVE_SACADO_TEUCHOSCORE
192 template <
typename ValueT,
int Num>
193 struct ScalarTraits<
Sacado::CacheFad::SFad<ValueT,Num> > :
194 public Sacado::Fad::ScalarTraitsImp< Sacado::CacheFad::SFad<ValueT,Num> >
200#ifdef HAVE_SACADO_TEUCHOSCOMM
203 template <
typename Ordinal,
typename ValueT,
int Num>
204 struct SerializationTraits<
Ordinal,
Sacado::CacheFad::SFad<ValueT,Num> > :
205 public Sacado::Fad::SerializationTraitsImp< Ordinal,
206 Sacado::CacheFad::SFad<ValueT,Num> >
209 template <
typename Ordinal,
typename ValueT,
int Num>
210 struct ValueTypeSerializer<
Ordinal,
Sacado::CacheFad::SFad<ValueT,Num> > :
211 public Sacado::Fad::SerializerImp< Ordinal,
212 Sacado::CacheFad::SFad<ValueT,Num>,
213 ValueTypeSerializer<Ordinal,ValueT> >
216 typedef ValueTypeSerializer<Ordinal,ValueT> ValueSerializer;
217 typedef Sacado::Fad::SerializerImp< Ordinal,FadType,ValueSerializer> Base;
218 ValueTypeSerializer(
const Teuchos::RCP<const ValueSerializer>& vs,
226#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
GeneralFad< StaticFixedStorage< T, Num > > SFad
Base template specification for IsADType.
static SACADO_INLINE_FUNCTION bool eval(const CacheFad::SFad< ValueT, Num > &x, const CacheFad::SFad< ValueT, Num > &y)
Base template specification for testing equivalence.
Base template specification for IsScalarType.
Base template specification for testing whether type is statically sized.
CacheFad::SFad< ValueT, Num >::ScalarT type
Base template specification for ScalarType.
static SACADO_INLINE_FUNCTION const scalar_type & eval(const CacheFad::SFad< ValueT, Num > &x)
ValueType< CacheFad::SFad< ValueT, Num > >::type value_type
ScalarType< CacheFad::SFad< ValueT, Num > >::type scalar_type
Base template specification for ScalarValue.
static SACADO_INLINE_FUNCTION const T & eval(const T &x)
Base template specification for static size.
static const unsigned value
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 CacheFad::SFad< ValueT, Num > &x)
ValueType< CacheFad::SFad< ValueT, Num > >::type value_type
Base template specification for Value.