1use super::*;
2
3impl_template_match_full_scaled!(
4 square_distance_full_norm_u8_c1,
5 u8,
6 C1,
7 nppiSqrDistanceFull_Norm_8u_C1RSfs_Ctx
8);
9impl_template_match_full_scaled!(
10 square_distance_full_norm_u8_c3,
11 u8,
12 C3,
13 nppiSqrDistanceFull_Norm_8u_C3RSfs_Ctx
14);
15impl_template_match_full_scaled!(
16 square_distance_full_norm_u8_c4,
17 u8,
18 C4,
19 nppiSqrDistanceFull_Norm_8u_C4RSfs_Ctx
20);
21impl_template_match_full_scaled!(
22 square_distance_full_norm_u8_ac4,
23 u8,
24 AC4,
25 nppiSqrDistanceFull_Norm_8u_AC4RSfs_Ctx
26);
27impl_template_match_full!(
28 square_distance_full_norm_f32_c1,
29 f32,
30 f32,
31 C1,
32 nppiSqrDistanceFull_Norm_32f_C1R_Ctx
33);
34impl_template_match_full!(
35 square_distance_full_norm_f32_c3,
36 f32,
37 f32,
38 C3,
39 nppiSqrDistanceFull_Norm_32f_C3R_Ctx
40);
41impl_template_match_full!(
42 square_distance_full_norm_f32_c4,
43 f32,
44 f32,
45 C4,
46 nppiSqrDistanceFull_Norm_32f_C4R_Ctx
47);
48impl_template_match_full!(
49 square_distance_full_norm_f32_ac4,
50 f32,
51 f32,
52 AC4,
53 nppiSqrDistanceFull_Norm_32f_AC4R_Ctx
54);
55impl_template_match_full!(
56 square_distance_full_norm_u8_to_f32_c1,
57 u8,
58 f32,
59 C1,
60 nppiSqrDistanceFull_Norm_8u32f_C1R_Ctx
61);
62impl_template_match_full!(
63 square_distance_full_norm_u8_to_f32_c3,
64 u8,
65 f32,
66 C3,
67 nppiSqrDistanceFull_Norm_8u32f_C3R_Ctx
68);
69impl_template_match_full!(
70 square_distance_full_norm_u8_to_f32_c4,
71 u8,
72 f32,
73 C4,
74 nppiSqrDistanceFull_Norm_8u32f_C4R_Ctx
75);
76impl_template_match_full!(
77 square_distance_full_norm_u8_to_f32_ac4,
78 u8,
79 f32,
80 AC4,
81 nppiSqrDistanceFull_Norm_8u32f_AC4R_Ctx
82);
83impl_template_match_full!(
84 square_distance_full_norm_i8_to_f32_c1,
85 i8,
86 f32,
87 C1,
88 nppiSqrDistanceFull_Norm_8s32f_C1R_Ctx
89);
90impl_template_match_full!(
91 square_distance_full_norm_i8_to_f32_c3,
92 i8,
93 f32,
94 C3,
95 nppiSqrDistanceFull_Norm_8s32f_C3R_Ctx
96);
97impl_template_match_full!(
98 square_distance_full_norm_i8_to_f32_c4,
99 i8,
100 f32,
101 C4,
102 nppiSqrDistanceFull_Norm_8s32f_C4R_Ctx
103);
104impl_template_match_full!(
105 square_distance_full_norm_i8_to_f32_ac4,
106 i8,
107 f32,
108 AC4,
109 nppiSqrDistanceFull_Norm_8s32f_AC4R_Ctx
110);
111impl_template_match_full!(
112 square_distance_full_norm_u16_to_f32_c1,
113 u16,
114 f32,
115 C1,
116 nppiSqrDistanceFull_Norm_16u32f_C1R_Ctx
117);
118impl_template_match_full!(
119 square_distance_full_norm_u16_to_f32_c3,
120 u16,
121 f32,
122 C3,
123 nppiSqrDistanceFull_Norm_16u32f_C3R_Ctx
124);
125impl_template_match_full!(
126 square_distance_full_norm_u16_to_f32_c4,
127 u16,
128 f32,
129 C4,
130 nppiSqrDistanceFull_Norm_16u32f_C4R_Ctx
131);
132impl_template_match_full!(
133 square_distance_full_norm_u16_to_f32_ac4,
134 u16,
135 f32,
136 AC4,
137 nppiSqrDistanceFull_Norm_16u32f_AC4R_Ctx
138);
139impl_template_match_same_scaled!(
140 square_distance_same_norm_u8_c1,
141 u8,
142 C1,
143 nppiSqrDistanceSame_Norm_8u_C1RSfs_Ctx
144);
145impl_template_match_same_scaled!(
146 square_distance_same_norm_u8_c3,
147 u8,
148 C3,
149 nppiSqrDistanceSame_Norm_8u_C3RSfs_Ctx
150);
151impl_template_match_same_scaled!(
152 square_distance_same_norm_u8_c4,
153 u8,
154 C4,
155 nppiSqrDistanceSame_Norm_8u_C4RSfs_Ctx
156);
157impl_template_match_same_scaled!(
158 square_distance_same_norm_u8_ac4,
159 u8,
160 AC4,
161 nppiSqrDistanceSame_Norm_8u_AC4RSfs_Ctx
162);
163impl_template_match_same!(
164 square_distance_same_norm_f32_c1,
165 f32,
166 f32,
167 C1,
168 nppiSqrDistanceSame_Norm_32f_C1R_Ctx
169);
170impl_template_match_same!(
171 square_distance_same_norm_f32_c3,
172 f32,
173 f32,
174 C3,
175 nppiSqrDistanceSame_Norm_32f_C3R_Ctx
176);
177impl_template_match_same!(
178 square_distance_same_norm_f32_c4,
179 f32,
180 f32,
181 C4,
182 nppiSqrDistanceSame_Norm_32f_C4R_Ctx
183);
184impl_template_match_same!(
185 square_distance_same_norm_f32_ac4,
186 f32,
187 f32,
188 AC4,
189 nppiSqrDistanceSame_Norm_32f_AC4R_Ctx
190);
191impl_template_match_same!(
192 square_distance_same_norm_u8_to_f32_c1,
193 u8,
194 f32,
195 C1,
196 nppiSqrDistanceSame_Norm_8u32f_C1R_Ctx
197);
198impl_template_match_same!(
199 square_distance_same_norm_u8_to_f32_c3,
200 u8,
201 f32,
202 C3,
203 nppiSqrDistanceSame_Norm_8u32f_C3R_Ctx
204);
205impl_template_match_same!(
206 square_distance_same_norm_u8_to_f32_c4,
207 u8,
208 f32,
209 C4,
210 nppiSqrDistanceSame_Norm_8u32f_C4R_Ctx
211);
212impl_template_match_same!(
213 square_distance_same_norm_u8_to_f32_ac4,
214 u8,
215 f32,
216 AC4,
217 nppiSqrDistanceSame_Norm_8u32f_AC4R_Ctx
218);
219impl_template_match_same!(
220 square_distance_same_norm_i8_to_f32_c1,
221 i8,
222 f32,
223 C1,
224 nppiSqrDistanceSame_Norm_8s32f_C1R_Ctx
225);
226impl_template_match_same!(
227 square_distance_same_norm_i8_to_f32_c3,
228 i8,
229 f32,
230 C3,
231 nppiSqrDistanceSame_Norm_8s32f_C3R_Ctx
232);
233impl_template_match_same!(
234 square_distance_same_norm_i8_to_f32_c4,
235 i8,
236 f32,
237 C4,
238 nppiSqrDistanceSame_Norm_8s32f_C4R_Ctx
239);
240impl_template_match_same!(
241 square_distance_same_norm_i8_to_f32_ac4,
242 i8,
243 f32,
244 AC4,
245 nppiSqrDistanceSame_Norm_8s32f_AC4R_Ctx
246);
247impl_template_match_same!(
248 square_distance_same_norm_u16_to_f32_c1,
249 u16,
250 f32,
251 C1,
252 nppiSqrDistanceSame_Norm_16u32f_C1R_Ctx
253);
254impl_template_match_same!(
255 square_distance_same_norm_u16_to_f32_c3,
256 u16,
257 f32,
258 C3,
259 nppiSqrDistanceSame_Norm_16u32f_C3R_Ctx
260);
261impl_template_match_same!(
262 square_distance_same_norm_u16_to_f32_c4,
263 u16,
264 f32,
265 C4,
266 nppiSqrDistanceSame_Norm_16u32f_C4R_Ctx
267);
268impl_template_match_same!(
269 square_distance_same_norm_u16_to_f32_ac4,
270 u16,
271 f32,
272 AC4,
273 nppiSqrDistanceSame_Norm_16u32f_AC4R_Ctx
274);
275impl_template_match_valid_scaled!(
276 square_distance_valid_norm_u8_c1,
277 u8,
278 C1,
279 nppiSqrDistanceValid_Norm_8u_C1RSfs_Ctx
280);
281impl_template_match_valid_scaled!(
282 square_distance_valid_norm_u8_c3,
283 u8,
284 C3,
285 nppiSqrDistanceValid_Norm_8u_C3RSfs_Ctx
286);
287impl_template_match_valid_scaled!(
288 square_distance_valid_norm_u8_c4,
289 u8,
290 C4,
291 nppiSqrDistanceValid_Norm_8u_C4RSfs_Ctx
292);
293impl_template_match_valid_scaled!(
294 square_distance_valid_norm_u8_ac4,
295 u8,
296 AC4,
297 nppiSqrDistanceValid_Norm_8u_AC4RSfs_Ctx
298);
299impl_template_match_valid!(
300 square_distance_valid_norm_f32_c1,
301 f32,
302 f32,
303 C1,
304 nppiSqrDistanceValid_Norm_32f_C1R_Ctx
305);
306impl_template_match_valid!(
307 square_distance_valid_norm_f32_c3,
308 f32,
309 f32,
310 C3,
311 nppiSqrDistanceValid_Norm_32f_C3R_Ctx
312);
313impl_template_match_valid!(
314 square_distance_valid_norm_f32_c4,
315 f32,
316 f32,
317 C4,
318 nppiSqrDistanceValid_Norm_32f_C4R_Ctx
319);
320impl_template_match_valid!(
321 square_distance_valid_norm_f32_ac4,
322 f32,
323 f32,
324 AC4,
325 nppiSqrDistanceValid_Norm_32f_AC4R_Ctx
326);
327impl_template_match_valid!(
328 square_distance_valid_norm_u8_to_f32_c1,
329 u8,
330 f32,
331 C1,
332 nppiSqrDistanceValid_Norm_8u32f_C1R_Ctx
333);
334impl_template_match_valid!(
335 square_distance_valid_norm_u8_to_f32_c3,
336 u8,
337 f32,
338 C3,
339 nppiSqrDistanceValid_Norm_8u32f_C3R_Ctx
340);
341impl_template_match_valid!(
342 square_distance_valid_norm_u8_to_f32_c4,
343 u8,
344 f32,
345 C4,
346 nppiSqrDistanceValid_Norm_8u32f_C4R_Ctx
347);
348impl_template_match_valid!(
349 square_distance_valid_norm_u8_to_f32_ac4,
350 u8,
351 f32,
352 AC4,
353 nppiSqrDistanceValid_Norm_8u32f_AC4R_Ctx
354);
355impl_template_match_valid!(
356 square_distance_valid_norm_i8_to_f32_c1,
357 i8,
358 f32,
359 C1,
360 nppiSqrDistanceValid_Norm_8s32f_C1R_Ctx
361);
362impl_template_match_valid!(
363 square_distance_valid_norm_i8_to_f32_c3,
364 i8,
365 f32,
366 C3,
367 nppiSqrDistanceValid_Norm_8s32f_C3R_Ctx
368);
369impl_template_match_valid!(
370 square_distance_valid_norm_i8_to_f32_c4,
371 i8,
372 f32,
373 C4,
374 nppiSqrDistanceValid_Norm_8s32f_C4R_Ctx
375);
376impl_template_match_valid!(
377 square_distance_valid_norm_i8_to_f32_ac4,
378 i8,
379 f32,
380 AC4,
381 nppiSqrDistanceValid_Norm_8s32f_AC4R_Ctx
382);
383impl_template_match_valid!(
384 square_distance_valid_norm_u16_to_f32_c1,
385 u16,
386 f32,
387 C1,
388 nppiSqrDistanceValid_Norm_16u32f_C1R_Ctx
389);
390impl_template_match_valid!(
391 square_distance_valid_norm_u16_to_f32_c3,
392 u16,
393 f32,
394 C3,
395 nppiSqrDistanceValid_Norm_16u32f_C3R_Ctx
396);
397impl_template_match_valid!(
398 square_distance_valid_norm_u16_to_f32_c4,
399 u16,
400 f32,
401 C4,
402 nppiSqrDistanceValid_Norm_16u32f_C4R_Ctx
403);
404impl_template_match_valid!(
405 square_distance_valid_norm_u16_to_f32_ac4,
406 u16,
407 f32,
408 AC4,
409 nppiSqrDistanceValid_Norm_16u32f_AC4R_Ctx
410);
411impl_generic_template_match_scaled!(
412 SquareDistanceFullNormScaledC1,
413 square_distance_full_norm_c1_scaled,
414 C1,
415 [(u8, square_distance_full_norm_u8_c1)]
416);
417impl_generic_template_match_scaled!(
418 SquareDistanceFullNormScaledC3,
419 square_distance_full_norm_c3_scaled,
420 C3,
421 [(u8, square_distance_full_norm_u8_c3)]
422);
423impl_generic_template_match_scaled!(
424 SquareDistanceFullNormScaledC4,
425 square_distance_full_norm_c4_scaled,
426 C4,
427 [(u8, square_distance_full_norm_u8_c4)]
428);
429impl_generic_template_match_scaled!(
430 SquareDistanceFullNormScaledAC4,
431 square_distance_full_norm_ac4_scaled,
432 AC4,
433 [(u8, square_distance_full_norm_u8_ac4)]
434);
435impl_generic_template_match!(
436 SquareDistanceFullNormC1,
437 square_distance_full_norm_c1,
438 C1,
439 [
440 (f32, f32, square_distance_full_norm_f32_c1),
441 (u8, f32, square_distance_full_norm_u8_to_f32_c1),
442 (i8, f32, square_distance_full_norm_i8_to_f32_c1),
443 (u16, f32, square_distance_full_norm_u16_to_f32_c1),
444 ]
445);
446impl_generic_template_match!(
447 SquareDistanceFullNormC3,
448 square_distance_full_norm_c3,
449 C3,
450 [
451 (f32, f32, square_distance_full_norm_f32_c3),
452 (u8, f32, square_distance_full_norm_u8_to_f32_c3),
453 (i8, f32, square_distance_full_norm_i8_to_f32_c3),
454 (u16, f32, square_distance_full_norm_u16_to_f32_c3),
455 ]
456);
457impl_generic_template_match!(
458 SquareDistanceFullNormC4,
459 square_distance_full_norm_c4,
460 C4,
461 [
462 (f32, f32, square_distance_full_norm_f32_c4),
463 (u8, f32, square_distance_full_norm_u8_to_f32_c4),
464 (i8, f32, square_distance_full_norm_i8_to_f32_c4),
465 (u16, f32, square_distance_full_norm_u16_to_f32_c4),
466 ]
467);
468impl_generic_template_match!(
469 SquareDistanceFullNormAC4,
470 square_distance_full_norm_ac4,
471 AC4,
472 [
473 (f32, f32, square_distance_full_norm_f32_ac4),
474 (u8, f32, square_distance_full_norm_u8_to_f32_ac4),
475 (i8, f32, square_distance_full_norm_i8_to_f32_ac4),
476 (u16, f32, square_distance_full_norm_u16_to_f32_ac4),
477 ]
478);
479
480impl_generic_template_match_scaled!(
481 SquareDistanceSameNormScaledC1,
482 square_distance_same_norm_c1_scaled,
483 C1,
484 [(u8, square_distance_same_norm_u8_c1)]
485);
486impl_generic_template_match_scaled!(
487 SquareDistanceSameNormScaledC3,
488 square_distance_same_norm_c3_scaled,
489 C3,
490 [(u8, square_distance_same_norm_u8_c3)]
491);
492impl_generic_template_match_scaled!(
493 SquareDistanceSameNormScaledC4,
494 square_distance_same_norm_c4_scaled,
495 C4,
496 [(u8, square_distance_same_norm_u8_c4)]
497);
498impl_generic_template_match_scaled!(
499 SquareDistanceSameNormScaledAC4,
500 square_distance_same_norm_ac4_scaled,
501 AC4,
502 [(u8, square_distance_same_norm_u8_ac4)]
503);
504impl_generic_template_match!(
505 SquareDistanceSameNormC1,
506 square_distance_same_norm_c1,
507 C1,
508 [
509 (f32, f32, square_distance_same_norm_f32_c1),
510 (u8, f32, square_distance_same_norm_u8_to_f32_c1),
511 (i8, f32, square_distance_same_norm_i8_to_f32_c1),
512 (u16, f32, square_distance_same_norm_u16_to_f32_c1),
513 ]
514);
515impl_generic_template_match!(
516 SquareDistanceSameNormC3,
517 square_distance_same_norm_c3,
518 C3,
519 [
520 (f32, f32, square_distance_same_norm_f32_c3),
521 (u8, f32, square_distance_same_norm_u8_to_f32_c3),
522 (i8, f32, square_distance_same_norm_i8_to_f32_c3),
523 (u16, f32, square_distance_same_norm_u16_to_f32_c3),
524 ]
525);
526impl_generic_template_match!(
527 SquareDistanceSameNormC4,
528 square_distance_same_norm_c4,
529 C4,
530 [
531 (f32, f32, square_distance_same_norm_f32_c4),
532 (u8, f32, square_distance_same_norm_u8_to_f32_c4),
533 (i8, f32, square_distance_same_norm_i8_to_f32_c4),
534 (u16, f32, square_distance_same_norm_u16_to_f32_c4),
535 ]
536);
537impl_generic_template_match!(
538 SquareDistanceSameNormAC4,
539 square_distance_same_norm_ac4,
540 AC4,
541 [
542 (f32, f32, square_distance_same_norm_f32_ac4),
543 (u8, f32, square_distance_same_norm_u8_to_f32_ac4),
544 (i8, f32, square_distance_same_norm_i8_to_f32_ac4),
545 (u16, f32, square_distance_same_norm_u16_to_f32_ac4),
546 ]
547);
548
549impl_generic_template_match_scaled!(
550 SquareDistanceValidNormScaledC1,
551 square_distance_valid_norm_c1_scaled,
552 C1,
553 [(u8, square_distance_valid_norm_u8_c1)]
554);
555impl_generic_template_match_scaled!(
556 SquareDistanceValidNormScaledC3,
557 square_distance_valid_norm_c3_scaled,
558 C3,
559 [(u8, square_distance_valid_norm_u8_c3)]
560);
561impl_generic_template_match_scaled!(
562 SquareDistanceValidNormScaledC4,
563 square_distance_valid_norm_c4_scaled,
564 C4,
565 [(u8, square_distance_valid_norm_u8_c4)]
566);
567impl_generic_template_match_scaled!(
568 SquareDistanceValidNormScaledAC4,
569 square_distance_valid_norm_ac4_scaled,
570 AC4,
571 [(u8, square_distance_valid_norm_u8_ac4)]
572);
573impl_generic_template_match!(
574 SquareDistanceValidNormC1,
575 square_distance_valid_norm_c1,
576 C1,
577 [
578 (f32, f32, square_distance_valid_norm_f32_c1),
579 (u8, f32, square_distance_valid_norm_u8_to_f32_c1),
580 (i8, f32, square_distance_valid_norm_i8_to_f32_c1),
581 (u16, f32, square_distance_valid_norm_u16_to_f32_c1),
582 ]
583);
584impl_generic_template_match!(
585 SquareDistanceValidNormC3,
586 square_distance_valid_norm_c3,
587 C3,
588 [
589 (f32, f32, square_distance_valid_norm_f32_c3),
590 (u8, f32, square_distance_valid_norm_u8_to_f32_c3),
591 (i8, f32, square_distance_valid_norm_i8_to_f32_c3),
592 (u16, f32, square_distance_valid_norm_u16_to_f32_c3),
593 ]
594);
595impl_generic_template_match!(
596 SquareDistanceValidNormC4,
597 square_distance_valid_norm_c4,
598 C4,
599 [
600 (f32, f32, square_distance_valid_norm_f32_c4),
601 (u8, f32, square_distance_valid_norm_u8_to_f32_c4),
602 (i8, f32, square_distance_valid_norm_i8_to_f32_c4),
603 (u16, f32, square_distance_valid_norm_u16_to_f32_c4),
604 ]
605);
606impl_generic_template_match!(
607 SquareDistanceValidNormAC4,
608 square_distance_valid_norm_ac4,
609 AC4,
610 [
611 (f32, f32, square_distance_valid_norm_f32_ac4),
612 (u8, f32, square_distance_valid_norm_u8_to_f32_ac4),
613 (i8, f32, square_distance_valid_norm_i8_to_f32_ac4),
614 (u16, f32, square_distance_valid_norm_u16_to_f32_ac4),
615 ]
616);