Skip to main content

singe_npp/image/
statistics_norms_unmasked_relative.rs

1use super::*;
2
3impl_error_metric!(
4    norm_rel_inf_u8_c1_buffer_size,
5    norm_rel_inf_u8_c1,
6    u8,
7    C1,
8    1,
9    nppiNormRelInfGetBufferHostSize_8u_C1R_Ctx,
10    nppiNormRel_Inf_8u_C1R_Ctx
11);
12impl_error_metric!(
13    norm_rel_inf_u8_c3_buffer_size,
14    norm_rel_inf_u8_c3,
15    u8,
16    C3,
17    3,
18    nppiNormRelInfGetBufferHostSize_8u_C3R_Ctx,
19    nppiNormRel_Inf_8u_C3R_Ctx
20);
21impl_error_metric!(
22    norm_rel_inf_u8_c4_buffer_size,
23    norm_rel_inf_u8_c4,
24    u8,
25    C4,
26    4,
27    nppiNormRelInfGetBufferHostSize_8u_C4R_Ctx,
28    nppiNormRel_Inf_8u_C4R_Ctx
29);
30impl_error_metric!(
31    norm_rel_inf_u8_ac4_buffer_size,
32    norm_rel_inf_u8_ac4,
33    u8,
34    AC4,
35    3,
36    nppiNormRelInfGetBufferHostSize_8u_AC4R_Ctx,
37    nppiNormRel_Inf_8u_AC4R_Ctx
38);
39
40impl_error_metric!(
41    norm_rel_inf_u16_c1_buffer_size,
42    norm_rel_inf_u16_c1,
43    u16,
44    C1,
45    1,
46    nppiNormRelInfGetBufferHostSize_16u_C1R_Ctx,
47    nppiNormRel_Inf_16u_C1R_Ctx
48);
49impl_error_metric!(
50    norm_rel_inf_u16_c3_buffer_size,
51    norm_rel_inf_u16_c3,
52    u16,
53    C3,
54    3,
55    nppiNormRelInfGetBufferHostSize_16u_C3R_Ctx,
56    nppiNormRel_Inf_16u_C3R_Ctx
57);
58impl_error_metric!(
59    norm_rel_inf_u16_c4_buffer_size,
60    norm_rel_inf_u16_c4,
61    u16,
62    C4,
63    4,
64    nppiNormRelInfGetBufferHostSize_16u_C4R_Ctx,
65    nppiNormRel_Inf_16u_C4R_Ctx
66);
67impl_error_metric!(
68    norm_rel_inf_u16_ac4_buffer_size,
69    norm_rel_inf_u16_ac4,
70    u16,
71    AC4,
72    3,
73    nppiNormRelInfGetBufferHostSize_16u_AC4R_Ctx,
74    nppiNormRel_Inf_16u_AC4R_Ctx
75);
76
77impl_error_metric!(
78    norm_rel_inf_i16_c1_buffer_size,
79    norm_rel_inf_i16_c1,
80    i16,
81    C1,
82    1,
83    nppiNormRelInfGetBufferHostSize_16s_C1R_Ctx,
84    nppiNormRel_Inf_16s_C1R_Ctx
85);
86impl_error_metric!(
87    norm_rel_inf_i16_c3_buffer_size,
88    norm_rel_inf_i16_c3,
89    i16,
90    C3,
91    3,
92    nppiNormRelInfGetBufferHostSize_16s_C3R_Ctx,
93    nppiNormRel_Inf_16s_C3R_Ctx
94);
95impl_error_metric!(
96    norm_rel_inf_i16_c4_buffer_size,
97    norm_rel_inf_i16_c4,
98    i16,
99    C4,
100    4,
101    nppiNormRelInfGetBufferHostSize_16s_C4R_Ctx,
102    nppiNormRel_Inf_16s_C4R_Ctx
103);
104impl_error_metric!(
105    norm_rel_inf_i16_ac4_buffer_size,
106    norm_rel_inf_i16_ac4,
107    i16,
108    AC4,
109    3,
110    nppiNormRelInfGetBufferHostSize_16s_AC4R_Ctx,
111    nppiNormRel_Inf_16s_AC4R_Ctx
112);
113
114impl_error_metric!(
115    norm_rel_inf_f32_c1_buffer_size,
116    norm_rel_inf_f32_c1,
117    f32,
118    C1,
119    1,
120    nppiNormRelInfGetBufferHostSize_32f_C1R_Ctx,
121    nppiNormRel_Inf_32f_C1R_Ctx
122);
123impl_error_metric!(
124    norm_rel_inf_f32_c3_buffer_size,
125    norm_rel_inf_f32_c3,
126    f32,
127    C3,
128    3,
129    nppiNormRelInfGetBufferHostSize_32f_C3R_Ctx,
130    nppiNormRel_Inf_32f_C3R_Ctx
131);
132impl_error_metric!(
133    norm_rel_inf_f32_c4_buffer_size,
134    norm_rel_inf_f32_c4,
135    f32,
136    C4,
137    4,
138    nppiNormRelInfGetBufferHostSize_32f_C4R_Ctx,
139    nppiNormRel_Inf_32f_C4R_Ctx
140);
141impl_error_metric!(
142    norm_rel_inf_f32_ac4_buffer_size,
143    norm_rel_inf_f32_ac4,
144    f32,
145    AC4,
146    3,
147    nppiNormRelInfGetBufferHostSize_32f_AC4R_Ctx,
148    nppiNormRel_Inf_32f_AC4R_Ctx
149);
150
151impl_error_metric!(
152    norm_rel_l1_u8_c1_buffer_size,
153    norm_rel_l1_u8_c1,
154    u8,
155    C1,
156    1,
157    nppiNormRelL1GetBufferHostSize_8u_C1R_Ctx,
158    nppiNormRel_L1_8u_C1R_Ctx
159);
160impl_error_metric!(
161    norm_rel_l1_u8_c3_buffer_size,
162    norm_rel_l1_u8_c3,
163    u8,
164    C3,
165    3,
166    nppiNormRelL1GetBufferHostSize_8u_C3R_Ctx,
167    nppiNormRel_L1_8u_C3R_Ctx
168);
169impl_error_metric!(
170    norm_rel_l1_u8_c4_buffer_size,
171    norm_rel_l1_u8_c4,
172    u8,
173    C4,
174    4,
175    nppiNormRelL1GetBufferHostSize_8u_C4R_Ctx,
176    nppiNormRel_L1_8u_C4R_Ctx
177);
178impl_error_metric!(
179    norm_rel_l1_u8_ac4_buffer_size,
180    norm_rel_l1_u8_ac4,
181    u8,
182    AC4,
183    3,
184    nppiNormRelL1GetBufferHostSize_8u_AC4R_Ctx,
185    nppiNormRel_L1_8u_AC4R_Ctx
186);
187
188impl_error_metric!(
189    norm_rel_l1_u16_c1_buffer_size,
190    norm_rel_l1_u16_c1,
191    u16,
192    C1,
193    1,
194    nppiNormRelL1GetBufferHostSize_16u_C1R_Ctx,
195    nppiNormRel_L1_16u_C1R_Ctx
196);
197impl_error_metric!(
198    norm_rel_l1_u16_c3_buffer_size,
199    norm_rel_l1_u16_c3,
200    u16,
201    C3,
202    3,
203    nppiNormRelL1GetBufferHostSize_16u_C3R_Ctx,
204    nppiNormRel_L1_16u_C3R_Ctx
205);
206impl_error_metric!(
207    norm_rel_l1_u16_c4_buffer_size,
208    norm_rel_l1_u16_c4,
209    u16,
210    C4,
211    4,
212    nppiNormRelL1GetBufferHostSize_16u_C4R_Ctx,
213    nppiNormRel_L1_16u_C4R_Ctx
214);
215impl_error_metric!(
216    norm_rel_l1_u16_ac4_buffer_size,
217    norm_rel_l1_u16_ac4,
218    u16,
219    AC4,
220    3,
221    nppiNormRelL1GetBufferHostSize_16u_AC4R_Ctx,
222    nppiNormRel_L1_16u_AC4R_Ctx
223);
224
225impl_error_metric!(
226    norm_rel_l1_i16_c1_buffer_size,
227    norm_rel_l1_i16_c1,
228    i16,
229    C1,
230    1,
231    nppiNormRelL1GetBufferHostSize_16s_C1R_Ctx,
232    nppiNormRel_L1_16s_C1R_Ctx
233);
234impl_error_metric!(
235    norm_rel_l1_i16_c3_buffer_size,
236    norm_rel_l1_i16_c3,
237    i16,
238    C3,
239    3,
240    nppiNormRelL1GetBufferHostSize_16s_C3R_Ctx,
241    nppiNormRel_L1_16s_C3R_Ctx
242);
243impl_error_metric!(
244    norm_rel_l1_i16_c4_buffer_size,
245    norm_rel_l1_i16_c4,
246    i16,
247    C4,
248    4,
249    nppiNormRelL1GetBufferHostSize_16s_C4R_Ctx,
250    nppiNormRel_L1_16s_C4R_Ctx
251);
252impl_error_metric!(
253    norm_rel_l1_i16_ac4_buffer_size,
254    norm_rel_l1_i16_ac4,
255    i16,
256    AC4,
257    3,
258    nppiNormRelL1GetBufferHostSize_16s_AC4R_Ctx,
259    nppiNormRel_L1_16s_AC4R_Ctx
260);
261
262impl_error_metric!(
263    norm_rel_l1_f32_c1_buffer_size,
264    norm_rel_l1_f32_c1,
265    f32,
266    C1,
267    1,
268    nppiNormRelL1GetBufferHostSize_32f_C1R_Ctx,
269    nppiNormRel_L1_32f_C1R_Ctx
270);
271impl_error_metric!(
272    norm_rel_l1_f32_c3_buffer_size,
273    norm_rel_l1_f32_c3,
274    f32,
275    C3,
276    3,
277    nppiNormRelL1GetBufferHostSize_32f_C3R_Ctx,
278    nppiNormRel_L1_32f_C3R_Ctx
279);
280impl_error_metric!(
281    norm_rel_l1_f32_c4_buffer_size,
282    norm_rel_l1_f32_c4,
283    f32,
284    C4,
285    4,
286    nppiNormRelL1GetBufferHostSize_32f_C4R_Ctx,
287    nppiNormRel_L1_32f_C4R_Ctx
288);
289impl_error_metric!(
290    norm_rel_l1_f32_ac4_buffer_size,
291    norm_rel_l1_f32_ac4,
292    f32,
293    AC4,
294    3,
295    nppiNormRelL1GetBufferHostSize_32f_AC4R_Ctx,
296    nppiNormRel_L1_32f_AC4R_Ctx
297);
298
299impl_error_metric!(
300    norm_rel_l2_u8_c1_buffer_size,
301    norm_rel_l2_u8_c1,
302    u8,
303    C1,
304    1,
305    nppiNormRelL2GetBufferHostSize_8u_C1R_Ctx,
306    nppiNormRel_L2_8u_C1R_Ctx
307);
308impl_error_metric!(
309    norm_rel_l2_u8_c3_buffer_size,
310    norm_rel_l2_u8_c3,
311    u8,
312    C3,
313    3,
314    nppiNormRelL2GetBufferHostSize_8u_C3R_Ctx,
315    nppiNormRel_L2_8u_C3R_Ctx
316);
317impl_error_metric!(
318    norm_rel_l2_u8_c4_buffer_size,
319    norm_rel_l2_u8_c4,
320    u8,
321    C4,
322    4,
323    nppiNormRelL2GetBufferHostSize_8u_C4R_Ctx,
324    nppiNormRel_L2_8u_C4R_Ctx
325);
326impl_error_metric!(
327    norm_rel_l2_u8_ac4_buffer_size,
328    norm_rel_l2_u8_ac4,
329    u8,
330    AC4,
331    3,
332    nppiNormRelL2GetBufferHostSize_8u_AC4R_Ctx,
333    nppiNormRel_L2_8u_AC4R_Ctx
334);
335
336impl_error_metric!(
337    norm_rel_l2_u16_c1_buffer_size,
338    norm_rel_l2_u16_c1,
339    u16,
340    C1,
341    1,
342    nppiNormRelL2GetBufferHostSize_16u_C1R_Ctx,
343    nppiNormRel_L2_16u_C1R_Ctx
344);
345impl_error_metric!(
346    norm_rel_l2_u16_c3_buffer_size,
347    norm_rel_l2_u16_c3,
348    u16,
349    C3,
350    3,
351    nppiNormRelL2GetBufferHostSize_16u_C3R_Ctx,
352    nppiNormRel_L2_16u_C3R_Ctx
353);
354impl_error_metric!(
355    norm_rel_l2_u16_c4_buffer_size,
356    norm_rel_l2_u16_c4,
357    u16,
358    C4,
359    4,
360    nppiNormRelL2GetBufferHostSize_16u_C4R_Ctx,
361    nppiNormRel_L2_16u_C4R_Ctx
362);
363impl_error_metric!(
364    norm_rel_l2_u16_ac4_buffer_size,
365    norm_rel_l2_u16_ac4,
366    u16,
367    AC4,
368    3,
369    nppiNormRelL2GetBufferHostSize_16u_AC4R_Ctx,
370    nppiNormRel_L2_16u_AC4R_Ctx
371);
372
373impl_error_metric!(
374    norm_rel_l2_i16_c1_buffer_size,
375    norm_rel_l2_i16_c1,
376    i16,
377    C1,
378    1,
379    nppiNormRelL2GetBufferHostSize_16s_C1R_Ctx,
380    nppiNormRel_L2_16s_C1R_Ctx
381);
382impl_error_metric!(
383    norm_rel_l2_i16_c3_buffer_size,
384    norm_rel_l2_i16_c3,
385    i16,
386    C3,
387    3,
388    nppiNormRelL2GetBufferHostSize_16s_C3R_Ctx,
389    nppiNormRel_L2_16s_C3R_Ctx
390);
391impl_error_metric!(
392    norm_rel_l2_i16_c4_buffer_size,
393    norm_rel_l2_i16_c4,
394    i16,
395    C4,
396    4,
397    nppiNormRelL2GetBufferHostSize_16s_C4R_Ctx,
398    nppiNormRel_L2_16s_C4R_Ctx
399);
400impl_error_metric!(
401    norm_rel_l2_i16_ac4_buffer_size,
402    norm_rel_l2_i16_ac4,
403    i16,
404    AC4,
405    3,
406    nppiNormRelL2GetBufferHostSize_16s_AC4R_Ctx,
407    nppiNormRel_L2_16s_AC4R_Ctx
408);
409
410impl_error_metric!(
411    norm_rel_l2_f32_c1_buffer_size,
412    norm_rel_l2_f32_c1,
413    f32,
414    C1,
415    1,
416    nppiNormRelL2GetBufferHostSize_32f_C1R_Ctx,
417    nppiNormRel_L2_32f_C1R_Ctx
418);
419impl_error_metric!(
420    norm_rel_l2_f32_c3_buffer_size,
421    norm_rel_l2_f32_c3,
422    f32,
423    C3,
424    3,
425    nppiNormRelL2GetBufferHostSize_32f_C3R_Ctx,
426    nppiNormRel_L2_32f_C3R_Ctx
427);
428impl_error_metric!(
429    norm_rel_l2_f32_c4_buffer_size,
430    norm_rel_l2_f32_c4,
431    f32,
432    C4,
433    4,
434    nppiNormRelL2GetBufferHostSize_32f_C4R_Ctx,
435    nppiNormRel_L2_32f_C4R_Ctx
436);
437impl_error_metric!(
438    norm_rel_l2_f32_ac4_buffer_size,
439    norm_rel_l2_f32_ac4,
440    f32,
441    AC4,
442    3,
443    nppiNormRelL2GetBufferHostSize_32f_AC4R_Ctx,
444    nppiNormRel_L2_32f_AC4R_Ctx
445);
446
447impl_generic_dot_prod!(
448    NormRelInfC1,
449    norm_rel_inf_c1,
450    norm_rel_inf_c1_buffer_size,
451    C1,
452    [
453        (u8, norm_rel_inf_u8_c1, norm_rel_inf_u8_c1_buffer_size),
454        (u16, norm_rel_inf_u16_c1, norm_rel_inf_u16_c1_buffer_size),
455        (i16, norm_rel_inf_i16_c1, norm_rel_inf_i16_c1_buffer_size),
456        (f32, norm_rel_inf_f32_c1, norm_rel_inf_f32_c1_buffer_size),
457    ]
458);
459impl_generic_dot_prod!(
460    NormRelInfC3,
461    norm_rel_inf_c3,
462    norm_rel_inf_c3_buffer_size,
463    C3,
464    [
465        (u8, norm_rel_inf_u8_c3, norm_rel_inf_u8_c3_buffer_size),
466        (u16, norm_rel_inf_u16_c3, norm_rel_inf_u16_c3_buffer_size),
467        (i16, norm_rel_inf_i16_c3, norm_rel_inf_i16_c3_buffer_size),
468        (f32, norm_rel_inf_f32_c3, norm_rel_inf_f32_c3_buffer_size),
469    ]
470);
471impl_generic_dot_prod!(
472    NormRelInfC4,
473    norm_rel_inf_c4,
474    norm_rel_inf_c4_buffer_size,
475    C4,
476    [
477        (u8, norm_rel_inf_u8_c4, norm_rel_inf_u8_c4_buffer_size),
478        (u16, norm_rel_inf_u16_c4, norm_rel_inf_u16_c4_buffer_size),
479        (i16, norm_rel_inf_i16_c4, norm_rel_inf_i16_c4_buffer_size),
480        (f32, norm_rel_inf_f32_c4, norm_rel_inf_f32_c4_buffer_size),
481    ]
482);
483impl_generic_dot_prod!(
484    NormRelInfAC4,
485    norm_rel_inf_ac4,
486    norm_rel_inf_ac4_buffer_size,
487    AC4,
488    [
489        (u8, norm_rel_inf_u8_ac4, norm_rel_inf_u8_ac4_buffer_size),
490        (u16, norm_rel_inf_u16_ac4, norm_rel_inf_u16_ac4_buffer_size),
491        (i16, norm_rel_inf_i16_ac4, norm_rel_inf_i16_ac4_buffer_size),
492        (f32, norm_rel_inf_f32_ac4, norm_rel_inf_f32_ac4_buffer_size),
493    ]
494);
495
496impl_generic_dot_prod!(
497    NormRelL1C1,
498    norm_rel_l1_c1,
499    norm_rel_l1_c1_buffer_size,
500    C1,
501    [
502        (u8, norm_rel_l1_u8_c1, norm_rel_l1_u8_c1_buffer_size),
503        (u16, norm_rel_l1_u16_c1, norm_rel_l1_u16_c1_buffer_size),
504        (i16, norm_rel_l1_i16_c1, norm_rel_l1_i16_c1_buffer_size),
505        (f32, norm_rel_l1_f32_c1, norm_rel_l1_f32_c1_buffer_size),
506    ]
507);
508impl_generic_dot_prod!(
509    NormRelL1C3,
510    norm_rel_l1_c3,
511    norm_rel_l1_c3_buffer_size,
512    C3,
513    [
514        (u8, norm_rel_l1_u8_c3, norm_rel_l1_u8_c3_buffer_size),
515        (u16, norm_rel_l1_u16_c3, norm_rel_l1_u16_c3_buffer_size),
516        (i16, norm_rel_l1_i16_c3, norm_rel_l1_i16_c3_buffer_size),
517        (f32, norm_rel_l1_f32_c3, norm_rel_l1_f32_c3_buffer_size),
518    ]
519);
520impl_generic_dot_prod!(
521    NormRelL1C4,
522    norm_rel_l1_c4,
523    norm_rel_l1_c4_buffer_size,
524    C4,
525    [
526        (u8, norm_rel_l1_u8_c4, norm_rel_l1_u8_c4_buffer_size),
527        (u16, norm_rel_l1_u16_c4, norm_rel_l1_u16_c4_buffer_size),
528        (i16, norm_rel_l1_i16_c4, norm_rel_l1_i16_c4_buffer_size),
529        (f32, norm_rel_l1_f32_c4, norm_rel_l1_f32_c4_buffer_size),
530    ]
531);
532impl_generic_dot_prod!(
533    NormRelL1AC4,
534    norm_rel_l1_ac4,
535    norm_rel_l1_ac4_buffer_size,
536    AC4,
537    [
538        (u8, norm_rel_l1_u8_ac4, norm_rel_l1_u8_ac4_buffer_size),
539        (u16, norm_rel_l1_u16_ac4, norm_rel_l1_u16_ac4_buffer_size),
540        (i16, norm_rel_l1_i16_ac4, norm_rel_l1_i16_ac4_buffer_size),
541        (f32, norm_rel_l1_f32_ac4, norm_rel_l1_f32_ac4_buffer_size),
542    ]
543);
544
545impl_generic_dot_prod!(
546    NormRelL2C1,
547    norm_rel_l2_c1,
548    norm_rel_l2_c1_buffer_size,
549    C1,
550    [
551        (u8, norm_rel_l2_u8_c1, norm_rel_l2_u8_c1_buffer_size),
552        (u16, norm_rel_l2_u16_c1, norm_rel_l2_u16_c1_buffer_size),
553        (i16, norm_rel_l2_i16_c1, norm_rel_l2_i16_c1_buffer_size),
554        (f32, norm_rel_l2_f32_c1, norm_rel_l2_f32_c1_buffer_size),
555    ]
556);
557impl_generic_dot_prod!(
558    NormRelL2C3,
559    norm_rel_l2_c3,
560    norm_rel_l2_c3_buffer_size,
561    C3,
562    [
563        (u8, norm_rel_l2_u8_c3, norm_rel_l2_u8_c3_buffer_size),
564        (u16, norm_rel_l2_u16_c3, norm_rel_l2_u16_c3_buffer_size),
565        (i16, norm_rel_l2_i16_c3, norm_rel_l2_i16_c3_buffer_size),
566        (f32, norm_rel_l2_f32_c3, norm_rel_l2_f32_c3_buffer_size),
567    ]
568);
569impl_generic_dot_prod!(
570    NormRelL2C4,
571    norm_rel_l2_c4,
572    norm_rel_l2_c4_buffer_size,
573    C4,
574    [
575        (u8, norm_rel_l2_u8_c4, norm_rel_l2_u8_c4_buffer_size),
576        (u16, norm_rel_l2_u16_c4, norm_rel_l2_u16_c4_buffer_size),
577        (i16, norm_rel_l2_i16_c4, norm_rel_l2_i16_c4_buffer_size),
578        (f32, norm_rel_l2_f32_c4, norm_rel_l2_f32_c4_buffer_size),
579    ]
580);
581impl_generic_dot_prod!(
582    NormRelL2AC4,
583    norm_rel_l2_ac4,
584    norm_rel_l2_ac4_buffer_size,
585    AC4,
586    [
587        (u8, norm_rel_l2_u8_ac4, norm_rel_l2_u8_ac4_buffer_size),
588        (u16, norm_rel_l2_u16_ac4, norm_rel_l2_u16_ac4_buffer_size),
589        (i16, norm_rel_l2_i16_ac4, norm_rel_l2_i16_ac4_buffer_size),
590        (f32, norm_rel_l2_f32_ac4, norm_rel_l2_f32_ac4_buffer_size),
591    ]
592);