22#define NRF_AXON_DSP_VECTOR_MULTPLE (4)
23#define NRF_AXON_DSP_VECTOR_LENGTH_CEIL(vector_length) (NRF_AXON_DSP_VECTOR_MULTPLE * (((vector_length)+NRF_AXON_DSP_VECTOR_MULTPLE-1)/NRF_AXON_DSP_VECTOR_MULTPLE))
48 const int32_t *in_ptr,
52 bool round_by_length_log2,
54 bool keep_reservation);
71 const int32_t *in_ptr,
75 uint8_t rounding_bits,
77 bool keep_reservation);
99 const int32_t *in_ptr,
100 const int32_t *filter_ptr,
102 uint16_t input_length,
103 uint16_t filter_length,
104 uint8_t rounding_bits,
106 bool keep_reservation);
128 const int32_t *in_ptr,
129 const int16_t *filter_ptr,
131 uint16_t input_length,
132 uint16_t filter_length,
133 uint8_t rounding_bits,
135 bool keep_reservation);
154 const int32_t *in_ptr,
158 bool keep_reservation);
177 const int32_t *in_ptr,
181 bool keep_reservation);
201 const int32_t *in_ptr,
205 bool keep_reservation);
227 const int32_t *x_ptr,
228 const int32_t *y_ptr,
231 uint8_t rounding_bits,
233 bool keep_reservation);
253 const int32_t *x_ptr,
254 const int32_t *y_ptr,
257 uint8_t rounding_bits,
259 bool keep_reservation);
277 const int32_t *x_ptr,
278 const int32_t *y_ptr,
281 uint8_t rounding_bits,
283 bool keep_reservation);
300 const int32_t *x_ptr,
301 const int32_t *y_ptr,
304 uint8_t rounding_bits,
306 bool keep_reservation);
323 const int32_t *x_ptr,
324 const int32_t *y_ptr,
327 uint8_t rounding_bits,
329 bool keep_reservation);
346 const int32_t *x_ptr,
347 const int32_t *y_ptr,
350 uint8_t rounding_bits,
352 bool keep_reservation);
370 const int32_t *x_ptr,
371 const int32_t *a_scalar,
372 const int32_t *b_scalar,
375 uint8_t rounding_bits,
377 bool keep_reservation);
397 const int32_t *x_ptr,
398 const int32_t *y_ptr,
399 const int32_t *a_scalar,
400 const int32_t *b_scalar,
403 uint8_t rounding_bits,
405 bool keep_reservation);
421 const int32_t *x_ptr,
424 uint8_t rounding_bits,
426 bool keep_reservation);
443 const int32_t *x_ptr,
444 const int32_t *y_ptr,
447 uint8_t rounding_bits,
449 bool keep_reservation);
466 const int16_t *x_ptr,
467 const int32_t *y_ptr,
470 uint8_t rounding_bits,
472 bool keep_reservation);
489 const int16_t *x_ptr,
490 const int16_t *y_ptr,
493 uint8_t rounding_bits,
495 bool keep_reservation);
512 const int32_t *x_ptr,
513 const int32_t *y_ptr,
516 uint8_t rounding_bits,
518 bool keep_reservation);
535 const int16_t *x_ptr,
536 const int32_t *y_ptr,
539 uint8_t rounding_bits,
541 bool keep_reservation);
558 const int16_t *x_ptr,
559 const int16_t *y_ptr,
562 uint8_t rounding_bits,
564 bool keep_reservation);
581 const int32_t *x_ptr,
584 uint8_t rounding_bits,
586 bool keep_reservation);
603 const int16_t *x_ptr,
606 uint8_t rounding_bits,
608 bool keep_reservation);
625 const int32_t *x_ptr,
628 uint8_t rounding_bits,
630 bool keep_reservation);
647 const int16_t *x_ptr,
650 uint8_t rounding_bits,
652 bool keep_reservation);
668 const int32_t *x_ptr,
671 uint8_t rounding_bits,
673 bool keep_reservation);
688 const int16_t *x_ptr,
691 uint8_t rounding_bits,
693 bool keep_reservation);
708 const int32_t *x_ptr,
711 uint8_t rounding_bits,
713 bool keep_reservation);
728 const int16_t *x_ptr,
731 uint8_t rounding_bits,
733 bool keep_reservation);
748 const int32_t *x_ptr,
751 uint8_t rounding_bits,
753 bool keep_reservation);
768 const int16_t *x_ptr,
771 uint8_t rounding_bits,
773 bool keep_reservation);
788 const int32_t *x_ptr,
791 uint8_t rounding_bits,
793 bool keep_reservation);
808 const int16_t *x_ptr,
811 uint8_t rounding_bits,
813 bool keep_reservation);
824 const int16_t *x_ptr,
825 const int16_t *y_ptr,
828 uint8_t rounding_bits,
830 bool keep_reservation);
852 const int16_t *x_ptr,
853 const int16_t *y_ptr,
856 uint8_t rounding_bits,
857 uint8_t output_extra_stride,
859 bool keep_reservation);
880 uint8_t output_extra_stride,
882 bool keep_reservation);
890 const int32_t *in_ptr,
894 bool keep_reservation);
906 const int32_t *in_ptr,
910 bool keep_reservation);
950 const int16_t *input_ptr,
951 const int16_t *filter_ptr,
953 uint16_t input_height,
954 uint16_t filter_height,
955 uint16_t decimate_width,
956 uint8_t rounding_bits,
958 bool keep_reservation);
998 const int16_t *input_ptr,
999 const int16_t *filter_ptr,
1001 uint16_t input_height,
1002 uint16_t filter_height,
1003 uint16_t decimate_width,
1004 uint8_t rounding_bits,
1006 bool keep_reservation);
1042 const int16_t *input_ptr,
1043 const int16_t *filter_ptr,
1045 uint16_t input_length,
1046 uint16_t filter_length,
1048 uint8_t rounding_bits,
1050 bool keep_reservation);
1080 const int16_t *input_ptr,
1081 const int16_t *filter_ptr,
1083 uint8_t rounding_bits,
1085 bool keep_reservation);
1115 const int16_t *input_ptr,
1116 const int16_t *filter_ptr,
1118 uint8_t rounding_bits,
1120 bool keep_reservation);
nrf_axon_result_e
Axon driver return codes.
Definition nrf_axon_driver.h:86
nrf_axon_syncmode_blocking_e
Specifies the blocking mechanism for synchronous Axon command buffer execution.
Definition nrf_axon_driver.h:152
nrf_axon_result_e nrf_axon_acc_24_24(const int32_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Acc" => "Accumulate" sums the elements in vector X
nrf_axon_result_e nrf_axon_marx_16_24(const int16_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Marx" => "Multiply, Accumulate, recursive, only reload the x vector" sums the products of elements i...
nrf_axon_result_e nrf_axon_l2norm_16_32(const int16_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"l2norm" => sums the square of the elements in vector X
nrf_axon_result_e nrf_axon_fir_2d_16_16_24_decimate(const int16_t *input_ptr, const int16_t *filter_ptr, int32_t *out_ptr, uint16_t input_height, uint16_t filter_height, uint16_t decimate_width, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"FIR" => "Finite Impulse Response" filter with decimation multiple. Filter coefficients are MAC'd wit...
nrf_axon_result_e nrf_axon_exp_11p12(const int32_t *in_ptr, int32_t *out_ptr, uint16_t length, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"exp"=> "exponent" (e to the x) Calculates the exponent of vector input, output=exp(input)....
nrf_axon_result_e nrf_axon_saturate_32_8(const int32_t *in_ptr, int8_t *out_ptr, uint16_t length, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
Saturates a 32bit vector to 8bits, unpacked.
nrf_axon_result_e nrf_axon_fir_16_16_32_decimate(const int16_t *input_ptr, const int16_t *filter_ptr, int32_t *out_ptr, uint16_t input_length, uint16_t filter_length, uint16_t decimate, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"FIR" => "Finite Impulse Response" filter with decimation multiple. Filter coefficients are MAC'd wit...
nrf_axon_result_e nrf_axon_fft_power_24(const int32_t *in_ptr, int32_t *out_ptr, uint16_t length_log2, bool half_output, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
Performs a 24bit (unpacked) complex FFT, then sums the squares of the complex coefficients,...
nrf_axon_result_e nrf_axon_axpb_24_24(const int32_t *x_ptr, const int32_t *a_scalar, const int32_t *b_scalar, int32_t *output, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"axpb"=>"a times x + b" Multiplies eache vector value by "a" and adds "b"
nrf_axon_result_e nrf_axon_acc_16_24(const int16_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Acc" => "Accumulate" sums the elements in vector X
nrf_axon_result_e nrf_axon_mar_16_16_32(const int16_t *x_ptr, const int16_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Mar" => "Multiply, Accumulate, recursive" sums the products of elements in input vector X and input ...
nrf_axon_result_e nrf_axon_l2norm_24_24(const int32_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"l2norm" => sums the square of the elements in vector X
nrf_axon_result_e nrf_axon_xty_24_24_24(const int32_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Xty"=>"X Times Y " multiplies vector X and vector Y.
nrf_axon_result_e nrf_axon_xmy_24_24_24(const int32_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Xmy"=>"X Minus Y" subtracts vector Y from vector X.
nrf_axon_result_e nrf_axon_marx_24_32(const int32_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Marx" => "Multiply, Accumulate, recursive, only reload the x vector" sums the products of elements i...
nrf_axon_result_e nrf_axon_mar_16_16_24(const int16_t *x_ptr, const int16_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Mar" => "Multiply, Accumulate, recursive" sums the products of elements in input vector X and input ...
nrf_axon_result_e nrf_axon_xsmys_24_24_24(const int32_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Xsmys"=>"X Squared Minus Y Squared" subtracts the square of vector Y from the square of vector X.
nrf_axon_result_e nrf_axon_sqrt_24(const int32_t *in_ptr, int32_t *out_ptr, uint16_t length, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Sqrt"=> "Square Root" Calculates a the square root of vector input, output=SQRT(input)....
nrf_axon_result_e nrf_axon_xpy_24_24_24(const int32_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Xpy"=>"X Plus Y " vector adds vector X and vector Y.
nrf_axon_result_e nrf_axon_mar_16_24_24(const int16_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Mar" => "Multiply, Accumulate, recursive" sums the products of elements in input vector X and input ...
nrf_axon_result_e nrf_axon_fir_2d_16_16_32_decimate(const int16_t *input_ptr, const int16_t *filter_ptr, int32_t *out_ptr, uint16_t input_height, uint16_t filter_height, uint16_t decimate_width, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"FIR" => "Finite Impulse Response" filter with decimation multiple. Filter coefficients are MAC'd wit...
nrf_axon_result_e nrf_axon_marx_16_32(const int16_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Marx" => "Multiply, Accumulate, recursive, only reload the x vector" sums the products of elements i...
nrf_axon_result_e nrf_axon_acc_24_32(const int32_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Acc" => "Accumulate" sums the elements in vector X
nrf_axon_result_e nrf_axon_l2norm_16_24(const int16_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"l2norm" => sums the square of the elements in vector X
nrf_axon_result_e nrf_axon_xs_24_24(const int32_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"xs"=>"x squared" Each vector value is multiplied by itself
nrf_axon_result_e nrf_axon_mar_16_24_32(const int16_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Mar" => "Multiply, Accumulate, recursive" sums the products of elements in input vector X and input ...
nrf_axon_result_e nrf_axon_xty_16_16_32(const int16_t *x_ptr, const int16_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
vector multiplies 2 16bit vectors to produce a 32bit vector
nrf_axon_result_e nrf_axon_memset_32_output_stride(int16_t set_val, int32_t *out_ptr, uint16_t length, uint8_t output_extra_stride, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
Sets 32bit words with the value in set_val (which is limited to 16bits, but sign extended to 32bits).
nrf_axon_result_e nrf_axon_xspys_24_24_24(const int32_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Xspys"=>"X Squared Plus Y Squared" adds the square of vector Y to the square of vector X.
nrf_axon_result_e nrf_axon_marx_24_24(const int32_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Marx" => "Multiply, Accumulate, recursive, only reload the x vector" sums the products of elements i...
nrf_axon_result_e nrf_axon_axpby_24_24_24(const int32_t *x_ptr, const int32_t *y_ptr, const int32_t *a_scalar, const int32_t *b_scalar, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"axpby"=>"a times x + b times y" Multiplies each x vector value by "a" and adds the product of "b" an...
nrf_axon_result_e nrf_axon_fir_16_16_32_1024_256_decimate_1(const int16_t *input_ptr, const int16_t *filter_ptr, int32_t *out_ptr, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"FIR" => "Finite Impulse Response" filter with decimation multiple. Filter coefficients are MAC'd wit...
nrf_axon_result_e nrf_axon_fir_24_16_24(const int32_t *in_ptr, const int16_t *filter_ptr, int32_t *out_ptr, uint16_t input_length, uint16_t filter_length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"FIR" => "Finite Impulse Response" filter. Filter coefficients are MAC'd with the input in reverse or...
nrf_axon_result_e nrf_axon_logn_11p12(const int32_t *in_ptr, int32_t *out_ptr, uint16_t length, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"logn"=> "Natural Log" Calculates the natural log of vector input, output=ln(input)....
nrf_axon_result_e nrf_axon_mar_24_24_32(const int32_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Mar" => "Multiply, Accumulate, recursive" sums the products of elements in input vector X and input ...
nrf_axon_result_e nrf_axon_l2norm_24_32(const int32_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"l2norm" => sums the square of the elements in vector X
nrf_axon_result_e nrf_axon_fir_24_24_24(const int32_t *in_ptr, const int32_t *filter_ptr, int32_t *out_ptr, uint16_t input_length, uint16_t filter_length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"FIR" => "Finite Impulse Response" filter. Filter coefficients are MAC'd with the input in reverse or...
nrf_axon_result_e nrf_axon_fft_24(const int32_t *in_ptr, int32_t *out_ptr, uint16_t length_log2, bool half_output, bool round_by_length_log2, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
Performs a 24bit (unpacked) complex FFT. complex numbers are stored in pairs, real component,...
nrf_axon_result_e nrf_axon_acc_16_32(const int16_t *x_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Acc" => "Accumulate" sums the elements in vector X
nrf_axon_result_e nrf_axon_mar_24_24_24(const int32_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Mar" => "Multiply, Accumulate, recursive" sums the products of elements in input vector X and input ...
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)
vector multiplies 2 16bit vectors to produce a 32bit vector, with option to have unpacked output vect...
nrf_axon_result_e nrf_axon_xspys_24_24_24_input_stride2(const int32_t *x_ptr, const int32_t *y_ptr, int32_t *out_ptr, uint16_t length, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"Xspys"=>"X Squared Plus Y Squared" adds the square of vector Y to the square of vector X....
AxonRoundingEnum
Definition nrf_axon_dsp_intrinsics.h:30
@ kAxonRoundingNone
Definition nrf_axon_dsp_intrinsics.h:31
@ kAxonRoundingMax
Definition nrf_axon_dsp_intrinsics.h:32
nrf_axon_result_e nrf_axon_fir_16_16_32_1024_256_decimate_4(const int16_t *input_ptr, const int16_t *filter_ptr, int32_t *out_ptr, uint8_t rounding_bits, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
"FIR" => "Finite Impulse Response" filter with decimation multiple. Filter coefficients are MAC'd wit...
nrf_axon_result_e nrf_axon_saturate_32_24(const int32_t *in_ptr, int32_t *out_ptr, uint16_t length, nrf_axon_syncmode_blocking_e block_mode, bool keep_reservation)
Saturates a 32bit vector to 24bits, unpacked. Used to convert 32bit output into 24bit input needed by...