LIBDSP Version 4.1.9
LIBDSP Software Library
Loading...
Searching...
No Matches
riscv_math_fast.h File Reference
This graph shows which files directly or indirectly include this file:

Macros

#define riscv_sin_f32   tpt_sin_f32
#define riscv_sin_f64   tpt_sin_f64
#define riscv_cos_f32   tpt_cos_f32
#define riscv_cos_f64   tpt_cos_f64
#define FAST_MATH_TABLE_SIZE   512
#define FAST_MATH_Q31_SHIFT   (32 - 10)
#define FAST_MATH_Q15_SHIFT   (16 - 10)
#define riscv_sqrt_f32(in, pOut)
#define riscv_sqrt_q15(in, pOut)
#define riscv_sqrt_q31(in, pOut)
#define riscv_vsqrt_f32(pIn, pOut, len)
#define riscv_vsqrt_q15(pIn, pOut, len)
#define riscv_vsqrt_q31(pIn, pOut, len)
#define riscv_vlog_q31(pSrc, pDst, blockSize)
#define riscv_vlog_q15(pSrc, pDst, blockSize)
#define riscv_vlog_f32(pSrc, pDst, blockSize)
#define riscv_vlog_f64(pSrc, pDst, blockSize)
#define riscv_vlog_f16(pSrc, pDst, blockSize)
#define riscv_vexp_f16(pSrc, pDst, blockSize)
#define riscv_vexp_f32(pSrc, pDst, blockSize)
#define riscv_vexp_f64(pSrc, pDst, blockSize)
#define riscv_vinverse_f16(pSrc, pDst, blockSize)

Functions

static q31_t riscv_cos_q15 (q31_t x)
static q31_t riscv_cos_q31 (q31_t x)
static q31_t riscv_sin_q15 (q31_t x)
static q31_t riscv_sin_q31 (q31_t x)
static riscv_status riscv_atan2_f32 (float32_t y, float32_t x, float32_t *result)
static riscv_status riscv_atan2_f64 (float64_t y, float64_t x, float64_t *result)
static riscv_status riscv_atan2_q15 (q15_t y, q15_t x, q15_t *result)
static riscv_status riscv_atan2_q31 (q31_t y, q31_t x, q31_t *result)
static void riscv_sin_cos_f32 (float32_t theta, float32_t *pSinVal, float32_t *pCosVal)
static void riscv_sin_cos_q31 (q31_t theta, q31_t *pSinVal, q31_t *pCosVal)

Macro Definition Documentation

◆ FAST_MATH_Q15_SHIFT

#define FAST_MATH_Q15_SHIFT   (16 - 10)

◆ FAST_MATH_Q31_SHIFT

#define FAST_MATH_Q31_SHIFT   (32 - 10)

◆ FAST_MATH_TABLE_SIZE

#define FAST_MATH_TABLE_SIZE   512

◆ riscv_cos_f32

#define riscv_cos_f32   tpt_cos_f32

◆ riscv_cos_f64

#define riscv_cos_f64   tpt_cos_f64

◆ riscv_sin_f32

#define riscv_sin_f32   tpt_sin_f32

◆ riscv_sin_f64

#define riscv_sin_f64   tpt_sin_f64

◆ riscv_sqrt_f32

#define riscv_sqrt_f32 ( in,
pOut )
Value:
tpt_sqrt_f32(pOut, in)
static tpt_status tpt_sqrt_f32(f32_t *aOut, f32_t aIn)
floating-point square root function.
Definition tpt_math_fast.h:291

◆ riscv_sqrt_q15

#define riscv_sqrt_q15 ( in,
pOut )
Value:
tpt_sqrt_q15(pOut, in)
tpt_status tpt_sqrt_q15(q15_t *aOut, q15_t aIn)
Q15 square root function.
Definition tpt_sqrt_q15.c:30

◆ riscv_sqrt_q31

#define riscv_sqrt_q31 ( in,
pOut )
Value:
tpt_sqrt_q31(pOut, in)
tpt_status tpt_sqrt_q31(q31_t *aOut, q31_t aIn)
Q31 square root function.
Definition tpt_sqrt_q31.c:30

◆ riscv_vexp_f16

#define riscv_vexp_f16 ( pSrc,
pDst,
blockSize )
Value:
tpt_vexp_f16(pDst, pSrc, blockSize)
void tpt_vexp_f16(f16_t *aOutData, const f16_t *aInData, uint32_t aCount)
Perform exponential operation on a f16 vector element by element.

◆ riscv_vexp_f32

#define riscv_vexp_f32 ( pSrc,
pDst,
blockSize )
Value:
tpt_vexp_f32(pDst, pSrc, blockSize)
void tpt_vexp_f32(f32_t *aOutData, const f32_t *aInData, uint32_t aCount)
Perform exponential operation on a f32 vector element by element.
Definition tpt_vexp_f32.c:11

