Vector Optimized Library of Kernels  3.1.2
Architecture-tuned implementations of math kernels
volk_32f_log2_32f.h File Reference
#include <inttypes.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <arm_neon.h>

Go to the source code of this file.

Macros

#define LOG_POLY_DEGREE   6
 
#define VLOG2Q_NEON_PREAMBLE()
 
#define VLOG2Q_NEON_F32(log2_approx, aval)
 
#define INCLUDED_volk_32f_log2_32f_u_H
 

Functions

static void volk_32f_log2_32f_generic (float *bVector, const float *aVector, unsigned int num_points)
 
static void volk_32f_log2_32f_neon (float *bVector, const float *aVector, unsigned int num_points)
 

Macro Definition Documentation

#define INCLUDED_volk_32f_log2_32f_u_H
#define LOG_POLY_DEGREE   6
#define VLOG2Q_NEON_F32 (   log2_approx,
  aval 
)
#define VLOG2Q_NEON_PREAMBLE ( )
Value:
int32x4_t one = vdupq_n_s32(0x000800000); \
/* minimax polynomial */ \
float32x4_t p0 = vdupq_n_f32(-3.0400402727048585); \
float32x4_t p1 = vdupq_n_f32(6.1129631282966113); \
float32x4_t p2 = vdupq_n_f32(-5.3419892024633207); \
float32x4_t p3 = vdupq_n_f32(3.2865287703753912); \
float32x4_t p4 = vdupq_n_f32(-1.2669182593441635); \
float32x4_t p5 = vdupq_n_f32(0.2751487703421256); \
float32x4_t p6 = vdupq_n_f32(-0.0256910888150985); \
int32x4_t exp_mask = vdupq_n_s32(0x7f800000); \
int32x4_t sig_mask = vdupq_n_s32(0x007fffff); \
int32x4_t exp_bias = vdupq_n_s32(127);

Function Documentation

static void volk_32f_log2_32f_generic ( float *  bVector,
const float *  aVector,
unsigned int  num_points 
)
inlinestatic
static void volk_32f_log2_32f_neon ( float *  bVector,
const float *  aVector,
unsigned int  num_points 
)
inlinestatic