Vector Optimized Library of Kernels 3.2.0
Architecture-tuned implementations of math kernels
Loading...
Searching...
No Matches
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

◆ INCLUDED_volk_32f_log2_32f_u_H

#define INCLUDED_volk_32f_log2_32f_u_H

◆ LOG_POLY_DEGREE

#define LOG_POLY_DEGREE   6

◆ VLOG2Q_NEON_F32

#define VLOG2Q_NEON_F32 ( log2_approx,
aval )

◆ VLOG2Q_NEON_PREAMBLE

#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

◆ volk_32f_log2_32f_generic()

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

◆ volk_32f_log2_32f_neon()

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