◆ riscv_vexp_f64

#define riscv_vexp_f64 ( pSrc,
pDst,
blockSize )
Value:
tpt_vexp_f64(pDst, pSrc, blockSize)
void tpt_vexp_f64(f64_t *aOutData, const f64_t *aInData, uint32_t aCount)
Perform exponential operation on a f64 vector element by element.
Definition tpt_vexp_f64.c:11

◆ riscv_vinverse_f16

#define riscv_vinverse_f16 ( pSrc,
pDst,
blockSize )
Value:
tpt_vinverse_f16(pDst, pSrc, blockSize)
void tpt_vinverse_f16(f16_t *aOutData, const f16_t *aInData, uint32_t aCount)
Element-wise reciprocal: out[i] = 1 / in[i], in f16.

◆ riscv_vlog_f16

#define riscv_vlog_f16 ( pSrc,
pDst,
blockSize )
Value:
tpt_vlog_f16(pDst, pSrc, blockSize)
void tpt_vlog_f16(f16_t *aOutData, const f16_t *aInData, uint32_t aCount)
Element-wise natural logarithm of f16 vector.

◆ riscv_vlog_f32

#define riscv_vlog_f32 ( pSrc,
pDst,
blockSize )
Value:
tpt_vlog_f32(pDst, pSrc, blockSize)
void tpt_vlog_f32(f32_t *aOutData, const f32_t *aInData, uint32_t aCount)
Element-wise natural logarithm of f32 vector.
Definition tpt_vlog_f32.c:11

◆ riscv_vlog_f64

#define riscv_vlog_f64 ( pSrc,
pDst,
blockSize )
Value:
tpt_vlog_f64(pDst, pSrc, blockSize)
void tpt_vlog_f64(f64_t *aOutData, const f64_t *aInData, uint32_t aCount)
Element-wise natural logarithm of f64 vector.
Definition tpt_vlog_f64.c:11

◆ riscv_vlog_q15

#define riscv_vlog_q15 ( pSrc,
pDst,
blockSize )
Value:
tpt_vlog_q15(pDst, pSrc, blockSize)
void tpt_vlog_q15(q15_t *aOutData, const q15_t *aInData, uint32_t aCount)
Element-wise natural logarithm of q15 vector.
Definition tpt_vlog_q15.c:102

◆ riscv_vlog_q31

#define riscv_vlog_q31 ( pSrc,
pDst,
blockSize )
Value:
tpt_vlog_q31(pDst, pSrc, blockSize)
void tpt_vlog_q31(q31_t *aOutData, const q31_t *aInData, uint32_t aCount)
Element-wise natural logarithm of q31 vector.
Definition tpt_vlog_q31.c:92

◆ riscv_vsqrt_f32

#define riscv_vsqrt_f32 ( pIn,
pOut,
len )
Value:
tpt_vec_sqrt_f32(pOut, pIn, len)

◆ riscv_vsqrt_q15

#define riscv_vsqrt_q15 ( pIn,
pOut,
len )
Value:
tpt_vec_sqrt_q15(pOut, pIn, len)

◆ riscv_vsqrt_q31

#define riscv_vsqrt_q31 ( pIn,
pOut,
len )
Value:
tpt_vec_sqrt_q31(pOut, pIn, len)

Function Documentation

◆ riscv_atan2_f32()

riscv_status riscv_atan2_f32 ( float32_t y,
float32_t x,
float32_t * result )
inlinestatic

◆ riscv_atan2_f64()

riscv_status riscv_atan2_f64 ( float64_t y,
float64_t x,
float64_t * result )
inlinestatic

◆ riscv_atan2_q15()

riscv_status riscv_atan2_q15 ( q15_t y,
q15_t x,
q15_t * result )
inlinestatic

◆ riscv_atan2_q31()

riscv_status riscv_atan2_q31 ( q31_t y,
q31_t x,
q31_t * result )
inlinestatic

◆ riscv_cos_q15()

q31_t riscv_cos_q15 ( q31_t x)
inlinestatic

◆ riscv_cos_q31()

q31_t riscv_cos_q31 ( q31_t x)
inlinestatic

◆ riscv_sin_cos_f32()

void riscv_sin_cos_f32 ( float32_t theta,
float32_t * pSinVal,
float32_t * pCosVal )
inlinestatic

◆ riscv_sin_cos_q31()

void riscv_sin_cos_q31 ( q31_t theta,
q31_t * pSinVal,
q31_t * pCosVal )
inlinestatic

◆ riscv_sin_q15()

q31_t riscv_sin_q15 ( q31_t x)
inlinestatic

◆ riscv_sin_q31()

q31_t riscv_sin_q31 ( q31_t x)
inlinestatic