Skip to main content

singe_npp/image/
statistics_template_advanced.rs

1use super::*;
2
3impl_advanced_template_match_buffer_size!(
4    cross_correlation_full_norm_level_advanced_buffer_size,
5    nppiCrossCorrFull_NormLevel_GetAdvancedScratchBufferSize
6);
7impl_template_match_norm_level_advanced_full!(
8    cross_correlation_full_norm_level_advanced_f32_c1,
9    f32,
10    f32,
11    C1,
12    1,
13    cross_correlation_full_norm_level_f32_c1_buffer_size,
14    cross_correlation_full_norm_level_advanced_buffer_size,
15    nppiCrossCorrFull_NormLevelAdvanced_32f_C1R_Ctx
16);
17impl_template_match_norm_level_advanced_full!(
18    cross_correlation_full_norm_level_advanced_f32_c3,
19    f32,
20    f32,
21    C3,
22    3,
23    cross_correlation_full_norm_level_f32_c3_buffer_size,
24    cross_correlation_full_norm_level_advanced_buffer_size,
25    nppiCrossCorrFull_NormLevelAdvanced_32f_C3R_Ctx
26);
27impl_template_match_norm_level_advanced_full!(
28    cross_correlation_full_norm_level_advanced_f32_c4,
29    f32,
30    f32,
31    C4,
32    4,
33    cross_correlation_full_norm_level_f32_c4_buffer_size,
34    cross_correlation_full_norm_level_advanced_buffer_size,
35    nppiCrossCorrFull_NormLevelAdvanced_32f_C4R_Ctx
36);
37impl_template_match_norm_level_advanced_full!(
38    cross_correlation_full_norm_level_advanced_f64_c1,
39    f64,
40    f64,
41    C1,
42    1,
43    cross_correlation_full_norm_level_f64_c1_buffer_size,
44    cross_correlation_full_norm_level_advanced_buffer_size,
45    nppiCrossCorrFull_NormLevelAdvanced_64f_C1R_Ctx
46);
47impl_template_match_norm_level_advanced_full!(
48    cross_correlation_full_norm_level_advanced_f64_c3,
49    f64,
50    f64,
51    C3,
52    3,
53    cross_correlation_full_norm_level_f64_c3_buffer_size,
54    cross_correlation_full_norm_level_advanced_buffer_size,
55    nppiCrossCorrFull_NormLevelAdvanced_64f_C3R_Ctx
56);
57impl_template_match_norm_level_advanced_full!(
58    cross_correlation_full_norm_level_advanced_f64_c4,
59    f64,
60    f64,
61    C4,
62    4,
63    cross_correlation_full_norm_level_f64_c4_buffer_size,
64    cross_correlation_full_norm_level_advanced_buffer_size,
65    nppiCrossCorrFull_NormLevelAdvanced_64f_C4R_Ctx
66);
67impl_template_match_norm_level_advanced_full!(
68    cross_correlation_full_norm_level_advanced_u8_to_f32_c1,
69    u8,
70    f32,
71    C1,
72    1,
73    cross_correlation_full_norm_level_u8_to_f32_c1_buffer_size,
74    cross_correlation_full_norm_level_advanced_buffer_size,
75    nppiCrossCorrFull_NormLevelAdvanced_8u32f_C1R_Ctx
76);
77impl_template_match_norm_level_advanced_full!(
78    cross_correlation_full_norm_level_advanced_u8_to_f32_c3,
79    u8,
80    f32,
81    C3,
82    3,
83    cross_correlation_full_norm_level_u8_to_f32_c3_buffer_size,
84    cross_correlation_full_norm_level_advanced_buffer_size,
85    nppiCrossCorrFull_NormLevelAdvanced_8u32f_C3R_Ctx
86);
87impl_template_match_norm_level_advanced_full!(
88    cross_correlation_full_norm_level_advanced_u8_to_f32_c4,
89    u8,
90    f32,
91    C4,
92    4,
93    cross_correlation_full_norm_level_u8_to_f32_c4_buffer_size,
94    cross_correlation_full_norm_level_advanced_buffer_size,
95    nppiCrossCorrFull_NormLevelAdvanced_8u32f_C4R_Ctx
96);
97impl_template_match_norm_level_advanced_full!(
98    cross_correlation_full_norm_level_advanced_i8_to_f32_c1,
99    i8,
100    f32,
101    C1,
102    1,
103    cross_correlation_full_norm_level_i8_to_f32_c1_buffer_size,
104    cross_correlation_full_norm_level_advanced_buffer_size,
105    nppiCrossCorrFull_NormLevelAdvanced_8s32f_C1R_Ctx
106);
107impl_template_match_norm_level_advanced_full!(
108    cross_correlation_full_norm_level_advanced_i8_to_f32_c3,
109    i8,
110    f32,
111    C3,
112    3,
113    cross_correlation_full_norm_level_i8_to_f32_c3_buffer_size,
114    cross_correlation_full_norm_level_advanced_buffer_size,
115    nppiCrossCorrFull_NormLevelAdvanced_8s32f_C3R_Ctx
116);
117impl_template_match_norm_level_advanced_full!(
118    cross_correlation_full_norm_level_advanced_i8_to_f32_c4,
119    i8,
120    f32,
121    C4,
122    4,
123    cross_correlation_full_norm_level_i8_to_f32_c4_buffer_size,
124    cross_correlation_full_norm_level_advanced_buffer_size,
125    nppiCrossCorrFull_NormLevelAdvanced_8s32f_C4R_Ctx
126);
127impl_template_match_norm_level_advanced_full!(
128    cross_correlation_full_norm_level_advanced_u16_to_f32_c1,
129    u16,
130    f32,
131    C1,
132    1,
133    cross_correlation_full_norm_level_u16_to_f32_c1_buffer_size,
134    cross_correlation_full_norm_level_advanced_buffer_size,
135    nppiCrossCorrFull_NormLevelAdvanced_16u32f_C1R_Ctx
136);
137impl_template_match_norm_level_advanced_full!(
138    cross_correlation_full_norm_level_advanced_u16_to_f32_c3,
139    u16,
140    f32,
141    C3,
142    3,
143    cross_correlation_full_norm_level_u16_to_f32_c3_buffer_size,
144    cross_correlation_full_norm_level_advanced_buffer_size,
145    nppiCrossCorrFull_NormLevelAdvanced_16u32f_C3R_Ctx
146);
147impl_template_match_norm_level_advanced_full!(
148    cross_correlation_full_norm_level_advanced_u16_to_f32_c4,
149    u16,
150    f32,
151    C4,
152    4,
153    cross_correlation_full_norm_level_u16_to_f32_c4_buffer_size,
154    cross_correlation_full_norm_level_advanced_buffer_size,
155    nppiCrossCorrFull_NormLevelAdvanced_16u32f_C4R_Ctx
156);
157impl_advanced_template_match_buffer_size!(
158    cross_correlation_same_norm_level_advanced_buffer_size,
159    nppiCrossCorrSame_NormLevel_GetAdvancedScratchBufferSize
160);
161impl_template_match_norm_level_advanced_same!(
162    cross_correlation_same_norm_level_advanced_f32_c1,
163    f32,
164    f32,
165    C1,
166    1,
167    cross_correlation_same_norm_level_f32_c1_buffer_size,
168    cross_correlation_same_norm_level_advanced_buffer_size,
169    nppiCrossCorrSame_NormLevelAdvanced_32f_C1R_Ctx
170);
171impl_template_match_norm_level_advanced_same!(
172    cross_correlation_same_norm_level_advanced_f32_c3,
173    f32,
174    f32,
175    C3,
176    3,
177    cross_correlation_same_norm_level_f32_c3_buffer_size,
178    cross_correlation_same_norm_level_advanced_buffer_size,
179    nppiCrossCorrSame_NormLevelAdvanced_32f_C3R_Ctx
180);
181impl_template_match_norm_level_advanced_same!(
182    cross_correlation_same_norm_level_advanced_f32_c4,
183    f32,
184    f32,
185    C4,
186    4,
187    cross_correlation_same_norm_level_f32_c4_buffer_size,
188    cross_correlation_same_norm_level_advanced_buffer_size,
189    nppiCrossCorrSame_NormLevelAdvanced_32f_C4R_Ctx
190);
191impl_template_match_norm_level_advanced_same!(
192    cross_correlation_same_norm_level_advanced_f64_c1,
193    f64,
194    f64,
195    C1,
196    1,
197    cross_correlation_same_norm_level_f64_c1_buffer_size,
198    cross_correlation_same_norm_level_advanced_buffer_size,
199    nppiCrossCorrSame_NormLevelAdvanced_64f_C1R_Ctx
200);
201impl_template_match_norm_level_advanced_same!(
202    cross_correlation_same_norm_level_advanced_f64_c3,
203    f64,
204    f64,
205    C3,
206    3,
207    cross_correlation_same_norm_level_f64_c3_buffer_size,
208    cross_correlation_same_norm_level_advanced_buffer_size,
209    nppiCrossCorrSame_NormLevelAdvanced_64f_C3R_Ctx
210);
211impl_template_match_norm_level_advanced_same!(
212    cross_correlation_same_norm_level_advanced_f64_c4,
213    f64,
214    f64,
215    C4,
216    4,
217    cross_correlation_same_norm_level_f64_c4_buffer_size,
218    cross_correlation_same_norm_level_advanced_buffer_size,
219    nppiCrossCorrSame_NormLevelAdvanced_64f_C4R_Ctx
220);
221impl_template_match_norm_level_advanced_same!(
222    cross_correlation_same_norm_level_advanced_u8_to_f32_c1,
223    u8,
224    f32,
225    C1,
226    1,
227    cross_correlation_same_norm_level_u8_to_f32_c1_buffer_size,
228    cross_correlation_same_norm_level_advanced_buffer_size,
229    nppiCrossCorrSame_NormLevelAdvanced_8u32f_C1R_Ctx
230);
231impl_template_match_norm_level_advanced_same!(
232    cross_correlation_same_norm_level_advanced_u8_to_f32_c3,
233    u8,
234    f32,
235    C3,
236    3,
237    cross_correlation_same_norm_level_u8_to_f32_c3_buffer_size,
238    cross_correlation_same_norm_level_advanced_buffer_size,
239    nppiCrossCorrSame_NormLevelAdvanced_8u32f_C3R_Ctx
240);
241impl_template_match_norm_level_advanced_same!(
242    cross_correlation_same_norm_level_advanced_u8_to_f32_c4,
243    u8,
244    f32,
245    C4,
246    4,
247    cross_correlation_same_norm_level_u8_to_f32_c4_buffer_size,
248    cross_correlation_same_norm_level_advanced_buffer_size,
249    nppiCrossCorrSame_NormLevelAdvanced_8u32f_C4R_Ctx
250);
251impl_template_match_norm_level_advanced_same!(
252    cross_correlation_same_norm_level_advanced_i8_to_f32_c1,
253    i8,
254    f32,
255    C1,
256    1,
257    cross_correlation_same_norm_level_i8_to_f32_c1_buffer_size,
258    cross_correlation_same_norm_level_advanced_buffer_size,
259    nppiCrossCorrSame_NormLevelAdvanced_8s32f_C1R_Ctx
260);
261impl_template_match_norm_level_advanced_same!(
262    cross_correlation_same_norm_level_advanced_i8_to_f32_c3,
263    i8,
264    f32,
265    C3,
266    3,
267    cross_correlation_same_norm_level_i8_to_f32_c3_buffer_size,
268    cross_correlation_same_norm_level_advanced_buffer_size,
269    nppiCrossCorrSame_NormLevelAdvanced_8s32f_C3R_Ctx
270);
271impl_template_match_norm_level_advanced_same!(
272    cross_correlation_same_norm_level_advanced_i8_to_f32_c4,
273    i8,
274    f32,
275    C4,
276    4,
277    cross_correlation_same_norm_level_i8_to_f32_c4_buffer_size,
278    cross_correlation_same_norm_level_advanced_buffer_size,
279    nppiCrossCorrSame_NormLevelAdvanced_8s32f_C4R_Ctx
280);
281impl_template_match_norm_level_advanced_same!(
282    cross_correlation_same_norm_level_advanced_u16_to_f32_c1,
283    u16,
284    f32,
285    C1,
286    1,
287    cross_correlation_same_norm_level_u16_to_f32_c1_buffer_size,
288    cross_correlation_same_norm_level_advanced_buffer_size,
289    nppiCrossCorrSame_NormLevelAdvanced_16u32f_C1R_Ctx
290);
291impl_template_match_norm_level_advanced_same!(
292    cross_correlation_same_norm_level_advanced_u16_to_f32_c3,
293    u16,
294    f32,
295    C3,
296    3,
297    cross_correlation_same_norm_level_u16_to_f32_c3_buffer_size,
298    cross_correlation_same_norm_level_advanced_buffer_size,
299    nppiCrossCorrSame_NormLevelAdvanced_16u32f_C3R_Ctx
300);
301impl_template_match_norm_level_advanced_same!(
302    cross_correlation_same_norm_level_advanced_u16_to_f32_c4,
303    u16,
304    f32,
305    C4,
306    4,
307    cross_correlation_same_norm_level_u16_to_f32_c4_buffer_size,
308    cross_correlation_same_norm_level_advanced_buffer_size,
309    nppiCrossCorrSame_NormLevelAdvanced_16u32f_C4R_Ctx
310);
311impl_advanced_template_match_buffer_size!(
312    cross_correlation_valid_norm_level_advanced_buffer_size,
313    nppiCrossCorrValid_NormLevel_GetAdvancedScratchBufferSize
314);
315impl_template_match_norm_level_advanced_valid!(
316    cross_correlation_valid_norm_level_advanced_f32_c1,
317    f32,
318    f32,
319    C1,
320    1,
321    cross_correlation_valid_norm_level_f32_c1_buffer_size,
322    cross_correlation_valid_norm_level_advanced_buffer_size,
323    nppiCrossCorrValid_NormLevelAdvanced_32f_C1R_Ctx
324);
325impl_template_match_norm_level_advanced_valid!(
326    cross_correlation_valid_norm_level_advanced_f32_c3,
327    f32,
328    f32,
329    C3,
330    3,
331    cross_correlation_valid_norm_level_f32_c3_buffer_size,
332    cross_correlation_valid_norm_level_advanced_buffer_size,
333    nppiCrossCorrValid_NormLevelAdvanced_32f_C3R_Ctx
334);
335impl_template_match_norm_level_advanced_valid!(
336    cross_correlation_valid_norm_level_advanced_f32_c4,
337    f32,
338    f32,
339    C4,
340    4,
341    cross_correlation_valid_norm_level_f32_c4_buffer_size,
342    cross_correlation_valid_norm_level_advanced_buffer_size,
343    nppiCrossCorrValid_NormLevelAdvanced_32f_C4R_Ctx
344);
345impl_template_match_norm_level_advanced_valid!(
346    cross_correlation_valid_norm_level_advanced_f64_c1,
347    f64,
348    f64,
349    C1,
350    1,
351    cross_correlation_valid_norm_level_f64_c1_buffer_size,
352    cross_correlation_valid_norm_level_advanced_buffer_size,
353    nppiCrossCorrValid_NormLevelAdvanced_64f_C1R_Ctx
354);
355impl_template_match_norm_level_advanced_valid!(
356    cross_correlation_valid_norm_level_advanced_f64_c3,
357    f64,
358    f64,
359    C3,
360    3,
361    cross_correlation_valid_norm_level_f64_c3_buffer_size,
362    cross_correlation_valid_norm_level_advanced_buffer_size,
363    nppiCrossCorrValid_NormLevelAdvanced_64f_C3R_Ctx
364);
365impl_template_match_norm_level_advanced_valid!(
366    cross_correlation_valid_norm_level_advanced_f64_c4,
367    f64,
368    f64,
369    C4,
370    4,
371    cross_correlation_valid_norm_level_f64_c4_buffer_size,
372    cross_correlation_valid_norm_level_advanced_buffer_size,
373    nppiCrossCorrValid_NormLevelAdvanced_64f_C4R_Ctx
374);
375impl_template_match_norm_level_advanced_valid!(
376    cross_correlation_valid_norm_level_advanced_u8_to_f32_c1,
377    u8,
378    f32,
379    C1,
380    1,
381    cross_correlation_valid_norm_level_u8_to_f32_c1_buffer_size,
382    cross_correlation_valid_norm_level_advanced_buffer_size,
383    nppiCrossCorrValid_NormLevelAdvanced_8u32f_C1R_Ctx
384);
385impl_template_match_norm_level_advanced_valid!(
386    cross_correlation_valid_norm_level_advanced_u8_to_f32_c3,
387    u8,
388    f32,
389    C3,
390    3,
391    cross_correlation_valid_norm_level_u8_to_f32_c3_buffer_size,
392    cross_correlation_valid_norm_level_advanced_buffer_size,
393    nppiCrossCorrValid_NormLevelAdvanced_8u32f_C3R_Ctx
394);
395impl_template_match_norm_level_advanced_valid!(
396    cross_correlation_valid_norm_level_advanced_u8_to_f32_c4,
397    u8,
398    f32,
399    C4,
400    4,
401    cross_correlation_valid_norm_level_u8_to_f32_c4_buffer_size,
402    cross_correlation_valid_norm_level_advanced_buffer_size,
403    nppiCrossCorrValid_NormLevelAdvanced_8u32f_C4R_Ctx
404);
405impl_template_match_norm_level_advanced_valid!(
406    cross_correlation_valid_norm_level_advanced_i8_to_f32_c1,
407    i8,
408    f32,
409    C1,
410    1,
411    cross_correlation_valid_norm_level_i8_to_f32_c1_buffer_size,
412    cross_correlation_valid_norm_level_advanced_buffer_size,
413    nppiCrossCorrValid_NormLevelAdvanced_8s32f_C1R_Ctx
414);
415impl_template_match_norm_level_advanced_valid!(
416    cross_correlation_valid_norm_level_advanced_i8_to_f32_c3,
417    i8,
418    f32,
419    C3,
420    3,
421    cross_correlation_valid_norm_level_i8_to_f32_c3_buffer_size,
422    cross_correlation_valid_norm_level_advanced_buffer_size,
423    nppiCrossCorrValid_NormLevelAdvanced_8s32f_C3R_Ctx
424);
425impl_template_match_norm_level_advanced_valid!(
426    cross_correlation_valid_norm_level_advanced_i8_to_f32_c4,
427    i8,
428    f32,
429    C4,
430    4,
431    cross_correlation_valid_norm_level_i8_to_f32_c4_buffer_size,
432    cross_correlation_valid_norm_level_advanced_buffer_size,
433    nppiCrossCorrValid_NormLevelAdvanced_8s32f_C4R_Ctx
434);
435impl_template_match_norm_level_advanced_valid!(
436    cross_correlation_valid_norm_level_advanced_u16_to_f32_c1,
437    u16,
438    f32,
439    C1,
440    1,
441    cross_correlation_valid_norm_level_u16_to_f32_c1_buffer_size,
442    cross_correlation_valid_norm_level_advanced_buffer_size,
443    nppiCrossCorrValid_NormLevelAdvanced_16u32f_C1R_Ctx
444);
445impl_template_match_norm_level_advanced_valid!(
446    cross_correlation_valid_norm_level_advanced_u16_to_f32_c3,
447    u16,
448    f32,
449    C3,
450    3,
451    cross_correlation_valid_norm_level_u16_to_f32_c3_buffer_size,
452    cross_correlation_valid_norm_level_advanced_buffer_size,
453    nppiCrossCorrValid_NormLevelAdvanced_16u32f_C3R_Ctx
454);
455impl_template_match_norm_level_advanced_valid!(
456    cross_correlation_valid_norm_level_advanced_u16_to_f32_c4,
457    u16,
458    f32,
459    C4,
460    4,
461    cross_correlation_valid_norm_level_u16_to_f32_c4_buffer_size,
462    cross_correlation_valid_norm_level_advanced_buffer_size,
463    nppiCrossCorrValid_NormLevelAdvanced_16u32f_C4R_Ctx
464);
465impl_generic_template_match_advanced!(
466    CrossCorrelationFullNormLevelAdvancedC1,
467    cross_correlation_full_norm_level_advanced_c1,
468    C1,
469    [
470        (f32, f32, cross_correlation_full_norm_level_advanced_f32_c1),
471        (f64, f64, cross_correlation_full_norm_level_advanced_f64_c1),
472        (
473            u8,
474            f32,
475            cross_correlation_full_norm_level_advanced_u8_to_f32_c1
476        ),
477        (
478            i8,
479            f32,
480            cross_correlation_full_norm_level_advanced_i8_to_f32_c1
481        ),
482        (
483            u16,
484            f32,
485            cross_correlation_full_norm_level_advanced_u16_to_f32_c1
486        ),
487    ]
488);
489impl_generic_template_match_advanced!(
490    CrossCorrelationFullNormLevelAdvancedC3,
491    cross_correlation_full_norm_level_advanced_c3,
492    C3,
493    [
494        (f32, f32, cross_correlation_full_norm_level_advanced_f32_c3),
495        (f64, f64, cross_correlation_full_norm_level_advanced_f64_c3),
496        (
497            u8,
498            f32,
499            cross_correlation_full_norm_level_advanced_u8_to_f32_c3
500        ),
501        (
502            i8,
503            f32,
504            cross_correlation_full_norm_level_advanced_i8_to_f32_c3
505        ),
506        (
507            u16,
508            f32,
509            cross_correlation_full_norm_level_advanced_u16_to_f32_c3
510        ),
511    ]
512);
513impl_generic_template_match_advanced!(
514    CrossCorrelationFullNormLevelAdvancedC4,
515    cross_correlation_full_norm_level_advanced_c4,
516    C4,
517    [
518        (f32, f32, cross_correlation_full_norm_level_advanced_f32_c4),
519        (f64, f64, cross_correlation_full_norm_level_advanced_f64_c4),
520        (
521            u8,
522            f32,
523            cross_correlation_full_norm_level_advanced_u8_to_f32_c4
524        ),
525        (
526            i8,
527            f32,
528            cross_correlation_full_norm_level_advanced_i8_to_f32_c4
529        ),
530        (
531            u16,
532            f32,
533            cross_correlation_full_norm_level_advanced_u16_to_f32_c4
534        ),
535    ]
536);
537impl_generic_template_match_advanced!(
538    CrossCorrelationSameNormLevelAdvancedC1,
539    cross_correlation_same_norm_level_advanced_c1,
540    C1,
541    [
542        (f32, f32, cross_correlation_same_norm_level_advanced_f32_c1),
543        (f64, f64, cross_correlation_same_norm_level_advanced_f64_c1),
544        (
545            u8,
546            f32,
547            cross_correlation_same_norm_level_advanced_u8_to_f32_c1
548        ),
549        (
550            i8,
551            f32,
552            cross_correlation_same_norm_level_advanced_i8_to_f32_c1
553        ),
554        (
555            u16,
556            f32,
557            cross_correlation_same_norm_level_advanced_u16_to_f32_c1
558        ),
559    ]
560);
561impl_generic_template_match_advanced!(
562    CrossCorrelationSameNormLevelAdvancedC3,
563    cross_correlation_same_norm_level_advanced_c3,
564    C3,
565    [
566        (f32, f32, cross_correlation_same_norm_level_advanced_f32_c3),
567        (f64, f64, cross_correlation_same_norm_level_advanced_f64_c3),
568        (
569            u8,
570            f32,
571            cross_correlation_same_norm_level_advanced_u8_to_f32_c3
572        ),
573        (
574            i8,
575            f32,
576            cross_correlation_same_norm_level_advanced_i8_to_f32_c3
577        ),
578        (
579            u16,
580            f32,
581            cross_correlation_same_norm_level_advanced_u16_to_f32_c3
582        ),
583    ]
584);
585impl_generic_template_match_advanced!(
586    CrossCorrelationSameNormLevelAdvancedC4,
587    cross_correlation_same_norm_level_advanced_c4,
588    C4,
589    [
590        (f32, f32, cross_correlation_same_norm_level_advanced_f32_c4),
591        (f64, f64, cross_correlation_same_norm_level_advanced_f64_c4),
592        (
593            u8,
594            f32,
595            cross_correlation_same_norm_level_advanced_u8_to_f32_c4
596        ),
597        (
598            i8,
599            f32,
600            cross_correlation_same_norm_level_advanced_i8_to_f32_c4
601        ),
602        (
603            u16,
604            f32,
605            cross_correlation_same_norm_level_advanced_u16_to_f32_c4
606        ),
607    ]
608);
609impl_generic_template_match_advanced!(
610    CrossCorrelationValidNormLevelAdvancedC1,
611    cross_correlation_valid_norm_level_advanced_c1,
612    C1,
613    [
614        (f32, f32, cross_correlation_valid_norm_level_advanced_f32_c1),
615        (f64, f64, cross_correlation_valid_norm_level_advanced_f64_c1),
616        (
617            u8,
618            f32,
619            cross_correlation_valid_norm_level_advanced_u8_to_f32_c1
620        ),
621        (
622            i8,
623            f32,
624            cross_correlation_valid_norm_level_advanced_i8_to_f32_c1
625        ),
626        (
627            u16,
628            f32,
629            cross_correlation_valid_norm_level_advanced_u16_to_f32_c1
630        ),
631    ]
632);
633impl_generic_template_match_advanced!(
634    CrossCorrelationValidNormLevelAdvancedC3,
635    cross_correlation_valid_norm_level_advanced_c3,
636    C3,
637    [
638        (f32, f32, cross_correlation_valid_norm_level_advanced_f32_c3),
639        (f64, f64, cross_correlation_valid_norm_level_advanced_f64_c3),
640        (
641            u8,
642            f32,
643            cross_correlation_valid_norm_level_advanced_u8_to_f32_c3
644        ),
645        (
646            i8,
647            f32,
648            cross_correlation_valid_norm_level_advanced_i8_to_f32_c3
649        ),
650        (
651            u16,
652            f32,
653            cross_correlation_valid_norm_level_advanced_u16_to_f32_c3
654        ),
655    ]
656);
657impl_generic_template_match_advanced!(
658    CrossCorrelationValidNormLevelAdvancedC4,
659    cross_correlation_valid_norm_level_advanced_c4,
660    C4,
661    [
662        (f32, f32, cross_correlation_valid_norm_level_advanced_f32_c4),
663        (f64, f64, cross_correlation_valid_norm_level_advanced_f64_c4),
664        (
665            u8,
666            f32,
667            cross_correlation_valid_norm_level_advanced_u8_to_f32_c4
668        ),
669        (
670            i8,
671            f32,
672            cross_correlation_valid_norm_level_advanced_i8_to_f32_c4
673        ),
674        (
675            u16,
676            f32,
677            cross_correlation_valid_norm_level_advanced_u16_to_f32_c4
678        ),
679    ]
680);