Skip to content

Power

Module: Statistics Functions

More...

Modules

Name
Power Kernels
RMS Kernels

Functions

Name
void plp_power_f32(const float restrict pSrc, uint32_t blockSize, float restrict pRes)
Glue code for sum of squares of a 32-bit float vector.
void plp_power_f32_parallel(const float32_t restrict pSrc, uint32_t blockSize, uint32_t nPE, float32_t restrict pRes)
Glue code for parallel power of 32-bit floating point vectors.
void plp_power_i16(const int16_t restrict pSrc, uint32_t blockSize, int32_t restrict pRes)
Glue code for sum of squares of a 16-bit integer vector.
void plp_power_i32(const int32_t restrict pSrc, uint32_t blockSize, int32_t restrict pRes)
Glue code for sum of squares of a 32-bit integer vector.
void plp_power_i8(const int8_t restrict pSrc, uint32_t blockSize, int32_t restrict pRes)
Glue code for sum of squares of a 8-bit integer vector.
void plp_power_q16(const int16_t restrict pSrc, uint32_t blockSize, uint32_t fracBits, int32_t restrict pRes)
Glue code for sum of squares of a 8-bit fixed point vector.
void plp_power_q32(const int32_t restrict pSrc, uint32_t blockSize, uint32_t fracBits, int32_t restrict pRes)
Glue code for sum of squares of a 8-bit fixed point vector.
void plp_power_q32_parallel(const int32_t restrict pSrc, uint32_t blockSize, uint32_t deciPoint, uint32_t nPE, int32_t restrict pRes)
Glue code for parallel power of 32-bit fixed-point vectors.
void plp_power_q8(const int8_t restrict pSrc, uint32_t blockSize, uint32_t fracBits, int32_t restrict pRes)
Glue code for sum of squares of a 8-bit fixed point vector.
void plp_rms_f32(const float restrict pSrc, uint32_t blockSize, float restrict pRes)
Glue code for RMS value of a 32-bit float vector.
void plp_rms_q16(const int16_t restrict pSrc, uint32_t blockSize, uint32_t fracBits, int16_t restrict pRes)
Glue code for RMS value of a 8-bit fixed point vector.
void plp_rms_q32(const int32_t restrict pSrc, uint32_t blockSize, uint32_t fracBits, int32_t restrict pRes)
Glue code for RMS value of a 8-bit fixed point vector.
void plp_rms_q8(const int8_t restrict pSrc, uint32_t blockSize, uint32_t fracBits, int8_t restrict pRes)
Glue code for RMS value of a 8-bit fixed point vector.

Detailed Description

Calculates the sum of squares of the input vector. There are separate functions for floating point, integer, and fixed point 32- 16- 8-bit data types. For lower precision integers (16- and 8-bit), functions exploiting SIMD instructions are provided.

The naming scheme of the functions follows the following pattern (for example plp_dot_prod_i32s): _ _ _ , with

data type = {f, i, q} respectively for floats, integers, fixed points

precision = {32, 16, 8} bits

method = {s, p} respectively meaning single core or parallel multicore implementation.

isa extension = rv32im, xpulpv2, etc. of which rv32im is the most general one.

Calculates the RMS value of the input vector. There are separate functions for floating point, integer, and fixed point 32- 16- 8-bit data types. For lower precision integers (16- and 8-bit), functions exploiting SIMD instructions are provided.

The naming scheme of the functions follows the following pattern (for example plp_dot_prod_i32s): _ _ _ , with

data type = {f, i, q} respectively for floats, integers, fixed points

precision = {32, 16, 8} bits

method = {s, p} respectively meaning single core or parallel multicore implementation.

isa extension = rv32im, xpulpv2, etc. of which rv32im is the most general one.

Functions Documentation

function plp_power_f32

void plp_power_f32(
    const float *__restrict__ pSrc,
    uint32_t blockSize,
    float *__restrict__ pRes
)

Glue code for sum of squares of a 32-bit float vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes sum of squares returned here

Return: none

Glue code for Sum of squares of a 32-bit float vector.

function plp_power_f32_parallel

void plp_power_f32_parallel(
    const float32_t *__restrict__ pSrc,
    uint32_t blockSize,
    uint32_t nPE,
    float32_t *__restrict__ pRes
)

