49 #ifndef NE10_FFT_CPLX_OPS_H 50 #define NE10_FFT_CPLX_OPS_H 56 ptr_a = (T *)((intptr_t)(ptr_a) ^ (intptr_t)(ptr_b));
57 ptr_b = (T *)((intptr_t)(ptr_a) ^ (intptr_t)(ptr_b));
58 ptr_a = (T *)((intptr_t)(ptr_a) ^ (intptr_t)(ptr_b));
61 #define ne10_swap_ptr(X,Y) \ 63 X = (void *)((intptr_t)(X) ^ (intptr_t)(Y)); \ 64 Y = (void *)((intptr_t)(X) ^ (intptr_t)(Y)); \ 65 X = (void *)((intptr_t)(X) ^ (intptr_t)(Y)); \ 70 #define NE10_S_MUL(X,Y) ((X) * (Y)) 72 #define NE10_CPX_ADD(Z,A,B) \ 78 #define NE10_CPX_SUB(Z,A,B) \ 84 #define NE10_CPX_ADDTO(Z,X) NE10_CPX_ADD(Z,X,Z) 86 #define NE10_CPX_MUL_F32(Z,A,B) \ 88 ne10_float32_t ARBR = A.r * B.r; \ 89 ne10_float32_t AIBI = A.i * B.i; \ 90 ne10_float32_t ARBI = A.r * B.i; \ 91 ne10_float32_t AIBR = A.i * B.r; \ 96 #define NE10_CPX_CONJ_MUL_F32(Z,A,B) \ 98 ne10_float32_t ARBR = A.r * B.r; \ 99 ne10_float32_t AIBI = A.i * B.i; \ 100 ne10_float32_t ARBI = A.r * B.i; \ 101 ne10_float32_t AIBR = A.i * B.r; \ 106 #define NE10_CPX_MUL_TW_F32(Z,TW) \ 108 ne10_fft_cpx_float32_t tmp; \ 109 NE10_CPX_MUL(tmp,Z,TW); \ 113 #define NE10_CPX_MUL_INV_TW_F32(Z,TW) \ 115 ne10_fft_cpx_float32_t tmp; \ 116 NE10_CPX_CONJ_MUL(tmp,Z,TW); \ 120 #endif // NE10_FFT_CPLX_OPS_H #define ne10_swap_ptr(X, Y)