182 { \
183 Comparison<name##Fn>(input1_shape, input1_data, input2_shape, input2_data,
output_shape, \
184 output_data); \
185 } \
186 template <typename T> \
187 inline void name##NoScaling(
const Shape &input1_shape,
const T *input1_data, \
188 const Shape &input2_shape,
const T *input2_data, \
190 { \
191 ComparisonImpl<T, name##Fn>(input1_shape, input1_data, input2_shape, input2_data, \
193 } \
194 template <typename T> \
195 inline void name##WithScaling( \
196 ComparisonParams ¶ms,
const Shape &input1_shape,
const T *input1_data, \
198 { \
199 ComparisonWithScaling<T, name##Fn>(params, input1_shape, input1_data, input2_shape, \
201 } \
202 template <typename T> \
203 inline void Broadcast4DSlow##name##NoScaling(
const Shape &input1_shape,
const T *input1_data, \
204 const Shape &input2_shape,
const T *input2_data, \
206 { \
207 BroadcastComparison4DSlowImpl<T, name##Fn>(input1_shape, input1_data, input2_shape, \
209 } \
210 template <typename T> \
211 inline void Broadcast4DSlow##name(
const Shape &input1_shape,
const T *input1_data, \
212 const Shape &input2_shape,
const T *input2_data, \
214 { \
215 BroadcastComparison4DSlow<T, name##Fn>(input1_shape, input1_data, input2_shape, input2_data, \
217 } \
218 template <typename T> \
219 inline void Broadcast4DSlow##name##WithScaling( \
220 ComparisonParams ¶ms,
const Shape &input1_shape,
const T *input1_data, \
222 { \
223 BroadcastComparison4DSlowWithScaling<T, name##Fn>( \
224 params, input1_shape, input1_data, input2_shape, input2_data,
output_shape, output_data); \
225 }
const luci_interpreter::RuntimeShape output_shape