1 // Copyright (c) 2018 Intel Corporation
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and associated documentation files (the "Software"), to deal
5 // in the Software without restriction, including without limitation the rights
6 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 // copies of the Software, and to permit persons to whom the Software is
8 // furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in all
11 // copies or substantial portions of the Software.
12 //
13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 // SOFTWARE.
20
21 #ifndef __OWNDEFS_H__
22 #define __OWNDEFS_H__
23
24 #if defined( _VXWORKS )
25 #include <vxWorks.h>
26 #undef NONE
27 #endif
28
29 #include "ippdefs.h"
30
31 #if defined(__ICC) || defined(__ECC) || defined( __ICL ) || defined ( __ECL ) || defined(_MSC_VER)
32 #define __INLINE static __inline
33 #elif defined( __GNUC__ )
34 #define __INLINE static __inline__
35 #else
36 #define __INLINE static
37 #endif
38
39 #if defined(__ICC) || defined(__ECC) || defined( __ICL ) || defined ( __ECL )
40 #define __RESTRICT restrict
41 #elif !defined( __RESTRICT )
42 #define __RESTRICT
43 #endif
44
45 #if defined( IPP_W32DLL )
46 #if defined( _MSC_VER ) || defined( __ICL ) || defined ( __ECL )
47 #define IPPFUN(type,name,arg) __declspec(dllexport) type __STDCALL name arg
48 #else
49 #define IPPFUN(type,name,arg) extern type __STDCALL name arg
50 #endif
51 #else
52 #define IPPFUN(type,name,arg) extern type __STDCALL name arg
53 #endif
54
55 #if !defined ( _IA64) && (defined ( _WIN64 ) || defined( linux64 ))
56 #define _IA64
57 #endif
58
59 //structure represeting 128 bit unsigned integer type
60
61 typedef struct{
62 Ipp64u low;
63 Ipp64u high;
64 }Ipp128u;
65
66 #define _IPP_PX 0
67 #define _IPP_M6 1
68 #define _IPP_A6 2
69 #define _IPP_W7 4
70 #define _IPP_T7 8
71 #define _IPP_V8 16
72 #define _IPP_P8 32
73 #define _IPP_G9 64
74 #define _IPP_H9 128
75
76 #define _IPPXSC_PX 0
77 #define _IPPXSC_S1 1
78 #define _IPPXSC_S2 2
79 #define _IPPXSC_C2 4
80
81 #define _IPPLRB_PX 0
82 #define _IPPLRB_B1 1
83 #define _IPPLRB_B2 2
84
85 #define _IPP64_PX _IPP_PX
86 #define _IPP64_I7 64
87
88 #define _IPP32E_PX _IPP_PX
89 #define _IPP32E_M7 32
90 #define _IPP32E_U8 64
91 #define _IPP32E_Y8 128
92 #define _IPP32E_E9 256
93 #define _IPP32E_L9 512
94
95 #define _IPPLP32_PX _IPP_PX
96 #define _IPPLP32_S8 1
97
98 #define _IPPLP64_PX _IPP_PX
99 #define _IPPLP64_N8 1
100
101 #if defined(__ICC) || defined(__ECC) || defined( __ICL ) || defined ( __ECL ) || (_MSC_VER >= 1300)
102 #define __ALIGN8 __declspec (align(8))
103 #define __ALIGN16 __declspec (align(16))
104 #if !defined( OSX32 )
105 #define __ALIGN32 __declspec (align(32))
106 #else
107 #define __ALIGN32 __declspec (align(16))
108 #endif
109 #define __ALIGN64 __declspec (align(64))
110 #else
111 #define __ALIGN8
112 #define __ALIGN16
113 #define __ALIGN32
114 #define __ALIGN64
115 #endif
116
117 #if defined ( _M6 )
118 #define _IPP _IPP_M6
119 #define _IPP64 _IPP64_PX
120 #define _IPP32E _IPP32E_PX
121 #define _IPPXSC _IPPXSC_PX
122 #define _IPPLRB _IPPLRB_PX
123 #define _IPPLP32 _IPPLP32_PX
124 #define _IPPLP64 _IPPLP64_PX
125
126 #elif defined( _A6 )
127 #define _IPP _IPP_A6
128 #define _IPP64 _IPP64_PX
129 #define _IPP32E _IPP32E_PX
130 #define _IPPXSC _IPPXSC_PX
131 #define _IPPLRB _IPPLRB_PX
132 #define _IPPLP32 _IPPLP32_PX
133 #define _IPPLP64 _IPPLP64_PX
134
135 #elif defined( _W7 )
136 #define _IPP _IPP_W7
137 #define _IPP64 _IPP64_PX
138 #define _IPP32E _IPP32E_PX
139 #define _IPPXSC _IPPXSC_PX
140 #define _IPPLRB _IPPLRB_PX
141 #define _IPPLP32 _IPPLP32_PX
142 #define _IPPLP64 _IPPLP64_PX
143
144 #elif defined( _T7 )
145 #define _IPP _IPP_T7
146 #define _IPP64 _IPP64_PX
147 #define _IPP32E _IPP32E_PX
148 #define _IPPXSC _IPPXSC_PX
149 #define _IPPLRB _IPPLRB_PX
150 #define _IPPLP32 _IPPLP32_PX
151 #define _IPPLP64 _IPPLP64_PX
152
153 #elif defined( _V8 )
154 #define _IPP _IPP_V8
155 #define _IPP64 _IPP64_PX
156 #define _IPP32E _IPP32E_PX
157 #define _IPPXSC _IPPXSC_PX
158 #define _IPPLRB _IPPLRB_PX
159 #define _IPPLP32 _IPPLP32_PX
160 #define _IPPLP64 _IPPLP64_PX
161
162 #elif defined( _P8 )
163 #define _IPP _IPP_P8
164 #define _IPP64 _IPP64_PX
165 #define _IPP32E _IPP32E_PX
166 #define _IPPXSC _IPPXSC_PX
167 #define _IPPLRB _IPPLRB_PX
168 #define _IPPLP32 _IPPLP32_PX
169 #define _IPPLP64 _IPPLP64_PX
170
171 #elif defined( _G9 )
172 #define _IPP _IPP_G9
173 #define _IPP64 _IPP64_PX
174 #define _IPP32E _IPP32E_PX
175 #define _IPPXSC _IPPXSC_PX
176 #define _IPPLRB _IPPLRB_PX
177 #define _IPPLP32 _IPPLP32_PX
178 #define _IPPLP64 _IPPLP64_PX
179
180 #elif defined( _H9 )
181 #define _IPP _IPP_H9
182 #define _IPP64 _IPP64_PX
183 #define _IPP32E _IPP32E_PX
184 #define _IPPXSC _IPPXSC_PX
185 #define _IPPLRB _IPPLRB_PX
186 #define _IPPLP32 _IPPLP32_PX
187 #define _IPPLP64 _IPPLP64_PX
188
189 #elif defined( _M7 )
190 #define _IPP _IPP_PX
191 #define _IPP64 _IPP64_PX
192 #define _IPP32E _IPP32E_M7
193 #define _IPPXSC _IPPXSC_PX
194 #define _IPPLRB _IPPLRB_PX
195 #define _IPPLP32 _IPPLP32_PX
196 #define _IPPLP64 _IPPLP64_PX
197
198 #elif defined( _U8 )
199 #define _IPP _IPP_PX
200 #define _IPP64 _IPP64_PX
201 #define _IPP32E _IPP32E_U8
202 #define _IPPXSC _IPPXSC_PX
203 #define _IPPLRB _IPPLRB_PX
204 #define _IPPLP32 _IPPLP32_PX
205 #define _IPPLP64 _IPPLP64_PX
206
207 #elif defined( _Y8 )
208 #define _IPP _IPP_PX
209 #define _IPP64 _IPP64_PX
210 #define _IPP32E _IPP32E_Y8
211 #define _IPPXSC _IPPXSC_PX
212 #define _IPPLRB _IPPLRB_PX
213 #define _IPPLP32 _IPPLP32_PX
214 #define _IPPLP64 _IPPLP64_PX
215
216 #elif defined( _E9 )
217 #define _IPP _IPP_PX
218 #define _IPP64 _IPP64_PX
219 #define _IPP32E _IPP32E_E9
220 #define _IPPXSC _IPPXSC_PX
221 #define _IPPLRB _IPPLRB_PX
222 #define _IPPLP32 _IPPLP32_PX
223 #define _IPPLP64 _IPPLP64_PX
224
225 #elif defined( _L9 )
226 #define _IPP _IPP_PX
227 #define _IPP64 _IPP64_PX
228 #define _IPP32E _IPP32E_L9
229 #define _IPPXSC _IPPXSC_PX
230 #define _IPPLRB _IPPLRB_PX
231 #define _IPPLP32 _IPPLP32_PX
232 #define _IPPLP64 _IPPLP64_PX
233
234 #elif defined( _I7 )
235 #define _IPP _IPP_PX
236 #define _IPP64 _IPP64_I7
237 #define _IPP32E _IPP32E_PX
238 #define _IPPXSC _IPPXSC_PX
239 #define _IPPLRB _IPPLRB_PX
240 #define _IPPLP32 _IPPLP32_PX
241 #define _IPPLP64 _IPPLP64_PX
242
243 #elif defined( _B1 )
244 #define _IPP _IPP_PX
245 #define _IPP64 _IPP64_PX
246 #define _IPP32E _IPP32E_PX
247 #define _IPPXSC _IPPXSC_PX
248 #define _IPPLRB _IPPLRB_B1
249 #define _IPPLP32 _IPPLP32_PX
250 #define _IPPLP64 _IPPLP64_PX
251
252 #elif defined( _B2 )
253 #define _IPP _IPP_PX
254 #define _IPP64 _IPP64_PX
255 #define _IPP32E _IPP32E_PX
256 #define _IPPXSC _IPPXSC_PX
257 #define _IPPLRB _IPPLRB_B2
258 #define _IPPLP32 _IPPLP32_PX
259 #define _IPPLP64 _IPPLP64_PX
260
261 #elif defined( _S8 )
262 #define _IPP _IPP_V8
263 #define _IPP64 _IPP64_PX
264 #define _IPP32E _IPP32E_PX
265 #define _IPPXSC _IPPXSC_PX
266 #define _IPPLRB _IPPLRB_PX
267 #define _IPPLP32 _IPPLP32_S8
268 #define _IPPLP64 _IPPLP64_PX
269
270 #elif defined( _N8 )
271 #define _IPP _IPP_PX
272 #define _IPP64 _IPP64_PX
273 #define _IPP32E _IPP32E_U8
274 #define _IPPXSC _IPPXSC_PX
275 #define _IPPLRB _IPPLRB_PX
276 #define _IPPLP32 _IPPLP32_PX
277 #define _IPPLP64 _IPPLP64_N8
278
279 #elif defined( _StrongARM )
280 #define _IPP _IPP_PX
281 #define _IPP64 _IPP64_PX
282 #define _IPP32E _IPP32E_PX
283 #define _IPPXSC _IPPXSC_S1
284 #define _PX /* This string must be removed after migation period */
285 #define _IPPLRB _IPPLRB_PX
286 #define _IPPLP32 _IPPLP32_PX
287 #define _IPPLP64 _IPPLP64_PX
288
289 #elif defined( _XScale )
290 #define _IPP _IPP_PX
291 #define _IPP64 _IPP64_PX
292 #define _IPP32E _IPP32E_PX
293 #define _IPPXSC _IPPXSC_S2
294 #define _PX /* This string must be removed after migation period */
295 #define _IPPLRB _IPPLRB_PX
296 #define _IPPLP32 _IPPLP32_PX
297 #define _IPPLP64 _IPPLP64_PX
298
299 #elif defined( _XScale_Concan )
300 #define _IPP _IPP_PX
301 #define _IPP64 _IPP64_PX
302 #define _IPP32E _IPP32E_PX
303 #define _IPPXSC _IPPXSC_C2
304 #define _PX /* This string must be removed after migation period */
305 #define _IPPLRB _IPPLRB_PX
306 #define _IPPLP32 _IPPLP32_PX
307 #define _IPPLP64 _IPPLP64_PX
308
309 #else
310 #define _IPP _IPP_PX
311 #define _IPP64 _IPP64_PX
312 #define _IPP32E _IPP32E_PX
313 #define _IPPXSC _IPPXSC_PX
314 #define _IPPLRB _IPPLRB_PX
315 #define _IPPLP32 _IPPLP32_PX
316 #define _IPPLP64 _IPPLP64_PX
317
318 #endif
319
320
321 #define _IPP_ARCH_IA32 1
322 #define _IPP_ARCH_IA64 2
323 #define _IPP_ARCH_EM64T 4
324 #define _IPP_ARCH_XSC 8
325 #define _IPP_ARCH_LRB 16
326 #define _IPP_ARCH_LP32 32
327 #define _IPP_ARCH_LP64 64
328 #define _IPP_ARCH_LRB2 128
329
330 #if defined ( _ARCH_IA32 )
331 #define _IPP_ARCH _IPP_ARCH_IA32
332
333 #elif defined( _ARCH_IA64 )
334 #define _IPP_ARCH _IPP_ARCH_IA64
335
336 #elif defined( _ARCH_EM64T )
337 #define _IPP_ARCH _IPP_ARCH_EM64T
338
339 #elif defined( _ARCH_XSC )
340 #define _IPP_ARCH _IPP_ARCH_XSC
341
342 #elif defined( _ARCH_LRB )
343 #define _IPP_ARCH _IPP_ARCH_LRB
344
345 #elif defined( _ARCH_LRB2 )
346 #define _IPP_ARCH _IPP_ARCH_LRB2
347
348 #elif defined( _ARCH_LP32 )
349 #define _IPP_ARCH _IPP_ARCH_LP32
350
351 #elif defined( _ARCH_LP64 )
352 #define _IPP_ARCH _IPP_ARCH_LP64
353
354 #else
355 #if defined(_M_AMD64) || defined(__x86_64) || defined(__x86_64__)
356 #define _IPP_ARCH _IPP_ARCH_EM64T
357
358 #elif defined(_M_IA64) || defined(__ia64) || defined(__ia64__)
359 #define _IPP_ARCH _IPP_ARCH_IA64
360
361 #elif defined(_M_ARM) || defined(_ARM_) || defined(ARM) || defined(__arm__)
362 #define _IPP_ARCH _IPP_ARCH_XSC
363
364 #else
365 #define _IPP_ARCH _IPP_ARCH_IA32
366
367 #endif
368 #endif
369
370 #if ((_IPP_ARCH == _IPP_ARCH_IA32) || (_IPP_ARCH == _IPP_ARCH_XSC) || (_IPP_ARCH == _IPP_ARCH_LP32))
371 __INLINE
IPP_INT_PTR(const void * ptr)372 Ipp32s IPP_INT_PTR( const void* ptr ) {
373 union {
374 void* Ptr;
375 Ipp32s Int;
376 } dd;
377 dd.Ptr = (void*)ptr;
378 return dd.Int;
379 }
380
381 __INLINE
IPP_UINT_PTR(const void * ptr)382 Ipp32u IPP_UINT_PTR( const void* ptr ) {
383 union {
384 void* Ptr;
385 Ipp32u Int;
386 } dd;
387 dd.Ptr = (void*)ptr;
388 return dd.Int;
389 }
390 #elif ((_IPP_ARCH == _IPP_ARCH_IA64) || (_IPP_ARCH == _IPP_ARCH_EM64T) || (_IPP_ARCH == _IPP_ARCH_LRB) || (_IPP_ARCH == _IPP_ARCH_LRB2) || (_IPP_ARCH == _IPP_ARCH_LP64))
391 __INLINE
IPP_INT_PTR(const void * ptr)392 Ipp64s IPP_INT_PTR( const void* ptr ) {
393 union {
394 void* Ptr;
395 Ipp64s Int;
396 } dd;
397 dd.Ptr = (void*)ptr;
398 return dd.Int;
399 }
400
401 __INLINE
IPP_UINT_PTR(const void * ptr)402 Ipp64u IPP_UINT_PTR( const void* ptr ) {
403 union {
404 void* Ptr;
405 Ipp64u Int;
406 } dd;
407 dd.Ptr = (void*)ptr;
408 return dd.Int;
409 }
410 #else
411 #define IPP_INT_PTR( ptr ) ( (long)(ptr) )
412 #define IPP_UINT_PTR( ptr ) ( (unsigned long)(ptr) )
413 #endif
414
415 #define IPP_BYTES_TO_ALIGN(ptr, align) ((-(IPP_INT_PTR(ptr)&((align)-1)))&((align)-1))
416 #define IPP_ALIGNED_PTR(ptr, align) (void*)( (unsigned char*)(ptr) + (IPP_BYTES_TO_ALIGN( ptr, align )) )
417
418 #define IPP_MALLOC_ALIGNED_BYTES 64
419
420 #if defined( __cplusplus )
421 extern "C" {
422 #endif
423
424 /* /////////////////////////////////////////////////////////////////////////////
425 Helpers
426 /////////////////////////////////////////////////////////////////////////// */
427
428 #define IPP_NOERROR_RET() return ippStsNoErr
429 #define IPP_ERROR_RET( ErrCode ) return (ErrCode)
430
431 #ifdef _IPP_DEBUG
432
433 #define IPP_BADARG_RET( expr, ErrCode )\
434 {if (expr) { IPP_ERROR_RET( ErrCode ); }}
435
436 #else
437
438 #define IPP_BADARG_RET( expr, ErrCode )
439
440 #endif
441
442
443 #define IPP_BAD_SIZE_RET( n )\
444 IPP_BADARG_RET( (n)<=0, ippStsSizeErr )
445
446 #define IPP_BAD_STEP_RET( n )\
447 IPP_BADARG_RET( (n)<=0, ippStsStepErr )
448
449 #define IPP_BAD_PTR1_RET( ptr )\
450 IPP_BADARG_RET( NULL==(ptr), ippStsNullPtrErr )
451
452 #define IPP_BAD_PTR2_RET( ptr1, ptr2 )\
453 IPP_BADARG_RET(((NULL==(ptr1))||(NULL==(ptr2))), ippStsNullPtrErr)
454
455 #define IPP_BAD_PTR3_RET( ptr1, ptr2, ptr3 )\
456 IPP_BADARG_RET(((NULL==(ptr1))||(NULL==(ptr2))||(NULL==(ptr3))),\
457 ippStsNullPtrErr)
458
459 #define IPP_BAD_PTR4_RET( ptr1, ptr2, ptr3, ptr4 )\
460 {IPP_BAD_PTR2_RET( ptr1, ptr2 ); IPP_BAD_PTR2_RET( ptr3, ptr4 )}
461
462 #define IPP_BAD_ISIZE_RET(roi) \
463 IPP_BADARG_RET( ((roi).width<=0 || (roi).height<=0), ippStsSizeErr)
464
465
466 /* ////////////////////////////////////////////////////////////////////////// */
467
468 /* Define NULL pointer value */
469 #ifndef NULL
470 #ifdef __cplusplus
471 #define NULL 0
472 #else
473 #define NULL ((void *)0)
474 #endif
475 #endif
476
477 #define UNREFERENCED_PARAMETER(p) (p)=(p)
478
479 #if defined( _IPP_MARK_LIBRARY )
480 static char G[] = {73, 80, 80, 71, 101, 110, 117, 105, 110, 101, 243, 193, 210, 207, 215};
481 #endif
482
483
484 #define STR2(x) #x
485 #define STR(x) STR2(x)
486 #define MESSAGE( desc )\
487 message(__FILE__ "(" STR(__LINE__) "):" #desc)
488
489 /* ////////////////////////////////////////////////////////////////////////// */
490
491 /* intrinsics */
492 #if (_IPPXSC >= _IPPXSC_C2)
493 #if defined(__INTEL_COMPILER)
494 #include "mmintrin.h"
495 #endif
496 #elif (_IPP64 >= _IPP64_I7)
497 #if defined(__INTEL_COMPILER)
498 // #define _SSE2_INTEGER_FOR_ITANIUM
499 #include "ia64intrin.h"
500 #include "emmintrin.h"
501 #endif
502 #elif (_IPP >= _IPP_A6) || (_IPP32E >= _IPP32E_M7)
503 #if defined(__INTEL_COMPILER) || (_MSC_VER >= 1300)
504 #if (_IPP == _IPP_A6)
505 #include "xmmintrin.h"
506 #elif (_IPP == _IPP_W7)
507 #if defined(__INTEL_COMPILER)
508 #include "emmintrin.h"
509 #else
510 #undef _W7
511 #include "emmintrin.h"
512 #define _W7
513 #endif
514 #define _mm_loadu _mm_loadu_si128
515 #elif (_IPP == _IPP_T7) || (_IPP32E == _IPP32E_M7)
516 #if defined(__INTEL_COMPILER)
517 #include "pmmintrin.h"
518 #define _mm_loadu _mm_lddqu_si128
519 #elif (_MSC_FULL_VER >= 140050110)
520 #include "intrin.h"
521 #define _mm_loadu _mm_lddqu_si128
522 #elif (_MSC_FULL_VER < 140050110)
523 #include "emmintrin.h"
524 #define _mm_loadu _mm_loadu_si128
525 #endif
526 #elif (_IPP == _IPP_V8) || (_IPP32E == _IPP32E_U8)
527 #if defined(__INTEL_COMPILER)
528 #include "tmmintrin.h"
529 #define _mm_loadu _mm_lddqu_si128
530 #elif (_MSC_FULL_VER >= 140050110)
531 #include "intrin.h"
532 #define _mm_loadu _mm_lddqu_si128
533 #elif (_MSC_FULL_VER < 140050110)
534 #include "emmintrin.h"
535 #define _mm_loadu _mm_loadu_si128
536 #endif
537 #elif (_IPP == _IPP_P8) || (_IPP32E == _IPP32E_Y8)
538 #if defined(__INTEL_COMPILER)
539 #include "smmintrin.h"
540 #define _mm_loadu _mm_lddqu_si128
541 #elif (_MSC_FULL_VER >= 140050110)
542 #include "intrin.h"
543 #define _mm_loadu _mm_lddqu_si128
544 #elif (_MSC_FULL_VER < 140050110)
545 #include "emmintrin.h"
546 #define _mm_loadu _mm_loadu_si128
547 #endif
548 #elif (_IPP >= _IPP_G9) || (_IPP32E >= _IPP32E_E9)
549 #if defined(__INTEL_COMPILER)
550 #include "immintrin.h"
551 #define _mm_loadu _mm_lddqu_si128
552 #elif (_MSC_FULL_VER >= 160021003)
553 #include "immintrin.h"
554 #define _mm_loadu _mm_lddqu_si128
555 #endif
556 #endif
557 #endif
558 #elif (_IPPLP32 >= _IPPLP32_S8) || (_IPPLP64 >= _IPPLP64_N8)
559 #if defined(__INTEL_COMPILER)
560 #include "tmmintrin.h"
561 #define _mm_loadu _mm_lddqu_si128
562 #elif (_MSC_FULL_VER >= 140050110)
563 #include "intrin.h"
564 #define _mm_loadu _mm_lddqu_si128
565 #elif (_MSC_FULL_VER < 140050110)
566 #include "emmintrin.h"
567 #define _mm_loadu _mm_loadu_si128
568 #endif
569 #elif (_IPPLRB >= _IPPLRB_B1)
570 #if defined(__INTEL_COMPILER) || defined(_REF_LIB)
571 #include "immintrin.h"
572 #endif
573 #if defined (_REF_LIB)
574 extern void lmmintrin_init(void);
575 #endif
576 #endif
577
578 // **** intrinsics for bit casting ****
579 //unsigned int __intel_castf32_u32(float)
580 //float __intel_castu32_f32(unsigned int)
581 //unsigned __int64 __intel_castf64_u64(double)
582 //double __intel_castu64_f64(unsigned __int64)
583 #if defined(__ICC) || defined(__ECC) || defined( __ICL ) || defined ( __ECL )
584 #define __CAST_32f32u(val) __intel_castf32_u32((Ipp32f)val)
585 #define __CAST_32u32f(val) __intel_castu32_f32((Ipp32u)val)
586 #else
587 #define __CAST_32f32u(val) ( *((Ipp32u*)&val) )
588 #define __CAST_32u32f(val) ( *((Ipp32f*)&val) )
589 #endif
590
591
592 #if defined(__INTEL_COMPILER)
593 #define __IVDEP ivdep
594 #else
595 #define __IVDEP message("message :: 'ivdep' is not defined")
596 #endif
597 //usage: #pragma __IVDEP
598
599 /* ////////////////////////////////////////////////////////////////////////// */
600 #if (((_IPP > _IPP_PX) || (_IPP32E > _IPP32E_PX) || \
601 (_IPPLP32 > _IPPLP32_PX) || (_IPPLP64 > _IPPLP64_PX) || \
602 (_IPP64 > _IPP64_PX) || (_IPPLRB > _IPPLRB_PX)) && defined(_MERGED_BLD))
603 #define _NOT_PX_MERGED_BLD
604 #endif
605
606
607 /* ////////////////////////////////////////////////////////////////////////// */
608
609 /* header depended on the architecture */
610
611 #ifndef __DEPENDENCESP_H__
612 #include "dependencesp.h"
613 #endif
614
615 #ifndef __DEPENDENCEIP_H__
616 #include "dependenceip.h"
617 #endif
618
619
620 #if defined( __cplusplus )
621 }
622 #endif
623
624 #endif /* __OWNDEFS_H__ */
625 /* //////////////////////// End of file "owndefs.h" ///////////////////////// */
626