GNU Radio 3.6.5 C++ API
|
00001 #ifndef INCLUDED_volk_32fc_s32fc_rotatorpuppet_32fc_a_H 00002 #define INCLUDED_volk_32fc_s32fc_rotatorpuppet_32fc_a_H 00003 00004 00005 #include <volk/volk_complex.h> 00006 #include <stdio.h> 00007 #include <volk/volk_32fc_s32fc_x2_rotator_32fc_a.h> 00008 00009 00010 #ifdef LV_HAVE_GENERIC 00011 00012 /*! 00013 \brief rotate input vector at fixed rate per sample from initial phase offset 00014 \param outVector The vector where the results will be stored 00015 \param inVector Vector to be rotated 00016 \param phase_inc rotational velocity 00017 \param phase initial phase offset 00018 \param num_points The number of values in inVector to be rotated and stored into cVector 00019 */ 00020 00021 00022 static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_generic(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){ 00023 lv_32fc_t phase[1] = {lv_cmake(.3, 0.95393)}; 00024 volk_32fc_s32fc_x2_rotator_32fc_a_generic(outVector, inVector, phase_inc, phase, num_points); 00025 00026 } 00027 #endif /* LV_HAVE_GENERIC */ 00028 00029 00030 #ifdef LV_HAVE_SSE4_1 00031 #include <smmintrin.h> 00032 00033 static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_sse4_1(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){ 00034 lv_32fc_t phase[1] = {lv_cmake(.3, .95393)}; 00035 volk_32fc_s32fc_x2_rotator_32fc_a_sse4_1(outVector, inVector, phase_inc, phase, num_points); 00036 00037 } 00038 00039 00040 00041 00042 #endif /* LV_HAVE_SSE4_1 */ 00043 00044 #ifdef LV_HAVE_AVX 00045 #include <immintrin.h> 00046 00047 /*! 00048 \brief rotate input vector at fixed rate per sample from initial phase offset 00049 \param outVector The vector where the results will be stored 00050 \param inVector Vector to be rotated 00051 \param phase_inc rotational velocity 00052 \param phase initial phase offset 00053 \param num_points The number of values in inVector to be rotated and stored into cVector 00054 */ 00055 00056 00057 00058 00059 static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_avx(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){ 00060 lv_32fc_t phase[1] = {lv_cmake(.3, .95393)}; 00061 volk_32fc_s32fc_x2_rotator_32fc_a_avx(outVector, inVector, phase_inc, phase, num_points); 00062 00063 } 00064 00065 #endif /* LV_HAVE_AVX */ 00066 00067 00068 00069 00070 00071 00072 00073 00074 #endif /* INCLUDED_volk_32fc_s32fc_rotatorpuppet_32fc_a_H */