1 #ifndef INCLUDED_volk_32fc_conjugate_32fc_u_H
2 #define INCLUDED_volk_32fc_conjugate_32fc_u_H
10 #include <pmmintrin.h>
17 static inline void volk_32fc_conjugate_32fc_u_sse3(
lv_32fc_t* cVector,
const lv_32fc_t* aVector,
unsigned int num_points){
18 unsigned int number = 0;
19 const unsigned int halfPoints = num_points / 2;
25 __m128 conjugator = _mm_setr_ps(0, -0.f, 0, -0.f);
27 for(;number < halfPoints; number++){
29 x = _mm_loadu_ps((
float*)a);
31 x = _mm_xor_ps(x, conjugator);
33 _mm_storeu_ps((
float*)c,x);
39 if((num_points % 2) != 0) {
45 #ifdef LV_HAVE_GENERIC
52 static inline void volk_32fc_conjugate_32fc_generic(
lv_32fc_t* cVector,
const lv_32fc_t* aVector,
unsigned int num_points){
55 unsigned int number = 0;
57 for(number = 0; number < num_points; number++){
65 #ifndef INCLUDED_volk_32fc_conjugate_32fc_a_H
66 #define INCLUDED_volk_32fc_conjugate_32fc_a_H
74 #include <pmmintrin.h>
81 static inline void volk_32fc_conjugate_32fc_a_sse3(
lv_32fc_t* cVector,
const lv_32fc_t* aVector,
unsigned int num_points){
82 unsigned int number = 0;
83 const unsigned int halfPoints = num_points / 2;
89 __m128 conjugator = _mm_setr_ps(0, -0.f, 0, -0.f);
91 for(;number < halfPoints; number++){
93 x = _mm_load_ps((
float*)a);
95 x = _mm_xor_ps(x, conjugator);
97 _mm_store_ps((
float*)c,x);
103 if((num_points % 2) != 0) {
109 #ifdef LV_HAVE_GENERIC
116 static inline void volk_32fc_conjugate_32fc_a_generic(
lv_32fc_t* cVector,
const lv_32fc_t* aVector,
unsigned int num_points){
119 unsigned int number = 0;
121 for(number = 0; number < num_points; number++){
#define lv_conj(x)
Definition: volk_complex.h:80
float complex lv_32fc_t
Definition: volk_complex.h:56