Glue code for parallel power of 32-bit floating point vectors.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in each vector
  • fracBits number of fixed point fractional bits
  • nPE number of parallel processing units
  • pRes output result returned here

Return: none

function plp_power_i16

void plp_power_i16(
    const int16_t *__restrict__ pSrc,
    uint32_t blockSize,
    int32_t *__restrict__ pRes
)

Glue code for sum of squares of a 16-bit integer vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes sum of squares returned here

Return: none

Glue code for Sum of squares of a 16-bit integer vector.

function plp_power_i32

void plp_power_i32(
    const int32_t *__restrict__ pSrc,
    uint32_t blockSize,
    int32_t *__restrict__ pRes
)

Glue code for sum of squares of a 32-bit integer vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes sum of squares returned here

Return: none

Glue code for Sum of squares of a 32-bit integer vector.

function plp_power_i8

void plp_power_i8(
    const int8_t *__restrict__ pSrc,
    uint32_t blockSize,
    int32_t *__restrict__ pRes
)

Glue code for sum of squares of a 8-bit integer vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes sum of squares returned here

Return: none

Glue code for Sum of squares of a 8-bit integer vector.

function plp_power_q16

void plp_power_q16(
    const int16_t *__restrict__ pSrc,
    uint32_t blockSize,
    uint32_t fracBits,
    int32_t *__restrict__ pRes
)

Glue code for sum of squares of a 8-bit fixed point vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes sum of squares returned here

Return: none

Glue code for Sum of squares of a 16-bit fixed point vector.

function plp_power_q32

void plp_power_q32(
    const int32_t *__restrict__ pSrc,
    uint32_t blockSize,
    uint32_t fracBits,
    int32_t *__restrict__ pRes
)

Glue code for sum of squares of a 8-bit fixed point vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes sum of squares returned here

Return: none

Glue code for Sum of squares of a 32-bit fixed point vector.

function plp_power_q32_parallel

void plp_power_q32_parallel(
    const int32_t *__restrict__ pSrc,
    uint32_t blockSize,
    uint32_t deciPoint,
    uint32_t nPE,
    int32_t *__restrict__ pRes
)

Glue code for parallel power of 32-bit fixed-point vectors.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in each vector
  • deciPoint number of fixed point fractional bits
  • nPE number of parallel processing units
  • pRes output result returned here

Return: none

Glue code for parallel power of 32-bit fixed point vectors.

function plp_power_q8

void plp_power_q8(
    const int8_t *__restrict__ pSrc,
    uint32_t blockSize,
    uint32_t fracBits,
    int32_t *__restrict__ pRes
)

Glue code for sum of squares of a 8-bit fixed point vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes sum of squares returned here

Return: none

Glue code for Sum of squares of a 8-bit fixed point vector.

function plp_rms_f32

void plp_rms_f32(
    const float *__restrict__ pSrc,
    uint32_t blockSize,
    float *__restrict__ pRes
)

Glue code for RMS value of a 32-bit float vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes RMS value returned here

Return: none

Glue code for Statisical standard deviation of a 32-bit floating point vector.

function plp_rms_q16

void plp_rms_q16(
    const int16_t *__restrict__ pSrc,
    uint32_t blockSize,
    uint32_t fracBits,
    int16_t *__restrict__ pRes
)

Glue code for RMS value of a 8-bit fixed point vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes RMS value returned here

Return: none

Glue code for Statisical standard deviation of a 16-bit fixed point vector.

function plp_rms_q32

void plp_rms_q32(
    const int32_t *__restrict__ pSrc,
    uint32_t blockSize,
    uint32_t fracBits,
    int32_t *__restrict__ pRes
)

Glue code for RMS value of a 8-bit fixed point vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes RMS value returned here

Return: none

Glue code for Statisical standard deviation of a 32-bit fixed point vector.

function plp_rms_q8

void plp_rms_q8(
    const int8_t *__restrict__ pSrc,
    uint32_t blockSize,
    uint32_t fracBits,
    int8_t *__restrict__ pRes
)

Glue code for RMS value of a 8-bit fixed point vector.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes RMS value returned here

Return: none

Glue code for Statisical standard deviation of a 8-bit fixed point vector.


Updated on 2023-03-01 at 16:16:32 +0000