11#ifndef INCLUDED_volk_32f_x2_powpuppet_32f_H
12#define INCLUDED_volk_32f_x2_powpuppet_32f_H
18static inline float*
make_positive(
const float* input,
unsigned int num_points)
20 float* output = (
float*)
volk_malloc(num_points *
sizeof(
float), volk_get_alignment());
21 for (
unsigned int i = 0; i < num_points; i++) {
22 output[i] = fabsf(input[i]);
30#if LV_HAVE_AVX2 && LV_HAVE_FMA
31static 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);
43static 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);
55static 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);
70 unsigned int num_points)
79static inline void volk_32f_x2_powpuppet_32f_u_sse4_1(
float* cVector,
82 unsigned int num_points)
85 volk_32f_x2_pow_32f_u_sse4_1(cVector, bVector, aVectorPos, num_points);
90#if LV_HAVE_AVX2 && LV_HAVE_FMA
91static inline void volk_32f_x2_powpuppet_32f_u_avx2_fma(
float* cVector,
94 unsigned int num_points)
97 volk_32f_x2_pow_32f_u_avx2_fma(cVector, bVector, aVectorPos, num_points);
103static inline void volk_32f_x2_powpuppet_32f_u_avx2(
float* cVector,
104 const float* bVector,
105 const float* aVector,
106 unsigned int num_points)
109 volk_32f_x2_pow_32f_u_avx2(cVector, bVector, aVectorPos, num_points);