@@ -109,7 +109,7 @@ void verify_op_c(const T l, const T r, const float ref, OP op) {
109109template <typename T, size_t SROWS, size_t SCOLS, use Use, class name >
110110class ewops_ab {};
111111template <typename T, size_t SROWS, size_t SCOLS, use Use, layout Layout,
112- size_t VF>
112+ size_t VF, typename Tv = T >
113113void test_ewops_ab () {
114114 if constexpr (Use == use::a)
115115 std::cout << " Test A " ;
@@ -122,41 +122,41 @@ void test_ewops_ab() {
122122
123123 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
124124 ewops_ab<T, SROWS, SCOLS, Use, class ab_add >>(
125- T (5.0 ), T (2.0 ), 7.0 , [](auto l, auto r) { return l + r; });
125+ Tv (5.0 ), Tv (2.0 ), 7.0 , [](auto l, auto r) { return l + r; });
126126 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
127127 ewops_ab<T, SROWS, SCOLS, Use, class ab_sub >>(
128- T (5.0 ), T (2.0 ), 3.0 , [](auto l, auto r) { return l - r; });
128+ Tv (5.0 ), Tv (2.0 ), 3.0 , [](auto l, auto r) { return l - r; });
129129 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
130130 ewops_ab<T, SROWS, SCOLS, Use, class ab_mul >>(
131- T (5.0 ), T (2.0 ), 10.0 , [](auto l, auto r) { return l * r; });
131+ Tv (5.0 ), Tv (2.0 ), 10.0 , [](auto l, auto r) { return l * r; });
132132 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
133133 ewops_ab<T, SROWS, SCOLS, Use, class ab_div >>(
134- T (5.0 ), T (2.0 ), 2.5 , [](auto l, auto r) { return l / r; });
134+ Tv (5.0 ), Tv (2.0 ), 2.5 , [](auto l, auto r) { return l / r; });
135135 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
136136 ewops_ab<T, SROWS, SCOLS, Use, class ab_logical >>(
137- T (5.0 ), T (5.0 ), 5.0 , [](auto l, auto r) { return l == r ? l : T (1.0 ); });
137+ Tv (5.0 ), Tv (5.0 ), 5.0 , [](auto l, auto r) { return l == r ? l : Tv (1.0 ); });
138138 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
139139 ewops_ab<T, SROWS, SCOLS, Use, class ab_eq >>(
140- T (5.0 ), T (4.0 ), 4.0 , [](auto l, auto r) { return l == r ? l : r; });
140+ Tv (5.0 ), Tv (4.0 ), 4.0 , [](auto l, auto r) { return l == r ? l : r; });
141141 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
142142 ewops_ab<T, SROWS, SCOLS, Use, class ab_ne >>(
143- T (5.0 ), T (5.0 ), 1.0 , [](auto l, auto r) { return l != r ? l : T (1.0 ); });
143+ Tv (5.0 ), Tv (5.0 ), 1.0 , [](auto l, auto r) { return l != r ? l : Tv (1.0 ); });
144144 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
145145 ewops_ab<T, SROWS, SCOLS, Use, class ab_gt >>(
146- T (5.0 ), T (2.0 ), 3.0 ,
147- [](auto l, auto r) { return l > r ? T (3.0 ) : T (2.0 ); });
146+ Tv (5.0 ), Tv (2.0 ), 3.0 ,
147+ [](auto l, auto r) { return l > r ? Tv (3.0 ) : Tv (2.0 ); });
148148 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
149149 ewops_ab<T, SROWS, SCOLS, Use, class ab_lt >>(
150- T (5.0 ), T (2.0 ), 2.0 ,
151- [](auto l, auto r) { return l < r ? T (3.0 ) : T (2.0 ); });
150+ Tv (5.0 ), Tv (2.0 ), 2.0 ,
151+ [](auto l, auto r) { return l < r ? Tv (3.0 ) : Tv (2.0 ); });
152152 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
153153 ewops_ab<T, SROWS, SCOLS, Use, class ab_ge >>(
154- T (5.0 ), T (2.0 ), 3.0 ,
155- [](auto l, auto r) { return l >= r ? T (3.0 ) : T (2.0 ); });
154+ Tv (5.0 ), Tv (2.0 ), 3.0 ,
155+ [](auto l, auto r) { return l >= r ? Tv (3.0 ) : Tv (2.0 ); });
156156 verify_op_ab<T, NROWS, NCOLS, SROWS, SCOLS, Use, Layout, VF,
157157 ewops_ab<T, SROWS, SCOLS, Use, class ab_le >>(
158- T (5.0 ), T (2.0 ), 2.0 ,
159- [](auto l, auto r) { return l <= r ? T (3.0 ) : T (2.0 ); });
158+ Tv (5.0 ), Tv (2.0 ), 2.0 ,
159+ [](auto l, auto r) { return l <= r ? Tv (3.0 ) : Tv (2.0 ); });
160160}
161161
162162// Avoid same kernel name for different types and numbers of columns
0 commit comments