Vector Optimized Library of Kernels  3.3.0
Architecture-tuned implementations of math kernels
volk_32fc_s32fc_x2_rotator_32fc.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2012, 2013, 2014 Free Software Foundation, Inc.
4  *
5  * This file is part of VOLK
6  *
7  * SPDX-License-Identifier: LGPL-3.0-or-later
8  */
9 
74 #ifndef INCLUDED_volk_32fc_s32fc_rotator_32fc_a_H
75 #define INCLUDED_volk_32fc_s32fc_rotator_32fc_a_H
76 
77 
78 #include <math.h>
79 #include <stdio.h>
80 #include <stdlib.h>
82 #include <volk/volk_complex.h>
83 
84 
85 #ifdef LV_HAVE_GENERIC
86 
87 static inline void volk_32fc_s32fc_x2_rotator_32fc_generic(lv_32fc_t* outVector,
88  const lv_32fc_t* inVector,
89  const lv_32fc_t phase_inc,
90  lv_32fc_t* phase,
91  unsigned int num_points)
92 {
94  outVector, inVector, &phase_inc, phase, num_points);
95 }
96 
97 #endif /* LV_HAVE_GENERIC */
98 
99 
100 #ifdef LV_HAVE_NEON
101 
102 static inline void volk_32fc_s32fc_x2_rotator_32fc_neon(lv_32fc_t* outVector,
103  const lv_32fc_t* inVector,
104  const lv_32fc_t phase_inc,
105  lv_32fc_t* phase,
106  unsigned int num_points)
107 
108 {
110  outVector, inVector, &phase_inc, phase, num_points);
111 }
112 
113 #endif /* LV_HAVE_NEON */
114 
115 
116 #ifdef LV_HAVE_AVX
117 
118 static inline void volk_32fc_s32fc_x2_rotator_32fc_a_avx(lv_32fc_t* outVector,
119  const lv_32fc_t* inVector,
120  const lv_32fc_t phase_inc,
121  lv_32fc_t* phase,
122  unsigned int num_points)
123 {
125  outVector, inVector, &phase_inc, phase, num_points);
126 }
127 
128 #endif /* LV_HAVE_AVX for aligned */
129 
130 
131 #ifdef LV_HAVE_AVX
132 
133 static inline void volk_32fc_s32fc_x2_rotator_32fc_u_avx(lv_32fc_t* outVector,
134  const lv_32fc_t* inVector,
135  const lv_32fc_t phase_inc,
136  lv_32fc_t* phase,
137  unsigned int num_points)
138 {
140  outVector, inVector, &phase_inc, phase, num_points);
141 }
142 
143 #endif /* LV_HAVE_AVX */
144 
145 #endif /* INCLUDED_volk_32fc_s32fc_rotator_32fc_a_H */
volk_32fc_s32fc_x2_rotator2_32fc_generic
static void volk_32fc_s32fc_x2_rotator2_32fc_generic(lv_32fc_t *outVector, const lv_32fc_t *inVector, const lv_32fc_t *phase_inc, lv_32fc_t *phase, unsigned int num_points)
Definition: volk_32fc_s32fc_x2_rotator2_32fc.h:84
volk_32fc_s32fc_x2_rotator_32fc_generic
static void volk_32fc_s32fc_x2_rotator_32fc_generic(lv_32fc_t *outVector, const lv_32fc_t *inVector, const lv_32fc_t phase_inc, lv_32fc_t *phase, unsigned int num_points)
Definition: volk_32fc_s32fc_x2_rotator_32fc.h:87
volk_32fc_s32fc_x2_rotator2_32fc_neon
static void volk_32fc_s32fc_x2_rotator2_32fc_neon(lv_32fc_t *outVector, const lv_32fc_t *inVector, const lv_32fc_t *phase_inc, lv_32fc_t *phase, unsigned int num_points)
NEON implementation with angle-based resync for numerical stability.
Definition: volk_32fc_s32fc_x2_rotator2_32fc.h:127
volk_32fc_s32fc_x2_rotator_32fc_a_avx
static void volk_32fc_s32fc_x2_rotator_32fc_a_avx(lv_32fc_t *outVector, const lv_32fc_t *inVector, const lv_32fc_t phase_inc, lv_32fc_t *phase, unsigned int num_points)
Definition: volk_32fc_s32fc_x2_rotator_32fc.h:118
lv_32fc_t
float complex lv_32fc_t
Definition: volk_complex.h:74
volk_complex.h
volk_32fc_s32fc_x2_rotator2_32fc_a_avx
static void volk_32fc_s32fc_x2_rotator2_32fc_a_avx(lv_32fc_t *outVector, const lv_32fc_t *inVector, const lv_32fc_t *phase_inc, lv_32fc_t *phase, unsigned int num_points)
AVX implementation with angle-based resync for numerical stability.
Definition: volk_32fc_s32fc_x2_rotator2_32fc.h:278
volk_32fc_s32fc_x2_rotator2_32fc_u_avx
static void volk_32fc_s32fc_x2_rotator2_32fc_u_avx(lv_32fc_t *outVector, const lv_32fc_t *inVector, const lv_32fc_t *phase_inc, lv_32fc_t *phase, unsigned int num_points)
Unaligned AVX implementation with angle-based resync for numerical stability.
Definition: volk_32fc_s32fc_x2_rotator2_32fc.h:425
volk_32fc_s32fc_x2_rotator_32fc_neon
static void volk_32fc_s32fc_x2_rotator_32fc_neon(lv_32fc_t *outVector, const lv_32fc_t *inVector, const lv_32fc_t phase_inc, lv_32fc_t *phase, unsigned int num_points)
Definition: volk_32fc_s32fc_x2_rotator_32fc.h:102
volk_32fc_s32fc_x2_rotator_32fc_u_avx
static void volk_32fc_s32fc_x2_rotator_32fc_u_avx(lv_32fc_t *outVector, const lv_32fc_t *inVector, const lv_32fc_t phase_inc, lv_32fc_t *phase, unsigned int num_points)
Definition: volk_32fc_s32fc_x2_rotator_32fc.h:133
volk_32fc_s32fc_x2_rotator_32fc.h