Skip to main content

singe_npp/image/
statistics_dot_product.rs

1use super::*;
2
3impl_dot_prod!(
4    dot_prod_u8_c1_buffer_size,
5    dot_prod_u8_c1,
6    u8,
7    C1,
8    1,
9    nppiDotProdGetBufferHostSize_8u64f_C1R_Ctx,
10    nppiDotProd_8u64f_C1R_Ctx
11);
12impl_dot_prod!(
13    dot_prod_i8_c1_buffer_size,
14    dot_prod_i8_c1,
15    i8,
16    C1,
17    1,
18    nppiDotProdGetBufferHostSize_8s64f_C1R_Ctx,
19    nppiDotProd_8s64f_C1R_Ctx
20);
21impl_dot_prod!(
22    dot_prod_u16_c1_buffer_size,
23    dot_prod_u16_c1,
24    u16,
25    C1,
26    1,
27    nppiDotProdGetBufferHostSize_16u64f_C1R_Ctx,
28    nppiDotProd_16u64f_C1R_Ctx
29);
30impl_dot_prod!(
31    dot_prod_i16_c1_buffer_size,
32    dot_prod_i16_c1,
33    i16,
34    C1,
35    1,
36    nppiDotProdGetBufferHostSize_16s64f_C1R_Ctx,
37    nppiDotProd_16s64f_C1R_Ctx
38);
39impl_dot_prod!(
40    dot_prod_u32_c1_buffer_size,
41    dot_prod_u32_c1,
42    u32,
43    C1,
44    1,
45    nppiDotProdGetBufferHostSize_32u64f_C1R_Ctx,
46    nppiDotProd_32u64f_C1R_Ctx
47);
48impl_dot_prod!(
49    dot_prod_i32_c1_buffer_size,
50    dot_prod_i32_c1,
51    i32,
52    C1,
53    1,
54    nppiDotProdGetBufferHostSize_32s64f_C1R_Ctx,
55    nppiDotProd_32s64f_C1R_Ctx
56);
57impl_dot_prod!(
58    dot_prod_f32_c1_buffer_size,
59    dot_prod_f32_c1,
60    f32,
61    C1,
62    1,
63    nppiDotProdGetBufferHostSize_32f64f_C1R_Ctx,
64    nppiDotProd_32f64f_C1R_Ctx
65);
66impl_dot_prod!(
67    dot_prod_u8_c3_buffer_size,
68    dot_prod_u8_c3,
69    u8,
70    C3,
71    3,
72    nppiDotProdGetBufferHostSize_8u64f_C3R_Ctx,
73    nppiDotProd_8u64f_C3R_Ctx
74);
75impl_dot_prod!(
76    dot_prod_i8_c3_buffer_size,
77    dot_prod_i8_c3,
78    i8,
79    C3,
80    3,
81    nppiDotProdGetBufferHostSize_8s64f_C3R_Ctx,
82    nppiDotProd_8s64f_C3R_Ctx
83);
84impl_dot_prod!(
85    dot_prod_u16_c3_buffer_size,
86    dot_prod_u16_c3,
87    u16,
88    C3,
89    3,
90    nppiDotProdGetBufferHostSize_16u64f_C3R_Ctx,
91    nppiDotProd_16u64f_C3R_Ctx
92);
93impl_dot_prod!(
94    dot_prod_i16_c3_buffer_size,
95    dot_prod_i16_c3,
96    i16,
97    C3,
98    3,
99    nppiDotProdGetBufferHostSize_16s64f_C3R_Ctx,
100    nppiDotProd_16s64f_C3R_Ctx
101);
102impl_dot_prod!(
103    dot_prod_u32_c3_buffer_size,
104    dot_prod_u32_c3,
105    u32,
106    C3,
107    3,
108    nppiDotProdGetBufferHostSize_32u64f_C3R_Ctx,
109    nppiDotProd_32u64f_C3R_Ctx
110);
111impl_dot_prod!(
112    dot_prod_i32_c3_buffer_size,
113    dot_prod_i32_c3,
114    i32,
115    C3,
116    3,
117    nppiDotProdGetBufferHostSize_32s64f_C3R_Ctx,
118    nppiDotProd_32s64f_C3R_Ctx
119);
120impl_dot_prod!(
121    dot_prod_f32_c3_buffer_size,
122    dot_prod_f32_c3,
123    f32,
124    C3,
125    3,
126    nppiDotProdGetBufferHostSize_32f64f_C3R_Ctx,
127    nppiDotProd_32f64f_C3R_Ctx
128);
129impl_dot_prod!(
130    dot_prod_u8_c4_buffer_size,
131    dot_prod_u8_c4,
132    u8,
133    C4,
134    4,
135    nppiDotProdGetBufferHostSize_8u64f_C4R_Ctx,
136    nppiDotProd_8u64f_C4R_Ctx
137);
138impl_dot_prod!(
139    dot_prod_i8_c4_buffer_size,
140    dot_prod_i8_c4,
141    i8,
142    C4,
143    4,
144    nppiDotProdGetBufferHostSize_8s64f_C4R_Ctx,
145    nppiDotProd_8s64f_C4R_Ctx
146);
147impl_dot_prod!(
148    dot_prod_u16_c4_buffer_size,
149    dot_prod_u16_c4,
150    u16,
151    C4,
152    4,
153    nppiDotProdGetBufferHostSize_16u64f_C4R_Ctx,
154    nppiDotProd_16u64f_C4R_Ctx
155);
156impl_dot_prod!(
157    dot_prod_i16_c4_buffer_size,
158    dot_prod_i16_c4,
159    i16,
160    C4,
161    4,
162    nppiDotProdGetBufferHostSize_16s64f_C4R_Ctx,
163    nppiDotProd_16s64f_C4R_Ctx
164);
165impl_dot_prod!(
166    dot_prod_u32_c4_buffer_size,
167    dot_prod_u32_c4,
168    u32,
169    C4,
170    4,
171    nppiDotProdGetBufferHostSize_32u64f_C4R_Ctx,
172    nppiDotProd_32u64f_C4R_Ctx
173);
174impl_dot_prod!(
175    dot_prod_i32_c4_buffer_size,
176    dot_prod_i32_c4,
177    i32,
178    C4,
179    4,
180    nppiDotProdGetBufferHostSize_32s64f_C4R_Ctx,
181    nppiDotProd_32s64f_C4R_Ctx
182);
183impl_dot_prod!(
184    dot_prod_f32_c4_buffer_size,
185    dot_prod_f32_c4,
186    f32,
187    C4,
188    4,
189    nppiDotProdGetBufferHostSize_32f64f_C4R_Ctx,
190    nppiDotProd_32f64f_C4R_Ctx
191);
192impl_dot_prod!(
193    dot_prod_u8_ac4_buffer_size,
194    dot_prod_u8_ac4,
195    u8,
196    AC4,
197    3,
198    nppiDotProdGetBufferHostSize_8u64f_AC4R_Ctx,
199    nppiDotProd_8u64f_AC4R_Ctx
200);
201impl_dot_prod!(
202    dot_prod_i8_ac4_buffer_size,
203    dot_prod_i8_ac4,
204    i8,
205    AC4,
206    3,
207    nppiDotProdGetBufferHostSize_8s64f_AC4R_Ctx,
208    nppiDotProd_8s64f_AC4R_Ctx
209);
210impl_dot_prod!(
211    dot_prod_u16_ac4_buffer_size,
212    dot_prod_u16_ac4,
213    u16,
214    AC4,
215    3,
216    nppiDotProdGetBufferHostSize_16u64f_AC4R_Ctx,
217    nppiDotProd_16u64f_AC4R_Ctx
218);
219impl_dot_prod!(
220    dot_prod_i16_ac4_buffer_size,
221    dot_prod_i16_ac4,
222    i16,
223    AC4,
224    3,
225    nppiDotProdGetBufferHostSize_16s64f_AC4R_Ctx,
226    nppiDotProd_16s64f_AC4R_Ctx
227);
228impl_dot_prod!(
229    dot_prod_u32_ac4_buffer_size,
230    dot_prod_u32_ac4,
231    u32,
232    AC4,
233    3,
234    nppiDotProdGetBufferHostSize_32u64f_AC4R_Ctx,
235    nppiDotProd_32u64f_AC4R_Ctx
236);
237impl_dot_prod!(
238    dot_prod_i32_ac4_buffer_size,
239    dot_prod_i32_ac4,
240    i32,
241    AC4,
242    3,
243    nppiDotProdGetBufferHostSize_32s64f_AC4R_Ctx,
244    nppiDotProd_32s64f_AC4R_Ctx
245);
246impl_dot_prod!(
247    dot_prod_f32_ac4_buffer_size,
248    dot_prod_f32_ac4,
249    f32,
250    AC4,
251    3,
252    nppiDotProdGetBufferHostSize_32f64f_AC4R_Ctx,
253    nppiDotProd_32f64f_AC4R_Ctx
254);
255impl_generic_dot_prod!(
256    DotProdC1,
257    dot_prod_c1,
258    dot_prod_c1_buffer_size,
259    C1,
260    [
261        (u8, dot_prod_u8_c1, dot_prod_u8_c1_buffer_size),
262        (i8, dot_prod_i8_c1, dot_prod_i8_c1_buffer_size),
263        (u16, dot_prod_u16_c1, dot_prod_u16_c1_buffer_size),
264        (i16, dot_prod_i16_c1, dot_prod_i16_c1_buffer_size),
265        (u32, dot_prod_u32_c1, dot_prod_u32_c1_buffer_size),
266        (i32, dot_prod_i32_c1, dot_prod_i32_c1_buffer_size),
267        (f32, dot_prod_f32_c1, dot_prod_f32_c1_buffer_size),
268    ]
269);
270impl_generic_dot_prod!(
271    DotProdC3,
272    dot_prod_c3,
273    dot_prod_c3_buffer_size,
274    C3,
275    [
276        (u8, dot_prod_u8_c3, dot_prod_u8_c3_buffer_size),
277        (i8, dot_prod_i8_c3, dot_prod_i8_c3_buffer_size),
278        (u16, dot_prod_u16_c3, dot_prod_u16_c3_buffer_size),
279        (i16, dot_prod_i16_c3, dot_prod_i16_c3_buffer_size),
280        (u32, dot_prod_u32_c3, dot_prod_u32_c3_buffer_size),
281        (i32, dot_prod_i32_c3, dot_prod_i32_c3_buffer_size),
282        (f32, dot_prod_f32_c3, dot_prod_f32_c3_buffer_size),
283    ]
284);
285impl_generic_dot_prod!(
286    DotProdC4,
287    dot_prod_c4,
288    dot_prod_c4_buffer_size,
289    C4,
290    [
291        (u8, dot_prod_u8_c4, dot_prod_u8_c4_buffer_size),
292        (i8, dot_prod_i8_c4, dot_prod_i8_c4_buffer_size),
293        (u16, dot_prod_u16_c4, dot_prod_u16_c4_buffer_size),
294        (i16, dot_prod_i16_c4, dot_prod_i16_c4_buffer_size),
295        (u32, dot_prod_u32_c4, dot_prod_u32_c4_buffer_size),
296        (i32, dot_prod_i32_c4, dot_prod_i32_c4_buffer_size),
297        (f32, dot_prod_f32_c4, dot_prod_f32_c4_buffer_size),
298    ]
299);
300impl_generic_dot_prod!(
301    DotProdAC4,
302    dot_prod_ac4,
303    dot_prod_ac4_buffer_size,
304    AC4,
305    [
306        (u8, dot_prod_u8_ac4, dot_prod_u8_ac4_buffer_size),
307        (i8, dot_prod_i8_ac4, dot_prod_i8_ac4_buffer_size),
308        (u16, dot_prod_u16_ac4, dot_prod_u16_ac4_buffer_size),
309        (i16, dot_prod_i16_ac4, dot_prod_i16_ac4_buffer_size),
310        (u32, dot_prod_u32_ac4, dot_prod_u32_ac4_buffer_size),
311        (i32, dot_prod_i32_ac4, dot_prod_i32_ac4_buffer_size),
312        (f32, dot_prod_f32_ac4, dot_prod_f32_ac4_buffer_size),
313    ]
314);