Skip to content

Vector Absolute Value

Module: Basic Math Functions

More...

Modules

Name
Vector Dot Product Kernels

Functions

Name
void plp_abs_i16(const int16_t * pSrc, int16_t * pDst, uint32_t blockSize)
Glue code for absolute value of 16-bit integer vectors.
void plp_abs_i32(const int32_t * pSrc, int32_t * pDst, uint32_t blockSize)
Glue code for absolute value of 32-bit integer vectors.
void plp_abs_i8(const int8_t * pSrc, int8_t * pDst, uint32_t blockSize)
Glue code for absolute value of 8-bit integer vectors.

Detailed Description

This module contains the glue code for Vector Absolute Value. The kernel codes (kernels) are in the Moducle Vector Absolute Value Kernels.

The Vector Absolute Value computes the absolute value of a vector on an element-by-element basis. The vectors are multiplied element-by-element and then summed. pDst[n] = abs(pSrc[n]), 0 <= n < blockSize. 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_abs_i16

void plp_abs_i16(
    const int16_t * pSrc,
    int16_t * pDst,
    uint32_t blockSize
)

Glue code for absolute value of 16-bit integer vectors.

Parameters:

  • pSrc points to the input vector
  • pDst points to the output vector
  • blockSize number of samples in each vector

Return: none

function plp_abs_i32

void plp_abs_i32(
    const int32_t * pSrc,
    int32_t * pDst,
    uint32_t blockSize
)

Glue code for absolute value of 32-bit integer vectors.

Parameters:

  • pSrc points to the input vector
  • pDst points to the output vector
  • blockSize number of samples in each vector

Return: none

function plp_abs_i8

void plp_abs_i8(
    const int8_t * pSrc,
    int8_t * pDst,
    uint32_t blockSize
)

Glue code for absolute value of 8-bit integer vectors.

Parameters:

  • pSrc points to the input vector
  • pDst points to the output vector
  • blockSize number of samples in each vector

Return: none


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