Edge AI Add-on API 2.3.0
Loading...
Searching...
No Matches

◆ nrf_axon_xty_16_16_32_output_stride()

nrf_axon_result_e nrf_axon_xty_16_16_32_output_stride ( const int16_t * x_ptr,
const int16_t * y_ptr,
int32_t * out_ptr,
uint16_t length,
uint8_t rounding_bits,
uint8_t output_extra_stride,
nrf_axon_syncmode_blocking_e block_mode,
bool keep_reservation )

#include <include/drivers/axon/nrf_axon_dsp_intrinsics.h>

"xty output_stride" => "vector x times vector y with output_stride gaps between outputs" vector multiplies 2 16bit vectors to produce a 32bit vector, with option to have unpacked output vector.

Useful for applying a hamming window on real input before performing an FFT, which requires complex input. Pass output_extra_stride=1 and the output will be placed every other word in the real coefficients slots. A separate function would need to be called to 0 out the imaginary coefficients.

If output_extra_stride is not needed it can be set to 0, but using axon_xty_16_16_32() is preferred for better performance. It performs multiplication of 2 16bit vectors and produces a 32bit output.

Parameters
x_ptrx vector input. 16bit integers packed.
y_ptry vector input. 16bit integers packed.
out_ptrlocation to place output. Can safely overlap either input
lengthnumber of of elements in the input vectors. Maximum value is 512.
rounding_bitsnumber of bits to round the output by.
output_extra_stridenumber of gap words between each output.
block_moderecommnended to be set to NRF_AXON_SYNC_MODE_BLOCKING_POLLING.
keep_reservationset to true if there are subsequent axon operations to execute immediately on completion. true prevents axon from be taken by another user and/or being powered off. Set to false if axon will not be used immediately after to free axon for other users and/or power down if idle.
Returns
kAxonResultSuccess on success or a negative error code (see nrf_axon_result_e)