GNU Radio 3.6.5 C++ API

volk_32fc_s32fc_rotatorpuppet_32fc_a.h

Go to the documentation of this file.
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 */