Lines Matching +full:input +full:- +full:src
1 /* Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved.
2 * SPDX-License-Identifier: Apache-2.0
29 * Element-by-element multiplication of two vectors.
33 * There are separate functions for floating-point, Q7, Q15, and Q31 data types.
44 * @param[in] src_a points to the first input vector
45 * @param[in] src_b points to the second input vector
59 * @param[in] src_a points to the first input vector
60 * @param[in] src_b points to the second input vector
74 * @param[in] src_a points to the first input vector
75 * @param[in] src_b points to the second input vector
83 * @brief Floating-point vector multiplication.
84 * @param[in] src_a points to the first input vector
85 * @param[in] src_b points to the second input vector
100 * Element-by-element addition of two vectors.
104 * There are separate functions for floating-point, Q7, Q15, and Q31 data types.
109 * @brief Floating-point vector addition.
110 * @param[in] src_a points to the first input vector
111 * @param[in] src_b points to the second input vector
125 * @param[in] src_a points to the first input vector
126 * @param[in] src_b points to the second input vector
140 * @param[in] src_a points to the first input vector
141 * @param[in] src_b points to the second input vector
155 * @param[in] src_a points to the first input vector
156 * @param[in] src_b points to the second input vector
171 * Element-by-element subtraction of two vectors.
173 * dst[n] = src_a[n] - src_b[n], 0 <= n < block_size.
175 * There are separate functions for floating-point, Q7, Q15, and Q31 data types.
180 * @brief Floating-point vector subtraction.
181 * @param[in] src_a points to the first input vector
182 * @param[in] src_b points to the second input vector
196 * @param[in] src_a points to the first input vector
197 * @param[in] src_b points to the second input vector
211 * @param[in] src_a points to the first input vector
212 * @param[in] src_b points to the second input vector
226 * @param[in] src_a points to the first input vector
227 * @param[in] src_b points to the second input vector
242 * Multiply a vector by a scalar value. For floating-point data, the algorithm used is:
244 * dst[n] = src[n] * scale, 0 <= n < block_size.
247 * In the fixed-point Q7, Q15, and Q31 functions, scale is represented by a fractional
249 * allows the gain of the scaling operation to exceed 1.0. The algorithm used with fixed-point data
252 * dst[n] = (src[n] * scale_fract) << shift, 0 <= n < block_size.
255 * The overall scale factor applied to the fixed-point data is
259 * The functions support in-place computation allowing the source and destination pointers to
265 * @brief Multiplies a floating-point vector by a scalar.
266 * @param[in] src points to the input vector
271 DSP_FUNC_SCOPE void zdsp_scale_f32(const DSP_DATA float32_t *src, float32_t scale,
278 * The input data <code>*src</code> and <code>scale_fract</code> are in 1.7 format.
282 * @param[in] src points to the input vector
288 DSP_FUNC_SCOPE void zdsp_scale_q7(const DSP_DATA q7_t *src, q7_t scale_fract, int8_t shift,
295 * The input data <code>*src</code> and <code>scale_fract</code> are in 1.15 format.
299 * @param[in] src points to the input vector
305 DSP_FUNC_SCOPE void zdsp_scale_q15(const DSP_DATA q15_t *src, q15_t scale_fract, int8_t shift,
312 * The input data <code>*src</code> and <code>scale_fract</code> are in 1.31 format.
316 * @param[in] src points to the input vector
322 DSP_FUNC_SCOPE void zdsp_scale_q31(const DSP_DATA q31_t *src, q31_t scale_fract, int8_t shift,
333 * Computes the absolute value of a vector on an element-by-element basis.
335 * dst[n] = abs(src[n]), 0 <= n < block_size.
337 * The functions support in-place computation allowing the source and destination pointers to
338 * reference the same memory buffer. There are separate functions for floating-point, Q7, Q15, and
344 * @brief Floating-point vector absolute value.
345 * @param[in] src points to the input buffer
349 DSP_FUNC_SCOPE void zdsp_abs_f32(const DSP_DATA float32_t *src, DSP_DATA float32_t *dst,
357 * The Q7 value -1 (0x80) will be saturated to the maximum allowable positive value 0x7F.
359 * @param[in] src points to the input buffer
363 DSP_FUNC_SCOPE void zdsp_abs_q7(const DSP_DATA q7_t *src, DSP_DATA q7_t *dst, uint32_t block_size);
370 * The Q15 value -1 (0x8000) will be saturated to the maximum allowable positive value 0x7FFF.
372 * @param[in] src points to the input buffer
376 DSP_FUNC_SCOPE void zdsp_abs_q15(const DSP_DATA q15_t *src, DSP_DATA q15_t *dst,
384 * The Q31 value -1 (0x80000000) will be saturated to the maximum allowable positive value
387 * @param[in] src points to the input buffer
391 DSP_FUNC_SCOPE void zdsp_abs_q31(const DSP_DATA q31_t *src, DSP_DATA q31_t *dst,
402 * Computes the dot product of two vectors. The vectors are multiplied element-by-element and then
405 * sum = src_a[0]*src_b[0] + src_a[1]*src_b[1] + ... + src_a[block_size-1]*src_b[block_size-1]
407 * There are separate functions for floating-point, Q7, Q15, and Q31 data types.
412 * @brief Dot product of floating-point vectors.
413 * @param[in] src_a points to the first input vector
414 * @param[in] src_b points to the second input vector
431 * @param[in] src_a points to the first input vector
432 * @param[in] src_b points to the second input vector
444 * to a 64-bit accumulator in 34.30 format. Nonsaturating additions are used and given that there
448 * @param[in] src_a points to the first input vector
449 * @param[in] src_b points to the second input vector
462 * to a 64-bit accumulator in 16.48 format. There are 15 guard bits in the accumulator and there
466 * @param[in] src_a points to the first input vector
467 * @param[in] src_b points to the second input vector
482 * Shifts the elements of a fixed-point vector by a specified number of bits.
485 * dst[n] = src[n] << shift, 0 <= n < block_size.
490 * The functions support in-place computation allowing the source and destination pointers to
502 * @param[in] src points to the input vector
508 DSP_FUNC_SCOPE void zdsp_shift_q7(const DSP_DATA q7_t *src, int8_t shift_bits, DSP_DATA q7_t *dst,
518 * @param[in] src points to the input vector
524 DSP_FUNC_SCOPE void zdsp_shift_q15(const DSP_DATA q15_t *src, int8_t shift_bits,
534 * @param[in] src points to the input vector
540 DSP_FUNC_SCOPE void zdsp_shift_q31(const DSP_DATA q31_t *src, int8_t shift_bits,
553 * dst[n] = src[n] + offset, 0 <= n < block_size.
555 * The functions support in-place computation allowing the source and destination pointers to
556 * reference the same memory buffer. There are separate functions for floating-point, Q7, Q15, and
563 * @brief Adds a constant offset to a floating-point vector.
564 * @param[in] src points to the input vector
569 DSP_FUNC_SCOPE void zdsp_offset_f32(const DSP_DATA float32_t *src, float32_t offset,
579 * @param[in] src points to the input vector
584 DSP_FUNC_SCOPE void zdsp_offset_q7(const DSP_DATA q7_t *src, q7_t offset, DSP_DATA q7_t *dst,
594 * @param[in] src points to the input vector
599 DSP_FUNC_SCOPE void zdsp_offset_q15(const DSP_DATA q15_t *src, q15_t offset, DSP_DATA q15_t *dst,
609 * @param[in] src points to the input vector
614 DSP_FUNC_SCOPE void zdsp_offset_q31(const DSP_DATA q31_t *src, q31_t offset, DSP_DATA q31_t *dst,
627 * dst[n] = -src[n], 0 <= n < block_size.
629 * The functions support in-place computation allowing the source and destination pointers to
630 * reference the same memory buffer. There are separate functions for floating-point, Q7, Q15, and
637 * @brief Negates the elements of a floating-point vector.
638 * @param[in] src points to the input vector
642 DSP_FUNC_SCOPE void zdsp_negate_f32(const DSP_DATA float32_t *src, DSP_DATA float32_t *dst,
650 * The Q7 value -1 (0x80) is saturated to the maximum allowable positive value 0x7F.
652 * @param[in] src points to the input vector
656 DSP_FUNC_SCOPE void zdsp_negate_q7(const DSP_DATA q7_t *src, DSP_DATA q7_t *dst,
664 * The Q15 value -1 (0x8000) is saturated to the maximum allowable positive value 0x7FFF.
666 * @param[in] src points to the input vector
670 DSP_FUNC_SCOPE void zdsp_negate_q15(const DSP_DATA q15_t *src, DSP_DATA q15_t *dst,
678 * The Q31 value -1 (0x80000000) is saturated to the maximum allowable positive value 0x7FFFFFFF.
680 * @param[in] src points to the input vector
684 DSP_FUNC_SCOPE void zdsp_negate_q31(const DSP_DATA q31_t *src, DSP_DATA q31_t *dst,
702 * @brief Compute the logical bitwise AND of two fixed-point vectors.
703 * @param[in] src_a points to input vector A
704 * @param[in] src_b points to input vector B
712 * @brief Compute the logical bitwise AND of two fixed-point vectors.
713 * @param[in] src_a points to input vector A
714 * @param[in] src_b points to input vector B
722 * @brief Compute the logical bitwise AND of two fixed-point vectors.
723 * @param[in] src_a points to input vector A
724 * @param[in] src_b points to input vector B
746 * @brief Compute the logical bitwise OR of two fixed-point vectors.
747 * @param[in] src_a points to input vector A
748 * @param[in] src_b points to input vector B
756 * @brief Compute the logical bitwise OR of two fixed-point vectors.
757 * @param[in] src_a points to input vector A
758 * @param[in] src_b points to input vector B
766 * @brief Compute the logical bitwise OR of two fixed-point vectors.
767 * @param[in] src_a points to input vector A
768 * @param[in] src_b points to input vector B
790 * @brief Compute the logical bitwise NOT of a fixed-point vector.
791 * @param[in] src points to input vector
795 DSP_FUNC_SCOPE void zdsp_not_u8(const DSP_DATA uint8_t *src, DSP_DATA uint8_t *dst,
799 * @brief Compute the logical bitwise NOT of a fixed-point vector.
800 * @param[in] src points to input vector
804 DSP_FUNC_SCOPE void zdsp_not_u16(const DSP_DATA uint16_t *src, DSP_DATA uint16_t *dst,
808 * @brief Compute the logical bitwise NOT of a fixed-point vector.
809 * @param[in] src points to input vector
813 DSP_FUNC_SCOPE void zdsp_not_u32(const DSP_DATA uint32_t *src, DSP_DATA uint32_t *dst,
831 * @brief Compute the logical bitwise XOR of two fixed-point vectors.
832 * @param[in] src_a points to input vector A
833 * @param[in] src_b points to input vector B
841 * @brief Compute the logical bitwise XOR of two fixed-point vectors.
842 * @param[in] src_a points to input vector A
843 * @param[in] src_b points to input vector B
851 * @brief Compute the logical bitwise XOR of two fixed-point vectors.
852 * @param[in] src_a points to input vector A
853 * @param[in] src_b points to input vector B
868 * Element-by-element clipping of a value.
872 * There are separate functions for floating-point, Q7, Q15, and Q31 data types.
877 * @brief Elementwise floating-point clipping
878 * @param[in] src points to input values
884 DSP_FUNC_SCOPE void zdsp_clip_f32(const DSP_DATA float32_t *src, DSP_DATA float32_t *dst,
888 * @brief Elementwise fixed-point clipping
889 * @param[in] src points to input values
895 DSP_FUNC_SCOPE void zdsp_clip_q31(const DSP_DATA q31_t *src, DSP_DATA q31_t *dst, q31_t low,
899 * @brief Elementwise fixed-point clipping
900 * @param[in] src points to input values
906 DSP_FUNC_SCOPE void zdsp_clip_q15(const DSP_DATA q15_t *src, DSP_DATA q15_t *dst, q15_t low,
910 * @brief Elementwise fixed-point clipping
911 * @param[in] src points to input values
917 DSP_FUNC_SCOPE void zdsp_clip_q7(const DSP_DATA q7_t *src, DSP_DATA q7_t *dst, q7_t low, q7_t high,