|
| class | Scalar |
| |
| class | DSP |
| |
| class | Helium |
| |
| class | Helium82 |
| |
| class | Neon |
| |
| struct | fixed_storage_type< M, F, s, bool > |
| | Storage type for a fixed point number. More...
|
| |
| struct | fixed_storage_type< M, F, true, test64(M, F, 1)> |
| | Storage type for a fixed point number representable on int64. More...
|
| |
| struct | fixed_storage_type< M, F, false, test64(M, F, 0)> |
| | Storage type for a fixed point number representable on uint64. More...
|
| |
| struct | fixed_storage_type< M, F, true, test32(M, F, 1)> |
| | Storage type for a fixed point number representable on int32. More...
|
| |
| struct | fixed_storage_type< M, F, false, test32(M, F, 0)> |
| | Storage type for a fixed point number representable on uint32. More...
|
| |
| struct | fixed_storage_type< M, F, true, test16(M, F, 1)> |
| | Storage type for a fixed point number representable on int16. More...
|
| |
| struct | fixed_storage_type< M, F, false, test16(M, F, 0)> |
| | Storage type for a fixed point number representable on uint16. More...
|
| |
| struct | fixed_storage_type< M, F, true, test8(M, F, 1)> |
| | Storage type for a fixed point number representable on int8. More...
|
| |
| struct | fixed_storage_type< M, F, false, test8(M, F, 0)> |
| | Storage type for a fixed point number representable on uint8. More...
|
| |
| struct | Q< M, F, S, T > |
| | Fixed point template. More...
|
| |
| struct | Q< M, F, true, int64_t > |
| | Signed fixed point datatypes on 64 bits. More...
|
| |
| struct | Q< M, F, false, uint64_t > |
| | Unsigned fixed point datatypes on 64 bits. More...
|
| |
| struct | Q< M, F, true, int32_t > |
| | Signed fixed point datatypes on 32 bits. More...
|
| |
| struct | Q< M, F, false, uint32_t > |
| | Unsigned fixed point datatypes on 32 bits. More...
|
| |
| struct | Q< M, F, true, int16_t > |
| | Signed fixed point datatypes on 16 bits. More...
|
| |
| struct | Q< M, F, false, uint16_t > |
| | Unsigned fixed point datatypes on 16 bits. More...
|
| |
| struct | Q< M, F, true, int8_t > |
| | Signed fixed point datatypes on 8 bits. More...
|
| |
| struct | Q< M, F, false, uint8_t > |
| | Unsigned fixed point datatypes on 8 bits. More...
|
| |
| struct | FixedCastShift< M, FD, FS, S,(FD >FS)> |
| | Changed fractional representation of a fixed point number using a shift. More...
|
| |
| struct | FixedCastShift< M, FD, FS, S,(FD< FS)> |
| | Changed fractional representation of a fixed point number using a shift. More...
|
| |
| struct | Accumulate< MD, MS, F, S, true > |
| | Accumulation without saturation. More...
|
| |
| struct | vector_traits< T, arch, typename > |
| | Properties of a vector datatype linked to a scalar datatype. More...
|
| |
| struct | vctpq< T, typename > |
| | Predicate (only defined for vector architectures) More...
|
| |
| struct | number_traits< std::complex< double > > |
| | Features for complex double. More...
|
| |
| struct | vector_traits< std::complex< double >, arch, void > |
| | Default vector datatype description for this scalar datatype. More...
|
| |
| struct | number_traits< double > |
| | Features for double. More...
|
| |
| struct | vector_traits< double, arch, void > |
| | Default vector datatype description for this scalar datatype. More...
|
| |
| struct | number_traits< std::complex< float > > |
| | Features for complex float. More...
|
| |
| struct | vector_traits< std::complex< float >, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type > |
| | Vector instructions for complex float when no Helium or Neon. More...
|
| |
| struct | number_traits< float > |
| | Features for float. More...
|
| |
| struct | vector_traits< float, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type > |
| | Vector instructions for float when no Helium or Neon. More...
|
| |
| struct | number_traits< std::complex< float16_t > > |
| | Feature for complex float16. More...
|
| |
| struct | vector_traits< std::complex< float16_t >, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type > |
| | float16 vector description when no vector architecture More...
|
| |
| struct | number_traits< float16_t > |
| | Feature of float16 datatype. More...
|
| |
| struct | number_traits< Q31 > |
| | Features for Q31. More...
|
| |
| struct | vector_traits< Q31, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type > |
| | Vector features for Q31 when no vector instructions. More...
|
| |
| struct | number_traits< std::complex< Q31 > > |
| | Features for complex Q31. More...
|
| |
| struct | vector_traits< std::complex< Q31 >, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type > |
| | Vector features for std::complex<Q31> when no vector instructions. More...
|
| |
| struct | number_traits< Q15 > |
| | Q15 features. More...
|
| |
| struct | vector_traits< Q15, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value &&!std::is_base_of< DSP, arch >::value >::type > |
| | Vector features for Q15 when no vector architecture. More...
|
| |
| struct | number_traits< std::complex< Q15 > > |
| | Features for complex Q15. More...
|
| |
| struct | vector_traits< std::complex< Q15 >, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type > |
| | Vector features for Q15 when no vector architecture. More...
|
| |
| struct | number_traits< Q7 > |
| | Q7 features. More...
|
| |
| struct | vector_traits< Q7, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value &&!std::is_base_of< DSP, arch >::value >::type > |
| | Vector description when no vector architecture. More...
|
| |
| struct | number_traits< std::complex< Q7 > > |
| | Features for Complex Q7. More...
|
| |
| struct | vector_traits< std::complex< Q7 >, arch, void > |
| | Vector description when no vector architecture. More...
|
| |
| struct | Q15DSPVector |
| | Representation of a vector when DSP extension supported. More...
|
| |
| struct | vector_traits< Q15, DSP, typename std::enable_if< true >::type > |
| | Vector description for Q15 with DSP extensions. More...
|
| |
| struct | vector_traits< float, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
| | Vector datatype for Helium. More...
|
| |
| struct | vctpq< float > |
| | vctpq for this datatype More...
|
| |
| struct | vload1_gen_stride< float32_t, 0, 1, 2, 3 > |
| | Load with generalized stride specialized for <0,1,2,3> More...
|
| |
| struct | vload1_gen_stride_z< float32_t, 0, 1, 2, 3 > |
| | Load with generalized stride (gather load) and tail predicate specialized for <0,1,2,3> More...
|
| |
| struct | vstore1_gen_stride< float32_t, 0, 1, 2, 3 > |
| | Generalized store with stride (Specialized for <0,1,2,3>) More...
|
| |
| struct | vstore1_gen_stride_z< float32_t, 0, 1, 2, 3 > |
| | Scatter store with tail predicate (specialized for <0,1,2,3>) More...
|
| |
| struct | vector_traits< std::complex< float >, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
| | Vector datatype for Helium. More...
|
| |
| struct | vload1_gen_stride< std::complex< float >, 0, 1, 2, 3 > |
| | Load with generalized stride specialized for <0,1,2,3> More...
|
| |
| struct | vstore1_gen_stride< std::complex< float32_t >, 0, 1, 2, 3 > |
| | Generalized store with stride (Specialized for <0,1,2,3>) More...
|
| |
| struct | vector_traits< float16_t, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
| | Vector features for f16 on Helium. More...
|
| |
| struct | vctpq< float16_t > |
| | vctpq for Helium and f16 More...
|
| |
| struct | vector_traits< std::complex< float16_t >, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
| | Vector datatype for Helium. More...
|
| |
| struct | vload1_gen_stride< std::complex< float16_t >, 0, 1, 2, 3, 4, 5, 6, 7 > |
| | Load with generalized stride specialized for <0,1,2,3,4,5,6,7> More...
|
| |
| struct | vstore1_gen_stride< std::complex< float16_t >, 0, 1, 2, 3, 4, 5, 6, 7 > |
| | Generalized store with stride (Specialized for <0,1,2,3>) More...
|
| |
| struct | vector_traits< Q15, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
| | Vector features for Q15 on Helium. More...
|
| |
| struct | number_traits< std::tuple< E... > > |
| | Number description for a tuple of numbers. More...
|
| |
| struct | vector_traits< std::tuple< E... >, arch > |
| | Tuple of compatible vectors. More...
|
| |
| struct | vctpq< std::tuple< E... > > |
| | Tuple of predicates. More...
|
| |
| struct | Vector_Base< P > |
| | Storage for a vector. More...
|
| |
| struct | Vector< P, L, Allocator > |
| | Vector template for size knonw at build time. More...
|
| |
| struct | Vector< P, DYNAMIC, Allocator > |
| | Vector template for dynamic vector (size known at runtime) More...
|
| |
|
| 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.
|
| |
| 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.
|
| |
| std::complex< double > | from_accumulator (const std::complex< double > &a) |
| | Convert from accumulator representation.
|
| |
| std::complex< double > | mac (const std::complex< double > &acc, const std::complex< double > &a, const std::complex< double > &b) |
| | Multiply and accumulate for this datatype.
|
| |
| void | accumulate (std::complex< double > &a, const std::complex< double > &b) |
| | Accumulate.
|
| |
| std::complex< double > | mult (const std::complex< double > &a, const std::complex< double > &b) |
| | Multiply.
|
| |
| double | from_accumulator (const double a) |
| | Convert from accumulator representation.
|
| |
| double | mac (const double acc, const double a, const double b) |
| | Multiply and accumulate for this datatype.
|
| |
| void | accumulate (double &a, const double &b) |
| | Accumulate.
|
| |
| double | mult (const double &a, const double &b) |
| | Multiply.
|
| |
| std::complex< float > | from_accumulator (const std::complex< float > &a) |
| | Convert from accumulator representtaion.
|
| |
| std::complex< float > | mac (const std::complex< float > &acc, const std::complex< float > &a, const std::complex< float > &b) |
| | Scalar multiply and accumulate.
|
| |
| void | accumulate (std::complex< float > &a, const std::complex< float > &b) |
| | Scalar accumulate.
|
| |
| std::complex< float > | mult (const std::complex< float > &a, const std::complex< float > &b) |
| | Scalar multiply.
|
| |
| float | from_accumulator (const float a) |
| | Convert from accumulator representtaion.
|
| |
| float | mac (const float acc, const float a, const float b) |
| | Scalar multiply and accumulate.
|
| |
| void | accumulate (float &a, const float &b) |
| | Scalar accumulate.
|
| |
| float | mult (const float &a, const float &b) |
| | Scalar multiply.
|
| |
| std::complex< float16_t > | from_accumulator (const std::complex< float16_t > a) |
| | Convert from accumulator datatype.
|
| |
| std::complex< float16_t > | mac (const std::complex< float16_t > acc, const std::complex< float16_t > a, const std::complex< float16_t > b) |
| | Multiply and accumulate.
|
| |
| void | accumulate (std::complex< float16_t > &a, const std::complex< float16_t > &b) |
| | Accumulate.
|
| |
| std::complex< float16_t > | mult (const std::complex< float16_t > &a, const std::complex< float16_t > &b) |
| | Multiply.
|
| |
| float16_t | from_accumulator (const float16_t a) |
| | Convert from accumulator datatype.
|
| |
| float16_t | mac (const float16_t acc, const float16_t a, const float16_t b) |
| | Multiply and accumulate.
|
| |
| void | accumulate (float16_t &a, const float16_t &b) |
| | Accumulate.
|
| |
| float16_t | mult (float16_t &a, const float16_t &b) |
| | Multiply.
|
| |
| Q31 | from_accumulator (const Q< 15, 48 > a) |
| | Convert from accumulator (with no saturation)
|
| |
| Q< 15, 48 > | mac (const Q< 15, 48 > acc, const Q31 a, const Q31 b) |
| | Multiply and accumulate.
|
| |
| std::complex< Q31 > | from_accumulator (const std::complex< Q< 15, 48 > > a) |
| | Convert from accumulator (with no saturation)
|
| |
| std::complex< Q< 15, 48 > > | mac (const std::complex< Q< 15, 48 > > acc, const std::complex< Q31 > a, const std::complex< Q31 > b) |
| | Multiply and accumulate.
|
| |
| Q15 | from_accumulator (const Q< 33, 30 > a) |
| | Convert from accumulator type.
|
| |
| Q< 33, 30 > | mac (const Q< 33, 30 > acc, const Q15 a, const Q15 b) |
| | Multiply and accumulate.
|
| |
| std::complex< Q15 > | from_accumulator (const std::complex< Q< 33, 30 > > &a) |
| | Convert from accumulator type.
|
| |
| std::complex< Q< 33, 30 > > | mac (const std::complex< Q< 33, 30 > > &acc, const std::complex< Q15 > a, const std::complex< Q15 > b) |
| | Multiply and accumulate.
|
| |
| Q7 | from_accumulator (const Q< 17, 14 > a) |
| | Convert from accumulator with saturation.
|
| |
| Q< 17, 14 > | mac (const Q< 17, 14 > acc, const Q7 a, const Q7 b) |
| | Multiply and accumulate.
|
| |
| std::complex< Q7 > | from_accumulator (const std::complex< Q< 17, 14 > > &a) |
| | Convert from accumulator with saturation.
|
| |
| std::complex< Q< 17, 14 > > | mac (const std::complex< Q< 17, 14 > > acc, const std::complex< Q7 > a, const std::complex< Q7 > b) |
| | Multiply and accumulate.
|
| |
| Q15DSPVector | vconst (Q15 val) |
| | Vector const.
|
| |
| Q< 33, 30 > | vreduce (const Q< 33, 30 > sum) |
| | Reduce accumulation value.
|
| |
| float32x4_t | vconst (const float v) |
| | Vector constant.
|
| |
| float32x4_t | vconst_tail (const float v, const mve_pred16_t p0) |
| | Vector constant with tail.
|
| |
| float32x4_t | vneg (const float32x4_t a) |
| | Vector negate.
|
| |
| float32x4_t | vneg (const float32x4_t a, const mve_pred16_t p0) |
| | Vector negate with tail.
|
| |
| float32x4_t | vconjugate (const float32x4_t a) |
| | Vector conjugate.
|
| |
| float32x4_t | vconjugate (const float32x4_t a, const mve_pred16_t p0) |
| | Vector conjugate with tail.
|
| |
| float32x4_t | vadd (const float32x4_t a, const float32x4_t b) |
| | Vector + Vector.
|
| |
| float32x4_t | vadd (const float32x4_t a, const float b) |
| | Vector + Scalar.
|
| |
| float32x4_t | vadd (const float a, const float32x4_t b) |
| | Scalar + Vector.
|
| |
| float32x4_t | vadd (const float32x4_t a, const float32x4_t b, const mve_pred16_t p0) |
| | Vector + Vector with tail.
|
| |
| float32x4_t | vadd (const float32x4_t a, const float b, const mve_pred16_t p0) |
| | Vector + scalar with tail.
|
| |
| float32x4_t | vadd (const float a, const float32x4_t b, const mve_pred16_t p0) |
| | Scalar + vector with tail predicate.
|
| |
| float32x4_t | vsub (const float32x4_t a, const float32x4_t b) |
| | Vector - Vector.
|
| |
| float32x4_t | vsub (const float32x4_t a, const float b) |
| | Vector - Scalar.
|
| |
| float32x4_t | vsub (const float a, const float32x4_t b) |
| | Scalar - Vector.
|
| |
| float32x4_t | vsub (const float32x4_t a, const float32x4_t b, const mve_pred16_t p0) |
| | Vector - Vector with predicate.
|
| |
| float32x4_t | vsub (const float32x4_t a, const float b, const mve_pred16_t p0) |
| | Vector - Scalar with predicate.
|
| |
| float32x4_t | vsub (const float a, const float32x4_t b, const mve_pred16_t p0) |
| | Scalar - Vector with predicate.
|
| |
| float32x4_t | vmul (const float32x4_t a, const float32x4_t b) |
| | Vector * Vector.
|
| |
| float32x4_t | vmul (const float32x4_t a, const float b) |
| | Vector * Scalar.
|
| |
| float32x4_t | vmul (const float a, const float32x4_t b) |
| | Scalar * Vector.
|
| |
| float32x4_t | vmul (const float32x4_t a, const float32x4_t b, const mve_pred16_t p0) |
| | Vector * Vector with predicate.
|
| |
| float32x4_t | vmul (const float32x4_t a, const float b, const mve_pred16_t p0) |
| | Vector * Scalar with predicate.
|
| |
| float32x4_t | vmul (const float a, const float32x4_t b, const mve_pred16_t p0) |
| | Scalar * Vector with predicate.
|
| |
| float32x4_t | vmacc (const float32x4_t acc, const float32x4_t a, const float32x4_t b) |
| | Multiply accumulate (Vector * Vector)
|
| |
| float32x4_t | vmacc (const float32x4_t acc, const float32x4_t a, const float_t b) |
| | Multiply accumulate (Vector * Scalar)
|
| |
| float32x4_t | vmacc (const float32x4_t acc, const float32x4_t a, const float32x4_t b, const mve_pred16_t p0) |
| | Multiply accumulate with predicate (Vector * Vector)
|
| |
| float | vreduce (const float32x4_t in) |
| | Vector reduce.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| float32x4_t | vload1 (const float32_t *p) |
| | Vector load with stride.
|
| |
| float32x4_t | vload1 (const float32_t *p, const index_t stride) |
| | Vector load with dynamic stride.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| float32x4_t | vload1_z (const float32_t *p, const std::size_t nb, const mve_pred16_t p0) |
| | Vector load with stride and predicate.
|
| |
| float32x4_t | vload1_z (const float32_t *p, const index_t stride, const std::size_t nb, const mve_pred16_t p0) |
| | Vector load with dynamic stride and loop predication.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| void | vstore1 (float32_t *p, const float32x4_t val) |
| | Store with stride.
|
| |
| void | vstore1 (float32_t *p, const index_t stride, const float32x4_t val) |
| | Store with dynamic stride.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| void | vstore1_z (float32_t *p, const float32x4_t val, const std::size_t nb, const mve_pred16_t p0) |
| | Store with stride and tail predicate.
|
| |
| void | vstore1_z (float32_t *p, const index_t stride, const float32x4_t val, const std::size_t nb, const mve_pred16_t p0) |
| | Store with dynamic stride.
|
| |
| ComplexVector< float32x4_t > | vconst (const std::complex< float > v) |
| | Vector constant.
|
| |
| ComplexVector< float32x4_t > | vneg (const ComplexVector< float32x4_t > &a) |
| | Vector negate.
|
| |
| ComplexVector< float32x4_t > | vconjugate (const ComplexVector< float32x4_t > &a) |
| | Vector conjugate.
|
| |
| ComplexVector< float32x4_t > | vadd (const ComplexVector< float32x4_t > &a, const ComplexVector< float32x4_t > &b) |
| | Vector + Vector.
|
| |
| ComplexVector< float32x4_t > | vadd (const ComplexVector< float32x4_t > &a, const std::complex< float > &b) |
| | Vector + Scalar.
|
| |
| ComplexVector< float32x4_t > | vadd (const std::complex< float > &a, const ComplexVector< float32x4_t > &b) |
| | Scalar + Vector.
|
| |
| ComplexVector< float32x4_t > | vsub (const ComplexVector< float32x4_t > &a, const ComplexVector< float32x4_t > &b) |
| | Vector - Vector.
|
| |
| ComplexVector< float32x4_t > | vsub (const ComplexVector< float32x4_t > &a, const std::complex< float > &b) |
| | Vector - Scalar.
|
| |
| ComplexVector< float32x4_t > | vsub (const std::complex< float > &a, const ComplexVector< float32x4_t > &b) |
| | Scalar - Vector.
|
| |
| ComplexVector< float32x4_t > | vmul (const ComplexVector< float32x4_t > &a, const ComplexVector< float32x4_t > &b) |
| | Vector * Vector.
|
| |
| ComplexVector< float32x4_t > | vmul (const ComplexVector< float32x4_t > &a, const std::complex< float > &b) |
| | Vector * Scalar.
|
| |
| ComplexVector< float32x4_t > | vmul (const std::complex< float > &a, const ComplexVector< float32x4_t > &b) |
| | Scalar * Vector.
|
| |
| ComplexVector< float32x4_t > | vmacc (const ComplexVector< float32x4_t > &acc, const ComplexVector< float32x4_t > &a, const ComplexVector< float32x4_t > &b) |
| | Multiply accumulate (Vector * Vector)
|
| |
| ComplexVector< float32x4_t > | vmacc (const ComplexVector< float32x4_t > &acc, const ComplexVector< float32x4_t > &a, const std::complex< float > &b) |
| | Multiply accumulate (Vector * Scalar)
|
| |
| std::complex< float > | vreduce (const ComplexVector< float32x4_t > &in) |
| | Vector reduce.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| ComplexVector< float32x4_t > | vload1 (const std::complex< float32_t > *p) |
| | Vector load with stride.
|
| |
| ComplexVector< float32x4_t > | vload1 (const std::complex< float32_t > *p, const index_t stride) |
| | Vector load with dynamic stride.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| void | vstore1 (std::complex< float32_t > *p, const ComplexVector< float32x4_t > &val) |
| | Store with stride.
|
| |
| void | vstore1 (std::complex< float32_t > *p, const index_t stride, const ComplexVector< float32x4_t > &val) |
| | Store with dynamic stride.
|
| |
| float16x8_t | vconst (float16_t v) |
| | Vector const.
|
| |
| float16x8_t | vconst_tail (const float16_t v, const mve_pred16_t p0) |
| | Vector of const with tail predicate.
|
| |
| float16x8_t | vneg (const float16x8_t a) |
| | Vector negate.
|
| |
| float16x8_t | vneg (const float16x8_t a, const mve_pred16_t p0) |
| | Vector negate with tail predicate.
|
| |
| float16x8_t | vconjugate (const float16x8_t a) |
| | Vector conjugate.
|
| |
| float16x8_t | vconjugate (const float16x8_t a, const mve_pred16_t p0) |
| | Vector conjugate with tail predicate.
|
| |
| float16x8_t | vadd (const float16x8_t a, const float16x8_t b) |
| | Vector + Vector.
|
| |
| float16x8_t | vadd (const float16x8_t a, const float16_t b) |
| | Vector + Scalar.
|
| |
| float16x8_t | vadd (const float16_t a, const float16x8_t b) |
| | Scalar + Vector.
|
| |
| float16x8_t | vadd (const float16x8_t a, const float16x8_t b, const mve_pred16_t p0) |
| | Vector + Vector with tail predicate.
|
| |
| float16x8_t | vadd (const float16x8_t a, const float16_t b, const mve_pred16_t p0) |
| | Vector + Scalar with tail predicate.
|
| |
| float16x8_t | vadd (const float16_t a, const float16x8_t b, const mve_pred16_t p0) |
| | Scalar + Vector with tail predicate.
|
| |
| ComplexVector< float16x8_t > | vconst (const std::complex< float16_t > v) |
| | Vector constant.
|
| |
| ComplexVector< float16x8_t > | vneg (const ComplexVector< float16x8_t > &a) |
| | Vector negate.
|
| |
| ComplexVector< float16x8_t > | vconjugate (const ComplexVector< float16x8_t > &a) |
| | Vector conjugate.
|
| |
| ComplexVector< float16x8_t > | vadd (const ComplexVector< float16x8_t > &a, const ComplexVector< float16x8_t > &b) |
| | Vector + Vector.
|
| |
| ComplexVector< float16x8_t > | vadd (const ComplexVector< float16x8_t > &a, const std::complex< float16_t > &b) |
| | Vector + Scalar.
|
| |
| ComplexVector< float16x8_t > | vadd (const std::complex< float16_t > &a, const ComplexVector< float16x8_t > &b) |
| | Scalar + Vector.
|
| |
| ComplexVector< float16x8_t > | vsub (const ComplexVector< float16x8_t > &a, const ComplexVector< float16x8_t > &b) |
| | Vector - Vector.
|
| |
| ComplexVector< float16x8_t > | vsub (const ComplexVector< float16x8_t > &a, const std::complex< float16_t > &b) |
| | Vector - Scalar.
|
| |
| ComplexVector< float16x8_t > | vsub (const std::complex< float16_t > &a, const ComplexVector< float16x8_t > &b) |
| | Scalar - Vector.
|
| |
| ComplexVector< float16x8_t > | vmul (const ComplexVector< float16x8_t > &a, const ComplexVector< float16x8_t > &b) |
| | Vector * Vector.
|
| |
| ComplexVector< float16x8_t > | vmul (const ComplexVector< float16x8_t > &a, const std::complex< float16_t > &b) |
| | Vector * Scalar.
|
| |
| ComplexVector< float16x8_t > | vmul (const std::complex< float16_t > &a, const ComplexVector< float16x8_t > &b) |
| | Scalar * Vector.
|
| |
| ComplexVector< float16x8_t > | vmacc (const ComplexVector< float16x8_t > &acc, const ComplexVector< float16x8_t > &a, const ComplexVector< float16x8_t > &b) |
| | Multiply accumulate (Vector * Vector)
|
| |
| ComplexVector< float16x8_t > | vmacc (const ComplexVector< float16x8_t > &acc, const ComplexVector< float16x8_t > &a, const std::complex< float16_t > &b) |
| | Multiply accumulate (Vector * Scalar)
|
| |
| std::complex< float16_t > | vreduce (const ComplexVector< float16x8_t > &in) |
| | Vector reduce.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| ComplexVector< float16x8_t > | vload1 (const std::complex< float16_t > *p) |
| | Vector load with stride.
|
| |
| ComplexVector< float16x8_t > | vload1 (const std::complex< float16_t > *p, const index_t stride) |
| | Vector load with dynamic stride.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| void | vstore1 (std::complex< float16_t > *p, const ComplexVector< float16x8_t > &val) |
| | Store with stride.
|
| |
| void | vstore1 (std::complex< float16_t > *p, const index_t stride, const ComplexVector< float16x8_t > &val) |
| | Store with dynamic stride.
|
| |
| template<int S, typename std::enable_if< S==1, bool >::type = true> |
| int16x8_t | vload1 (const Q15 *p) |
| | Vector load with stride.
|
| |
| Q< 33, 30 > | vmacc (const Q< 33, 30 > sum, const int16x8_t vala, const int16x8_t valb) |
| | Vector accumulate into scalar.
|
| |
| template<typename A, typename VA, typename VB, std::size_t... Ns> |
| A | vmacc_impl (const A &acc, const VA &a, const VB &b, std::index_sequence< Ns... >) |
| | Vector accumulate for tuples of vectors.
|
| |
| template<typename A, typename ... EA, typename ... EB> |
| A | vmacc (const A &acc, const std::tuple< EA... > &a, const std::tuple< EB... > &b) |
| | Vector accumulate for tuples of vectors.
|
| |
| template<typename A, typename VA, typename VB, typename B, std::size_t... Ns> |
| A | vmacc_impl (const A &acc, const VA &a, const VB &b, const B p0, std::index_sequence< Ns... >) |
| | Predicated vector accumulate for tuple.
|
| |
| template<typename A, typename B, typename ... EA, typename ... EB> |
| A | vmacc (const A &acc, const std::tuple< EA... > &a, const std::tuple< EB... > &b, const B p0) |
| | Predicated vector accumulate for tuples.
|
| |
| template<typename A, std::size_t... Ns> |
| auto | vreduce_impl (const A &acc, std::index_sequence< Ns... >) |
| | Reduce function for tuple.
|
| |
| template<typename ... E> |
| auto | vreduce (const std::tuple< E... > &acc) |
| | Reduce function for tuples.
|
| |
| template<typename A, std::size_t... Ns> |
| auto | from_accumulator_impl (const A &acc, std::index_sequence< Ns... >) |
| | Convert from accumulator value.
|
| |
| template<typename ... E> |
| auto | from_accumulator (const std::tuple< E... > &acc) |
| | Convert from tuple of accumulator values.
|
| |
| template<typename A, typename VA, typename VB, std::size_t... Ns> |
| A | mac_impl (const A &acc, const VA &a, const VB &b, std::index_sequence< Ns... >) |
| | Multiply accumulate for tuple of scalar.
|
| |
| template<typename A, typename ... EA, typename ... EB> |
| A | mac (const A &acc, const std::tuple< EA... > &a, const std::tuple< EB... > &b) |
| | Multiply accumulate.
|
| |
| template<typename A, typename VA, typename VB, typename B, std::size_t... Ns> |
| A | mac_impl (const A &acc, const VA &a, const VB &b, const B p0, std::index_sequence< Ns... >) |
| | Multiply accumulate for tuple of scalar.
|
| |
| template<typename A, typename B, typename ... EA, typename ... EB> |
| A | mac (const A &acc, const std::tuple< EA... > &a, const std::tuple< EB... > &b, const B p0) |
| | Multiply accumulate.
|
| |
| 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.
|
| |