|
| template<typename DST, typename SRC> |
| void | round_scaled_to_nearest_clipped (DST &destination, const SRC &source, float multiplier, typename traits< DST >::Scalar offset, typename traits< DST >::Scalar minimum, typename traits< DST >::Scalar maximum) |
| | Scale in float, round to nearest-even, offset, and clip.
|
| |
| template<typename DST, typename SRC> |
| void | round_to_nearest (DST &destination, const SRC &source) |
| | Element-wise nearest-even rounding into an existing vector.
|
| |
| template<typename DST, typename SRC> |
| void | round_to_nearest_clipped (DST &destination, const SRC &source, typename traits< DST >::Scalar offset, typename traits< DST >::Scalar minimum, typename traits< DST >::Scalar maximum) |
| | Nearest-even rounding followed by an offset and inclusive clipping.
|
| |
| template<typename DST, typename SRC, typename MASK> |
| void | masked_scale_add (DST &destination, const SRC &source, const MASK &mask, typename traits< DST >::Scalar scale) |
| | Accumulate source * scale into destination where mask is true.
|
| |
| template<typename A, typename B, typename MASK> |
| auto | masked_dot_sum (const A &a, const B &b, const MASK &mask) |
| | Compute a masked dot product and masked sum of the first operand.
|
| |
| template<typename MA, typename MB, typename std::enable_if< HasMatrixIndexing< MA >::value &&HasMatrixIndexing< MB >::value, bool >::type = true> |
| void | transposeTo (MA &dst, const MB &src) |
| | Transpose a matrix.
|
| |
| template<typename M, typename V, typename std::enable_if< CompatibleStaticMatVecProduct< M, V >::value, bool >::type = true> |
| OutputVector< M, V >::type | dot (const M &m, const V &v) |
| | Matrix x Vector product.
|
| |
| template<typename MA, typename MB, typename std::enable_if< CompatibleStaticMatMatProduct< MA, MB >::value &&number_traits< typename traits< MA >::Scalar >::is_fixed, bool >::type = true> |
| OutputMatrix< MA, MB >::type | dot (const MA &ma, const MB &mb) |
| | Matrix x Matrix product.
|
| |
| template<typename MA, typename MB, typename RES, typename std::enable_if< CompatibleDynamicMatMatProduct< MA, MB >::value &&number_traits< typename traits< MA >::Scalar >::is_float, bool >::type = true> |
| void | dot (RES &&res, const MA &ma, const MB &mb) |
| | Matrix x Matrix product.
|
| |
| template<typename P> |
| Matrix< P, DYNAMIC, DYNAMIC, TMP_ALLOC > | mk_identity (const vector_length_t l) |
| | Create identity matrix.
|
| |
| template<typename P, int L> |
| Matrix< P, L, L, TMP_ALLOC > | mk_identity () |
| | Create identity matrix.
|
| |
| template<typename T> |
| void | PrintType (void) |
| | Prints a textual representation of a type.
|
| |
| constexpr bool | test64 (const int M, const int F, const int S) |
| | Function to identify the template for fixed number representable on 64 bits.
|
| |
| constexpr bool | test32 (const int M, const int F, const int S) |
| | Function to identify the template for fixed number representable on 32 bits.
|
| |
| constexpr bool | test16 (const int M, const int F, const int S) |
| | Function to identify the template for fixed number representable on 16 bits.
|
| |
| constexpr bool | test8 (const int M, const int F, const int S) |
| | Function to identify the template for fixed number representable on 8 bits.
|
| |
| constexpr Q63 | operator""_q63 (long double x) |
| | q63 literal
|
| |
| constexpr Q31 | operator""_q31 (long double x) |
| | q31 literal
|
| |
| constexpr Q15 | operator""_q15 (long double x) |
| | q15 literal
|
| |
| constexpr Q7 | operator""_q7 (long double x) |
| | q7 literal
|
| |
| template<int MA, int FA, int MB, int FB, bool SA, bool SB> |
| Q< MA+MB+1, FA+FB, SA||SB > | mult (const Q< MA, FA, SA > &a, const Q< MB, FB, SB > &b) |
| | Multiplication of two fixed point numbers A and B.
|
| |
| template<int M, int F, bool S> |
| Q< M, F, S > | operator+ (const Q< M, F, S > &a, const Q< M, F, S > &b) |
| | Add two fixed point numbers with saturation.
|
| |
| template<int M, int F, bool S> |
| Q< M, F, S > | operator- (const Q< M, F, S > &a, const Q< M, F, S > &b) |
| | Subtract two fixed point numbers with saturation.
|
| |
| template<int M, int F, bool S> |
| Q< M, F, S > | operator- (const Q< M, F, S > &a) |
| | Negate a fixed point number with saturation.
|
| |
| template<int M, int F, bool S> |
| Q< M, F, S > | add (const Q< M, F, S > &a, const Q< M, F, S > &b) |
| | Add two fixed point numbers without saturation.
|
| |
| template<int M, int F, bool S> |
| Q< M, F, S > | sub (const Q< M, F, S > &a, const Q< M, F, S > &b) |
| | Subtract two fixed point numbers without saturation.
|
| |
| template<int M, int F, int N, bool S> |
| Q< M, F, S > | operator>> (const Q< M, F, S > &a, std::integral_constant< int, N >) noexcept |
| | Shift right a fixed point number with a shift known at build time.
|
| |
| template<int M, int F, int N, bool S> |
| Q< M+N, F, S > | operator<< (const Q< M, F, S > &a, std::integral_constant< int, N >) noexcept |
| | Shift left a fixed point number with a shift known at build time.
|
| |
| template<int MD = 0, int MS, int F> |
| Q< MD, F, true > | saturate (const Q< MS, F, true > &src, typename std::enable_if<(MD< MS) &&((MD+F)< 31)>::type *=nullptr) |
| | Saturate a signed fixed point number.
|
| |
| template<int MD = 0, int MS, int F> |
| Q< MD, F, false > | saturate (const Q< MS, F, false > &src, typename std::enable_if<(MD< MS) &&((MD+F)< 31)>::type *=nullptr) |
| | Saturate an unsigned fixed point number.
|
| |
| template<int FD, int M, int FS, bool S> |
| Q< M, FD, S > | toFrac (const Q< M, FS, S > &src) |
| | Convert between different fractional part formats.
|
| |
| template<int MD, int MS, int F, bool S> |
| Q< MD, F, S > | accumulate (const Q< MD, F, S > &a, const Q< MS, F, S > &b) |
| | Accumulate without saturation.
|
| |
| Q7 | operator* (const Q7 &a, const Q7 &b) |
| | Multiplication operator.
|
| |
| Q15 | operator* (const Q15 &a, const Q15 &b) |
| | Multiplication operator.
|
| |
| Q31 | operator* (const Q31 &a, const Q31 &b) |
| | Multiplication operator.
|
| |
| template<int M, int F> |
| bool | operator> (const Q< M, F > &a, const Q< M, F > &b) |
| | Greater-than comparison operator.
|
| |
| template<int M, int F> |
| bool | operator< (const Q< M, F > &a, const Q< M, F > &b) |
| | Less-than comparison operator.
|
| |
| template<int M, int F> |
| bool | operator>= (const Q< M, F > &a, const Q< M, F > &b) |
| | Greater-than-or-equal comparison operator.
|
| |
| template<int M, int F> |
| bool | operator<= (const Q< M, F > &a, const Q< M, F > &b) |
| | Less-than-or-equal comparison operator.
|
| |
| template<int M, int F> |
| bool | operator== (const Q< M, F > a, const Q< M, F > b) |
| | Equality operator.
|
| |
| template<int M, int F> |
| bool | operator!= (const Q< M, F > a, const Q< M, F > b) |
| | Inequality operator.
|
| |
| template<int M, int F, bool S> |
| Q< M, F, S > | operator/ (const Q< M, F, S > a, const int32_t b) |
| | Division operator.
|
| |
| template<int M, int F, bool S> |
| Q< M, F, S > | operator+ (const Q< M, F, S > &a) |
| | No op operator.
|
| |
| template<typename DA> |
| constexpr bool | has_vector_inst () |
| | Determines if vector datatype supports vector instruction on a current architecture.
|
| |
| template<typename DA> |
| constexpr bool | has_predicate () |
| | Check if predicated instructions are supported.
|
| |
| template<typename DA> |
| constexpr bool | is_mixed () |
| | Check if expression contains a mix of complex / real operations.
|
| |
| template<typename A, typename B> |
| constexpr bool | same_nb_lanes () |
| | Check same number of lanes is used.
|
| |
| template<typename A> |
| constexpr bool | is_complex () |
| | Check if vector / matrix contains complex numbers.
|
| |
| template<typename A> |
| constexpr bool | is_float () |
| | Determines if datatype is a float (double, float, complex ...).
|
| |
| template<typename A> |
| constexpr bool | is_fixed () |
| | Determines if datatype is fixed (Q31,Q15, complex<Q15> ...).
|
| |
| template<typename DA> |
| constexpr bool | has_predicate_inst () |
| | Determines if datatype has predicated loop for current architecture.
|
| |
| template<typename DA> |
| constexpr bool | is_scalar () |
| | Determines if scalar datatype (not vector, vectorview, matrix, matrixview)
|
| |
| template<typename DA> |
| constexpr bool | must_use_matrix_idx () |
| | Check if datatype can only be used as a matrix (no vector addressing)
|
| |
| template<typename DA, typename DB> |
| constexpr bool | vector_idx_pair () |
| | Check if both datatype have vector indexing and are same scalar datatype.
|
| |
| template<typename DA> |
| constexpr bool | is_only_vector () |
| | Check if has vector indexing.
|
| |
| template<typename DA, typename DB> |
| constexpr bool | must_use_matrix_idx_pair () |
| | Check if datatypes have same scalar datatype and no vector indexing.
|
| |
| template<typename DA, typename DB> |
| constexpr vector_length_t | static_length () |
| | Static length.
|
| |
| template<typename DA, typename DB> |
| constexpr bool | same_static_length () |
| | Check compatibility of length.
|
| |
| template<typename VA, typename VB, typename std::enable_if< vector_idx_pair< VA, VB >() &&is_only_vector< VA >() &&is_only_vector< VB >() &&(!IsDynamic< VA >::value||!IsDynamic< VB >::value), bool >::type = true> |
| DotResult< DotFieldResult< VA, VB > > | dot (const VA &a, const VB &b) |
| | Dot product.
|
| |
| template<typename VA, typename VB, typename std::enable_if< vector_idx_pair< VA, VB >() &&(!IsDynamic< VA >::value||!IsDynamic< VB >::value), bool >::type = true> |
| void | swap (VA &&a, VB &&b) |
| | Swap vectors.
|
| |
| template<typename M, typename std::enable_if< HasMatrixIndexing< M >::value, bool >::type = true> |
| TransposeView< M > | transpose_view (const M &matrix) |
| | Create a zero-copy transposed matrix view.
|
| |
| template<typename M, typename V, typename std::enable_if<(CompatibleStaticMatVecProduct< M, V >::value||CompatibleDynamicMatVecProduct< M, V >::value), bool >::type = true> |
| auto | matvec (const M &matrix, const V &vector) |
| | Create a lazy matrix times vector expression.
|
| |
| template<typename VA, typename VB, typename std::enable_if< vector_idx_pair< VA, VB >(), bool >::type = true> |
| auto | outer (const VA &a, const VB &b) |
| | Outer product.
|
| |
| void * | aligned_malloc (std::size_t alignment, std::size_t size) |
| | Aligned memory allocation.
|
| |
| void | aligned_free (void *ptr) |
| | Free an aligned buffer.
|
| |
| template<typename LHS, typename RHS, typename std::enable_if<(!is_scalar< LHS >()||!is_scalar< RHS >()) &&compatible_element< LHS, RHS >() &&same_static_length< LHS, RHS >(), bool >::type = true> |
| auto | operator+ (const LHS &a, const RHS &b) |
| | Addition operator for expressions.
|
| |
| template<typename LHS, typename std::enable_if<!is_scalar< LHS >(), bool >::type = true> |
| auto | operator+ (const LHS &a) |
| |
|
| |
| template<typename LHS, typename std::enable_if<!is_scalar< LHS >(), bool >::type = true> |
| auto | expr (const LHS &a) |
| | Identity operator for expression.
|
| |
| template<typename LHS, typename std::enable_if<!is_scalar< LHS >(), bool >::type = true> |
| auto | copy (const LHS &a) |
| | Identity operator for expression.
|
| |
| template<typename LHS, typename RHS, typename std::enable_if<(!is_scalar< LHS >()||!is_scalar< RHS >()) &&compatible_element< LHS, RHS >() &&same_static_length< LHS, RHS >(), bool >::type = true> |
| auto | operator- (const LHS &a, const RHS &b) |
| | Subtraction operator for expressions.
|
| |
| template<typename LHS, typename std::enable_if<!is_scalar< LHS >(), bool >::type = true> |
| auto | operator- (const LHS &a) |
| |
|
| |
| template<typename LHS, typename std::enable_if<!is_scalar< LHS >(), bool >::type = true> |
| auto | conjugate (const LHS &a) |
| |
|
| |
| template<typename LHS, typename RHS, typename std::enable_if<(!is_scalar< LHS >()||!is_scalar< RHS >()) &&compatible_element< LHS, RHS >() &&same_static_length< LHS, RHS >(), bool >::type = true> |
| auto | operator* (const LHS &a, const RHS &b) |
| | Element wise multiplication operator for expressions.
|
| |
| q31_t | read_q15x2 (q15_t const *pQ15) |
| | Read 2 Q15 from Q15 pointer.
|
| |
| void | write_q15x2_ia (q15_t **pQ15, q31_t value) |
| | Write 2 Q15 to Q15 pointer and increment pointer afterwards.
|
| |
| void | write_q15x2 (q15_t *pQ15, q31_t value) |
| | Write 2 Q15 to Q15 pointer.
|
| |
| q31_t | read_q7x4 (q7_t const *pQ7) |
| | Read 4 Q7 from Q7 pointer.
|
| |
| void | write_q7x4_ia (q7_t **pQ7, q31_t value) |
| | Write 4 Q7 to Q7 pointer and increment pointer afterwards.
|
| |
| q31_t | clip_q63_to_q31 (q63_t x) |
| | Clips Q63 to Q31 values.
|
| |
| q15_t | clip_q31_to_q15 (q31_t x) |
| | Clips Q31 to Q15 values.
|
| |
| q63_t | mult32x64 (q63_t x, q31_t y) |
| | Multiplies Q63 by Q31 and returns a result in 2.62 format.
|
| |
| uint32_t | arm_recip_q31 (q31_t in, q31_t *dst, const q31_t *pRecipTable) |
| | Function to Calculates 1/in (reciprocal) value of Q31 Data type. It should not be used with negative values.
|
| |
| uint32_t | arm_recip_q15 (q15_t in, q15_t *dst, const q15_t *pRecipTable) |
| | Function to Calculates 1/in (reciprocal) value of Q15 Data type. It should not be used with negative values.
|
| |
| __STATIC_INLINE void | arm_norm_64_to_32u (uint64_t in, int32_t *normalized, int32_t *norm) |
| | 64-bit to 32-bit unsigned normalization
|
| |
| __STATIC_INLINE int32_t | arm_div_int64_to_int32 (int64_t num, int32_t den) |
| |
| void | arm_mult_q7 (const q7_t *pSrcA, const q7_t *pSrcB, q7_t *pDst, uint32_t blockSize) |
| | Q7 vector multiplication.
|
| |
| void | arm_mult_q15 (const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t blockSize) |
| | Q15 vector multiplication.
|
| |
| void | arm_mult_q31 (const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t blockSize) |
| | Q31 vector multiplication.
|
| |
| void | arm_mult_f32 (const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t blockSize) |
| | Floating-point vector multiplication.
|
| |
| void | arm_mult_f64 (const float64_t *pSrcA, const float64_t *pSrcB, float64_t *pDst, uint32_t blockSize) |
| | Floating-point vector multiplication.
|
| |
| void | arm_add_f32 (const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t blockSize) |
| | Floating-point vector addition.
|
| |
| void | arm_add_f64 (const float64_t *pSrcA, const float64_t *pSrcB, float64_t *pDst, uint32_t blockSize) |
| | Floating-point vector addition.
|
| |
| void | arm_add_q7 (const q7_t *pSrcA, const q7_t *pSrcB, q7_t *pDst, uint32_t blockSize) |
| | Q7 vector addition.
|
| |
| void | arm_add_q15 (const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t blockSize) |
| | Q15 vector addition.
|
| |
| void | arm_add_q31 (const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t blockSize) |
| | Q31 vector addition.
|
| |
| void | arm_sub_f32 (const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t blockSize) |
| | Floating-point vector subtraction.
|
| |
| void | arm_sub_f64 (const float64_t *pSrcA, const float64_t *pSrcB, float64_t *pDst, uint32_t blockSize) |
| | Floating-point vector subtraction.
|
| |
| void | arm_sub_q7 (const q7_t *pSrcA, const q7_t *pSrcB, q7_t *pDst, uint32_t blockSize) |
| | Q7 vector subtraction.
|
| |
| void | arm_sub_q15 (const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t blockSize) |
| | Q15 vector subtraction.
|
| |
| void | arm_sub_q31 (const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t blockSize) |
| | Q31 vector subtraction.
|
| |
| void | arm_scale_f32 (const float32_t *pSrc, float32_t scale, float32_t *pDst, uint32_t blockSize) |
| | Multiplies a floating-point vector by a scalar.
|
| |
| void | arm_scale_f64 (const float64_t *pSrc, float64_t scale, float64_t *pDst, uint32_t blockSize) |
| | Multiplies a floating-point vector by a scalar.
|
| |
| void | arm_scale_q7 (const q7_t *pSrc, q7_t scaleFract, int8_t shift, q7_t *pDst, uint32_t blockSize) |
| | Multiplies a Q7 vector by a scalar.
|
| |
| void | arm_scale_q15 (const q15_t *pSrc, q15_t scaleFract, int8_t shift, q15_t *pDst, uint32_t blockSize) |
| | Multiplies a Q15 vector by a scalar.
|
| |
| void | arm_scale_q31 (const q31_t *pSrc, q31_t scaleFract, int8_t shift, q31_t *pDst, uint32_t blockSize) |
| | Multiplies a Q31 vector by a scalar.
|
| |
| void | arm_abs_q7 (const q7_t *pSrc, q7_t *pDst, uint32_t blockSize) |
| | Q7 vector absolute value.
|
| |
| void | arm_abs_f32 (const float32_t *pSrc, float32_t *pDst, uint32_t blockSize) |
| | Floating-point vector absolute value.
|
| |
| void | arm_abs_f64 (const float64_t *pSrc, float64_t *pDst, uint32_t blockSize) |
| | Floating-point vector absolute value.
|
| |
| void | arm_abs_q15 (const q15_t *pSrc, q15_t *pDst, uint32_t blockSize) |
| | Q15 vector absolute value.
|
| |
| void | arm_abs_q31 (const q31_t *pSrc, q31_t *pDst, uint32_t blockSize) |
| | Q31 vector absolute value.
|
| |
| void | arm_dot_prod_f32 (const float32_t *pSrcA, const float32_t *pSrcB, uint32_t blockSize, float32_t *result) |
| | Dot product of floating-point vectors.
|
| |
| void | arm_dot_prod_f64 (const float64_t *pSrcA, const float64_t *pSrcB, uint32_t blockSize, float64_t *result) |
| | Dot product of floating-point vectors.
|
| |
| void | arm_dot_prod_q7 (const q7_t *pSrcA, const q7_t *pSrcB, uint32_t blockSize, q31_t *result) |
| | Dot product of Q7 vectors.
|
| |
| void | arm_dot_prod_q15 (const q15_t *pSrcA, const q15_t *pSrcB, uint32_t blockSize, q63_t *result) |
| | Dot product of Q15 vectors.
|
| |
| void | arm_dot_prod_q31 (const q31_t *pSrcA, const q31_t *pSrcB, uint32_t blockSize, q63_t *result) |
| | Dot product of Q31 vectors.
|
| |
| void | arm_shift_q7 (const q7_t *pSrc, int8_t shiftBits, q7_t *pDst, uint32_t blockSize) |
| | Shifts the elements of a Q7 vector a specified number of bits.
|
| |
| void | arm_shift_q15 (const q15_t *pSrc, int8_t shiftBits, q15_t *pDst, uint32_t blockSize) |
| | Shifts the elements of a Q15 vector a specified number of bits.
|
| |
| void | arm_shift_q31 (const q31_t *pSrc, int8_t shiftBits, q31_t *pDst, uint32_t blockSize) |
| | Shifts the elements of a Q31 vector a specified number of bits.
|
| |
| void | arm_offset_f64 (const float64_t *pSrc, float64_t offset, float64_t *pDst, uint32_t blockSize) |
| | Adds a constant offset to a floating-point vector.
|
| |
| void | arm_offset_f32 (const float32_t *pSrc, float32_t offset, float32_t *pDst, uint32_t blockSize) |
| | Adds a constant offset to a floating-point vector.
|
| |
| void | arm_offset_q7 (const q7_t *pSrc, q7_t offset, q7_t *pDst, uint32_t blockSize) |
| | Adds a constant offset to a Q7 vector.
|
| |
| void | arm_offset_q15 (const q15_t *pSrc, q15_t offset, q15_t *pDst, uint32_t blockSize) |
| | Adds a constant offset to a Q15 vector.
|
| |
| void | arm_offset_q31 (const q31_t *pSrc, q31_t offset, q31_t *pDst, uint32_t blockSize) |
| | Adds a constant offset to a Q31 vector.
|
| |
| void | arm_negate_f32 (const float32_t *pSrc, float32_t *pDst, uint32_t blockSize) |
| | Negates the elements of a floating-point vector.
|
| |
| void | arm_negate_f64 (const float64_t *pSrc, float64_t *pDst, uint32_t blockSize) |
| | Negates the elements of a floating-point vector.
|
| |
| void | arm_negate_q7 (const q7_t *pSrc, q7_t *pDst, uint32_t blockSize) |
| | Negates the elements of a Q7 vector.
|
| |
| void | arm_negate_q15 (const q15_t *pSrc, q15_t *pDst, uint32_t blockSize) |
| | Negates the elements of a Q15 vector.
|
| |
| void | arm_negate_q31 (const q31_t *pSrc, q31_t *pDst, uint32_t blockSize) |
| | Negates the elements of a Q31 vector.
|
| |
| void | arm_and_u16 (const uint16_t *pSrcA, const uint16_t *pSrcB, uint16_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise AND of two fixed-point vectors.
|
| |
| void | arm_and_u32 (const uint32_t *pSrcA, const uint32_t *pSrcB, uint32_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise AND of two fixed-point vectors.
|
| |
| void | arm_and_u8 (const uint8_t *pSrcA, const uint8_t *pSrcB, uint8_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise AND of two fixed-point vectors.
|
| |
| void | arm_or_u16 (const uint16_t *pSrcA, const uint16_t *pSrcB, uint16_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise OR of two fixed-point vectors.
|
| |
| void | arm_or_u32 (const uint32_t *pSrcA, const uint32_t *pSrcB, uint32_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise OR of two fixed-point vectors.
|
| |
| void | arm_or_u8 (const uint8_t *pSrcA, const uint8_t *pSrcB, uint8_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise OR of two fixed-point vectors.
|
| |
| void | arm_not_u16 (const uint16_t *pSrc, uint16_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise NOT of a fixed-point vector.
|
| |
| void | arm_not_u32 (const uint32_t *pSrc, uint32_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise NOT of a fixed-point vector.
|
| |
| void | arm_not_u8 (const uint8_t *pSrc, uint8_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise NOT of a fixed-point vector.
|
| |
| void | arm_xor_u16 (const uint16_t *pSrcA, const uint16_t *pSrcB, uint16_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise XOR of two fixed-point vectors.
|
| |
| void | arm_xor_u32 (const uint32_t *pSrcA, const uint32_t *pSrcB, uint32_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise XOR of two fixed-point vectors.
|
| |
| void | arm_xor_u8 (const uint8_t *pSrcA, const uint8_t *pSrcB, uint8_t *pDst, uint32_t blockSize) |
| | Compute the logical bitwise XOR of two fixed-point vectors.
|
| |
| void | arm_clip_f32 (const float32_t *pSrc, float32_t *pDst, float32_t low, float32_t high, uint32_t numSamples) |
| | Elementwise floating-point clipping.
|
| |
| void | arm_clip_q31 (const q31_t *pSrc, q31_t *pDst, q31_t low, q31_t high, uint32_t numSamples) |
| | Elementwise fixed-point clipping.
|
| |
| void | arm_clip_q15 (const q15_t *pSrc, q15_t *pDst, q15_t low, q15_t high, uint32_t numSamples) |
| | Elementwise fixed-point clipping.
|
| |
| void | arm_clip_q7 (const q7_t *pSrc, q7_t *pDst, q7_t low, q7_t high, uint32_t numSamples) |
| | Elementwise fixed-point clipping.
|
| |
| float32_t | arm_sin_f32 (float32_t x) |
| | Fast approximation to the trigonometric sine function for floating-point data.
|
| |
| q31_t | arm_sin_q31 (q31_t x) |
| | Fast approximation to the trigonometric sine function for Q31 data.
|
| |
| q15_t | arm_sin_q15 (q15_t x) |
| | Fast approximation to the trigonometric sine function for Q15 data.
|
| |
| float32_t | arm_cos_f32 (float32_t x) |
| | Fast approximation to the trigonometric cosine function for floating-point data.
|
| |
| q31_t | arm_cos_q31 (q31_t x) |
| | Fast approximation to the trigonometric cosine function for Q31 data.
|
| |
| q15_t | arm_cos_q15 (q15_t x) |
| | Fast approximation to the trigonometric cosine function for Q15 data.
|
| |
| void | arm_vlog_f32 (const float32_t *pSrc, float32_t *pDst, uint32_t blockSize) |
| | Floating-point vector of log values.
|
| |
| void | arm_vlog_f64 (const float64_t *pSrc, float64_t *pDst, uint32_t blockSize) |
| | Floating-point vector of log values.
|
| |
| void | arm_vlog_q31 (const q31_t *pSrc, q31_t *pDst, uint32_t blockSize) |
| | q31 vector of log values.
|
| |
| void | arm_vlog_q15 (const q15_t *pSrc, q15_t *pDst, uint32_t blockSize) |
| | q15 vector of log values.
|
| |
| void | arm_vexp_f32 (const float32_t *pSrc, float32_t *pDst, uint32_t blockSize) |
| | Floating-point vector of exp values.
|
| |
| void | arm_vexp_f64 (const float64_t *pSrc, float64_t *pDst, uint32_t blockSize) |
| | Floating-point vector of exp values.
|
| |
| arm_status | arm_sqrt_f32 (const float32_t in, float32_t *pOut) |
| | Floating-point square root function.
|
| |
| arm_status | arm_sqrt_q31 (q31_t in, q31_t *pOut) |
| | Q31 square root function.
|
| |
| arm_status | arm_sqrt_q15 (q15_t in, q15_t *pOut) |
| | Q15 square root function.
|
| |
| arm_status | arm_divide_q15 (q15_t numerator, q15_t denominator, q15_t *quotient, int16_t *shift) |
| | Fixed point division.
|
| |
| arm_status | arm_divide_q31 (q31_t numerator, q31_t denominator, q31_t *quotient, int16_t *shift) |
| | Fixed point division.
|
| |
| arm_status | arm_atan2_f32 (float32_t y, float32_t x, float32_t *result) |
| | Arc tangent in radian of y/x using sign of x and y to determine right quadrant.
|
| |
| arm_status | arm_atan2_q31 (q31_t y, q31_t x, q31_t *result) |
| | Arc tangent in radian of y/x using sign of x and y to determine right quadrant.
|
| |
| arm_status | arm_atan2_q15 (q15_t y, q15_t x, q15_t *result) |
| | Arc tangent in radian of y/x using sign of x and y to determine right quadrant.
|
| |
| template<typename MA, typename MB> |
| __STATIC_INLINE void | _arm_mat_trans (const MA &src, MB &dst, const Scalar *=nullptr) |
| | Transposition for scalar architecture.
|
| |
| template<typename M, typename V, typename RES> |
| void | _dot_m_v (RES &res, const TransposeView< M > &m, const V &v, const Scalar *=nullptr) |
| | Matrix times vector for scalar architecture.
|
| |
| template<typename MA, typename MB, typename RES, typename TMP, typename std::enable_if< number_traits< typename traits< MA >::Scalar >::is_fixed, bool >::type = true> |
| __STATIC_INLINE void | _dot_m_m (const MA &pSrcA, const MB &pSrcB, RES &&pDst, const TMP &BT, const Scalar *=nullptr) |
| | Matrix times matrix for scalar architecture and fixed point.
|
| |
| template<typename MA, typename MB, typename RES, typename std::enable_if< is_float< MA >(), bool >::type = true> |
| __STATIC_INLINE void | _dot_m_m (const MA &pSrcA, const MB &pSrcB, RES &&pDst, const Scalar *=nullptr) |
| | Matrix times matrix for scalar architecture and float.
|
| |
| template<typename T, typename DST, typename std::enable_if< IsVector< DST >::value &&compatible_element< DST, T >(), bool >::type = true> |
| void | _Fill (DST &v, const T val, vector_length_t l, const Scalar *=nullptr) |
| | Fill evaluator for scalar architecture.
|
| |
| template<typename T, typename DST, typename std::enable_if< must_use_matrix_idx< DST >() &&compatible_element< DST, T >(), bool >::type = true> |
| void | _Fill2D (DST &v, const T val, const vector_length_t rows, const vector_length_t cols, const Scalar *=nullptr) |
| | Fill2D evaluator for scalar architecture.
|
| |
| template<typename DA, typename DB, typename std::enable_if< vector_idx_pair< DA, DB >(), bool >::type = true> |
| void | eval (DA &v, const DB &other, const vector_length_t l, const Scalar *=nullptr) |
| | Expression evaluator for vector in scalar mode.
|
| |
| template<typename DA, typename DB, typename std::enable_if< must_use_matrix_idx_pair< DA, DB >(), bool >::type = true> |
| void | eval2D (DA &v, const DB &other, const vector_length_t rows, const vector_length_t cols, const Scalar *=nullptr) |
| | 2D expression evaluator for scalar architecture
|
| |
| template<typename DA, typename DB, typename std::enable_if< vector_idx_pair< DA, DB >(), bool >::type = true> |
| DotResult< DotFieldResult< DA, DB > > | _dot (const DA &a, const DB &b, const vector_length_t l, const Scalar *=nullptr) |
| | Dot product evaluator for scalar architectuire.
|
| |
| template<typename DA, typename DB, typename std::enable_if< vector_idx_pair< DA, DB >(), bool >::type = true> |
| void | _swap (DA &&a, DB &&b, const vector_length_t l, const Scalar *=nullptr) |
| | Swap evaluator for scalar architecture.
|
| |
| template<typename T, typename DST, typename std::enable_if< has_vector_inst< DST >() &&IsVector< DST >::value &&compatible_element< DST, T >() &&has_predicate< DST >(), bool >::type = true> |
| void | _Fill (DST &v, const T val, const vector_length_t l, const Helium *=nullptr) |
| | Fill evaluator for Helium.
|
| |
| template<typename T, typename DST, typename std::enable_if< has_vector_inst< DST >() &&must_use_matrix_idx< DST >() &&compatible_element< DST, T >() &&has_predicate< DST >(), bool >::type = true> |
| void | _Fill2D (DST &v, const T val, const vector_length_t rows, const vector_length_t cols, const Helium *=nullptr) |
| | Fill2D evaluator for Helium.
|
| |
| template<typename DA, typename DB, typename std::enable_if< has_vector_inst< DA >() &&has_vector_inst< DB >() &&vector_idx_pair< DA, DB >() &&same_nb_lanes< DA, DB >() &&has_predicate< DA >(), bool >::type = true> |
| void | eval (DA &v, const DB &other, const vector_length_t l, const Helium *=nullptr) |
| | Eval function for Helium.
|
| |
| template<typename DA, typename DB, typename std::enable_if< has_vector_inst< DA >() &&has_vector_inst< DB >() &&must_use_matrix_idx_pair< DA, DB >() &&same_nb_lanes< DA, DB >() &&(has_predicate< DA >() &&has_predicate< DB >()), bool >::type = true> |
| void | eval2D (DA &v, const DB &other, const vector_length_t rows, const vector_length_t cols, const Helium *=nullptr) |
| | Eval2D function for Helium.
|
| |
| template<class TupType, size_t... I> |
| void | printt (const TupType &_tup, std::index_sequence< I... >) |
| | Print tuple for debug.
|
| |
| template<class... T> |
| void | printt (const std::tuple< T... > &_tup) |
| | Print tuple.
|
| |
| template<typename DA, typename DB, typename std::enable_if< has_vector_inst< DA >() &&has_vector_inst< DB >() &&vector_idx_pair< DA, DB >() &&same_nb_lanes< DA, DB >() &&has_predicate< DotFieldResult< DA, DB > >(), bool >::type = true> |
| DotResult< DotFieldResult< DA, DB > > | _dot (const DA &a, const DB &b, const vector_length_t l, const Helium *=nullptr) |
| | Dor product for Helium.
|
| |
| template<typename DA, typename DB, typename std::enable_if< has_vector_inst< DA >() &&has_vector_inst< DB >() &&vector_idx_pair< DA, DB >() &&has_predicate< DA >(), bool >::type = true> |
| void | _swap (DA &&a, DB &&b, const vector_length_t l, const Helium *=nullptr) |
| | Swap operator for Helium.
|
| |