10 #ifndef SACADO_ETPCE_ORTHOGPOLYTRAITS_HPP
11 #define SACADO_ETPCE_ORTHOGPOLYTRAITS_HPP
13 #include "Sacado_Traits.hpp"
25 SACADO_AD_PROMOTE_SPEC2( ETPCE, OrthogPoly )
28 template <typename T, typename S>
29 struct ScalarType< ETPCE::OrthogPoly<T,S> > {
34 template <
typename T,
typename S>
35 struct ValueType< ETPCE::OrthogPoly<T,S> > {
40 template <
typename T,
typename S>
41 struct IsADType< ETPCE::OrthogPoly<T,S> > {
42 static const bool value =
true;
46 template <
typename T,
typename S>
47 struct IsScalarType< ETPCE::OrthogPoly<T,S> > {
48 static const bool value =
false;
52 template <
typename T,
typename S>
53 struct Value< ETPCE::OrthogPoly<T,S> > {
54 typedef typename ValueType< ETPCE::OrthogPoly<T,S> >::type
value_type;
60 template <
typename T,
typename S>
61 struct ScalarValue< ETPCE::OrthogPoly<T,S> > {
62 typedef typename ValueType< ETPCE::OrthogPoly<T,S> >::type
value_type;
63 typedef typename ScalarType< ETPCE::OrthogPoly<T,S> >::type
scalar_type;
65 return ScalarValue<value_type>::eval(x.val()); }
69 template <
typename T,
typename S>
70 struct StringName< ETPCE::OrthogPoly<T,S> > {
71 static std::string
eval() {
72 return std::string(
"Sacado::ETPCE::OrthogPoly< ") +
73 StringName<T>::eval() +
" >"; }
77 template <
typename T,
typename S>
78 struct IsEqual< ETPCE::OrthogPoly<T,S> > {
81 return x.isEqualTo(y);
86 template <
typename T,
typename S>
87 struct IsStaticallySized< ETPCE::OrthogPoly<T,S> > {
88 static const bool value =
false;
103 template <
typename T,
typename S>
106 typedef typename Sacado::Promote< Sacado::ETPCE::OrthogPoly<T,S>,
112 template <
typename T,
typename S,
typename R>
114 typedef typename Sacado::Promote< Sacado::ETPCE::OrthogPoly<T,S>, R >::type
119 template <
typename L,
typename T,
typename S>
122 typedef typename Sacado::Promote< L, Sacado::ETPCE::OrthogPoly<T,S> >::type
127 template <
typename T,
typename S>
132 template <
typename Ordinal,
typename T,
typename S>
135 Sacado::ETPCE::OrthogPoly<T,S> >
139 template <
typename Ordinal,
typename T,
typename S>
142 Sacado::ETPCE::OrthogPoly<T,S>,
143 ValueTypeSerializer<Ordinal,T> >
151 Base(expansion,vs) {}
155 #endif // SACADO_ETPCE_ORTHOGPOLYTRAITS_HPP
ValueType< ETPCE::OrthogPoly< T, S > >::type value_type
ValueTypeSerializer(const Teuchos::RCP< expansion_type > &expansion, const Teuchos::RCP< const ValueSerializer > &vs)
ValueType< ETPCE::OrthogPoly< T, S > >::type value_type
Implementation for Teuchos::ScalarTraits for all PCE types.
PCEType::expansion_type expansion_type
Typename of expansion.
Base::expansion_type expansion_type
Serializer object for all PCE types.
ScalarType< typename ETPCE::OrthogPoly< T, S >::value_type >::type type
ETPCE::OrthogPoly< T, S >::value_type type
static bool eval(const ETPCE::OrthogPoly< T, S > &x, const ETPCE::OrthogPoly< T, S > &y)
static const value_type & eval(const ETPCE::OrthogPoly< T, S > &x)
static const scalar_type & eval(const ETPCE::OrthogPoly< T, S > &x)
Implementation of Teuchos::SerializationTraits for all PCE types.
Sacado::ETPCE::OrthogPoly< T, S > PCEType
static std::string eval()
Sacado::PCE::SerializerImp< Ordinal, PCEType, ValueSerializer > Base
ScalarType< ETPCE::OrthogPoly< T, S > >::type scalar_type
ValueTypeSerializer< Ordinal, T > ValueSerializer