GNU Radio 3.7.1 C++ API
|
00001 00002 00003 /* this file was generated by volk template utils, do not edit! */ 00004 00005 /* 00006 * Copyright 2011-2012 Free Software Foundation, Inc. 00007 * 00008 * This file is part of GNU Radio 00009 * 00010 * GNU Radio is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 3, or (at your option) 00013 * any later version. 00014 * 00015 * GNU Radio is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License 00021 * along with GNU Radio; see the file COPYING. If not, write to 00022 * the Free Software Foundation, Inc., 51 Franklin Street, 00023 * Boston, MA 02110-1301, USA. 00024 */ 00025 00026 #ifndef INCLUDED_VOLK_RUNTIME 00027 #define INCLUDED_VOLK_RUNTIME 00028 00029 #include <volk/volk_typedefs.h> 00030 #include <volk/volk_config_fixed.h> 00031 #include <volk/volk_common.h> 00032 #include <volk/volk_complex.h> 00033 00034 #include <stdlib.h> 00035 #include <stdbool.h> 00036 00037 __VOLK_DECL_BEGIN 00038 00039 typedef struct volk_func_desc 00040 { 00041 const char **impl_names; 00042 const int *impl_deps; 00043 const bool *impl_alignment; 00044 const size_t n_impls; 00045 } volk_func_desc_t; 00046 00047 //! Get the machine alignment in bytes 00048 VOLK_API size_t volk_get_alignment(void); 00049 00050 /*! 00051 * The VOLK_OR_PTR macro is a convenience macro 00052 * for checking the alignment of a set of pointers. 00053 * Example usage: 00054 * volk_is_aligned(VOLK_OR_PTR((VOLK_OR_PTR(p0, p1), p2))) 00055 */ 00056 #define VOLK_OR_PTR(ptr0, ptr1) \ 00057 (const void *)(((intptr_t)(ptr0)) | ((intptr_t)(ptr1))) 00058 00059 /*! 00060 * Is the pointer on a machine alignment boundary? 00061 * 00062 * Note: for performance reasons, this function 00063 * is not usable until another volk API call is made 00064 * which will perform certain initialization tasks. 00065 * 00066 * \param ptr the pointer to some memory buffer 00067 * \return 1 for alignment boundary, else 0 00068 */ 00069 VOLK_API bool volk_is_aligned(const void *ptr); 00070 00071 00072 //! A function pointer to the dispatcher implementation 00073 extern VOLK_API p_32fc_index_max_16u volk_32fc_index_max_16u; 00074 00075 //! A function pointer to the fastest aligned implementation 00076 extern VOLK_API p_32fc_index_max_16u volk_32fc_index_max_16u_a; 00077 00078 //! A function pointer to the fastest unaligned implementation 00079 extern VOLK_API p_32fc_index_max_16u volk_32fc_index_max_16u_u; 00080 00081 //! Call into a specific implementation given by name 00082 extern VOLK_API void volk_32fc_index_max_16u_manual(unsigned int* target, lv_32fc_t* src0, unsigned int num_points, const char* impl_name); 00083 00084 //! Get description paramaters for this kernel 00085 extern VOLK_API volk_func_desc_t volk_32fc_index_max_16u_get_func_desc(void); 00086 00087 //! A function pointer to the dispatcher implementation 00088 extern VOLK_API p_32f_index_max_16u volk_32f_index_max_16u; 00089 00090 //! A function pointer to the fastest aligned implementation 00091 extern VOLK_API p_32f_index_max_16u volk_32f_index_max_16u_a; 00092 00093 //! A function pointer to the fastest unaligned implementation 00094 extern VOLK_API p_32f_index_max_16u volk_32f_index_max_16u_u; 00095 00096 //! Call into a specific implementation given by name 00097 extern VOLK_API void volk_32f_index_max_16u_manual(unsigned int* target, const float* src0, unsigned int num_points, const char* impl_name); 00098 00099 //! Get description paramaters for this kernel 00100 extern VOLK_API volk_func_desc_t volk_32f_index_max_16u_get_func_desc(void); 00101 00102 //! A function pointer to the dispatcher implementation 00103 extern VOLK_API p_8ic_s32f_deinterleave_32f_x2 volk_8ic_s32f_deinterleave_32f_x2; 00104 00105 //! A function pointer to the fastest aligned implementation 00106 extern VOLK_API p_8ic_s32f_deinterleave_32f_x2 volk_8ic_s32f_deinterleave_32f_x2_a; 00107 00108 //! A function pointer to the fastest unaligned implementation 00109 extern VOLK_API p_8ic_s32f_deinterleave_32f_x2 volk_8ic_s32f_deinterleave_32f_x2_u; 00110 00111 //! Call into a specific implementation given by name 00112 extern VOLK_API void volk_8ic_s32f_deinterleave_32f_x2_manual(float* iBuffer, float* qBuffer, const lv_8sc_t* complexVector, const float scalar, unsigned int num_points, const char* impl_name); 00113 00114 //! Get description paramaters for this kernel 00115 extern VOLK_API volk_func_desc_t volk_8ic_s32f_deinterleave_32f_x2_get_func_desc(void); 00116 00117 //! A function pointer to the dispatcher implementation 00118 extern VOLK_API p_16ic_s32f_deinterleave_32f_x2 volk_16ic_s32f_deinterleave_32f_x2; 00119 00120 //! A function pointer to the fastest aligned implementation 00121 extern VOLK_API p_16ic_s32f_deinterleave_32f_x2 volk_16ic_s32f_deinterleave_32f_x2_a; 00122 00123 //! A function pointer to the fastest unaligned implementation 00124 extern VOLK_API p_16ic_s32f_deinterleave_32f_x2 volk_16ic_s32f_deinterleave_32f_x2_u; 00125 00126 //! Call into a specific implementation given by name 00127 extern VOLK_API void volk_16ic_s32f_deinterleave_32f_x2_manual(float* iBuffer, float* qBuffer, const lv_16sc_t* complexVector, const float scalar, unsigned int num_points, const char* impl_name); 00128 00129 //! Get description paramaters for this kernel 00130 extern VOLK_API volk_func_desc_t volk_16ic_s32f_deinterleave_32f_x2_get_func_desc(void); 00131 00132 //! A function pointer to the dispatcher implementation 00133 extern VOLK_API p_32fc_32f_multiply_32fc volk_32fc_32f_multiply_32fc; 00134 00135 //! A function pointer to the fastest aligned implementation 00136 extern VOLK_API p_32fc_32f_multiply_32fc volk_32fc_32f_multiply_32fc_a; 00137 00138 //! A function pointer to the fastest unaligned implementation 00139 extern VOLK_API p_32fc_32f_multiply_32fc volk_32fc_32f_multiply_32fc_u; 00140 00141 //! Call into a specific implementation given by name 00142 extern VOLK_API void volk_32fc_32f_multiply_32fc_manual(lv_32fc_t* cVector, const lv_32fc_t* aVector, const float* bVector, unsigned int num_points, const char* impl_name); 00143 00144 //! Get description paramaters for this kernel 00145 extern VOLK_API volk_func_desc_t volk_32fc_32f_multiply_32fc_get_func_desc(void); 00146 00147 //! A function pointer to the dispatcher implementation 00148 extern VOLK_API p_64f_x2_max_64f volk_64f_x2_max_64f; 00149 00150 //! A function pointer to the fastest aligned implementation 00151 extern VOLK_API p_64f_x2_max_64f volk_64f_x2_max_64f_a; 00152 00153 //! A function pointer to the fastest unaligned implementation 00154 extern VOLK_API p_64f_x2_max_64f volk_64f_x2_max_64f_u; 00155 00156 //! Call into a specific implementation given by name 00157 extern VOLK_API void volk_64f_x2_max_64f_manual(double* cVector, const double* aVector, const double* bVector, unsigned int num_points, const char* impl_name); 00158 00159 //! Get description paramaters for this kernel 00160 extern VOLK_API volk_func_desc_t volk_64f_x2_max_64f_get_func_desc(void); 00161 00162 //! A function pointer to the dispatcher implementation 00163 extern VOLK_API p_16i_convert_8i volk_16i_convert_8i; 00164 00165 //! A function pointer to the fastest aligned implementation 00166 extern VOLK_API p_16i_convert_8i volk_16i_convert_8i_a; 00167 00168 //! A function pointer to the fastest unaligned implementation 00169 extern VOLK_API p_16i_convert_8i volk_16i_convert_8i_u; 00170 00171 //! Call into a specific implementation given by name 00172 extern VOLK_API void volk_16i_convert_8i_manual(int8_t* outputVector, const int16_t* inputVector, unsigned int num_points, const char* impl_name); 00173 00174 //! Get description paramaters for this kernel 00175 extern VOLK_API volk_func_desc_t volk_16i_convert_8i_get_func_desc(void); 00176 00177 //! A function pointer to the dispatcher implementation 00178 extern VOLK_API p_32fc_x2_multiply_conjugate_32fc volk_32fc_x2_multiply_conjugate_32fc; 00179 00180 //! A function pointer to the fastest aligned implementation 00181 extern VOLK_API p_32fc_x2_multiply_conjugate_32fc volk_32fc_x2_multiply_conjugate_32fc_a; 00182 00183 //! A function pointer to the fastest unaligned implementation 00184 extern VOLK_API p_32fc_x2_multiply_conjugate_32fc volk_32fc_x2_multiply_conjugate_32fc_u; 00185 00186 //! Call into a specific implementation given by name 00187 extern VOLK_API void volk_32fc_x2_multiply_conjugate_32fc_manual(lv_32fc_t* cVector, const lv_32fc_t* aVector, const lv_32fc_t* bVector, unsigned int num_points, const char* impl_name); 00188 00189 //! Get description paramaters for this kernel 00190 extern VOLK_API volk_func_desc_t volk_32fc_x2_multiply_conjugate_32fc_get_func_desc(void); 00191 00192 //! A function pointer to the dispatcher implementation 00193 extern VOLK_API p_8ic_deinterleave_real_8i volk_8ic_deinterleave_real_8i; 00194 00195 //! A function pointer to the fastest aligned implementation 00196 extern VOLK_API p_8ic_deinterleave_real_8i volk_8ic_deinterleave_real_8i_a; 00197 00198 //! A function pointer to the fastest unaligned implementation 00199 extern VOLK_API p_8ic_deinterleave_real_8i volk_8ic_deinterleave_real_8i_u; 00200 00201 //! Call into a specific implementation given by name 00202 extern VOLK_API void volk_8ic_deinterleave_real_8i_manual(int8_t* iBuffer, const lv_8sc_t* complexVector, unsigned int num_points, const char* impl_name); 00203 00204 //! Get description paramaters for this kernel 00205 extern VOLK_API volk_func_desc_t volk_8ic_deinterleave_real_8i_get_func_desc(void); 00206 00207 //! A function pointer to the dispatcher implementation 00208 extern VOLK_API p_8ic_x2_multiply_conjugate_16ic volk_8ic_x2_multiply_conjugate_16ic; 00209 00210 //! A function pointer to the fastest aligned implementation 00211 extern VOLK_API p_8ic_x2_multiply_conjugate_16ic volk_8ic_x2_multiply_conjugate_16ic_a; 00212 00213 //! A function pointer to the fastest unaligned implementation 00214 extern VOLK_API p_8ic_x2_multiply_conjugate_16ic volk_8ic_x2_multiply_conjugate_16ic_u; 00215 00216 //! Call into a specific implementation given by name 00217 extern VOLK_API void volk_8ic_x2_multiply_conjugate_16ic_manual(lv_16sc_t* cVector, const lv_8sc_t* aVector, const lv_8sc_t* bVector, unsigned int num_points, const char* impl_name); 00218 00219 //! Get description paramaters for this kernel 00220 extern VOLK_API volk_func_desc_t volk_8ic_x2_multiply_conjugate_16ic_get_func_desc(void); 00221 00222 //! A function pointer to the dispatcher implementation 00223 extern VOLK_API p_32fc_s32f_power_32fc volk_32fc_s32f_power_32fc; 00224 00225 //! A function pointer to the fastest aligned implementation 00226 extern VOLK_API p_32fc_s32f_power_32fc volk_32fc_s32f_power_32fc_a; 00227 00228 //! A function pointer to the fastest unaligned implementation 00229 extern VOLK_API p_32fc_s32f_power_32fc volk_32fc_s32f_power_32fc_u; 00230 00231 //! Call into a specific implementation given by name 00232 extern VOLK_API void volk_32fc_s32f_power_32fc_manual(lv_32fc_t* cVector, const lv_32fc_t* aVector, const float power, unsigned int num_points, const char* impl_name); 00233 00234 //! Get description paramaters for this kernel 00235 extern VOLK_API volk_func_desc_t volk_32fc_s32f_power_32fc_get_func_desc(void); 00236 00237 //! A function pointer to the dispatcher implementation 00238 extern VOLK_API p_32f_x2_interleave_32fc volk_32f_x2_interleave_32fc; 00239 00240 //! A function pointer to the fastest aligned implementation 00241 extern VOLK_API p_32f_x2_interleave_32fc volk_32f_x2_interleave_32fc_a; 00242 00243 //! A function pointer to the fastest unaligned implementation 00244 extern VOLK_API p_32f_x2_interleave_32fc volk_32f_x2_interleave_32fc_u; 00245 00246 //! Call into a specific implementation given by name 00247 extern VOLK_API void volk_32f_x2_interleave_32fc_manual(lv_32fc_t* complexVector, const float* iBuffer, const float* qBuffer, unsigned int num_points, const char* impl_name); 00248 00249 //! Get description paramaters for this kernel 00250 extern VOLK_API volk_func_desc_t volk_32f_x2_interleave_32fc_get_func_desc(void); 00251 00252 //! A function pointer to the dispatcher implementation 00253 extern VOLK_API p_16i_max_star_16i volk_16i_max_star_16i; 00254 00255 //! A function pointer to the fastest aligned implementation 00256 extern VOLK_API p_16i_max_star_16i volk_16i_max_star_16i_a; 00257 00258 //! A function pointer to the fastest unaligned implementation 00259 extern VOLK_API p_16i_max_star_16i volk_16i_max_star_16i_u; 00260 00261 //! Call into a specific implementation given by name 00262 extern VOLK_API void volk_16i_max_star_16i_manual(short* target, short* src0, unsigned int num_points, const char* impl_name); 00263 00264 //! Get description paramaters for this kernel 00265 extern VOLK_API volk_func_desc_t volk_16i_max_star_16i_get_func_desc(void); 00266 00267 //! A function pointer to the dispatcher implementation 00268 extern VOLK_API p_16ic_deinterleave_real_16i volk_16ic_deinterleave_real_16i; 00269 00270 //! A function pointer to the fastest aligned implementation 00271 extern VOLK_API p_16ic_deinterleave_real_16i volk_16ic_deinterleave_real_16i_a; 00272 00273 //! A function pointer to the fastest unaligned implementation 00274 extern VOLK_API p_16ic_deinterleave_real_16i volk_16ic_deinterleave_real_16i_u; 00275 00276 //! Call into a specific implementation given by name 00277 extern VOLK_API void volk_16ic_deinterleave_real_16i_manual(int16_t* iBuffer, const lv_16sc_t* complexVector, unsigned int num_points, const char* impl_name); 00278 00279 //! Get description paramaters for this kernel 00280 extern VOLK_API volk_func_desc_t volk_16ic_deinterleave_real_16i_get_func_desc(void); 00281 00282 //! A function pointer to the dispatcher implementation 00283 extern VOLK_API p_16i_x5_add_quad_16i_x4 volk_16i_x5_add_quad_16i_x4; 00284 00285 //! A function pointer to the fastest aligned implementation 00286 extern VOLK_API p_16i_x5_add_quad_16i_x4 volk_16i_x5_add_quad_16i_x4_a; 00287 00288 //! A function pointer to the fastest unaligned implementation 00289 extern VOLK_API p_16i_x5_add_quad_16i_x4 volk_16i_x5_add_quad_16i_x4_u; 00290 00291 //! Call into a specific implementation given by name 00292 extern VOLK_API void volk_16i_x5_add_quad_16i_x4_manual(short* target0, short* target1, short* target2, short* target3, short* src0, short* src1, short* src2, short* src3, short* src4, unsigned int num_points, const char* impl_name); 00293 00294 //! Get description paramaters for this kernel 00295 extern VOLK_API volk_func_desc_t volk_16i_x5_add_quad_16i_x4_get_func_desc(void); 00296 00297 //! A function pointer to the dispatcher implementation 00298 extern VOLK_API p_32fc_s32fc_x2_rotator_32fc volk_32fc_s32fc_x2_rotator_32fc; 00299 00300 //! A function pointer to the fastest aligned implementation 00301 extern VOLK_API p_32fc_s32fc_x2_rotator_32fc volk_32fc_s32fc_x2_rotator_32fc_a; 00302 00303 //! A function pointer to the fastest unaligned implementation 00304 extern VOLK_API p_32fc_s32fc_x2_rotator_32fc volk_32fc_s32fc_x2_rotator_32fc_u; 00305 00306 //! Call into a specific implementation given by name 00307 extern VOLK_API void volk_32fc_s32fc_x2_rotator_32fc_manual(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, lv_32fc_t* phase, unsigned int num_points, const char* impl_name); 00308 00309 //! Get description paramaters for this kernel 00310 extern VOLK_API volk_func_desc_t volk_32fc_s32fc_x2_rotator_32fc_get_func_desc(void); 00311 00312 //! A function pointer to the dispatcher implementation 00313 extern VOLK_API p_32u_popcnt volk_32u_popcnt; 00314 00315 //! A function pointer to the fastest aligned implementation 00316 extern VOLK_API p_32u_popcnt volk_32u_popcnt_a; 00317 00318 //! A function pointer to the fastest unaligned implementation 00319 extern VOLK_API p_32u_popcnt volk_32u_popcnt_u; 00320 00321 //! Call into a specific implementation given by name 00322 extern VOLK_API void volk_32u_popcnt_manual(uint32_t* ret, const uint32_t value, const char* impl_name); 00323 00324 //! Get description paramaters for this kernel 00325 extern VOLK_API volk_func_desc_t volk_32u_popcnt_get_func_desc(void); 00326 00327 //! A function pointer to the dispatcher implementation 00328 extern VOLK_API p_16i_branch_4_state_8 volk_16i_branch_4_state_8; 00329 00330 //! A function pointer to the fastest aligned implementation 00331 extern VOLK_API p_16i_branch_4_state_8 volk_16i_branch_4_state_8_a; 00332 00333 //! A function pointer to the fastest unaligned implementation 00334 extern VOLK_API p_16i_branch_4_state_8 volk_16i_branch_4_state_8_u; 00335 00336 //! Call into a specific implementation given by name 00337 extern VOLK_API void volk_16i_branch_4_state_8_manual(short* target, short* src0, char** permuters, short* cntl2, short* cntl3, short* scalars, const char* impl_name); 00338 00339 //! Get description paramaters for this kernel 00340 extern VOLK_API volk_func_desc_t volk_16i_branch_4_state_8_get_func_desc(void); 00341 00342 //! A function pointer to the dispatcher implementation 00343 extern VOLK_API p_32i_x2_and_32i volk_32i_x2_and_32i; 00344 00345 //! A function pointer to the fastest aligned implementation 00346 extern VOLK_API p_32i_x2_and_32i volk_32i_x2_and_32i_a; 00347 00348 //! A function pointer to the fastest unaligned implementation 00349 extern VOLK_API p_32i_x2_and_32i volk_32i_x2_and_32i_u; 00350 00351 //! Call into a specific implementation given by name 00352 extern VOLK_API void volk_32i_x2_and_32i_manual(int32_t* cVector, const int32_t* aVector, const int32_t* bVector, unsigned int num_points, const char* impl_name); 00353 00354 //! Get description paramaters for this kernel 00355 extern VOLK_API volk_func_desc_t volk_32i_x2_and_32i_get_func_desc(void); 00356 00357 //! A function pointer to the dispatcher implementation 00358 extern VOLK_API p_32fc_magnitude_squared_32f volk_32fc_magnitude_squared_32f; 00359 00360 //! A function pointer to the fastest aligned implementation 00361 extern VOLK_API p_32fc_magnitude_squared_32f volk_32fc_magnitude_squared_32f_a; 00362 00363 //! A function pointer to the fastest unaligned implementation 00364 extern VOLK_API p_32fc_magnitude_squared_32f volk_32fc_magnitude_squared_32f_u; 00365 00366 //! Call into a specific implementation given by name 00367 extern VOLK_API void volk_32fc_magnitude_squared_32f_manual(float* magnitudeVector, const lv_32fc_t* complexVector, unsigned int num_points, const char* impl_name); 00368 00369 //! Get description paramaters for this kernel 00370 extern VOLK_API volk_func_desc_t volk_32fc_magnitude_squared_32f_get_func_desc(void); 00371 00372 //! A function pointer to the dispatcher implementation 00373 extern VOLK_API p_32fc_deinterleave_real_64f volk_32fc_deinterleave_real_64f; 00374 00375 //! A function pointer to the fastest aligned implementation 00376 extern VOLK_API p_32fc_deinterleave_real_64f volk_32fc_deinterleave_real_64f_a; 00377 00378 //! A function pointer to the fastest unaligned implementation 00379 extern VOLK_API p_32fc_deinterleave_real_64f volk_32fc_deinterleave_real_64f_u; 00380 00381 //! Call into a specific implementation given by name 00382 extern VOLK_API void volk_32fc_deinterleave_real_64f_manual(double* iBuffer, const lv_32fc_t* complexVector, unsigned int num_points, const char* impl_name); 00383 00384 //! Get description paramaters for this kernel 00385 extern VOLK_API volk_func_desc_t volk_32fc_deinterleave_real_64f_get_func_desc(void); 00386 00387 //! A function pointer to the dispatcher implementation 00388 extern VOLK_API p_32f_s32f_normalize volk_32f_s32f_normalize; 00389 00390 //! A function pointer to the fastest aligned implementation 00391 extern VOLK_API p_32f_s32f_normalize volk_32f_s32f_normalize_a; 00392 00393 //! A function pointer to the fastest unaligned implementation 00394 extern VOLK_API p_32f_s32f_normalize volk_32f_s32f_normalize_u; 00395 00396 //! Call into a specific implementation given by name 00397 extern VOLK_API void volk_32f_s32f_normalize_manual(float* vecBuffer, const float scalar, unsigned int num_points, const char* impl_name); 00398 00399 //! Get description paramaters for this kernel 00400 extern VOLK_API volk_func_desc_t volk_32f_s32f_normalize_get_func_desc(void); 00401 00402 //! A function pointer to the dispatcher implementation 00403 extern VOLK_API p_64u_byteswap volk_64u_byteswap; 00404 00405 //! A function pointer to the fastest aligned implementation 00406 extern VOLK_API p_64u_byteswap volk_64u_byteswap_a; 00407 00408 //! A function pointer to the fastest unaligned implementation 00409 extern VOLK_API p_64u_byteswap volk_64u_byteswap_u; 00410 00411 //! Call into a specific implementation given by name 00412 extern VOLK_API void volk_64u_byteswap_manual(uint64_t* intsToSwap, unsigned int num_points, const char* impl_name); 00413 00414 //! Get description paramaters for this kernel 00415 extern VOLK_API volk_func_desc_t volk_64u_byteswap_get_func_desc(void); 00416 00417 //! A function pointer to the dispatcher implementation 00418 extern VOLK_API p_64f_convert_32f volk_64f_convert_32f; 00419 00420 //! A function pointer to the fastest aligned implementation 00421 extern VOLK_API p_64f_convert_32f volk_64f_convert_32f_a; 00422 00423 //! A function pointer to the fastest unaligned implementation 00424 extern VOLK_API p_64f_convert_32f volk_64f_convert_32f_u; 00425 00426 //! Call into a specific implementation given by name 00427 extern VOLK_API void volk_64f_convert_32f_manual(float* outputVector, const double* inputVector, unsigned int num_points, const char* impl_name); 00428 00429 //! Get description paramaters for this kernel 00430 extern VOLK_API volk_func_desc_t volk_64f_convert_32f_get_func_desc(void); 00431 00432 //! A function pointer to the dispatcher implementation 00433 extern VOLK_API p_32f_convert_64f volk_32f_convert_64f; 00434 00435 //! A function pointer to the fastest aligned implementation 00436 extern VOLK_API p_32f_convert_64f volk_32f_convert_64f_a; 00437 00438 //! A function pointer to the fastest unaligned implementation 00439 extern VOLK_API p_32f_convert_64f volk_32f_convert_64f_u; 00440 00441 //! Call into a specific implementation given by name 00442 extern VOLK_API void volk_32f_convert_64f_manual(double* outputVector, const float* inputVector, unsigned int num_points, const char* impl_name); 00443 00444 //! Get description paramaters for this kernel 00445 extern VOLK_API volk_func_desc_t volk_32f_convert_64f_get_func_desc(void); 00446 00447 //! A function pointer to the dispatcher implementation 00448 extern VOLK_API p_8i_convert_16i volk_8i_convert_16i; 00449 00450 //! A function pointer to the fastest aligned implementation 00451 extern VOLK_API p_8i_convert_16i volk_8i_convert_16i_a; 00452 00453 //! A function pointer to the fastest unaligned implementation 00454 extern VOLK_API p_8i_convert_16i volk_8i_convert_16i_u; 00455 00456 //! Call into a specific implementation given by name 00457 extern VOLK_API void volk_8i_convert_16i_manual(int16_t* outputVector, const int8_t* inputVector, unsigned int num_points, const char* impl_name); 00458 00459 //! Get description paramaters for this kernel 00460 extern VOLK_API volk_func_desc_t volk_8i_convert_16i_get_func_desc(void); 00461 00462 //! A function pointer to the dispatcher implementation 00463 extern VOLK_API p_32f_sqrt_32f volk_32f_sqrt_32f; 00464 00465 //! A function pointer to the fastest aligned implementation 00466 extern VOLK_API p_32f_sqrt_32f volk_32f_sqrt_32f_a; 00467 00468 //! A function pointer to the fastest unaligned implementation 00469 extern VOLK_API p_32f_sqrt_32f volk_32f_sqrt_32f_u; 00470 00471 //! Call into a specific implementation given by name 00472 extern VOLK_API void volk_32f_sqrt_32f_manual(float* cVector, const float* aVector, unsigned int num_points, const char* impl_name); 00473 00474 //! Get description paramaters for this kernel 00475 extern VOLK_API volk_func_desc_t volk_32f_sqrt_32f_get_func_desc(void); 00476 00477 //! A function pointer to the dispatcher implementation 00478 extern VOLK_API p_32f_s32f_convert_16i volk_32f_s32f_convert_16i; 00479 00480 //! A function pointer to the fastest aligned implementation 00481 extern VOLK_API p_32f_s32f_convert_16i volk_32f_s32f_convert_16i_a; 00482 00483 //! A function pointer to the fastest unaligned implementation 00484 extern VOLK_API p_32f_s32f_convert_16i volk_32f_s32f_convert_16i_u; 00485 00486 //! Call into a specific implementation given by name 00487 extern VOLK_API void volk_32f_s32f_convert_16i_manual(int16_t* outputVector, const float* inputVector, const float scalar, unsigned int num_points, const char* impl_name); 00488 00489 //! Get description paramaters for this kernel 00490 extern VOLK_API volk_func_desc_t volk_32f_s32f_convert_16i_get_func_desc(void); 00491 00492 //! A function pointer to the dispatcher implementation 00493 extern VOLK_API p_16i_x4_quad_max_star_16i volk_16i_x4_quad_max_star_16i; 00494 00495 //! A function pointer to the fastest aligned implementation 00496 extern VOLK_API p_16i_x4_quad_max_star_16i volk_16i_x4_quad_max_star_16i_a; 00497 00498 //! A function pointer to the fastest unaligned implementation 00499 extern VOLK_API p_16i_x4_quad_max_star_16i volk_16i_x4_quad_max_star_16i_u; 00500 00501 //! Call into a specific implementation given by name 00502 extern VOLK_API void volk_16i_x4_quad_max_star_16i_manual(short* target, short* src0, short* src1, short* src2, short* src3, unsigned int num_points, const char* impl_name); 00503 00504 //! Get description paramaters for this kernel 00505 extern VOLK_API volk_func_desc_t volk_16i_x4_quad_max_star_16i_get_func_desc(void); 00506 00507 //! A function pointer to the dispatcher implementation 00508 extern VOLK_API p_32f_x2_divide_32f volk_32f_x2_divide_32f; 00509 00510 //! A function pointer to the fastest aligned implementation 00511 extern VOLK_API p_32f_x2_divide_32f volk_32f_x2_divide_32f_a; 00512 00513 //! A function pointer to the fastest unaligned implementation 00514 extern VOLK_API p_32f_x2_divide_32f volk_32f_x2_divide_32f_u; 00515 00516 //! Call into a specific implementation given by name 00517 extern VOLK_API void volk_32f_x2_divide_32f_manual(float* cVector, const float* aVector, const float* bVector, unsigned int num_points, const char* impl_name); 00518 00519 //! Get description paramaters for this kernel 00520 extern VOLK_API volk_func_desc_t volk_32f_x2_divide_32f_get_func_desc(void); 00521 00522 //! A function pointer to the dispatcher implementation 00523 extern VOLK_API p_16i_max_star_horizontal_16i volk_16i_max_star_horizontal_16i; 00524 00525 //! A function pointer to the fastest aligned implementation 00526 extern VOLK_API p_16i_max_star_horizontal_16i volk_16i_max_star_horizontal_16i_a; 00527 00528 //! A function pointer to the fastest unaligned implementation 00529 extern VOLK_API p_16i_max_star_horizontal_16i volk_16i_max_star_horizontal_16i_u; 00530 00531 //! Call into a specific implementation given by name 00532 extern VOLK_API void volk_16i_max_star_horizontal_16i_manual(int16_t* target, int16_t* src0, unsigned int num_points, const char* impl_name); 00533 00534 //! Get description paramaters for this kernel 00535 extern VOLK_API volk_func_desc_t volk_16i_max_star_horizontal_16i_get_func_desc(void); 00536 00537 //! A function pointer to the dispatcher implementation 00538 extern VOLK_API p_32f_s32f_stddev_32f volk_32f_s32f_stddev_32f; 00539 00540 //! A function pointer to the fastest aligned implementation 00541 extern VOLK_API p_32f_s32f_stddev_32f volk_32f_s32f_stddev_32f_a; 00542 00543 //! A function pointer to the fastest unaligned implementation 00544 extern VOLK_API p_32f_s32f_stddev_32f volk_32f_s32f_stddev_32f_u; 00545 00546 //! Call into a specific implementation given by name 00547 extern VOLK_API void volk_32f_s32f_stddev_32f_manual(float* stddev, const float* inputBuffer, const float mean, unsigned int num_points, const char* impl_name); 00548 00549 //! Get description paramaters for this kernel 00550 extern VOLK_API volk_func_desc_t volk_32f_s32f_stddev_32f_get_func_desc(void); 00551 00552 //! A function pointer to the dispatcher implementation 00553 extern VOLK_API p_16i_permute_and_scalar_add volk_16i_permute_and_scalar_add; 00554 00555 //! A function pointer to the fastest aligned implementation 00556 extern VOLK_API p_16i_permute_and_scalar_add volk_16i_permute_and_scalar_add_a; 00557 00558 //! A function pointer to the fastest unaligned implementation 00559 extern VOLK_API p_16i_permute_and_scalar_add volk_16i_permute_and_scalar_add_u; 00560 00561 //! Call into a specific implementation given by name 00562 extern VOLK_API void volk_16i_permute_and_scalar_add_manual(short* target, short* src0, short* permute_indexes, short* cntl0, short* cntl1, short* cntl2, short* cntl3, short* scalars, unsigned int num_points, const char* impl_name); 00563 00564 //! Get description paramaters for this kernel 00565 extern VOLK_API volk_func_desc_t volk_16i_permute_and_scalar_add_get_func_desc(void); 00566 00567 //! A function pointer to the dispatcher implementation 00568 extern VOLK_API p_16ic_s32f_deinterleave_real_32f volk_16ic_s32f_deinterleave_real_32f; 00569 00570 //! A function pointer to the fastest aligned implementation 00571 extern VOLK_API p_16ic_s32f_deinterleave_real_32f volk_16ic_s32f_deinterleave_real_32f_a; 00572 00573 //! A function pointer to the fastest unaligned implementation 00574 extern VOLK_API p_16ic_s32f_deinterleave_real_32f volk_16ic_s32f_deinterleave_real_32f_u; 00575 00576 //! Call into a specific implementation given by name 00577 extern VOLK_API void volk_16ic_s32f_deinterleave_real_32f_manual(float* iBuffer, const lv_16sc_t* complexVector, const float scalar, unsigned int num_points, const char* impl_name); 00578 00579 //! Get description paramaters for this kernel 00580 extern VOLK_API volk_func_desc_t volk_16ic_s32f_deinterleave_real_32f_get_func_desc(void); 00581 00582 //! A function pointer to the dispatcher implementation 00583 extern VOLK_API p_32fc_magnitude_32f volk_32fc_magnitude_32f; 00584 00585 //! A function pointer to the fastest aligned implementation 00586 extern VOLK_API p_32fc_magnitude_32f volk_32fc_magnitude_32f_a; 00587 00588 //! A function pointer to the fastest unaligned implementation 00589 extern VOLK_API p_32fc_magnitude_32f volk_32fc_magnitude_32f_u; 00590 00591 //! Call into a specific implementation given by name 00592 extern VOLK_API void volk_32fc_magnitude_32f_manual(float* magnitudeVector, const lv_32fc_t* complexVector, unsigned int num_points, const char* impl_name); 00593 00594 //! Get description paramaters for this kernel 00595 extern VOLK_API volk_func_desc_t volk_32fc_magnitude_32f_get_func_desc(void); 00596 00597 //! A function pointer to the dispatcher implementation 00598 extern VOLK_API p_32f_s32f_convert_8i volk_32f_s32f_convert_8i; 00599 00600 //! A function pointer to the fastest aligned implementation 00601 extern VOLK_API p_32f_s32f_convert_8i volk_32f_s32f_convert_8i_a; 00602 00603 //! A function pointer to the fastest unaligned implementation 00604 extern VOLK_API p_32f_s32f_convert_8i volk_32f_s32f_convert_8i_u; 00605 00606 //! Call into a specific implementation given by name 00607 extern VOLK_API void volk_32f_s32f_convert_8i_manual(int8_t* outputVector, const float* inputVector, const float scalar, unsigned int num_points, const char* impl_name); 00608 00609 //! Get description paramaters for this kernel 00610 extern VOLK_API volk_func_desc_t volk_32f_s32f_convert_8i_get_func_desc(void); 00611 00612 //! A function pointer to the dispatcher implementation 00613 extern VOLK_API p_32f_s32f_power_32f volk_32f_s32f_power_32f; 00614 00615 //! A function pointer to the fastest aligned implementation 00616 extern VOLK_API p_32f_s32f_power_32f volk_32f_s32f_power_32f_a; 00617 00618 //! A function pointer to the fastest unaligned implementation 00619 extern VOLK_API p_32f_s32f_power_32f volk_32f_s32f_power_32f_u; 00620 00621 //! Call into a specific implementation given by name 00622 extern VOLK_API void volk_32f_s32f_power_32f_manual(float* cVector, const float* aVector, const float power, unsigned int num_points, const char* impl_name); 00623 00624 //! Get description paramaters for this kernel 00625 extern VOLK_API volk_func_desc_t volk_32f_s32f_power_32f_get_func_desc(void); 00626 00627 //! A function pointer to the dispatcher implementation 00628 extern VOLK_API p_32fc_x2_dot_prod_32fc volk_32fc_x2_dot_prod_32fc; 00629 00630 //! A function pointer to the fastest aligned implementation 00631 extern VOLK_API p_32fc_x2_dot_prod_32fc volk_32fc_x2_dot_prod_32fc_a; 00632 00633 //! A function pointer to the fastest unaligned implementation 00634 extern VOLK_API p_32fc_x2_dot_prod_32fc volk_32fc_x2_dot_prod_32fc_u; 00635 00636 //! Call into a specific implementation given by name 00637 extern VOLK_API void volk_32fc_x2_dot_prod_32fc_manual(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points, const char* impl_name); 00638 00639 //! Get description paramaters for this kernel 00640 extern VOLK_API volk_func_desc_t volk_32fc_x2_dot_prod_32fc_get_func_desc(void); 00641 00642 //! A function pointer to the dispatcher implementation 00643 extern VOLK_API p_32fc_deinterleave_64f_x2 volk_32fc_deinterleave_64f_x2; 00644 00645 //! A function pointer to the fastest aligned implementation 00646 extern VOLK_API p_32fc_deinterleave_64f_x2 volk_32fc_deinterleave_64f_x2_a; 00647 00648 //! A function pointer to the fastest unaligned implementation 00649 extern VOLK_API p_32fc_deinterleave_64f_x2 volk_32fc_deinterleave_64f_x2_u; 00650 00651 //! Call into a specific implementation given by name 00652 extern VOLK_API void volk_32fc_deinterleave_64f_x2_manual(double* iBuffer, double* qBuffer, const lv_32fc_t* complexVector, unsigned int num_points, const char* impl_name); 00653 00654 //! Get description paramaters for this kernel 00655 extern VOLK_API volk_func_desc_t volk_32fc_deinterleave_64f_x2_get_func_desc(void); 00656 00657 //! A function pointer to the dispatcher implementation 00658 extern VOLK_API p_32f_x3_sum_of_poly_32f volk_32f_x3_sum_of_poly_32f; 00659 00660 //! A function pointer to the fastest aligned implementation 00661 extern VOLK_API p_32f_x3_sum_of_poly_32f volk_32f_x3_sum_of_poly_32f_a; 00662 00663 //! A function pointer to the fastest unaligned implementation 00664 extern VOLK_API p_32f_x3_sum_of_poly_32f volk_32f_x3_sum_of_poly_32f_u; 00665 00666 //! Call into a specific implementation given by name 00667 extern VOLK_API void volk_32f_x3_sum_of_poly_32f_manual(float* target, float* src0, float* center_point_array, float* cutoff, unsigned int num_points, const char* impl_name); 00668 00669 //! Get description paramaters for this kernel 00670 extern VOLK_API volk_func_desc_t volk_32f_x3_sum_of_poly_32f_get_func_desc(void); 00671 00672 //! A function pointer to the dispatcher implementation 00673 extern VOLK_API p_32f_x2_dot_prod_32f volk_32f_x2_dot_prod_32f; 00674 00675 //! A function pointer to the fastest aligned implementation 00676 extern VOLK_API p_32f_x2_dot_prod_32f volk_32f_x2_dot_prod_32f_a; 00677 00678 //! A function pointer to the fastest unaligned implementation 00679 extern VOLK_API p_32f_x2_dot_prod_32f volk_32f_x2_dot_prod_32f_u; 00680 00681 //! Call into a specific implementation given by name 00682 extern VOLK_API void volk_32f_x2_dot_prod_32f_manual(float * result, const float * input, const float * taps, unsigned int num_points, const char* impl_name); 00683 00684 //! Get description paramaters for this kernel 00685 extern VOLK_API volk_func_desc_t volk_32f_x2_dot_prod_32f_get_func_desc(void); 00686 00687 //! A function pointer to the dispatcher implementation 00688 extern VOLK_API p_32f_x2_multiply_32f volk_32f_x2_multiply_32f; 00689 00690 //! A function pointer to the fastest aligned implementation 00691 extern VOLK_API p_32f_x2_multiply_32f volk_32f_x2_multiply_32f_a; 00692 00693 //! A function pointer to the fastest unaligned implementation 00694 extern VOLK_API p_32f_x2_multiply_32f volk_32f_x2_multiply_32f_u; 00695 00696 //! Call into a specific implementation given by name 00697 extern VOLK_API void volk_32f_x2_multiply_32f_manual(float* cVector, const float* aVector, const float* bVector, unsigned int num_points, const char* impl_name); 00698 00699 //! Get description paramaters for this kernel 00700 extern VOLK_API volk_func_desc_t volk_32f_x2_multiply_32f_get_func_desc(void); 00701 00702 //! A function pointer to the dispatcher implementation 00703 extern VOLK_API p_32f_s32f_convert_32i volk_32f_s32f_convert_32i; 00704 00705 //! A function pointer to the fastest aligned implementation 00706 extern VOLK_API p_32f_s32f_convert_32i volk_32f_s32f_convert_32i_a; 00707 00708 //! A function pointer to the fastest unaligned implementation 00709 extern VOLK_API p_32f_s32f_convert_32i volk_32f_s32f_convert_32i_u; 00710 00711 //! Call into a specific implementation given by name 00712 extern VOLK_API void volk_32f_s32f_convert_32i_manual(int32_t* outputVector, const float* inputVector, const float scalar, unsigned int num_points, const char* impl_name); 00713 00714 //! Get description paramaters for this kernel 00715 extern VOLK_API volk_func_desc_t volk_32f_s32f_convert_32i_get_func_desc(void); 00716 00717 //! A function pointer to the dispatcher implementation 00718 extern VOLK_API p_32fc_deinterleave_real_32f volk_32fc_deinterleave_real_32f; 00719 00720 //! A function pointer to the fastest aligned implementation 00721 extern VOLK_API p_32fc_deinterleave_real_32f volk_32fc_deinterleave_real_32f_a; 00722 00723 //! A function pointer to the fastest unaligned implementation 00724 extern VOLK_API p_32fc_deinterleave_real_32f volk_32fc_deinterleave_real_32f_u; 00725 00726 //! Call into a specific implementation given by name 00727 extern VOLK_API void volk_32fc_deinterleave_real_32f_manual(float* iBuffer, const lv_32fc_t* complexVector, unsigned int num_points, const char* impl_name); 00728 00729 //! Get description paramaters for this kernel 00730 extern VOLK_API volk_func_desc_t volk_32fc_deinterleave_real_32f_get_func_desc(void); 00731 00732 //! A function pointer to the dispatcher implementation 00733 extern VOLK_API p_32fc_s32f_power_spectrum_32f volk_32fc_s32f_power_spectrum_32f; 00734 00735 //! A function pointer to the fastest aligned implementation 00736 extern VOLK_API p_32fc_s32f_power_spectrum_32f volk_32fc_s32f_power_spectrum_32f_a; 00737 00738 //! A function pointer to the fastest unaligned implementation 00739 extern VOLK_API p_32fc_s32f_power_spectrum_32f volk_32fc_s32f_power_spectrum_32f_u; 00740 00741 //! Call into a specific implementation given by name 00742 extern VOLK_API void volk_32fc_s32f_power_spectrum_32f_manual(float* logPowerOutput, const lv_32fc_t* complexFFTInput, const float normalizationFactor, unsigned int num_points, const char* impl_name); 00743 00744 //! Get description paramaters for this kernel 00745 extern VOLK_API volk_func_desc_t volk_32fc_s32f_power_spectrum_32f_get_func_desc(void); 00746 00747 //! A function pointer to the dispatcher implementation 00748 extern VOLK_API p_32fc_s32f_magnitude_16i volk_32fc_s32f_magnitude_16i; 00749 00750 //! A function pointer to the fastest aligned implementation 00751 extern VOLK_API p_32fc_s32f_magnitude_16i volk_32fc_s32f_magnitude_16i_a; 00752 00753 //! A function pointer to the fastest unaligned implementation 00754 extern VOLK_API p_32fc_s32f_magnitude_16i volk_32fc_s32f_magnitude_16i_u; 00755 00756 //! Call into a specific implementation given by name 00757 extern VOLK_API void volk_32fc_s32f_magnitude_16i_manual(int16_t* magnitudeVector, const lv_32fc_t* complexVector, const float scalar, unsigned int num_points, const char* impl_name); 00758 00759 //! Get description paramaters for this kernel 00760 extern VOLK_API volk_func_desc_t volk_32fc_s32f_magnitude_16i_get_func_desc(void); 00761 00762 //! A function pointer to the dispatcher implementation 00763 extern VOLK_API p_32fc_s32f_deinterleave_real_16i volk_32fc_s32f_deinterleave_real_16i; 00764 00765 //! A function pointer to the fastest aligned implementation 00766 extern VOLK_API p_32fc_s32f_deinterleave_real_16i volk_32fc_s32f_deinterleave_real_16i_a; 00767 00768 //! A function pointer to the fastest unaligned implementation 00769 extern VOLK_API p_32fc_s32f_deinterleave_real_16i volk_32fc_s32f_deinterleave_real_16i_u; 00770 00771 //! Call into a specific implementation given by name 00772 extern VOLK_API void volk_32fc_s32f_deinterleave_real_16i_manual(int16_t* iBuffer, const lv_32fc_t* complexVector, const float scalar, unsigned int num_points, const char* impl_name); 00773 00774 //! Get description paramaters for this kernel 00775 extern VOLK_API volk_func_desc_t volk_32fc_s32f_deinterleave_real_16i_get_func_desc(void); 00776 00777 //! A function pointer to the dispatcher implementation 00778 extern VOLK_API p_32f_x2_min_32f volk_32f_x2_min_32f; 00779 00780 //! A function pointer to the fastest aligned implementation 00781 extern VOLK_API p_32f_x2_min_32f volk_32f_x2_min_32f_a; 00782 00783 //! A function pointer to the fastest unaligned implementation 00784 extern VOLK_API p_32f_x2_min_32f volk_32f_x2_min_32f_u; 00785 00786 //! Call into a specific implementation given by name 00787 extern VOLK_API void volk_32f_x2_min_32f_manual(float* cVector, const float* aVector, const float* bVector, unsigned int num_points, const char* impl_name); 00788 00789 //! Get description paramaters for this kernel 00790 extern VOLK_API volk_func_desc_t volk_32f_x2_min_32f_get_func_desc(void); 00791 00792 //! A function pointer to the dispatcher implementation 00793 extern VOLK_API p_32f_accumulator_s32f volk_32f_accumulator_s32f; 00794 00795 //! A function pointer to the fastest aligned implementation 00796 extern VOLK_API p_32f_accumulator_s32f volk_32f_accumulator_s32f_a; 00797 00798 //! A function pointer to the fastest unaligned implementation 00799 extern VOLK_API p_32f_accumulator_s32f volk_32f_accumulator_s32f_u; 00800 00801 //! Call into a specific implementation given by name 00802 extern VOLK_API void volk_32f_accumulator_s32f_manual(float* result, const float* inputBuffer, unsigned int num_points, const char* impl_name); 00803 00804 //! Get description paramaters for this kernel 00805 extern VOLK_API volk_func_desc_t volk_32f_accumulator_s32f_get_func_desc(void); 00806 00807 //! A function pointer to the dispatcher implementation 00808 extern VOLK_API p_32fc_s32fc_multiply_32fc volk_32fc_s32fc_multiply_32fc; 00809 00810 //! A function pointer to the fastest aligned implementation 00811 extern VOLK_API p_32fc_s32fc_multiply_32fc volk_32fc_s32fc_multiply_32fc_a; 00812 00813 //! A function pointer to the fastest unaligned implementation 00814 extern VOLK_API p_32fc_s32fc_multiply_32fc volk_32fc_s32fc_multiply_32fc_u; 00815 00816 //! Call into a specific implementation given by name 00817 extern VOLK_API void volk_32fc_s32fc_multiply_32fc_manual(lv_32fc_t* cVector, const lv_32fc_t* aVector, const lv_32fc_t scalar, unsigned int num_points, const char* impl_name); 00818 00819 //! Get description paramaters for this kernel 00820 extern VOLK_API volk_func_desc_t volk_32fc_s32fc_multiply_32fc_get_func_desc(void); 00821 00822 //! A function pointer to the dispatcher implementation 00823 extern VOLK_API p_16i_s32f_convert_32f volk_16i_s32f_convert_32f; 00824 00825 //! A function pointer to the fastest aligned implementation 00826 extern VOLK_API p_16i_s32f_convert_32f volk_16i_s32f_convert_32f_a; 00827 00828 //! A function pointer to the fastest unaligned implementation 00829 extern VOLK_API p_16i_s32f_convert_32f volk_16i_s32f_convert_32f_u; 00830 00831 //! Call into a specific implementation given by name 00832 extern VOLK_API void volk_16i_s32f_convert_32f_manual(float* outputVector, const int16_t* inputVector, const float scalar, unsigned int num_points, const char* impl_name); 00833 00834 //! Get description paramaters for this kernel 00835 extern VOLK_API volk_func_desc_t volk_16i_s32f_convert_32f_get_func_desc(void); 00836 00837 //! A function pointer to the dispatcher implementation 00838 extern VOLK_API p_32fc_s32f_atan2_32f volk_32fc_s32f_atan2_32f; 00839 00840 //! A function pointer to the fastest aligned implementation 00841 extern VOLK_API p_32fc_s32f_atan2_32f volk_32fc_s32f_atan2_32f_a; 00842 00843 //! A function pointer to the fastest unaligned implementation 00844 extern VOLK_API p_32fc_s32f_atan2_32f volk_32fc_s32f_atan2_32f_u; 00845 00846 //! Call into a specific implementation given by name 00847 extern VOLK_API void volk_32fc_s32f_atan2_32f_manual(float* outputVector, const lv_32fc_t* complexVector, const float normalizeFactor, unsigned int num_points, const char* impl_name); 00848 00849 //! Get description paramaters for this kernel 00850 extern VOLK_API volk_func_desc_t volk_32fc_s32f_atan2_32f_get_func_desc(void); 00851 00852 //! A function pointer to the dispatcher implementation 00853 extern VOLK_API p_32u_byteswap volk_32u_byteswap; 00854 00855 //! A function pointer to the fastest aligned implementation 00856 extern VOLK_API p_32u_byteswap volk_32u_byteswap_a; 00857 00858 //! A function pointer to the fastest unaligned implementation 00859 extern VOLK_API p_32u_byteswap volk_32u_byteswap_u; 00860 00861 //! Call into a specific implementation given by name 00862 extern VOLK_API void volk_32u_byteswap_manual(uint32_t* intsToSwap, unsigned int num_points, const char* impl_name); 00863 00864 //! Get description paramaters for this kernel 00865 extern VOLK_API volk_func_desc_t volk_32u_byteswap_get_func_desc(void); 00866 00867 //! A function pointer to the dispatcher implementation 00868 extern VOLK_API p_32f_s32f_multiply_32f volk_32f_s32f_multiply_32f; 00869 00870 //! A function pointer to the fastest aligned implementation 00871 extern VOLK_API p_32f_s32f_multiply_32f volk_32f_s32f_multiply_32f_a; 00872 00873 //! A function pointer to the fastest unaligned implementation 00874 extern VOLK_API p_32f_s32f_multiply_32f volk_32f_s32f_multiply_32f_u; 00875 00876 //! Call into a specific implementation given by name 00877 extern VOLK_API void volk_32f_s32f_multiply_32f_manual(float* cVector, const float* aVector, const float scalar, unsigned int num_points, const char* impl_name); 00878 00879 //! Get description paramaters for this kernel 00880 extern VOLK_API volk_func_desc_t volk_32f_s32f_multiply_32f_get_func_desc(void); 00881 00882 //! A function pointer to the dispatcher implementation 00883 extern VOLK_API p_32f_x2_max_32f volk_32f_x2_max_32f; 00884 00885 //! A function pointer to the fastest aligned implementation 00886 extern VOLK_API p_32f_x2_max_32f volk_32f_x2_max_32f_a; 00887 00888 //! A function pointer to the fastest unaligned implementation 00889 extern VOLK_API p_32f_x2_max_32f volk_32f_x2_max_32f_u; 00890 00891 //! Call into a specific implementation given by name 00892 extern VOLK_API void volk_32f_x2_max_32f_manual(float* cVector, const float* aVector, const float* bVector, unsigned int num_points, const char* impl_name); 00893 00894 //! Get description paramaters for this kernel 00895 extern VOLK_API volk_func_desc_t volk_32f_x2_max_32f_get_func_desc(void); 00896 00897 //! A function pointer to the dispatcher implementation 00898 extern VOLK_API p_8ic_x2_s32f_multiply_conjugate_32fc volk_8ic_x2_s32f_multiply_conjugate_32fc; 00899 00900 //! A function pointer to the fastest aligned implementation 00901 extern VOLK_API p_8ic_x2_s32f_multiply_conjugate_32fc volk_8ic_x2_s32f_multiply_conjugate_32fc_a; 00902 00903 //! A function pointer to the fastest unaligned implementation 00904 extern VOLK_API p_8ic_x2_s32f_multiply_conjugate_32fc volk_8ic_x2_s32f_multiply_conjugate_32fc_u; 00905 00906 //! Call into a specific implementation given by name 00907 extern VOLK_API void volk_8ic_x2_s32f_multiply_conjugate_32fc_manual(lv_32fc_t* cVector, const lv_8sc_t* aVector, const lv_8sc_t* bVector, const float scalar, unsigned int num_points, const char* impl_name); 00908 00909 //! Get description paramaters for this kernel 00910 extern VOLK_API volk_func_desc_t volk_8ic_x2_s32f_multiply_conjugate_32fc_get_func_desc(void); 00911 00912 //! A function pointer to the dispatcher implementation 00913 extern VOLK_API p_8i_s32f_convert_32f volk_8i_s32f_convert_32f; 00914 00915 //! A function pointer to the fastest aligned implementation 00916 extern VOLK_API p_8i_s32f_convert_32f volk_8i_s32f_convert_32f_a; 00917 00918 //! A function pointer to the fastest unaligned implementation 00919 extern VOLK_API p_8i_s32f_convert_32f volk_8i_s32f_convert_32f_u; 00920 00921 //! Call into a specific implementation given by name 00922 extern VOLK_API void volk_8i_s32f_convert_32f_manual(float* outputVector, const int8_t* inputVector, const float scalar, unsigned int num_points, const char* impl_name); 00923 00924 //! Get description paramaters for this kernel 00925 extern VOLK_API volk_func_desc_t volk_8i_s32f_convert_32f_get_func_desc(void); 00926 00927 //! A function pointer to the dispatcher implementation 00928 extern VOLK_API p_16ic_deinterleave_16i_x2 volk_16ic_deinterleave_16i_x2; 00929 00930 //! A function pointer to the fastest aligned implementation 00931 extern VOLK_API p_16ic_deinterleave_16i_x2 volk_16ic_deinterleave_16i_x2_a; 00932 00933 //! A function pointer to the fastest unaligned implementation 00934 extern VOLK_API p_16ic_deinterleave_16i_x2 volk_16ic_deinterleave_16i_x2_u; 00935 00936 //! Call into a specific implementation given by name 00937 extern VOLK_API void volk_16ic_deinterleave_16i_x2_manual(int16_t* iBuffer, int16_t* qBuffer, const lv_16sc_t* complexVector, unsigned int num_points, const char* impl_name); 00938 00939 //! Get description paramaters for this kernel 00940 extern VOLK_API volk_func_desc_t volk_16ic_deinterleave_16i_x2_get_func_desc(void); 00941 00942 //! A function pointer to the dispatcher implementation 00943 extern VOLK_API p_16i_32fc_dot_prod_32fc volk_16i_32fc_dot_prod_32fc; 00944 00945 //! A function pointer to the fastest aligned implementation 00946 extern VOLK_API p_16i_32fc_dot_prod_32fc volk_16i_32fc_dot_prod_32fc_a; 00947 00948 //! A function pointer to the fastest unaligned implementation 00949 extern VOLK_API p_16i_32fc_dot_prod_32fc volk_16i_32fc_dot_prod_32fc_u; 00950 00951 //! Call into a specific implementation given by name 00952 extern VOLK_API void volk_16i_32fc_dot_prod_32fc_manual(lv_32fc_t* result, const short* input, const lv_32fc_t * taps, unsigned int num_points, const char* impl_name); 00953 00954 //! Get description paramaters for this kernel 00955 extern VOLK_API volk_func_desc_t volk_16i_32fc_dot_prod_32fc_get_func_desc(void); 00956 00957 //! A function pointer to the dispatcher implementation 00958 extern VOLK_API p_8ic_deinterleave_real_16i volk_8ic_deinterleave_real_16i; 00959 00960 //! A function pointer to the fastest aligned implementation 00961 extern VOLK_API p_8ic_deinterleave_real_16i volk_8ic_deinterleave_real_16i_a; 00962 00963 //! A function pointer to the fastest unaligned implementation 00964 extern VOLK_API p_8ic_deinterleave_real_16i volk_8ic_deinterleave_real_16i_u; 00965 00966 //! Call into a specific implementation given by name 00967 extern VOLK_API void volk_8ic_deinterleave_real_16i_manual(int16_t* iBuffer, const lv_8sc_t* complexVector, unsigned int num_points, const char* impl_name); 00968 00969 //! Get description paramaters for this kernel 00970 extern VOLK_API volk_func_desc_t volk_8ic_deinterleave_real_16i_get_func_desc(void); 00971 00972 //! A function pointer to the dispatcher implementation 00973 extern VOLK_API p_32fc_32f_dot_prod_32fc volk_32fc_32f_dot_prod_32fc; 00974 00975 //! A function pointer to the fastest aligned implementation 00976 extern VOLK_API p_32fc_32f_dot_prod_32fc volk_32fc_32f_dot_prod_32fc_a; 00977 00978 //! A function pointer to the fastest unaligned implementation 00979 extern VOLK_API p_32fc_32f_dot_prod_32fc volk_32fc_32f_dot_prod_32fc_u; 00980 00981 //! Call into a specific implementation given by name 00982 extern VOLK_API void volk_32fc_32f_dot_prod_32fc_manual(lv_32fc_t* result, const lv_32fc_t* input, const float * taps, unsigned int num_points, const char* impl_name); 00983 00984 //! Get description paramaters for this kernel 00985 extern VOLK_API volk_func_desc_t volk_32fc_32f_dot_prod_32fc_get_func_desc(void); 00986 00987 //! A function pointer to the dispatcher implementation 00988 extern VOLK_API p_32fc_x2_square_dist_32f volk_32fc_x2_square_dist_32f; 00989 00990 //! A function pointer to the fastest aligned implementation 00991 extern VOLK_API p_32fc_x2_square_dist_32f volk_32fc_x2_square_dist_32f_a; 00992 00993 //! A function pointer to the fastest unaligned implementation 00994 extern VOLK_API p_32fc_x2_square_dist_32f volk_32fc_x2_square_dist_32f_u; 00995 00996 //! Call into a specific implementation given by name 00997 extern VOLK_API void volk_32fc_x2_square_dist_32f_manual(float* target, lv_32fc_t* src0, lv_32fc_t* points, unsigned int num_points, const char* impl_name); 00998 00999 //! Get description paramaters for this kernel 01000 extern VOLK_API volk_func_desc_t volk_32fc_x2_square_dist_32f_get_func_desc(void); 01001 01002 //! A function pointer to the dispatcher implementation 01003 extern VOLK_API p_32f_x2_s32f_interleave_16ic volk_32f_x2_s32f_interleave_16ic; 01004 01005 //! A function pointer to the fastest aligned implementation 01006 extern VOLK_API p_32f_x2_s32f_interleave_16ic volk_32f_x2_s32f_interleave_16ic_a; 01007 01008 //! A function pointer to the fastest unaligned implementation 01009 extern VOLK_API p_32f_x2_s32f_interleave_16ic volk_32f_x2_s32f_interleave_16ic_u; 01010 01011 //! Call into a specific implementation given by name 01012 extern VOLK_API void volk_32f_x2_s32f_interleave_16ic_manual(lv_16sc_t* complexVector, const float* iBuffer, const float* qBuffer, const float scalar, unsigned int num_points, const char* impl_name); 01013 01014 //! Get description paramaters for this kernel 01015 extern VOLK_API volk_func_desc_t volk_32f_x2_s32f_interleave_16ic_get_func_desc(void); 01016 01017 //! A function pointer to the dispatcher implementation 01018 extern VOLK_API p_64f_x2_min_64f volk_64f_x2_min_64f; 01019 01020 //! A function pointer to the fastest aligned implementation 01021 extern VOLK_API p_64f_x2_min_64f volk_64f_x2_min_64f_a; 01022 01023 //! A function pointer to the fastest unaligned implementation 01024 extern VOLK_API p_64f_x2_min_64f volk_64f_x2_min_64f_u; 01025 01026 //! Call into a specific implementation given by name 01027 extern VOLK_API void volk_64f_x2_min_64f_manual(double* cVector, const double* aVector, const double* bVector, unsigned int num_points, const char* impl_name); 01028 01029 //! Get description paramaters for this kernel 01030 extern VOLK_API volk_func_desc_t volk_64f_x2_min_64f_get_func_desc(void); 01031 01032 //! A function pointer to the dispatcher implementation 01033 extern VOLK_API p_16ic_magnitude_16i volk_16ic_magnitude_16i; 01034 01035 //! A function pointer to the fastest aligned implementation 01036 extern VOLK_API p_16ic_magnitude_16i volk_16ic_magnitude_16i_a; 01037 01038 //! A function pointer to the fastest unaligned implementation 01039 extern VOLK_API p_16ic_magnitude_16i volk_16ic_magnitude_16i_u; 01040 01041 //! Call into a specific implementation given by name 01042 extern VOLK_API void volk_16ic_magnitude_16i_manual(int16_t* magnitudeVector, const lv_16sc_t* complexVector, unsigned int num_points, const char* impl_name); 01043 01044 //! Get description paramaters for this kernel 01045 extern VOLK_API volk_func_desc_t volk_16ic_magnitude_16i_get_func_desc(void); 01046 01047 //! A function pointer to the dispatcher implementation 01048 extern VOLK_API p_32fc_deinterleave_imag_32f volk_32fc_deinterleave_imag_32f; 01049 01050 //! A function pointer to the fastest aligned implementation 01051 extern VOLK_API p_32fc_deinterleave_imag_32f volk_32fc_deinterleave_imag_32f_a; 01052 01053 //! A function pointer to the fastest unaligned implementation 01054 extern VOLK_API p_32fc_deinterleave_imag_32f volk_32fc_deinterleave_imag_32f_u; 01055 01056 //! Call into a specific implementation given by name 01057 extern VOLK_API void volk_32fc_deinterleave_imag_32f_manual(float* qBuffer, const lv_32fc_t* complexVector, unsigned int num_points, const char* impl_name); 01058 01059 //! Get description paramaters for this kernel 01060 extern VOLK_API volk_func_desc_t volk_32fc_deinterleave_imag_32f_get_func_desc(void); 01061 01062 //! A function pointer to the dispatcher implementation 01063 extern VOLK_API p_16ic_deinterleave_real_8i volk_16ic_deinterleave_real_8i; 01064 01065 //! A function pointer to the fastest aligned implementation 01066 extern VOLK_API p_16ic_deinterleave_real_8i volk_16ic_deinterleave_real_8i_a; 01067 01068 //! A function pointer to the fastest unaligned implementation 01069 extern VOLK_API p_16ic_deinterleave_real_8i volk_16ic_deinterleave_real_8i_u; 01070 01071 //! Call into a specific implementation given by name 01072 extern VOLK_API void volk_16ic_deinterleave_real_8i_manual(int8_t* iBuffer, const lv_16sc_t* complexVector, unsigned int num_points, const char* impl_name); 01073 01074 //! Get description paramaters for this kernel 01075 extern VOLK_API volk_func_desc_t volk_16ic_deinterleave_real_8i_get_func_desc(void); 01076 01077 //! A function pointer to the dispatcher implementation 01078 extern VOLK_API p_32f_s32f_calc_spectral_noise_floor_32f volk_32f_s32f_calc_spectral_noise_floor_32f; 01079 01080 //! A function pointer to the fastest aligned implementation 01081 extern VOLK_API p_32f_s32f_calc_spectral_noise_floor_32f volk_32f_s32f_calc_spectral_noise_floor_32f_a; 01082 01083 //! A function pointer to the fastest unaligned implementation 01084 extern VOLK_API p_32f_s32f_calc_spectral_noise_floor_32f volk_32f_s32f_calc_spectral_noise_floor_32f_u; 01085 01086 //! Call into a specific implementation given by name 01087 extern VOLK_API void volk_32f_s32f_calc_spectral_noise_floor_32f_manual(float* noiseFloorAmplitude, const float* realDataPoints, const float spectralExclusionValue, const unsigned int num_points, const char* impl_name); 01088 01089 //! Get description paramaters for this kernel 01090 extern VOLK_API volk_func_desc_t volk_32f_s32f_calc_spectral_noise_floor_32f_get_func_desc(void); 01091 01092 //! A function pointer to the dispatcher implementation 01093 extern VOLK_API p_32fc_deinterleave_32f_x2 volk_32fc_deinterleave_32f_x2; 01094 01095 //! A function pointer to the fastest aligned implementation 01096 extern VOLK_API p_32fc_deinterleave_32f_x2 volk_32fc_deinterleave_32f_x2_a; 01097 01098 //! A function pointer to the fastest unaligned implementation 01099 extern VOLK_API p_32fc_deinterleave_32f_x2 volk_32fc_deinterleave_32f_x2_u; 01100 01101 //! Call into a specific implementation given by name 01102 extern VOLK_API void volk_32fc_deinterleave_32f_x2_manual(float* iBuffer, float* qBuffer, const lv_32fc_t* complexVector, unsigned int num_points, const char* impl_name); 01103 01104 //! Get description paramaters for this kernel 01105 extern VOLK_API volk_func_desc_t volk_32fc_deinterleave_32f_x2_get_func_desc(void); 01106 01107 //! A function pointer to the dispatcher implementation 01108 extern VOLK_API p_32fc_s32f_x2_power_spectral_density_32f volk_32fc_s32f_x2_power_spectral_density_32f; 01109 01110 //! A function pointer to the fastest aligned implementation 01111 extern VOLK_API p_32fc_s32f_x2_power_spectral_density_32f volk_32fc_s32f_x2_power_spectral_density_32f_a; 01112 01113 //! A function pointer to the fastest unaligned implementation 01114 extern VOLK_API p_32fc_s32f_x2_power_spectral_density_32f volk_32fc_s32f_x2_power_spectral_density_32f_u; 01115 01116 //! Call into a specific implementation given by name 01117 extern VOLK_API void volk_32fc_s32f_x2_power_spectral_density_32f_manual(float* logPowerOutput, const lv_32fc_t* complexFFTInput, const float normalizationFactor, const float rbw, unsigned int num_points, const char* impl_name); 01118 01119 //! Get description paramaters for this kernel 01120 extern VOLK_API volk_func_desc_t volk_32fc_s32f_x2_power_spectral_density_32f_get_func_desc(void); 01121 01122 //! A function pointer to the dispatcher implementation 01123 extern VOLK_API p_32f_stddev_and_mean_32f_x2 volk_32f_stddev_and_mean_32f_x2; 01124 01125 //! A function pointer to the fastest aligned implementation 01126 extern VOLK_API p_32f_stddev_and_mean_32f_x2 volk_32f_stddev_and_mean_32f_x2_a; 01127 01128 //! A function pointer to the fastest unaligned implementation 01129 extern VOLK_API p_32f_stddev_and_mean_32f_x2 volk_32f_stddev_and_mean_32f_x2_u; 01130 01131 //! Call into a specific implementation given by name 01132 extern VOLK_API void volk_32f_stddev_and_mean_32f_x2_manual(float* stddev, float* mean, const float* inputBuffer, unsigned int num_points, const char* impl_name); 01133 01134 //! Get description paramaters for this kernel 01135 extern VOLK_API volk_func_desc_t volk_32f_stddev_and_mean_32f_x2_get_func_desc(void); 01136 01137 //! A function pointer to the dispatcher implementation 01138 extern VOLK_API p_32i_s32f_convert_32f volk_32i_s32f_convert_32f; 01139 01140 //! A function pointer to the fastest aligned implementation 01141 extern VOLK_API p_32i_s32f_convert_32f volk_32i_s32f_convert_32f_a; 01142 01143 //! A function pointer to the fastest unaligned implementation 01144 extern VOLK_API p_32i_s32f_convert_32f volk_32i_s32f_convert_32f_u; 01145 01146 //! Call into a specific implementation given by name 01147 extern VOLK_API void volk_32i_s32f_convert_32f_manual(float* outputVector, const int32_t* inputVector, const float scalar, unsigned int num_points, const char* impl_name); 01148 01149 //! Get description paramaters for this kernel 01150 extern VOLK_API volk_func_desc_t volk_32i_s32f_convert_32f_get_func_desc(void); 01151 01152 //! A function pointer to the dispatcher implementation 01153 extern VOLK_API p_32fc_x2_s32f_square_dist_scalar_mult_32f volk_32fc_x2_s32f_square_dist_scalar_mult_32f; 01154 01155 //! A function pointer to the fastest aligned implementation 01156 extern VOLK_API p_32fc_x2_s32f_square_dist_scalar_mult_32f volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a; 01157 01158 //! A function pointer to the fastest unaligned implementation 01159 extern VOLK_API p_32fc_x2_s32f_square_dist_scalar_mult_32f volk_32fc_x2_s32f_square_dist_scalar_mult_32f_u; 01160 01161 //! Call into a specific implementation given by name 01162 extern VOLK_API void volk_32fc_x2_s32f_square_dist_scalar_mult_32f_manual(float* target, lv_32fc_t* src0, lv_32fc_t* points, float scalar, unsigned int num_points, const char* impl_name); 01163 01164 //! Get description paramaters for this kernel 01165 extern VOLK_API volk_func_desc_t volk_32fc_x2_s32f_square_dist_scalar_mult_32f_get_func_desc(void); 01166 01167 //! A function pointer to the dispatcher implementation 01168 extern VOLK_API p_32f_x2_subtract_32f volk_32f_x2_subtract_32f; 01169 01170 //! A function pointer to the fastest aligned implementation 01171 extern VOLK_API p_32f_x2_subtract_32f volk_32f_x2_subtract_32f_a; 01172 01173 //! A function pointer to the fastest unaligned implementation 01174 extern VOLK_API p_32f_x2_subtract_32f volk_32f_x2_subtract_32f_u; 01175 01176 //! Call into a specific implementation given by name 01177 extern VOLK_API void volk_32f_x2_subtract_32f_manual(float* cVector, const float* aVector, const float* bVector, unsigned int num_points, const char* impl_name); 01178 01179 //! Get description paramaters for this kernel 01180 extern VOLK_API volk_func_desc_t volk_32f_x2_subtract_32f_get_func_desc(void); 01181 01182 //! A function pointer to the dispatcher implementation 01183 extern VOLK_API p_32fc_s32fc_rotatorpuppet_32fc volk_32fc_s32fc_rotatorpuppet_32fc; 01184 01185 //! A function pointer to the fastest aligned implementation 01186 extern VOLK_API p_32fc_s32fc_rotatorpuppet_32fc volk_32fc_s32fc_rotatorpuppet_32fc_a; 01187 01188 //! A function pointer to the fastest unaligned implementation 01189 extern VOLK_API p_32fc_s32fc_rotatorpuppet_32fc volk_32fc_s32fc_rotatorpuppet_32fc_u; 01190 01191 //! Call into a specific implementation given by name 01192 extern VOLK_API void volk_32fc_s32fc_rotatorpuppet_32fc_manual(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points, const char* impl_name); 01193 01194 //! Get description paramaters for this kernel 01195 extern VOLK_API volk_func_desc_t volk_32fc_s32fc_rotatorpuppet_32fc_get_func_desc(void); 01196 01197 //! A function pointer to the dispatcher implementation 01198 extern VOLK_API p_16ic_s32f_magnitude_32f volk_16ic_s32f_magnitude_32f; 01199 01200 //! A function pointer to the fastest aligned implementation 01201 extern VOLK_API p_16ic_s32f_magnitude_32f volk_16ic_s32f_magnitude_32f_a; 01202 01203 //! A function pointer to the fastest unaligned implementation 01204 extern VOLK_API p_16ic_s32f_magnitude_32f volk_16ic_s32f_magnitude_32f_u; 01205 01206 //! Call into a specific implementation given by name 01207 extern VOLK_API void volk_16ic_s32f_magnitude_32f_manual(float* magnitudeVector, const lv_16sc_t* complexVector, const float scalar, unsigned int num_points, const char* impl_name); 01208 01209 //! Get description paramaters for this kernel 01210 extern VOLK_API volk_func_desc_t volk_16ic_s32f_magnitude_32f_get_func_desc(void); 01211 01212 //! A function pointer to the dispatcher implementation 01213 extern VOLK_API p_8ic_s32f_deinterleave_real_32f volk_8ic_s32f_deinterleave_real_32f; 01214 01215 //! A function pointer to the fastest aligned implementation 01216 extern VOLK_API p_8ic_s32f_deinterleave_real_32f volk_8ic_s32f_deinterleave_real_32f_a; 01217 01218 //! A function pointer to the fastest unaligned implementation 01219 extern VOLK_API p_8ic_s32f_deinterleave_real_32f volk_8ic_s32f_deinterleave_real_32f_u; 01220 01221 //! Call into a specific implementation given by name 01222 extern VOLK_API void volk_8ic_s32f_deinterleave_real_32f_manual(float* iBuffer, const lv_8sc_t* complexVector, const float scalar, unsigned int num_points, const char* impl_name); 01223 01224 //! Get description paramaters for this kernel 01225 extern VOLK_API volk_func_desc_t volk_8ic_s32f_deinterleave_real_32f_get_func_desc(void); 01226 01227 //! A function pointer to the dispatcher implementation 01228 extern VOLK_API p_32f_x2_add_32f volk_32f_x2_add_32f; 01229 01230 //! A function pointer to the fastest aligned implementation 01231 extern VOLK_API p_32f_x2_add_32f volk_32f_x2_add_32f_a; 01232 01233 //! A function pointer to the fastest unaligned implementation 01234 extern VOLK_API p_32f_x2_add_32f volk_32f_x2_add_32f_u; 01235 01236 //! Call into a specific implementation given by name 01237 extern VOLK_API void volk_32f_x2_add_32f_manual(float* cVector, const float* aVector, const float* bVector, unsigned int num_points, const char* impl_name); 01238 01239 //! Get description paramaters for this kernel 01240 extern VOLK_API volk_func_desc_t volk_32f_x2_add_32f_get_func_desc(void); 01241 01242 //! A function pointer to the dispatcher implementation 01243 extern VOLK_API p_64u_popcnt volk_64u_popcnt; 01244 01245 //! A function pointer to the fastest aligned implementation 01246 extern VOLK_API p_64u_popcnt volk_64u_popcnt_a; 01247 01248 //! A function pointer to the fastest unaligned implementation 01249 extern VOLK_API p_64u_popcnt volk_64u_popcnt_u; 01250 01251 //! Call into a specific implementation given by name 01252 extern VOLK_API void volk_64u_popcnt_manual(uint64_t* ret, const uint64_t value, const char* impl_name); 01253 01254 //! Get description paramaters for this kernel 01255 extern VOLK_API volk_func_desc_t volk_64u_popcnt_get_func_desc(void); 01256 01257 //! A function pointer to the dispatcher implementation 01258 extern VOLK_API p_32i_x2_or_32i volk_32i_x2_or_32i; 01259 01260 //! A function pointer to the fastest aligned implementation 01261 extern VOLK_API p_32i_x2_or_32i volk_32i_x2_or_32i_a; 01262 01263 //! A function pointer to the fastest unaligned implementation 01264 extern VOLK_API p_32i_x2_or_32i volk_32i_x2_or_32i_u; 01265 01266 //! Call into a specific implementation given by name 01267 extern VOLK_API void volk_32i_x2_or_32i_manual(int32_t* cVector, const int32_t* aVector, const int32_t* bVector, unsigned int num_points, const char* impl_name); 01268 01269 //! Get description paramaters for this kernel 01270 extern VOLK_API volk_func_desc_t volk_32i_x2_or_32i_get_func_desc(void); 01271 01272 //! A function pointer to the dispatcher implementation 01273 extern VOLK_API p_32f_s32f_32f_fm_detect_32f volk_32f_s32f_32f_fm_detect_32f; 01274 01275 //! A function pointer to the fastest aligned implementation 01276 extern VOLK_API p_32f_s32f_32f_fm_detect_32f volk_32f_s32f_32f_fm_detect_32f_a; 01277 01278 //! A function pointer to the fastest unaligned implementation 01279 extern VOLK_API p_32f_s32f_32f_fm_detect_32f volk_32f_s32f_32f_fm_detect_32f_u; 01280 01281 //! Call into a specific implementation given by name 01282 extern VOLK_API void volk_32f_s32f_32f_fm_detect_32f_manual(float* outputVector, const float* inputVector, const float bound, float* saveValue, unsigned int num_points, const char* impl_name); 01283 01284 //! Get description paramaters for this kernel 01285 extern VOLK_API volk_func_desc_t volk_32f_s32f_32f_fm_detect_32f_get_func_desc(void); 01286 01287 //! A function pointer to the dispatcher implementation 01288 extern VOLK_API p_16u_byteswap volk_16u_byteswap; 01289 01290 //! A function pointer to the fastest aligned implementation 01291 extern VOLK_API p_16u_byteswap volk_16u_byteswap_a; 01292 01293 //! A function pointer to the fastest unaligned implementation 01294 extern VOLK_API p_16u_byteswap volk_16u_byteswap_u; 01295 01296 //! Call into a specific implementation given by name 01297 extern VOLK_API void volk_16u_byteswap_manual(uint16_t* intsToSwap, unsigned int num_points, const char* impl_name); 01298 01299 //! Get description paramaters for this kernel 01300 extern VOLK_API volk_func_desc_t volk_16u_byteswap_get_func_desc(void); 01301 01302 //! A function pointer to the dispatcher implementation 01303 extern VOLK_API p_32fc_x2_multiply_32fc volk_32fc_x2_multiply_32fc; 01304 01305 //! A function pointer to the fastest aligned implementation 01306 extern VOLK_API p_32fc_x2_multiply_32fc volk_32fc_x2_multiply_32fc_a; 01307 01308 //! A function pointer to the fastest unaligned implementation 01309 extern VOLK_API p_32fc_x2_multiply_32fc volk_32fc_x2_multiply_32fc_u; 01310 01311 //! Call into a specific implementation given by name 01312 extern VOLK_API void volk_32fc_x2_multiply_32fc_manual(lv_32fc_t* cVector, const lv_32fc_t* aVector, const lv_32fc_t* bVector, unsigned int num_points, const char* impl_name); 01313 01314 //! Get description paramaters for this kernel 01315 extern VOLK_API volk_func_desc_t volk_32fc_x2_multiply_32fc_get_func_desc(void); 01316 01317 //! A function pointer to the dispatcher implementation 01318 extern VOLK_API p_32fc_conjugate_32fc volk_32fc_conjugate_32fc; 01319 01320 //! A function pointer to the fastest aligned implementation 01321 extern VOLK_API p_32fc_conjugate_32fc volk_32fc_conjugate_32fc_a; 01322 01323 //! A function pointer to the fastest unaligned implementation 01324 extern VOLK_API p_32fc_conjugate_32fc volk_32fc_conjugate_32fc_u; 01325 01326 //! Call into a specific implementation given by name 01327 extern VOLK_API void volk_32fc_conjugate_32fc_manual(lv_32fc_t* cVector, const lv_32fc_t* aVector, unsigned int num_points, const char* impl_name); 01328 01329 //! Get description paramaters for this kernel 01330 extern VOLK_API volk_func_desc_t volk_32fc_conjugate_32fc_get_func_desc(void); 01331 01332 //! A function pointer to the dispatcher implementation 01333 extern VOLK_API p_32fc_x2_conjugate_dot_prod_32fc volk_32fc_x2_conjugate_dot_prod_32fc; 01334 01335 //! A function pointer to the fastest aligned implementation 01336 extern VOLK_API p_32fc_x2_conjugate_dot_prod_32fc volk_32fc_x2_conjugate_dot_prod_32fc_a; 01337 01338 //! A function pointer to the fastest unaligned implementation 01339 extern VOLK_API p_32fc_x2_conjugate_dot_prod_32fc volk_32fc_x2_conjugate_dot_prod_32fc_u; 01340 01341 //! Call into a specific implementation given by name 01342 extern VOLK_API void volk_32fc_x2_conjugate_dot_prod_32fc_manual(lv_32fc_t* result, const lv_32fc_t* input, const lv_32fc_t* taps, unsigned int num_points, const char* impl_name); 01343 01344 //! Get description paramaters for this kernel 01345 extern VOLK_API volk_func_desc_t volk_32fc_x2_conjugate_dot_prod_32fc_get_func_desc(void); 01346 01347 //! A function pointer to the dispatcher implementation 01348 extern VOLK_API p_32f_x2_dot_prod_16i volk_32f_x2_dot_prod_16i; 01349 01350 //! A function pointer to the fastest aligned implementation 01351 extern VOLK_API p_32f_x2_dot_prod_16i volk_32f_x2_dot_prod_16i_a; 01352 01353 //! A function pointer to the fastest unaligned implementation 01354 extern VOLK_API p_32f_x2_dot_prod_16i volk_32f_x2_dot_prod_16i_u; 01355 01356 //! Call into a specific implementation given by name 01357 extern VOLK_API void volk_32f_x2_dot_prod_16i_manual(int16_t* result, const float* input, const float* taps, unsigned int num_points, const char* impl_name); 01358 01359 //! Get description paramaters for this kernel 01360 extern VOLK_API volk_func_desc_t volk_32f_x2_dot_prod_16i_get_func_desc(void); 01361 01362 //! A function pointer to the dispatcher implementation 01363 extern VOLK_API p_8ic_deinterleave_16i_x2 volk_8ic_deinterleave_16i_x2; 01364 01365 //! A function pointer to the fastest aligned implementation 01366 extern VOLK_API p_8ic_deinterleave_16i_x2 volk_8ic_deinterleave_16i_x2_a; 01367 01368 //! A function pointer to the fastest unaligned implementation 01369 extern VOLK_API p_8ic_deinterleave_16i_x2 volk_8ic_deinterleave_16i_x2_u; 01370 01371 //! Call into a specific implementation given by name 01372 extern VOLK_API void volk_8ic_deinterleave_16i_x2_manual(int16_t* iBuffer, int16_t* qBuffer, const lv_8sc_t* complexVector, unsigned int num_points, const char* impl_name); 01373 01374 //! Get description paramaters for this kernel 01375 extern VOLK_API volk_func_desc_t volk_8ic_deinterleave_16i_x2_get_func_desc(void); 01376 01377 __VOLK_DECL_END 01378 01379 #endif /*INCLUDED_VOLK_RUNTIME*/