Skip to main content

singe_npp/image/
statistics_norms_unmasked_diff.rs

1use super::*;
2
3impl_error_metric!(
4    norm_diff_inf_u8_c1_buffer_size,
5    norm_diff_inf_u8_c1,
6    u8,
7    C1,
8    1,
9    nppiNormDiffInfGetBufferHostSize_8u_C1R_Ctx,
10    nppiNormDiff_Inf_8u_C1R_Ctx
11);
12impl_error_metric!(
13    norm_diff_inf_u16_c1_buffer_size,
14    norm_diff_inf_u16_c1,
15    u16,
16    C1,
17    1,
18    nppiNormDiffInfGetBufferHostSize_16u_C1R_Ctx,
19    nppiNormDiff_Inf_16u_C1R_Ctx
20);
21impl_error_metric!(
22    norm_diff_inf_i16_c1_buffer_size,
23    norm_diff_inf_i16_c1,
24    i16,
25    C1,
26    1,
27    nppiNormDiffInfGetBufferHostSize_16s_C1R_Ctx,
28    nppiNormDiff_Inf_16s_C1R_Ctx
29);
30impl_error_metric!(
31    norm_diff_inf_f32_c1_buffer_size,
32    norm_diff_inf_f32_c1,
33    f32,
34    C1,
35    1,
36    nppiNormDiffInfGetBufferHostSize_32f_C1R_Ctx,
37    nppiNormDiff_Inf_32f_C1R_Ctx
38);
39impl_error_metric!(
40    norm_diff_inf_u8_c3_buffer_size,
41    norm_diff_inf_u8_c3,
42    u8,
43    C3,
44    3,
45    nppiNormDiffInfGetBufferHostSize_8u_C3R_Ctx,
46    nppiNormDiff_Inf_8u_C3R_Ctx
47);
48impl_error_metric!(
49    norm_diff_inf_u16_c3_buffer_size,
50    norm_diff_inf_u16_c3,
51    u16,
52    C3,
53    3,
54    nppiNormDiffInfGetBufferHostSize_16u_C3R_Ctx,
55    nppiNormDiff_Inf_16u_C3R_Ctx
56);
57impl_error_metric!(
58    norm_diff_inf_i16_c3_buffer_size,
59    norm_diff_inf_i16_c3,
60    i16,
61    C3,
62    3,
63    nppiNormDiffInfGetBufferHostSize_16s_C3R_Ctx,
64    nppiNormDiff_Inf_16s_C3R_Ctx
65);
66impl_error_metric!(
67    norm_diff_inf_f32_c3_buffer_size,
68    norm_diff_inf_f32_c3,
69    f32,
70    C3,
71    3,
72    nppiNormDiffInfGetBufferHostSize_32f_C3R_Ctx,
73    nppiNormDiff_Inf_32f_C3R_Ctx
74);
75impl_error_metric!(
76    norm_diff_inf_u8_c4_buffer_size,
77    norm_diff_inf_u8_c4,
78    u8,
79    C4,
80    4,
81    nppiNormDiffInfGetBufferHostSize_8u_C4R_Ctx,
82    nppiNormDiff_Inf_8u_C4R_Ctx
83);
84impl_error_metric!(
85    norm_diff_inf_u16_c4_buffer_size,
86    norm_diff_inf_u16_c4,
87    u16,
88    C4,
89    4,
90    nppiNormDiffInfGetBufferHostSize_16u_C4R_Ctx,
91    nppiNormDiff_Inf_16u_C4R_Ctx
92);
93impl_error_metric!(
94    norm_diff_inf_i16_c4_buffer_size,
95    norm_diff_inf_i16_c4,
96    i16,
97    C4,
98    4,
99    nppiNormDiffInfGetBufferHostSize_16s_C4R_Ctx,
100    nppiNormDiff_Inf_16s_C4R_Ctx
101);
102impl_error_metric!(
103    norm_diff_inf_f32_c4_buffer_size,
104    norm_diff_inf_f32_c4,
105    f32,
106    C4,
107    4,
108    nppiNormDiffInfGetBufferHostSize_32f_C4R_Ctx,
109    nppiNormDiff_Inf_32f_C4R_Ctx
110);
111impl_error_metric!(
112    norm_diff_inf_u8_ac4_buffer_size,
113    norm_diff_inf_u8_ac4,
114    u8,
115    AC4,
116    3,
117    nppiNormDiffInfGetBufferHostSize_8u_AC4R_Ctx,
118    nppiNormDiff_Inf_8u_AC4R_Ctx
119);
120impl_error_metric!(
121    norm_diff_inf_u16_ac4_buffer_size,
122    norm_diff_inf_u16_ac4,
123    u16,
124    AC4,
125    3,
126    nppiNormDiffInfGetBufferHostSize_16u_AC4R_Ctx,
127    nppiNormDiff_Inf_16u_AC4R_Ctx
128);
129impl_error_metric!(
130    norm_diff_inf_i16_ac4_buffer_size,
131    norm_diff_inf_i16_ac4,
132    i16,
133    AC4,
134    3,
135    nppiNormDiffInfGetBufferHostSize_16s_AC4R_Ctx,
136    nppiNormDiff_Inf_16s_AC4R_Ctx
137);
138impl_error_metric!(
139    norm_diff_inf_f32_ac4_buffer_size,
140    norm_diff_inf_f32_ac4,
141    f32,
142    AC4,
143    3,
144    nppiNormDiffInfGetBufferHostSize_32f_AC4R_Ctx,
145    nppiNormDiff_Inf_32f_AC4R_Ctx
146);
147impl_error_metric!(
148    norm_diff_l1_u8_c1_buffer_size,
149    norm_diff_l1_u8_c1,
150    u8,
151    C1,
152    1,
153    nppiNormDiffL1GetBufferHostSize_8u_C1R_Ctx,
154    nppiNormDiff_L1_8u_C1R_Ctx
155);
156impl_error_metric!(
157    norm_diff_l1_u16_c1_buffer_size,
158    norm_diff_l1_u16_c1,
159    u16,
160    C1,
161    1,
162    nppiNormDiffL1GetBufferHostSize_16u_C1R_Ctx,
163    nppiNormDiff_L1_16u_C1R_Ctx
164);
165impl_error_metric!(
166    norm_diff_l1_i16_c1_buffer_size,
167    norm_diff_l1_i16_c1,
168    i16,
169    C1,
170    1,
171    nppiNormDiffL1GetBufferHostSize_16s_C1R_Ctx,
172    nppiNormDiff_L1_16s_C1R_Ctx
173);
174impl_error_metric!(
175    norm_diff_l1_f32_c1_buffer_size,
176    norm_diff_l1_f32_c1,
177    f32,
178    C1,
179    1,
180    nppiNormDiffL1GetBufferHostSize_32f_C1R_Ctx,
181    nppiNormDiff_L1_32f_C1R_Ctx
182);
183impl_error_metric!(
184    norm_diff_l1_u8_c3_buffer_size,
185    norm_diff_l1_u8_c3,
186    u8,
187    C3,
188    3,
189    nppiNormDiffL1GetBufferHostSize_8u_C3R_Ctx,
190    nppiNormDiff_L1_8u_C3R_Ctx
191);
192impl_error_metric!(
193    norm_diff_l1_u16_c3_buffer_size,
194    norm_diff_l1_u16_c3,
195    u16,
196    C3,
197    3,
198    nppiNormDiffL1GetBufferHostSize_16u_C3R_Ctx,
199    nppiNormDiff_L1_16u_C3R_Ctx
200);
201impl_error_metric!(
202    norm_diff_l1_i16_c3_buffer_size,
203    norm_diff_l1_i16_c3,
204    i16,
205    C3,
206    3,
207    nppiNormDiffL1GetBufferHostSize_16s_C3R_Ctx,
208    nppiNormDiff_L1_16s_C3R_Ctx
209);
210impl_error_metric!(
211    norm_diff_l1_f32_c3_buffer_size,
212    norm_diff_l1_f32_c3,
213    f32,
214    C3,
215    3,
216    nppiNormDiffL1GetBufferHostSize_32f_C3R_Ctx,
217    nppiNormDiff_L1_32f_C3R_Ctx
218);
219impl_error_metric!(
220    norm_diff_l1_u8_c4_buffer_size,
221    norm_diff_l1_u8_c4,
222    u8,
223    C4,
224    4,
225    nppiNormDiffL1GetBufferHostSize_8u_C4R_Ctx,
226    nppiNormDiff_L1_8u_C4R_Ctx
227);
228impl_error_metric!(
229    norm_diff_l1_u16_c4_buffer_size,
230    norm_diff_l1_u16_c4,
231    u16,
232    C4,
233    4,
234    nppiNormDiffL1GetBufferHostSize_16u_C4R_Ctx,
235    nppiNormDiff_L1_16u_C4R_Ctx
236);
237impl_error_metric!(
238    norm_diff_l1_i16_c4_buffer_size,
239    norm_diff_l1_i16_c4,
240    i16,
241    C4,
242    4,
243    nppiNormDiffL1GetBufferHostSize_16s_C4R_Ctx,
244    nppiNormDiff_L1_16s_C4R_Ctx
245);
246impl_error_metric!(
247    norm_diff_l1_f32_c4_buffer_size,
248    norm_diff_l1_f32_c4,
249    f32,
250    C4,
251    4,
252    nppiNormDiffL1GetBufferHostSize_32f_C4R_Ctx,
253    nppiNormDiff_L1_32f_C4R_Ctx
254);
255impl_error_metric!(
256    norm_diff_l1_u8_ac4_buffer_size,
257    norm_diff_l1_u8_ac4,
258    u8,
259    AC4,
260    3,
261    nppiNormDiffL1GetBufferHostSize_8u_AC4R_Ctx,
262    nppiNormDiff_L1_8u_AC4R_Ctx
263);
264impl_error_metric!(
265    norm_diff_l1_u16_ac4_buffer_size,
266    norm_diff_l1_u16_ac4,
267    u16,
268    AC4,
269    3,
270    nppiNormDiffL1GetBufferHostSize_16u_AC4R_Ctx,
271    nppiNormDiff_L1_16u_AC4R_Ctx
272);
273impl_error_metric!(
274    norm_diff_l1_i16_ac4_buffer_size,
275    norm_diff_l1_i16_ac4,
276    i16,
277    AC4,
278    3,
279    nppiNormDiffL1GetBufferHostSize_16s_AC4R_Ctx,
280    nppiNormDiff_L1_16s_AC4R_Ctx
281);
282impl_error_metric!(
283    norm_diff_l1_f32_ac4_buffer_size,
284    norm_diff_l1_f32_ac4,
285    f32,
286    AC4,
287    3,
288    nppiNormDiffL1GetBufferHostSize_32f_AC4R_Ctx,
289    nppiNormDiff_L1_32f_AC4R_Ctx
290);
291impl_error_metric!(
292    norm_diff_l2_u8_c1_buffer_size,
293    norm_diff_l2_u8_c1,
294    u8,
295    C1,
296    1,
297    nppiNormDiffL2GetBufferHostSize_8u_C1R_Ctx,
298    nppiNormDiff_L2_8u_C1R_Ctx
299);
300impl_error_metric!(
301    norm_diff_l2_u16_c1_buffer_size,
302    norm_diff_l2_u16_c1,
303    u16,
304    C1,
305    1,
306    nppiNormDiffL2GetBufferHostSize_16u_C1R_Ctx,
307    nppiNormDiff_L2_16u_C1R_Ctx
308);
309impl_error_metric!(
310    norm_diff_l2_i16_c1_buffer_size,
311    norm_diff_l2_i16_c1,
312    i16,
313    C1,
314    1,
315    nppiNormDiffL2GetBufferHostSize_16s_C1R_Ctx,
316    nppiNormDiff_L2_16s_C1R_Ctx
317);
318impl_error_metric!(
319    norm_diff_l2_f32_c1_buffer_size,
320    norm_diff_l2_f32_c1,
321    f32,
322    C1,
323    1,
324    nppiNormDiffL2GetBufferHostSize_32f_C1R_Ctx,
325    nppiNormDiff_L2_32f_C1R_Ctx
326);
327impl_error_metric!(
328    norm_diff_l2_u8_c3_buffer_size,
329    norm_diff_l2_u8_c3,
330    u8,
331    C3,
332    3,
333    nppiNormDiffL2GetBufferHostSize_8u_C3R_Ctx,
334    nppiNormDiff_L2_8u_C3R_Ctx
335);
336impl_error_metric!(
337    norm_diff_l2_u16_c3_buffer_size,
338    norm_diff_l2_u16_c3,
339    u16,
340    C3,
341    3,
342    nppiNormDiffL2GetBufferHostSize_16u_C3R_Ctx,
343    nppiNormDiff_L2_16u_C3R_Ctx
344);
345impl_error_metric!(
346    norm_diff_l2_i16_c3_buffer_size,
347    norm_diff_l2_i16_c3,
348    i16,
349    C3,
350    3,
351    nppiNormDiffL2GetBufferHostSize_16s_C3R_Ctx,
352    nppiNormDiff_L2_16s_C3R_Ctx
353);
354impl_error_metric!(
355    norm_diff_l2_f32_c3_buffer_size,
356    norm_diff_l2_f32_c3,
357    f32,
358    C3,
359    3,
360    nppiNormDiffL2GetBufferHostSize_32f_C3R_Ctx,
361    nppiNormDiff_L2_32f_C3R_Ctx
362);
363impl_error_metric!(
364    norm_diff_l2_u8_c4_buffer_size,
365    norm_diff_l2_u8_c4,
366    u8,
367    C4,
368    4,
369    nppiNormDiffL2GetBufferHostSize_8u_C4R_Ctx,
370    nppiNormDiff_L2_8u_C4R_Ctx
371);
372impl_error_metric!(
373    norm_diff_l2_u16_c4_buffer_size,
374    norm_diff_l2_u16_c4,
375    u16,
376    C4,
377    4,
378    nppiNormDiffL2GetBufferHostSize_16u_C4R_Ctx,
379    nppiNormDiff_L2_16u_C4R_Ctx
380);
381impl_error_metric!(
382    norm_diff_l2_i16_c4_buffer_size,
383    norm_diff_l2_i16_c4,
384    i16,
385    C4,
386    4,
387    nppiNormDiffL2GetBufferHostSize_16s_C4R_Ctx,
388    nppiNormDiff_L2_16s_C4R_Ctx
389);
390impl_error_metric!(
391    norm_diff_l2_f32_c4_buffer_size,
392    norm_diff_l2_f32_c4,
393    f32,
394    C4,
395    4,
396    nppiNormDiffL2GetBufferHostSize_32f_C4R_Ctx,
397    nppiNormDiff_L2_32f_C4R_Ctx
398);
399impl_error_metric!(
400    norm_diff_l2_u8_ac4_buffer_size,
401    norm_diff_l2_u8_ac4,
402    u8,
403    AC4,
404    3,
405    nppiNormDiffL2GetBufferHostSize_8u_AC4R_Ctx,
406    nppiNormDiff_L2_8u_AC4R_Ctx
407);
408impl_error_metric!(
409    norm_diff_l2_u16_ac4_buffer_size,
410    norm_diff_l2_u16_ac4,
411    u16,
412    AC4,
413    3,
414    nppiNormDiffL2GetBufferHostSize_16u_AC4R_Ctx,
415    nppiNormDiff_L2_16u_AC4R_Ctx
416);
417impl_error_metric!(
418    norm_diff_l2_i16_ac4_buffer_size,
419    norm_diff_l2_i16_ac4,
420    i16,
421    AC4,
422    3,
423    nppiNormDiffL2GetBufferHostSize_16s_AC4R_Ctx,
424    nppiNormDiff_L2_16s_AC4R_Ctx
425);
426impl_error_metric!(
427    norm_diff_l2_f32_ac4_buffer_size,
428    norm_diff_l2_f32_ac4,
429    f32,
430    AC4,
431    3,
432    nppiNormDiffL2GetBufferHostSize_32f_AC4R_Ctx,
433    nppiNormDiff_L2_32f_AC4R_Ctx
434);
435impl_generic_dot_prod!(
436    NormDiffInfC1,
437    norm_diff_inf_c1,
438    norm_diff_inf_c1_buffer_size,
439    C1,
440    [
441        (u8, norm_diff_inf_u8_c1, norm_diff_inf_u8_c1_buffer_size),
442        (u16, norm_diff_inf_u16_c1, norm_diff_inf_u16_c1_buffer_size),
443        (i16, norm_diff_inf_i16_c1, norm_diff_inf_i16_c1_buffer_size),
444        (f32, norm_diff_inf_f32_c1, norm_diff_inf_f32_c1_buffer_size),
445    ]
446);
447impl_generic_dot_prod!(
448    NormDiffInfC3,
449    norm_diff_inf_c3,
450    norm_diff_inf_c3_buffer_size,
451    C3,
452    [
453        (u8, norm_diff_inf_u8_c3, norm_diff_inf_u8_c3_buffer_size),
454        (u16, norm_diff_inf_u16_c3, norm_diff_inf_u16_c3_buffer_size),
455        (i16, norm_diff_inf_i16_c3, norm_diff_inf_i16_c3_buffer_size),
456        (f32, norm_diff_inf_f32_c3, norm_diff_inf_f32_c3_buffer_size),
457    ]
458);
459impl_generic_dot_prod!(
460    NormDiffInfC4,
461    norm_diff_inf_c4,
462    norm_diff_inf_c4_buffer_size,
463    C4,
464    [
465        (u8, norm_diff_inf_u8_c4, norm_diff_inf_u8_c4_buffer_size),
466        (u16, norm_diff_inf_u16_c4, norm_diff_inf_u16_c4_buffer_size),
467        (i16, norm_diff_inf_i16_c4, norm_diff_inf_i16_c4_buffer_size),
468        (f32, norm_diff_inf_f32_c4, norm_diff_inf_f32_c4_buffer_size),
469    ]
470);
471impl_generic_dot_prod!(
472    NormDiffInfAC4,
473    norm_diff_inf_ac4,
474    norm_diff_inf_ac4_buffer_size,
475    AC4,
476    [
477        (u8, norm_diff_inf_u8_ac4, norm_diff_inf_u8_ac4_buffer_size),
478        (
479            u16,
480            norm_diff_inf_u16_ac4,
481            norm_diff_inf_u16_ac4_buffer_size
482        ),
483        (
484            i16,
485            norm_diff_inf_i16_ac4,
486            norm_diff_inf_i16_ac4_buffer_size
487        ),
488        (
489            f32,
490            norm_diff_inf_f32_ac4,
491            norm_diff_inf_f32_ac4_buffer_size
492        ),
493    ]
494);
495
496impl_generic_dot_prod!(
497    NormDiffL1C1,
498    norm_diff_l1_c1,
499    norm_diff_l1_c1_buffer_size,
500    C1,
501    [
502        (u8, norm_diff_l1_u8_c1, norm_diff_l1_u8_c1_buffer_size),
503        (u16, norm_diff_l1_u16_c1, norm_diff_l1_u16_c1_buffer_size),
504        (i16, norm_diff_l1_i16_c1, norm_diff_l1_i16_c1_buffer_size),
505        (f32, norm_diff_l1_f32_c1, norm_diff_l1_f32_c1_buffer_size),
506    ]
507);
508impl_generic_dot_prod!(
509    NormDiffL1C3,
510    norm_diff_l1_c3,
511    norm_diff_l1_c3_buffer_size,
512    C3,
513    [
514        (u8, norm_diff_l1_u8_c3, norm_diff_l1_u8_c3_buffer_size),
515        (u16, norm_diff_l1_u16_c3, norm_diff_l1_u16_c3_buffer_size),
516        (i16, norm_diff_l1_i16_c3, norm_diff_l1_i16_c3_buffer_size),
517        (f32, norm_diff_l1_f32_c3, norm_diff_l1_f32_c3_buffer_size),
518    ]
519);
520impl_generic_dot_prod!(
521    NormDiffL1C4,
522    norm_diff_l1_c4,
523    norm_diff_l1_c4_buffer_size,
524    C4,
525    [
526        (u8, norm_diff_l1_u8_c4, norm_diff_l1_u8_c4_buffer_size),
527        (u16, norm_diff_l1_u16_c4, norm_diff_l1_u16_c4_buffer_size),
528        (i16, norm_diff_l1_i16_c4, norm_diff_l1_i16_c4_buffer_size),
529        (f32, norm_diff_l1_f32_c4, norm_diff_l1_f32_c4_buffer_size),
530    ]
531);
532impl_generic_dot_prod!(
533    NormDiffL1AC4,
534    norm_diff_l1_ac4,
535    norm_diff_l1_ac4_buffer_size,
536    AC4,
537    [
538        (u8, norm_diff_l1_u8_ac4, norm_diff_l1_u8_ac4_buffer_size),
539        (u16, norm_diff_l1_u16_ac4, norm_diff_l1_u16_ac4_buffer_size),
540        (i16, norm_diff_l1_i16_ac4, norm_diff_l1_i16_ac4_buffer_size),
541        (f32, norm_diff_l1_f32_ac4, norm_diff_l1_f32_ac4_buffer_size),
542    ]
543);
544
545impl_generic_dot_prod!(
546    NormDiffL2C1,
547    norm_diff_l2_c1,
548    norm_diff_l2_c1_buffer_size,
549    C1,
550    [
551        (u8, norm_diff_l2_u8_c1, norm_diff_l2_u8_c1_buffer_size),
552        (u16, norm_diff_l2_u16_c1, norm_diff_l2_u16_c1_buffer_size),
553        (i16, norm_diff_l2_i16_c1, norm_diff_l2_i16_c1_buffer_size),
554        (f32, norm_diff_l2_f32_c1, norm_diff_l2_f32_c1_buffer_size),
555    ]
556);
557impl_generic_dot_prod!(
558    NormDiffL2C3,
559    norm_diff_l2_c3,
560    norm_diff_l2_c3_buffer_size,
561    C3,
562    [
563        (u8, norm_diff_l2_u8_c3, norm_diff_l2_u8_c3_buffer_size),
564        (u16, norm_diff_l2_u16_c3, norm_diff_l2_u16_c3_buffer_size),
565        (i16, norm_diff_l2_i16_c3, norm_diff_l2_i16_c3_buffer_size),
566        (f32, norm_diff_l2_f32_c3, norm_diff_l2_f32_c3_buffer_size),
567    ]
568);
569impl_generic_dot_prod!(
570    NormDiffL2C4,
571    norm_diff_l2_c4,
572    norm_diff_l2_c4_buffer_size,
573    C4,
574    [
575        (u8, norm_diff_l2_u8_c4, norm_diff_l2_u8_c4_buffer_size),
576        (u16, norm_diff_l2_u16_c4, norm_diff_l2_u16_c4_buffer_size),
577        (i16, norm_diff_l2_i16_c4, norm_diff_l2_i16_c4_buffer_size),
578        (f32, norm_diff_l2_f32_c4, norm_diff_l2_f32_c4_buffer_size),
579    ]
580);
581impl_generic_dot_prod!(
582    NormDiffL2AC4,
583    norm_diff_l2_ac4,
584    norm_diff_l2_ac4_buffer_size,
585    AC4,
586    [
587        (u8, norm_diff_l2_u8_ac4, norm_diff_l2_u8_ac4_buffer_size),
588        (u16, norm_diff_l2_u16_ac4, norm_diff_l2_u16_ac4_buffer_size),
589        (i16, norm_diff_l2_i16_ac4, norm_diff_l2_i16_ac4_buffer_size),
590        (f32, norm_diff_l2_f32_ac4, norm_diff_l2_f32_ac4_buffer_size),
591    ]
592);