11 #ifndef INCLUDED_volk_32f_x2_powpuppet_32f_H
12 #define INCLUDED_volk_32f_x2_powpuppet_32f_H
15 #include <volk/volk.h>
18 static inline float*
make_positive(
const float* input,
unsigned int num_points)
21 for (
unsigned int i = 0;
i < num_points;
i++) {
22 output[
i] = fabsf(input[
i]);
30 #if LV_HAVE_AVX2 && LV_HAVE_FMA
31 static inline void volk_32f_x2_powpuppet_32f_a_avx2_fma(
float* cVector,
34 unsigned int num_points)
37 volk_32f_x2_pow_32f_a_avx2_fma(cVector, bVector, aVectorPos, num_points);
43 static inline void volk_32f_x2_powpuppet_32f_a_avx2(
float* cVector,
46 unsigned int num_points)
49 volk_32f_x2_pow_32f_a_avx2(cVector, bVector, aVectorPos, num_points);
55 static inline void volk_32f_x2_powpuppet_32f_a_sse4_1(
float* cVector,
58 unsigned int num_points)
61 volk_32f_x2_pow_32f_a_sse4_1(cVector, bVector, aVectorPos, num_points);
66 #ifdef LV_HAVE_GENERIC
70 unsigned int num_points)
82 unsigned int num_points)
91 static inline void volk_32f_x2_powpuppet_32f_neonv8(
float* cVector,
94 unsigned int num_points)
97 volk_32f_x2_pow_32f_neonv8(cVector, bVector, aVectorPos, num_points);
102 #ifdef LV_HAVE_SSE4_1
103 static inline void volk_32f_x2_powpuppet_32f_u_sse4_1(
float* cVector,
104 const float* bVector,
105 const float* aVector,
106 unsigned int num_points)
109 volk_32f_x2_pow_32f_u_sse4_1(cVector, bVector, aVectorPos, num_points);
114 #if LV_HAVE_AVX2 && LV_HAVE_FMA
115 static inline void volk_32f_x2_powpuppet_32f_u_avx2_fma(
float* cVector,
116 const float* bVector,
117 const float* aVector,
118 unsigned int num_points)
121 volk_32f_x2_pow_32f_u_avx2_fma(cVector, bVector, aVectorPos, num_points);
127 static inline void volk_32f_x2_powpuppet_32f_u_avx2(
float* cVector,
128 const float* bVector,
129 const float* aVector,
130 unsigned int num_points)
133 volk_32f_x2_pow_32f_u_avx2(cVector, bVector, aVectorPos, num_points);
139 static inline void volk_32f_x2_powpuppet_32f_rvv(
float* cVector,
140 const float* bVector,
141 const float* aVector,
142 unsigned int num_points)
145 volk_32f_x2_pow_32f_rvv(cVector, bVector, aVectorPos, num_points);