46 using Sacado::Promote;
49 typedef typename Sacado::ValueType<uq_type>::type value_type;
50 typedef typename Sacado::ScalarType<uq_type>::type scalar_type;
53 is_same<typename Promote<uq_type,uq_type>::type, uq_type >::value,
54 "Promote<uq_type,uq_type>::type != uq_type");
57 is_same<typename Promote<uq_type,value_type>::type, uq_type >::value,
58 "Promote<uq_type,value_type>::type != uq_type");
61 is_same<typename Promote<value_type,uq_type>::type, uq_type >::value,
62 "Promote<value_type,uq_type>::type != uq_type");
65 is_same<typename Promote<uq_type,scalar_type>::type, uq_type >::value,
66 "Promote<uq_type,scalar_type>::type != uq_type");
69 is_same<typename Promote<scalar_type,uq_type>::type, uq_type >::value,
70 "Promote<scalar_type,uq_type>::type != uq_type");
73 is_same<typename Promote<uq_type,expr_type>::type, uq_type >::value,
74 "Promote<expr_type,uq_type>::type != uq_type");
77 is_same<typename Promote<expr_type,uq_type>::type, uq_type >::value,
78 "Promote<expr_type,uq_type>::type != uq_type");
81 is_same<typename Promote<scalar_type,expr_type>::type, uq_type >::value,
82 "Promote<scalar_type,uq_type>::type != uq_type");
85 is_same<typename Promote<expr_type,scalar_type>::type, uq_type >::value,
86 "Promote<expr_type,scalar_type>::type != uq_type");
89 is_same<typename Promote<value_type,expr_type>::type, uq_type >::value,
90 "Promote<value_type,uq_type>::type != uq_type");
93 is_same<typename Promote<expr_type,value_type>::type, uq_type >::value,
94 "Promote<expr_type,value_type>::type != uq_type");
121 typedef decltype(std::declval<uq_type>()*std::declval<uq_type>()) bi_expr_type;
122 bool res1 = testUQExprPromote<uq_type,bi_expr_type>();
127 typedef decltype(-std::declval<uq_type>()) un_expr_type;
128 bool res2 = testUQExprPromote<uq_type,un_expr_type>();
130 bool res3 = testUQExprPromote2<uq_type,bi_expr_type,un_expr_type>();
132 return res1 && res2 && res3;
137 using Sacado::Promote;
139 typedef Sacado::Fad::DFad<uq_type> fad_uq_type;
141 bool res1 = testUQPromote<uq_type>();
142 bool res2 = testUQPromote<fad_uq_type>();
144 typedef decltype(std::declval<uq_type>()*std::declval<uq_type>()) uq_expr_type;
145 typedef decltype(-std::declval<fad_uq_type>()) fad_uq_expr_type;
147 is_same<typename Promote<uq_expr_type,fad_uq_expr_type>::type, fad_uq_type >::value,
148 "Promote<uq_expr_type,fad_uq_expr_type>::type != fad_uq_type");