Vector Optimized Library of Kernels  3.1.2
Architecture-tuned implementations of math kernels
volk_32fc_s32fc_multiply_32fc.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2012, 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 
69 #ifndef INCLUDED_volk_32fc_s32fc_multiply_32fc_u_H
70 #define INCLUDED_volk_32fc_s32fc_multiply_32fc_u_H
71 
72 #include <float.h>
73 #include <inttypes.h>
74 #include <stdio.h>
76 #include <volk/volk_complex.h>
77 
78 #if LV_HAVE_AVX && LV_HAVE_FMA
79 
80 static inline void volk_32fc_s32fc_multiply_32fc_u_avx_fma(lv_32fc_t* cVector,
81  const lv_32fc_t* aVector,
82  const lv_32fc_t scalar,
83  unsigned int num_points)
84 {
85  volk_32fc_s32fc_multiply2_32fc_u_avx_fma(cVector, aVector, &scalar, num_points);
86 }
87 #endif /* LV_HAVE_AVX && LV_HAVE_FMA */
88 
89 #ifdef LV_HAVE_AVX
90 
91 static inline void volk_32fc_s32fc_multiply_32fc_u_avx(lv_32fc_t* cVector,
92  const lv_32fc_t* aVector,
93  const lv_32fc_t scalar,
94  unsigned int num_points)
95 {
96  volk_32fc_s32fc_multiply2_32fc_u_avx(cVector, aVector, &scalar, num_points);
97 }
98 #endif /* LV_HAVE_AVX */
99 
100 #ifdef LV_HAVE_SSE3
101 
103  const lv_32fc_t* aVector,
104  const lv_32fc_t scalar,
105  unsigned int num_points)
106 {
107  volk_32fc_s32fc_multiply2_32fc_u_sse3(cVector, aVector, &scalar, num_points);
108 }
109 #endif /* LV_HAVE_SSE */
110 
111 #ifdef LV_HAVE_GENERIC
112 
114  const lv_32fc_t* aVector,
115  const lv_32fc_t scalar,
116  unsigned int num_points)
117 {
118  volk_32fc_s32fc_multiply2_32fc_generic(cVector, aVector, &scalar, num_points);
119 }
120 #endif /* LV_HAVE_GENERIC */
121 
122 
123 #endif /* INCLUDED_volk_32fc_x2_multiply_32fc_u_H */
124 #ifndef INCLUDED_volk_32fc_s32fc_multiply_32fc_a_H
125 #define INCLUDED_volk_32fc_s32fc_multiply_32fc_a_H
126 
127 #include <float.h>
128 #include <inttypes.h>
129 #include <stdio.h>
130 #include <volk/volk_complex.h>
131 
132 #if LV_HAVE_AVX && LV_HAVE_FMA
133 
134 static inline void volk_32fc_s32fc_multiply_32fc_a_avx_fma(lv_32fc_t* cVector,
135  const lv_32fc_t* aVector,
136  const lv_32fc_t scalar,
137  unsigned int num_points)
138 {
139  volk_32fc_s32fc_multiply2_32fc_a_avx_fma(cVector, aVector, &scalar, num_points);
140 }
141 #endif /* LV_HAVE_AVX && LV_HAVE_FMA */
142 
143 
144 #ifdef LV_HAVE_AVX
145 
146 static inline void volk_32fc_s32fc_multiply_32fc_a_avx(lv_32fc_t* cVector,
147  const lv_32fc_t* aVector,
148  const lv_32fc_t scalar,
149  unsigned int num_points)
150 {
151  volk_32fc_s32fc_multiply2_32fc_a_avx(cVector, aVector, &scalar, num_points);
152 }
153 #endif /* LV_HAVE_AVX */
154 
155 #ifdef LV_HAVE_SSE3
156 
158  const lv_32fc_t* aVector,
159  const lv_32fc_t scalar,
160  unsigned int num_points)
161 {
162  volk_32fc_s32fc_multiply2_32fc_a_sse3(cVector, aVector, &scalar, num_points);
163 }
164 #endif /* LV_HAVE_SSE */
165 
166 #ifdef LV_HAVE_NEON
167 
168 static inline void volk_32fc_s32fc_multiply_32fc_neon(lv_32fc_t* cVector,
169  const lv_32fc_t* aVector,
170  const lv_32fc_t scalar,
171  unsigned int num_points)
172 {
173  volk_32fc_s32fc_multiply2_32fc_neon(cVector, aVector, &scalar, num_points);
174 }
175 #endif /* LV_HAVE_NEON */
176 
177 #endif /* INCLUDED_volk_32fc_x2_multiply_32fc_a_H */
static void volk_32fc_s32fc_multiply_32fc_a_sse3(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply_32fc.h:157
static void volk_32fc_s32fc_multiply2_32fc_generic(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t *scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply2_32fc.h:205
static void volk_32fc_s32fc_multiply2_32fc_a_avx(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t *scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply2_32fc.h:291
static void volk_32fc_s32fc_multiply2_32fc_neon(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t *scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply2_32fc.h:379
static void volk_32fc_s32fc_multiply_32fc_generic(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply_32fc.h:113
static void volk_32fc_s32fc_multiply2_32fc_a_sse3(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t *scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply2_32fc.h:335
static void volk_32fc_s32fc_multiply_32fc_u_sse3(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply_32fc.h:102
static void volk_32fc_s32fc_multiply2_32fc_u_avx(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t *scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply2_32fc.h:118
static void volk_32fc_s32fc_multiply2_32fc_u_sse3(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t *scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply2_32fc.h:162
float complex lv_32fc_t
Definition: volk_complex.h:74
static void volk_32fc_s32fc_multiply_32fc_a_avx(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply_32fc.h:146
static void volk_32fc_s32fc_multiply_32fc_neon(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply_32fc.h:168
static void volk_32fc_s32fc_multiply_32fc_u_avx(lv_32fc_t *cVector, const lv_32fc_t *aVector, const lv_32fc_t scalar, unsigned int num_points)
Definition: volk_32fc_s32fc_multiply_32fc.h:91