42 #ifndef _CXCORE_IPP_H_
43 #define _CXCORE_IPP_H_
57 IPCVAPI_EX( CvStatus, icvCvt_32f64f, "ippsConvert_32f64f",
62 #define IPCV_COPYSET( flavor, arrtype, scalartype ) \
63 IPCVAPI_EX( CvStatus, icvCopy##flavor, "ippiCopy" #flavor, \
64 CV_PLUGINS1(CV_PLUGIN_IPPI), \
65 ( const arrtype* src, int srcstep, \
66 arrtype* dst, int dststep, CvSize size, \
67 const uchar* mask, int maskstep )) \
68 IPCVAPI_EX( CvStatus, icvSet##flavor, "ippiSet" #flavor, \
70 ( arrtype* dst, int dststep, \
71 const uchar* mask, int maskstep, \
72 CvSize size, const arrtype* scalar ))
90 #define IPCV_BIN_ARITHM( name ) \
91 IPCVAPI_EX( CvStatus, icv##name##_8u_C1R, \
92 "ippi" #name "_8u_C1RSfs", CV_PLUGINS1(CV_PLUGIN_IPPI), \
93 ( const uchar* src1, int srcstep1, const uchar* src2, int srcstep2, \
94 uchar* dst, int dststep, CvSize size, int scalefactor )) \
95 IPCVAPI_EX( CvStatus, icv##name##_16u_C1R, \
96 "ippi" #name "_16u_C1RSfs", CV_PLUGINS1(CV_PLUGIN_IPPI), \
97 ( const ushort* src1, int srcstep1, const ushort* src2, int srcstep2,\
98 ushort* dst, int dststep, CvSize size, int scalefactor )) \
99 IPCVAPI_EX( CvStatus, icv##name##_16s_C1R, \
100 "ippi" #name "_16s_C1RSfs", CV_PLUGINS1(CV_PLUGIN_IPPI), \
101 ( const short* src1, int srcstep1, const short* src2, int srcstep2, \
102 short* dst, int dststep, CvSize size, int scalefactor )) \
103 IPCVAPI_EX( CvStatus, icv##name##_32s_C1R, \
104 "ippi" #name "_32s_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
105 ( const int* src1, int srcstep1, const int* src2, int srcstep2, \
106 int* dst, int dststep, CvSize size )) \
107 IPCVAPI_EX( CvStatus, icv##name##_32f_C1R, \
108 "ippi" #name "_32f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
109 ( const float* src1, int srcstep1, const float* src2, int srcstep2, \
110 float* dst, int dststep, CvSize size )) \
111 IPCVAPI_EX( CvStatus, icv##name##_64f_C1R, \
112 "ippi" #name "_64f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
113 ( const double* src1, int srcstep1, const double* src2, int srcstep2,\
114 double* dst, int dststep, CvSize size ))
120 #undef IPCV_BIN_ARITHM
126 #define IPCV_LOGIC( name ) \
127 IPCVAPI_EX( CvStatus, icv##name##_8u_C1R, \
128 "ippi" #name "_8u_C1R", 0, \
129 ( const uchar* src1, int srcstep1, const uchar* src2, int srcstep2, \
130 uchar* dst, int dststep, CvSize size ))
147 #define IPCV_DEF_MEAN_MASK( flavor, srctype ) \
148 IPCVAPI_EX( CvStatus, icvMean_##flavor##_C1MR, \
149 "ippiMean_" #flavor "_C1MR", CV_PLUGINS1(CV_PLUGIN_IPPCV), \
150 ( const srctype* img, int imgstep, const uchar* mask, \
151 int maskStep, CvSize size, double* mean )) \
152 IPCVAPI_EX( CvStatus, icvMean_##flavor##_C2MR, \
153 "ippiMean_" #flavor "_C2MR", 0, \
154 ( const srctype* img, int imgstep, const uchar* mask, \
155 int maskStep, CvSize size, double* mean )) \
156 IPCVAPI_EX( CvStatus, icvMean_##flavor##_C3MR, \
157 "ippiMean_" #flavor "_C3MR", 0, \
158 ( const srctype* img, int imgstep, const uchar* mask, \
159 int maskStep, CvSize size, double* mean )) \
160 IPCVAPI_EX( CvStatus, icvMean_##flavor##_C4MR, \
161 "ippiMean_" #flavor "_C4MR", 0, \
162 ( const srctype* img, int imgstep, const uchar* mask, \
163 int maskStep, CvSize size, double* mean ))
166 IPCV_DEF_MEAN_MASK( 16u, ushort )
167 IPCV_DEF_MEAN_MASK( 16s,
short )
168 IPCV_DEF_MEAN_MASK( 32s,
int )
169 IPCV_DEF_MEAN_MASK( 32f,
float )
170 IPCV_DEF_MEAN_MASK( 64f,
double )
172 #undef IPCV_DEF_MEAN_MASK
176 #undef IPCV_MEAN_SDV_PLUGIN
177 #define ICV_MEAN_SDV_PLUGIN 0
179 #define IPCV_DEF_MEAN_SDV( flavor, srctype ) \
180 IPCVAPI_EX( CvStatus, icvMean_StdDev_##flavor##_C1R, \
181 "ippiMean_StdDev_" #flavor "_C1R", ICV_MEAN_SDV_PLUGIN, \
182 ( const srctype* img, int imgstep, CvSize size, double* mean, double* sdv ))\
183 IPCVAPI_EX( CvStatus, icvMean_StdDev_##flavor##_C2R, \
184 "ippiMean_StdDev_" #flavor "_C2R", ICV_MEAN_SDV_PLUGIN, \
185 ( const srctype* img, int imgstep, CvSize size, double* mean, double* sdv ))\
186 IPCVAPI_EX( CvStatus, icvMean_StdDev_##flavor##_C3R, \
187 "ippiMean_StdDev_" #flavor "_C3R", ICV_MEAN_SDV_PLUGIN, \
188 ( const srctype* img, int imgstep, CvSize size, double* mean, double* sdv ))\
189 IPCVAPI_EX( CvStatus, icvMean_StdDev_##flavor##_C4R, \
190 "ippiMean_StdDev_" #flavor "_C4R", ICV_MEAN_SDV_PLUGIN, \
191 ( const srctype* img, int imgstep, CvSize size, double* mean, double* sdv ))\
193 IPCVAPI_EX( CvStatus, icvMean_StdDev_##flavor##_C1MR, \
194 "ippiMean_StdDev_" #flavor "_C1MR", ICV_MEAN_SDV_PLUGIN, \
195 ( const srctype* img, int imgstep, \
196 const uchar* mask, int maskStep, \
197 CvSize size, double* mean, double* sdv )) \
198 IPCVAPI_EX( CvStatus, icvMean_StdDev_##flavor##_C2MR, \
199 "ippiMean_StdDev_" #flavor "_C2MR", ICV_MEAN_SDV_PLUGIN, \
200 ( const srctype* img, int imgstep, const uchar* mask, int maskStep, \
201 CvSize size, double* mean, double* sdv )) \
202 IPCVAPI_EX( CvStatus, icvMean_StdDev_##flavor##_C3MR, \
203 "ippiMean_StdDev_" #flavor "_C3MR", ICV_MEAN_SDV_PLUGIN, \
204 ( const srctype* img, int imgstep, \
205 const uchar* mask, int maskStep, \
206 CvSize size, double* mean, double* sdv )) \
207 IPCVAPI_EX( CvStatus, icvMean_StdDev_##flavor##_C4MR, \
208 "ippiMean_StdDev_" #flavor "_C4MR", ICV_MEAN_SDV_PLUGIN, \
209 ( const srctype* img, int imgstep, \
210 const uchar* mask, int maskStep, \
211 CvSize size, double* mean, double* sdv ))
214 IPCV_DEF_MEAN_SDV( 16u, ushort )
215 IPCV_DEF_MEAN_SDV( 16s,
short )
216 IPCV_DEF_MEAN_SDV( 32s,
int )
217 IPCV_DEF_MEAN_SDV( 32f,
float )
218 IPCV_DEF_MEAN_SDV( 64f,
double )
220 #undef IPCV_DEF_MEAN_SDV
221 #undef IPCV_MEAN_SDV_PLUGIN
225 #define IPCV_DEF_MIN_MAX_LOC( flavor, srctype, extrtype, plugin ) \
226 IPCVAPI_EX( CvStatus, icvMinMaxIndx_##flavor##_C1R, \
227 "ippiMinMaxIndx_" #flavor "_C1R", plugin, \
228 ( const srctype* img, int imgstep, \
229 CvSize size, extrtype* minVal, extrtype* maxVal, \
230 CvPoint* minLoc, CvPoint* maxLoc )) \
232 IPCVAPI_EX( CvStatus, icvMinMaxIndx_##flavor##_C1MR, \
233 "ippiMinMaxIndx_" #flavor "_C1MR", plugin, \
234 ( const srctype* img, int imgstep, \
235 const uchar* mask, int maskStep, \
236 CvSize size, extrtype* minVal, extrtype* maxVal, \
237 CvPoint* minLoc, CvPoint* maxLoc ))
240 IPCV_DEF_MIN_MAX_LOC( 16u, ushort,
float, 0 )
242 IPCV_DEF_MIN_MAX_LOC( 32s,
int,
double, 0 )
243 #if !defined WIN64 && (defined WIN32 || defined __i386__)
250 #undef IPCV_DEF_MIN_MAX_LOC
254 #define IPCV_DEF_SUM_NOHINT( flavor, srctype, plugin ) \
255 IPCVAPI_EX( CvStatus, icvSum_##flavor##_C1R, \
256 "ippiSum_" #flavor "_C1R", plugin, \
257 ( const srctype* img, int imgstep, CvSize size, double* sum )) \
258 IPCVAPI_EX( CvStatus, icvSum_##flavor##_C2R, \
259 "ippiSum_" #flavor "_C2R", plugin, \
260 ( const srctype* img, int imgstep, CvSize size, double* sum )) \
261 IPCVAPI_EX( CvStatus, icvSum_##flavor##_C3R, \
262 "ippiSum_" #flavor "_C3R", plugin, \
263 ( const srctype* img, int imgstep, CvSize size, double* sum )) \
264 IPCVAPI_EX( CvStatus, icvSum_##flavor##_C4R, \
265 "ippiSum_" #flavor "_C4R", plugin, \
266 ( const srctype* img, int imgstep, CvSize size, double* sum ))
268 #define IPCV_DEF_SUM_HINT( flavor, srctype ) \
269 IPCVAPI_EX( CvStatus, icvSum_##flavor##_C1R, \
270 "ippiSum_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
271 ( const srctype* img, int imgstep, \
272 CvSize size, double* sum, CvHintAlgorithm )) \
273 IPCVAPI_EX( CvStatus, icvSum_##flavor##_C2R, \
274 "ippiSum_" #flavor "_C2R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
275 ( const srctype* img, int imgstep, \
276 CvSize size, double* sum, CvHintAlgorithm )) \
277 IPCVAPI_EX( CvStatus, icvSum_##flavor##_C3R, \
278 "ippiSum_" #flavor "_C3R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
279 ( const srctype* img, int imgstep, \
280 CvSize size, double* sum, CvHintAlgorithm )) \
281 IPCVAPI_EX( CvStatus, icvSum_##flavor##_C4R, \
282 "ippiSum_" #flavor "_C4R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
283 ( const srctype* img, int imgstep, \
284 CvSize size, double* sum, CvHintAlgorithm ))
288 IPCV_DEF_SUM_NOHINT( 16u, ushort, 0 )
289 IPCV_DEF_SUM_NOHINT( 32s,
int, 0 )
290 IPCV_DEF_SUM_HINT( 32f,
float )
291 IPCV_DEF_SUM_NOHINT( 64f,
double, 0 )
293 #undef IPCV_DEF_SUM_NOHINT
294 #undef IPCV_DEF_SUM_HINT
298 #define IPCV_DEF_NON_ZERO( flavor, srctype ) \
299 IPCVAPI_EX( CvStatus, icvCountNonZero_##flavor##_C1R, \
300 "ippiCountNonZero_" #flavor "_C1R", 0, \
301 ( const srctype* img, int imgstep, CvSize size, int* nonzero ))
304 IPCV_DEF_NON_ZERO( 16s, ushort )
305 IPCV_DEF_NON_ZERO( 32s,
int )
306 IPCV_DEF_NON_ZERO( 32f,
int )
307 IPCV_DEF_NON_ZERO( 64f, int64 )
309 #undef IPCV_DEF_NON_ZERO
313 #define IPCV_DEF_NORM_NOHINT_C1( flavor, srctype, plugin ) \
314 IPCVAPI_EX( CvStatus, icvNorm_Inf_##flavor##_C1R, \
315 "ippiNorm_Inf_" #flavor "_C1R", plugin, \
316 ( const srctype* img, int imgstep, CvSize size, double* norm )) \
317 IPCVAPI_EX( CvStatus, icvNorm_L1_##flavor##_C1R, \
318 "ippiNorm_L1_" #flavor "_C1R", plugin, \
319 ( const srctype* img, int imgstep, CvSize size, double* norm )) \
320 IPCVAPI_EX( CvStatus, icvNorm_L2_##flavor##_C1R, \
321 "ippiNorm_L2_" #flavor "_C1R", plugin, \
322 ( const srctype* img, int imgstep, CvSize size, double* norm )) \
323 IPCVAPI_EX( CvStatus, icvNormDiff_Inf_##flavor##_C1R, \
324 "ippiNormDiff_Inf_" #flavor "_C1R", plugin, \
325 ( const srctype* img1, int imgstep1, \
326 const srctype* img2, int imgstep2, \
327 CvSize size, double* norm )) \
328 IPCVAPI_EX( CvStatus, icvNormDiff_L1_##flavor##_C1R, \
329 "ippiNormDiff_L1_" #flavor "_C1R", plugin, \
330 ( const srctype* img1, int imgstep1, \
331 const srctype* img2, int imgstep2, \
332 CvSize size, double* norm )) \
333 IPCVAPI_EX( CvStatus, icvNormDiff_L2_##flavor##_C1R, \
334 "ippiNormDiff_L2_" #flavor "_C1R", plugin, \
335 ( const srctype* img1, int imgstep1, \
336 const srctype* img2, int imgstep2, \
337 CvSize size, double* norm ))
339 #define IPCV_DEF_NORM_HINT_C1( flavor, srctype ) \
340 IPCVAPI_EX( CvStatus, icvNorm_Inf_##flavor##_C1R, \
341 "ippiNorm_Inf_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
342 ( const srctype* img, int imgstep, \
343 CvSize size, double* norm )) \
344 IPCVAPI_EX( CvStatus, icvNorm_L1_##flavor##_C1R, \
345 "ippiNorm_L1_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
346 ( const srctype* img, int imgstep, \
347 CvSize size, double* norm, CvHintAlgorithm )) \
348 IPCVAPI_EX( CvStatus, icvNorm_L2_##flavor##_C1R, \
349 "ippiNorm_L2_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
350 ( const srctype* img, int imgstep, \
351 CvSize size, double* norm, CvHintAlgorithm )) \
352 IPCVAPI_EX( CvStatus, icvNormDiff_Inf_##flavor##_C1R, \
353 "ippiNormDiff_Inf_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
354 ( const srctype* img1, int imgstep1, \
355 const srctype* img2, int imgstep2, \
356 CvSize size, double* norm )) \
357 IPCVAPI_EX( CvStatus, icvNormDiff_L1_##flavor##_C1R, \
358 "ippiNormDiff_L1_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
359 ( const srctype* img1, int imgstep1, \
360 const srctype* img2, int imgstep2, \
361 CvSize size, double* norm, CvHintAlgorithm )) \
362 IPCVAPI_EX( CvStatus, icvNormDiff_L2_##flavor##_C1R, \
363 "ippiNormDiff_L2_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
364 ( const srctype* img1, int imgstep1, \
365 const srctype* img2, int imgstep2, \
366 CvSize size, double* norm, CvHintAlgorithm ))
368 #define IPCV_DEF_NORM_MASK_C1( flavor, srctype, plugin ) \
369 IPCVAPI_EX( CvStatus, icvNorm_Inf_##flavor##_C1MR, \
370 "ippiNorm_Inf_" #flavor "_C1MR", plugin, \
371 ( const srctype* img, int imgstep, \
372 const uchar* mask, int maskstep, \
373 CvSize size, double* norm )) \
374 IPCVAPI_EX( CvStatus, icvNorm_L1_##flavor##_C1MR, \
375 "ippiNorm_L1_" #flavor "_C1MR", plugin, \
376 ( const srctype* img, int imgstep, \
377 const uchar* mask, int maskstep, \
378 CvSize size, double* norm )) \
379 IPCVAPI_EX( CvStatus, icvNorm_L2_##flavor##_C1MR, \
380 "ippiNorm_L2_" #flavor "_C1MR", plugin, \
381 ( const srctype* img, int imgstep, \
382 const uchar* mask, int maskstep, \
383 CvSize size, double* norm )) \
384 IPCVAPI_EX( CvStatus, icvNormDiff_Inf_##flavor##_C1MR, \
385 "ippiNormDiff_Inf_" #flavor "_C1MR", plugin, \
386 ( const srctype* img1, int imgstep1, \
387 const srctype* img2, int imgstep2, \
388 const uchar* mask, int maskstep, \
389 CvSize size, double* norm )) \
390 IPCVAPI_EX( CvStatus, icvNormDiff_L1_##flavor##_C1MR, \
391 "ippiNormDiff_L1_" #flavor "_C1MR", plugin, \
392 ( const srctype* img1, int imgstep1, \
393 const srctype* img2, int imgstep2, \
394 const uchar* mask, int maskstep, \
395 CvSize size, double* norm )) \
396 IPCVAPI_EX( CvStatus, icvNormDiff_L2_##flavor##_C1MR, \
397 "ippiNormDiff_L2_" #flavor "_C1MR", plugin, \
398 ( const srctype* img1, int imgstep1, \
399 const srctype* img2, int imgstep2, \
400 const uchar* mask, int maskstep, \
401 CvSize size, double* norm ))
406 IPCV_DEF_NORM_NOHINT_C1( 16u, ushort, 0 )
407 IPCV_DEF_NORM_MASK_C1( 16u, ushort, 0 )
412 IPCV_DEF_NORM_NOHINT_C1( 32s,
int, 0 )
413 IPCV_DEF_NORM_MASK_C1( 32s,
int, 0 )
415 IPCV_DEF_NORM_HINT_C1( 32f,
float )
418 IPCV_DEF_NORM_NOHINT_C1( 64f,
double, 0 )
419 IPCV_DEF_NORM_MASK_C1( 64f,
double, 0 )
421 #undef IPCV_DEF_NORM_HONINT_C1
422 #undef IPCV_DEF_NORM_HINT_C1
423 #undef IPCV_DEF_NORM_MASK_C1
428 #define IPCV_ABS_DIFF( flavor, arrtype ) \
429 IPCVAPI_EX( CvStatus, icvAbsDiff_##flavor##_C1R, \
430 "ippiAbsDiff_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),\
431 ( const arrtype* src1, int srcstep1, \
432 const arrtype* src2, int srcstep2, \
433 arrtype* dst, int dststep, CvSize size ))
436 IPCV_ABS_DIFF( 16u, ushort )
437 IPCV_ABS_DIFF( 16s,
short )
438 IPCV_ABS_DIFF( 32s,
int )
439 IPCV_ABS_DIFF( 32f,
float )
440 IPCV_ABS_DIFF( 64f,
double )
446 #define IPCV_CMP( arrtype, flavor ) \
447 IPCVAPI_EX( CvStatus, icvCompare_##flavor##_C1R, \
448 "ippiCompare_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
449 ( const arrtype* src1, int srcstep1, const arrtype* src2, int srcstep2, \
450 arrtype* dst, int dststep, CvSize size, int cmp_op )) \
451 IPCVAPI_EX( CvStatus, icvCompareC_##flavor##_C1R, \
452 "ippiCompareC_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
453 ( const arrtype* src1, int srcstep1, arrtype scalar, \
454 arrtype* dst, int dststep, CvSize size, int cmp_op )) \
455 IPCVAPI_EX( CvStatus, icvThreshold_GT_##flavor##_C1R, \
456 "ippiThreshold_GT_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
457 ( const arrtype* pSrc, int srcstep, arrtype* pDst, int dststep, \
458 CvSize size, arrtype threshold )) \
459 IPCVAPI_EX( CvStatus, icvThreshold_LT_##flavor##_C1R, \
460 "ippiThreshold_LT_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
461 ( const arrtype* pSrc, int srcstep, arrtype* pDst, int dststep, \
462 CvSize size, arrtype threshold ))
464 IPCV_CMP(
short, 16s )
465 IPCV_CMP(
float, 32f )
474 #define IPCV_PIX_PLANE( flavor, arrtype ) \
475 IPCVAPI_EX( CvStatus, icvCopy_##flavor##_C2P2R, \
476 "ippiCopy_" #flavor "_C2P2R", 0, \
477 ( const arrtype* src, int srcstep, arrtype** dst, int dststep, CvSize size )) \
478 IPCVAPI_EX( CvStatus, icvCopy_##flavor##_C3P3R, \
479 "ippiCopy_" #flavor "_C3P3R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
480 ( const arrtype* src, int srcstep, arrtype** dst, int dststep, CvSize size )) \
481 IPCVAPI_EX( CvStatus, icvCopy_##flavor##_C4P4R, \
482 "ippiCopy_" #flavor "_C4P4R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
483 ( const arrtype* src, int srcstep, arrtype** dst, int dststep, CvSize size )) \
484 IPCVAPI_EX( CvStatus, icvCopy_##flavor##_CnC1CR, \
485 "ippiCopy_" #flavor "_CnC1CR", 0, \
486 ( const arrtype* src, int srcstep, arrtype* dst, int dststep, \
487 CvSize size, int cn, int coi )) \
488 IPCVAPI_EX( CvStatus, icvCopy_##flavor##_C1CnCR, \
489 "ippiCopy_" #flavor "_CnC1CR", 0, \
490 ( const arrtype* src, int srcstep, arrtype* dst, int dststep, \
491 CvSize size, int cn, int coi )) \
492 IPCVAPI_EX( CvStatus, icvCopy_##flavor##_P2C2R, \
493 "ippiCopy_" #flavor "_P2C2R", 0, \
494 ( const arrtype** src, int srcstep, arrtype* dst, int dststep, CvSize size )) \
495 IPCVAPI_EX( CvStatus, icvCopy_##flavor##_P3C3R, \
496 "ippiCopy_" #flavor "_P3C3R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
497 ( const arrtype** src, int srcstep, arrtype* dst, int dststep, CvSize size )) \
498 IPCVAPI_EX( CvStatus, icvCopy_##flavor##_P4C4R, \
499 "ippiCopy_" #flavor "_P4C4R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
500 ( const arrtype** src, int srcstep, arrtype* dst, int dststep, CvSize size ))
503 IPCV_PIX_PLANE( 16s, ushort )
504 IPCV_PIX_PLANE( 32f,
int )
505 IPCV_PIX_PLANE( 64f, int64 )
507 #undef IPCV_PIX_PLANE
515 (
const float* src,
float* dst,
int len ))
516 IPCVAPI_EX( CvStatus, icvSqrt_32f,
"ippsSqrt_32f_A21, ippsSqrt_32f",
518 (
const float* src,
float* dst,
int len ))
521 ( const
double* src,
double* dst,
int len ))
522 IPCVAPI_EX( CvStatus, icvSqrt_64f, "ippsSqrt_64f_A50, ippsSqrt_64f",
524 ( const
double* src,
double* dst,
int len ))
528 ( const
float *
x,
float *
y,
int n ) )
529 IPCVAPI_EX( CvStatus, icvLog_64f, "ippsLn_64f_A50, ippsLn_64f",
531 ( const
double *x,
double *y,
int n ) )
534 ( const
float *x,
float *y,
int n ) )
535 IPCVAPI_EX( CvStatus, icvExp_64f, "ippsExp_64f_A50, ippsExp_64f",
537 ( const
double *x,
double *y,
int n ) )
540 ( const
float* y, const
float* x,
float*
angle,
int len ))
547 "ippiCheckArray_32f_C1R", 0,
548 ( const
float* src,
int srcstep,
554 ( const
double* src,
int srcstep,
556 double min_val,
double max_val ))
562 #define IPCV_TRANSFORM( suffix, ipp_suffix, cn ) \
563 IPCVAPI_EX( CvStatus, icvColorTwist##suffix##_C##cn##R, \
564 "ippiColorTwist" #ipp_suffix "_C" #cn \
565 "R,ippiColorTwist" #ipp_suffix "_C" #cn "R", \
566 CV_PLUGINS2(CV_PLUGIN_IPPI, CV_PLUGIN_IPPCC), \
567 ( const void* src, int srcstep, void* dst, int dststep, \
568 CvSize roisize, const float* twist_matrix ))
576 #undef IPCV_TRANSFORM
578 #define IPCV_TRANSFORM_N1( suffix ) \
579 IPCVAPI_EX( CvStatus, icvColorToGray##suffix, \
580 "ippiColorToGray" #suffix ",ippiColorToGray" #suffix, \
581 CV_PLUGINS2(CV_PLUGIN_IPPI,CV_PLUGIN_IPPCC), \
582 ( const void* src, int srcstep, void* dst, int dststep, \
583 CvSize roisize, const float* coeffs ))
594 #undef IPCV_TRANSFORM_N1
602 const void *
alpha,
const void *
a,
int *
lda,
const void *
b,
int *
ldb,
603 const void *
beta,
void *
c,
int *ldc ))
606 (const
char *transa, const
char *transb,
int *n,
int *m,
int *k,
607 const
void *alpha, const
void *a,
int *lda, const
void *b,
int *ldb,
608 const
void *beta,
void *c,
int *ldc ))
611 (const
char *transa, const
char *transb,
int *n,
int *m,
int *k,
612 const
void *alpha, const
void *a,
int *lda, const
void *b,
int *ldb,
613 const
void *beta,
void *c,
int *ldc ))
616 (const
char *transa, const
char *transb,
int *n,
int *m,
int *k,
617 const
void *alpha, const
void *a,
int *lda, const
void *b,
int *ldb,
618 const
void *beta,
void *c,
int *ldc ))
621 #define IPCV_DFT( init_flavor, fwd_flavor, inv_flavor ) \
622 IPCVAPI_EX( CvStatus, icvDFTInitAlloc_##init_flavor, "ippsDFTInitAlloc_" #init_flavor, \
623 CV_PLUGINS1(CV_PLUGIN_IPPS), ( void**, int, int, CvHintAlgorithm )) \
625 IPCVAPI_EX( CvStatus, icvDFTFree_##init_flavor, "ippsDFTFree_" #init_flavor, \
626 CV_PLUGINS1(CV_PLUGIN_IPPS), ( void* )) \
628 IPCVAPI_EX( CvStatus, icvDFTGetBufSize_##init_flavor, "ippsDFTGetBufSize_" #init_flavor,\
629 CV_PLUGINS1(CV_PLUGIN_IPPS), ( const void* spec, int* buf_size )) \
631 IPCVAPI_EX( CvStatus, icvDFTFwd_##fwd_flavor, "ippsDFTFwd_" #fwd_flavor, \
632 CV_PLUGINS1(CV_PLUGIN_IPPS), ( const void* src, void* dst, \
633 const void* spec, void* buffer )) \
635 IPCVAPI_EX( CvStatus, icvDFTInv_##inv_flavor, "ippsDFTInv_" #inv_flavor, \
636 CV_PLUGINS1(CV_PLUGIN_IPPS), ( const void* src, void* dst, \
637 const void* spec, void* buffer ))
639 IPCV_DFT( C_32fc, CToC_32fc, CToC_32fc )
640 IPCV_DFT( R_32f, RToPack_32f, PackToR_32f )
641 IPCV_DFT( C_64fc, CToC_64fc, CToC_64fc )
642 IPCV_DFT( R_64f, RToPack_64f, PackToR_64f )