30#ifndef SACADO_TAYLOR_DTAYLORTRAITS_HPP
31#define SACADO_TAYLOR_DTAYLORTRAITS_HPP
39 template <
typename T>
class Expr;
72 static const bool value =
false;
95 static std::string
eval() {
96 return std::string(
"Sacado::Tay::CacheTaylor< ") +
101 template <
typename T>
110 template <
typename T>
122#ifdef HAVE_SACADO_TEUCHOSNUMERICS
123#include "Teuchos_PromotionTraits.hpp"
125 template <
typename ValueT>
126 struct PromotionTraits<
Sacado::Tay::CacheTaylor<ValueT>,
134 template <
typename ValueT,
typename R>
135 struct PromotionTraits< Sacado::Tay::CacheTaylor<ValueT>,
R > {
136 typedef typename Sacado::Promote< Sacado::Tay::CacheTaylor<ValueT>,
R >::type
141 template <
typename L,
typename ValueT>
142 struct PromotionTraits< L, Sacado::Tay::CacheTaylor<ValueT> > {
144 typedef typename Sacado::Promote< L, Sacado::Tay::CacheTaylor<ValueT> >::type
151#ifdef HAVE_SACADO_TEUCHOSCORE
154 template <
typename ValueT>
155 struct ScalarTraits< Sacado::Tay::CacheTaylor<ValueT> > :
156 public Sacado::Tay::ScalarTraitsImp< Sacado::Tay::CacheTaylor<ValueT> >
162#ifdef HAVE_SACADO_TEUCHOSCOMM
165 template <
typename Ordinal,
typename ValueT>
166 struct SerializationTraits<
Ordinal, Sacado::Tay::CacheTaylor<ValueT> > :
167 public Sacado::Tay::SerializationTraitsImp< Ordinal,
168 Sacado::Tay::CacheTaylor<ValueT> >
171 template <
typename Ordinal,
typename ValueT>
172 struct ValueTypeSerializer<
Ordinal, Sacado::Tay::CacheTaylor<ValueT> > :
173 public Sacado::Tay::SerializerImp< Ordinal,
174 Sacado::Tay::CacheTaylor<ValueT>,
175 ValueTypeSerializer<Ordinal,ValueT> >
177 typedef Sacado::Tay::CacheTaylor<ValueT> TayType;
178 typedef ValueTypeSerializer<Ordinal,ValueT> ValueSerializer;
179 typedef Sacado::Tay::SerializerImp< Ordinal,TayType,ValueSerializer> Base;
180 ValueTypeSerializer(
const Teuchos::RCP<const ValueSerializer>& vs,
#define SACADO_EXPR_PROMOTE_SPEC(NS)
#define SACADO_AD_PROMOTE_SPEC(NS, AD)
bool isEqualTo(const Expr< S > &x) const
Returns whether two Taylor objects have the same values.
const T & val() const
Returns value.
Forward-mode AD class using dynamic memory allocation.
Wrapper for a generic expression template.
Namespace for Taylor polynomial AD classes.
Base template specification for IsADType.
static bool eval(const Tay::CacheTaylor< T > &x, const Tay::CacheTaylor< T > &y)
Base template specification for testing equivalence.
Base template specification for IsScalarType.
Base template specification for testing whether type is statically sized.
ScalarType< T >::type type
Base template specification for ScalarType.
ScalarType< Tay::CacheTaylor< T > >::type scalar_type
ValueType< Tay::CacheTaylor< T > >::type value_type
static const scalar_type & eval(const Tay::CacheTaylor< T > &x)
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< Tay::CacheTaylor< T > >::type value_type
static const value_type & eval(const Tay::CacheTaylor< T > &x)
Base template specification for Value.