Skip to main content

singe_npp/image/
statistics_error_metrics_maximum_relative_average.rs

1use super::*;
2
3impl_error_metric!(
4    average_relative_error_u8_c1_buffer_size,
5    average_relative_error_u8_c1,
6    u8,
7    C1,
8    1,
9    nppiAverageRelativeErrorGetBufferHostSize_8u_C1R_Ctx,
10    nppiAverageRelativeError_8u_C1R_Ctx
11);
12impl_error_metric!(
13    average_relative_error_u8_c2_buffer_size,
14    average_relative_error_u8_c2,
15    u8,
16    C2,
17    1,
18    nppiAverageRelativeErrorGetBufferHostSize_8u_C2R_Ctx,
19    nppiAverageRelativeError_8u_C2R_Ctx
20);
21impl_error_metric!(
22    average_relative_error_u8_c3_buffer_size,
23    average_relative_error_u8_c3,
24    u8,
25    C3,
26    1,
27    nppiAverageRelativeErrorGetBufferHostSize_8u_C3R_Ctx,
28    nppiAverageRelativeError_8u_C3R_Ctx
29);
30impl_error_metric!(
31    average_relative_error_u8_c4_buffer_size,
32    average_relative_error_u8_c4,
33    u8,
34    C4,
35    1,
36    nppiAverageRelativeErrorGetBufferHostSize_8u_C4R_Ctx,
37    nppiAverageRelativeError_8u_C4R_Ctx
38);
39impl_error_metric!(
40    average_relative_error_i8_c1_buffer_size,
41    average_relative_error_i8_c1,
42    i8,
43    C1,
44    1,
45    nppiAverageRelativeErrorGetBufferHostSize_8s_C1R_Ctx,
46    nppiAverageRelativeError_8s_C1R_Ctx
47);
48impl_error_metric!(
49    average_relative_error_i8_c2_buffer_size,
50    average_relative_error_i8_c2,
51    i8,
52    C2,
53    1,
54    nppiAverageRelativeErrorGetBufferHostSize_8s_C2R_Ctx,
55    nppiAverageRelativeError_8s_C2R_Ctx
56);
57impl_error_metric!(
58    average_relative_error_i8_c3_buffer_size,
59    average_relative_error_i8_c3,
60    i8,
61    C3,
62    1,
63    nppiAverageRelativeErrorGetBufferHostSize_8s_C3R_Ctx,
64    nppiAverageRelativeError_8s_C3R_Ctx
65);
66impl_error_metric!(
67    average_relative_error_i8_c4_buffer_size,
68    average_relative_error_i8_c4,
69    i8,
70    C4,
71    1,
72    nppiAverageRelativeErrorGetBufferHostSize_8s_C4R_Ctx,
73    nppiAverageRelativeError_8s_C4R_Ctx
74);
75impl_error_metric!(
76    average_relative_error_u16_c1_buffer_size,
77    average_relative_error_u16_c1,
78    u16,
79    C1,
80    1,
81    nppiAverageRelativeErrorGetBufferHostSize_16u_C1R_Ctx,
82    nppiAverageRelativeError_16u_C1R_Ctx
83);
84impl_error_metric!(
85    average_relative_error_u16_c2_buffer_size,
86    average_relative_error_u16_c2,
87    u16,
88    C2,
89    1,
90    nppiAverageRelativeErrorGetBufferHostSize_16u_C2R_Ctx,
91    nppiAverageRelativeError_16u_C2R_Ctx
92);
93impl_error_metric!(
94    average_relative_error_u16_c3_buffer_size,
95    average_relative_error_u16_c3,
96    u16,
97    C3,
98    1,
99    nppiAverageRelativeErrorGetBufferHostSize_16u_C3R_Ctx,
100    nppiAverageRelativeError_16u_C3R_Ctx
101);
102impl_error_metric!(
103    average_relative_error_u16_c4_buffer_size,
104    average_relative_error_u16_c4,
105    u16,
106    C4,
107    1,
108    nppiAverageRelativeErrorGetBufferHostSize_16u_C4R_Ctx,
109    nppiAverageRelativeError_16u_C4R_Ctx
110);
111impl_error_metric!(
112    average_relative_error_i16_c1_buffer_size,
113    average_relative_error_i16_c1,
114    i16,
115    C1,
116    1,
117    nppiAverageRelativeErrorGetBufferHostSize_16s_C1R_Ctx,
118    nppiAverageRelativeError_16s_C1R_Ctx
119);
120impl_error_metric!(
121    average_relative_error_i16_c2_buffer_size,
122    average_relative_error_i16_c2,
123    i16,
124    C2,
125    1,
126    nppiAverageRelativeErrorGetBufferHostSize_16s_C2R_Ctx,
127    nppiAverageRelativeError_16s_C2R_Ctx
128);
129impl_error_metric!(
130    average_relative_error_i16_c3_buffer_size,
131    average_relative_error_i16_c3,
132    i16,
133    C3,
134    1,
135    nppiAverageRelativeErrorGetBufferHostSize_16s_C3R_Ctx,
136    nppiAverageRelativeError_16s_C3R_Ctx
137);
138impl_error_metric!(
139    average_relative_error_i16_c4_buffer_size,
140    average_relative_error_i16_c4,
141    i16,
142    C4,
143    1,
144    nppiAverageRelativeErrorGetBufferHostSize_16s_C4R_Ctx,
145    nppiAverageRelativeError_16s_C4R_Ctx
146);
147impl_error_metric!(
148    average_relative_error_u32_c1_buffer_size,
149    average_relative_error_u32_c1,
150    u32,
151    C1,
152    1,
153    nppiAverageRelativeErrorGetBufferHostSize_32u_C1R_Ctx,
154    nppiAverageRelativeError_32u_C1R_Ctx
155);
156impl_error_metric!(
157    average_relative_error_u32_c2_buffer_size,
158    average_relative_error_u32_c2,
159    u32,
160    C2,
161    1,
162    nppiAverageRelativeErrorGetBufferHostSize_32u_C2R_Ctx,
163    nppiAverageRelativeError_32u_C2R_Ctx
164);
165impl_error_metric!(
166    average_relative_error_u32_c3_buffer_size,
167    average_relative_error_u32_c3,
168    u32,
169    C3,
170    1,
171    nppiAverageRelativeErrorGetBufferHostSize_32u_C3R_Ctx,
172    nppiAverageRelativeError_32u_C3R_Ctx
173);
174impl_error_metric!(
175    average_relative_error_u32_c4_buffer_size,
176    average_relative_error_u32_c4,
177    u32,
178    C4,
179    1,
180    nppiAverageRelativeErrorGetBufferHostSize_32u_C4R_Ctx,
181    nppiAverageRelativeError_32u_C4R_Ctx
182);
183impl_error_metric!(
184    average_relative_error_i32_c1_buffer_size,
185    average_relative_error_i32_c1,
186    i32,
187    C1,
188    1,
189    nppiAverageRelativeErrorGetBufferHostSize_32s_C1R_Ctx,
190    nppiAverageRelativeError_32s_C1R_Ctx
191);
192impl_error_metric!(
193    average_relative_error_i32_c2_buffer_size,
194    average_relative_error_i32_c2,
195    i32,
196    C2,
197    1,
198    nppiAverageRelativeErrorGetBufferHostSize_32s_C2R_Ctx,
199    nppiAverageRelativeError_32s_C2R_Ctx
200);
201impl_error_metric!(
202    average_relative_error_i32_c3_buffer_size,
203    average_relative_error_i32_c3,
204    i32,
205    C3,
206    1,
207    nppiAverageRelativeErrorGetBufferHostSize_32s_C3R_Ctx,
208    nppiAverageRelativeError_32s_C3R_Ctx
209);
210impl_error_metric!(
211    average_relative_error_i32_c4_buffer_size,
212    average_relative_error_i32_c4,
213    i32,
214    C4,
215    1,
216    nppiAverageRelativeErrorGetBufferHostSize_32s_C4R_Ctx,
217    nppiAverageRelativeError_32s_C4R_Ctx
218);
219impl_error_metric!(
220    average_relative_error_f32_c1_buffer_size,
221    average_relative_error_f32_c1,
222    f32,
223    C1,
224    1,
225    nppiAverageRelativeErrorGetBufferHostSize_32f_C1R_Ctx,
226    nppiAverageRelativeError_32f_C1R_Ctx
227);
228impl_error_metric!(
229    average_relative_error_f32_c2_buffer_size,
230    average_relative_error_f32_c2,
231    f32,
232    C2,
233    1,
234    nppiAverageRelativeErrorGetBufferHostSize_32f_C2R_Ctx,
235    nppiAverageRelativeError_32f_C2R_Ctx
236);
237impl_error_metric!(
238    average_relative_error_f32_c3_buffer_size,
239    average_relative_error_f32_c3,
240    f32,
241    C3,
242    1,
243    nppiAverageRelativeErrorGetBufferHostSize_32f_C3R_Ctx,
244    nppiAverageRelativeError_32f_C3R_Ctx
245);
246impl_error_metric!(
247    average_relative_error_f32_c4_buffer_size,
248    average_relative_error_f32_c4,
249    f32,
250    C4,
251    1,
252    nppiAverageRelativeErrorGetBufferHostSize_32f_C4R_Ctx,
253    nppiAverageRelativeError_32f_C4R_Ctx
254);
255impl_error_metric!(
256    average_relative_error_f64_c1_buffer_size,
257    average_relative_error_f64_c1,
258    f64,
259    C1,
260    1,
261    nppiAverageRelativeErrorGetBufferHostSize_64f_C1R_Ctx,
262    nppiAverageRelativeError_64f_C1R_Ctx
263);
264impl_error_metric!(
265    average_relative_error_f64_c2_buffer_size,
266    average_relative_error_f64_c2,
267    f64,
268    C2,
269    1,
270    nppiAverageRelativeErrorGetBufferHostSize_64f_C2R_Ctx,
271    nppiAverageRelativeError_64f_C2R_Ctx
272);
273impl_error_metric!(
274    average_relative_error_f64_c3_buffer_size,
275    average_relative_error_f64_c3,
276    f64,
277    C3,
278    1,
279    nppiAverageRelativeErrorGetBufferHostSize_64f_C3R_Ctx,
280    nppiAverageRelativeError_64f_C3R_Ctx
281);
282impl_error_metric!(
283    average_relative_error_f64_c4_buffer_size,
284    average_relative_error_f64_c4,
285    f64,
286    C4,
287    1,
288    nppiAverageRelativeErrorGetBufferHostSize_64f_C4R_Ctx,
289    nppiAverageRelativeError_64f_C4R_Ctx
290);
291impl_error_metric!(
292    average_relative_error_i16_complex_c1_buffer_size,
293    average_relative_error_i16_complex_c1,
294    ComplexI16,
295    C1,
296    1,
297    nppiAverageRelativeErrorGetBufferHostSize_16sc_C1R_Ctx,
298    nppiAverageRelativeError_16sc_C1R_Ctx
299);
300impl_error_metric!(
301    average_relative_error_i16_complex_c2_buffer_size,
302    average_relative_error_i16_complex_c2,
303    ComplexI16,
304    C2,
305    1,
306    nppiAverageRelativeErrorGetBufferHostSize_16sc_C2R_Ctx,
307    nppiAverageRelativeError_16sc_C2R_Ctx
308);
309impl_error_metric!(
310    average_relative_error_i16_complex_c3_buffer_size,
311    average_relative_error_i16_complex_c3,
312    ComplexI16,
313    C3,
314    1,
315    nppiAverageRelativeErrorGetBufferHostSize_16sc_C3R_Ctx,
316    nppiAverageRelativeError_16sc_C3R_Ctx
317);
318impl_error_metric!(
319    average_relative_error_i16_complex_c4_buffer_size,
320    average_relative_error_i16_complex_c4,
321    ComplexI16,
322    C4,
323    1,
324    nppiAverageRelativeErrorGetBufferHostSize_16sc_C4R_Ctx,
325    nppiAverageRelativeError_16sc_C4R_Ctx
326);
327impl_error_metric!(
328    average_relative_error_i32_complex_c1_buffer_size,
329    average_relative_error_i32_complex_c1,
330    ComplexI32,
331    C1,
332    1,
333    nppiAverageRelativeErrorGetBufferHostSize_32sc_C1R_Ctx,
334    nppiAverageRelativeError_32sc_C1R_Ctx
335);
336impl_error_metric!(
337    average_relative_error_i32_complex_c2_buffer_size,
338    average_relative_error_i32_complex_c2,
339    ComplexI32,
340    C2,
341    1,
342    nppiAverageRelativeErrorGetBufferHostSize_32sc_C2R_Ctx,
343    nppiAverageRelativeError_32sc_C2R_Ctx
344);
345impl_error_metric!(
346    average_relative_error_i32_complex_c3_buffer_size,
347    average_relative_error_i32_complex_c3,
348    ComplexI32,
349    C3,
350    1,
351    nppiAverageRelativeErrorGetBufferHostSize_32sc_C3R_Ctx,
352    nppiAverageRelativeError_32sc_C3R_Ctx
353);
354impl_error_metric!(
355    average_relative_error_i32_complex_c4_buffer_size,
356    average_relative_error_i32_complex_c4,
357    ComplexI32,
358    C4,
359    1,
360    nppiAverageRelativeErrorGetBufferHostSize_32sc_C4R_Ctx,
361    nppiAverageRelativeError_32sc_C4R_Ctx
362);
363impl_error_metric!(
364    average_relative_error_f32_complex_c1_buffer_size,
365    average_relative_error_f32_complex_c1,
366    Complex32,
367    C1,
368    1,
369    nppiAverageRelativeErrorGetBufferHostSize_32fc_C1R_Ctx,
370    nppiAverageRelativeError_32fc_C1R_Ctx
371);
372impl_error_metric!(
373    average_relative_error_f32_complex_c2_buffer_size,
374    average_relative_error_f32_complex_c2,
375    Complex32,
376    C2,
377    1,
378    nppiAverageRelativeErrorGetBufferHostSize_32fc_C2R_Ctx,
379    nppiAverageRelativeError_32fc_C2R_Ctx
380);
381impl_error_metric!(
382    average_relative_error_f32_complex_c3_buffer_size,
383    average_relative_error_f32_complex_c3,
384    Complex32,
385    C3,
386    1,
387    nppiAverageRelativeErrorGetBufferHostSize_32fc_C3R_Ctx,
388    nppiAverageRelativeError_32fc_C3R_Ctx
389);
390impl_error_metric!(
391    average_relative_error_f32_complex_c4_buffer_size,
392    average_relative_error_f32_complex_c4,
393    Complex32,
394    C4,
395    1,
396    nppiAverageRelativeErrorGetBufferHostSize_32fc_C4R_Ctx,
397    nppiAverageRelativeError_32fc_C4R_Ctx
398);
399
400impl_generic_dot_prod!(
401    AverageRelativeErrorC1,
402    average_relative_error_c1,
403    average_relative_error_c1_buffer_size,
404    C1,
405    [
406        (
407            u8,
408            average_relative_error_u8_c1,
409            average_relative_error_u8_c1_buffer_size
410        ),
411        (
412            i8,
413            average_relative_error_i8_c1,
414            average_relative_error_i8_c1_buffer_size
415        ),
416        (
417            u16,
418            average_relative_error_u16_c1,
419            average_relative_error_u16_c1_buffer_size
420        ),
421        (
422            i16,
423            average_relative_error_i16_c1,
424            average_relative_error_i16_c1_buffer_size
425        ),
426        (
427            u32,
428            average_relative_error_u32_c1,
429            average_relative_error_u32_c1_buffer_size
430        ),
431        (
432            i32,
433            average_relative_error_i32_c1,
434            average_relative_error_i32_c1_buffer_size
435        ),
436        (
437            f32,
438            average_relative_error_f32_c1,
439            average_relative_error_f32_c1_buffer_size
440        ),
441        (
442            f64,
443            average_relative_error_f64_c1,
444            average_relative_error_f64_c1_buffer_size
445        ),
446        (
447            ComplexI16,
448            average_relative_error_i16_complex_c1,
449            average_relative_error_i16_complex_c1_buffer_size
450        ),
451        (
452            ComplexI32,
453            average_relative_error_i32_complex_c1,
454            average_relative_error_i32_complex_c1_buffer_size
455        ),
456        (
457            Complex32,
458            average_relative_error_f32_complex_c1,
459            average_relative_error_f32_complex_c1_buffer_size
460        ),
461    ]
462);
463impl_generic_dot_prod!(
464    AverageRelativeErrorC2,
465    average_relative_error_c2,
466    average_relative_error_c2_buffer_size,
467    C2,
468    [
469        (
470            u8,
471            average_relative_error_u8_c2,
472            average_relative_error_u8_c2_buffer_size
473        ),
474        (
475            i8,
476            average_relative_error_i8_c2,
477            average_relative_error_i8_c2_buffer_size
478        ),
479        (
480            u16,
481            average_relative_error_u16_c2,
482            average_relative_error_u16_c2_buffer_size
483        ),
484        (
485            i16,
486            average_relative_error_i16_c2,
487            average_relative_error_i16_c2_buffer_size
488        ),
489        (
490            u32,
491            average_relative_error_u32_c2,
492            average_relative_error_u32_c2_buffer_size
493        ),
494        (
495            i32,
496            average_relative_error_i32_c2,
497            average_relative_error_i32_c2_buffer_size
498        ),
499        (
500            f32,
501            average_relative_error_f32_c2,
502            average_relative_error_f32_c2_buffer_size
503        ),
504        (
505            f64,
506            average_relative_error_f64_c2,
507            average_relative_error_f64_c2_buffer_size
508        ),
509        (
510            ComplexI16,
511            average_relative_error_i16_complex_c2,
512            average_relative_error_i16_complex_c2_buffer_size
513        ),
514        (
515            ComplexI32,
516            average_relative_error_i32_complex_c2,
517            average_relative_error_i32_complex_c2_buffer_size
518        ),
519        (
520            Complex32,
521            average_relative_error_f32_complex_c2,
522            average_relative_error_f32_complex_c2_buffer_size
523        ),
524    ]
525);
526impl_generic_dot_prod!(
527    AverageRelativeErrorC3,
528    average_relative_error_c3,
529    average_relative_error_c3_buffer_size,
530    C3,
531    [
532        (
533            u8,
534            average_relative_error_u8_c3,
535            average_relative_error_u8_c3_buffer_size
536        ),
537        (
538            i8,
539            average_relative_error_i8_c3,
540            average_relative_error_i8_c3_buffer_size
541        ),
542        (
543            u16,
544            average_relative_error_u16_c3,
545            average_relative_error_u16_c3_buffer_size
546        ),
547        (
548            i16,
549            average_relative_error_i16_c3,
550            average_relative_error_i16_c3_buffer_size
551        ),
552        (
553            u32,
554            average_relative_error_u32_c3,
555            average_relative_error_u32_c3_buffer_size
556        ),
557        (
558            i32,
559            average_relative_error_i32_c3,
560            average_relative_error_i32_c3_buffer_size
561        ),
562        (
563            f32,
564            average_relative_error_f32_c3,
565            average_relative_error_f32_c3_buffer_size
566        ),
567        (
568            f64,
569            average_relative_error_f64_c3,
570            average_relative_error_f64_c3_buffer_size
571        ),
572        (
573            ComplexI16,
574            average_relative_error_i16_complex_c3,
575            average_relative_error_i16_complex_c3_buffer_size
576        ),
577        (
578            ComplexI32,
579            average_relative_error_i32_complex_c3,
580            average_relative_error_i32_complex_c3_buffer_size
581        ),
582        (
583            Complex32,
584            average_relative_error_f32_complex_c3,
585            average_relative_error_f32_complex_c3_buffer_size
586        ),
587    ]
588);
589impl_generic_dot_prod!(
590    AverageRelativeErrorC4,
591    average_relative_error_c4,
592    average_relative_error_c4_buffer_size,
593    C4,
594    [
595        (
596            u8,
597            average_relative_error_u8_c4,
598            average_relative_error_u8_c4_buffer_size
599        ),
600        (
601            i8,
602            average_relative_error_i8_c4,
603            average_relative_error_i8_c4_buffer_size
604        ),
605        (
606            u16,
607            average_relative_error_u16_c4,
608            average_relative_error_u16_c4_buffer_size
609        ),
610        (
611            i16,
612            average_relative_error_i16_c4,
613            average_relative_error_i16_c4_buffer_size
614        ),
615        (
616            u32,
617            average_relative_error_u32_c4,
618            average_relative_error_u32_c4_buffer_size
619        ),
620        (
621            i32,
622            average_relative_error_i32_c4,
623            average_relative_error_i32_c4_buffer_size
624        ),
625        (
626            f32,
627            average_relative_error_f32_c4,
628            average_relative_error_f32_c4_buffer_size
629        ),
630        (
631            f64,
632            average_relative_error_f64_c4,
633            average_relative_error_f64_c4_buffer_size
634        ),
635        (
636            ComplexI16,
637            average_relative_error_i16_complex_c4,
638            average_relative_error_i16_complex_c4_buffer_size
639        ),
640        (
641            ComplexI32,
642            average_relative_error_i32_complex_c4,
643            average_relative_error_i32_complex_c4_buffer_size
644        ),
645        (
646            Complex32,
647            average_relative_error_f32_complex_c4,
648            average_relative_error_f32_complex_c4_buffer_size
649        ),
650    ]
651);