Content | |
| Generic Types | |
| Architecture specific algorithm | |
Files | |
| file | basic.hpp |
| file | basic.hpp |
| file | basic.hpp |
| file | arch.hpp |
| file | number.hpp |
| file | fixed_point.hpp |
| file | memory.hpp |
Namespaces | |
| namespace | arm_cmsis_dsp::arm_cmsis_dsp::inner |
Macros | |
| #define | F16INFINITY ((float16_t)__builtin_inf()) |
| 16-bit floating-point type definition. This is already defined in arm_mve.h | |
| #define | F64_MAX ((float64_t)DBL_MAX) |
| #define | ARM_MATH_TYPES_F16_H |
| #define | F16INFINITY ((float16_t)__builtin_inf()) |
| 16-bit floating-point type definition. This is already defined in arm_mve.h | |
Functions | |
| 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. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type |
Storage type for a fixed point number.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
| s | signed or unsigned |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type< M, F, true, test64(M, F, 1)> |
Storage type for a fixed point number representable on int64.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| typedef int64_t | value_type |
| Storage for the fixed point number. | |
| typedef int64_t | wider_type |
| Storage for the widening of this fixed point number datatype. | |
| typedef int32_t | narrow_type |
| Storage for the narrowing of this fixed point number datatype. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type< M, F, false, test64(M, F, 0)> |
Storage type for a fixed point number representable on uint64.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| typedef uint64_t | value_type |
| Storage for the fixed point number. | |
| typedef uint64_t | wider_type |
| Storage for the widening of this fixed point number datatype. | |
| typedef uint32_t | narrow_type |
| Storage for the narrowing of this fixed point number datatype. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type< M, F, true, test32(M, F, 1)> |
Storage type for a fixed point number representable on int32.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| typedef int32_t | value_type |
| Storage for the fixed point number. | |
| typedef int64_t | wider_type |
| Storage for the widening of this fixed point number datatype. | |
| typedef int16_t | narrow_type |
| Storage for the narrowing of this fixed point number datatype. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type< M, F, false, test32(M, F, 0)> |
Storage type for a fixed point number representable on uint32.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| typedef uint32_t | value_type |
| Storage for the fixed point number. | |
| typedef uint64_t | wider_type |
| Storage for the widening of this fixed point number datatype. | |
| typedef uint16_t | narrow_type |
| Storage for the narrowing of this fixed point number datatype. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type< M, F, true, test16(M, F, 1)> |
Storage type for a fixed point number representable on int16.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| typedef int16_t | value_type |
| Storage for the fixed point number. | |
| typedef int32_t | wider_type |
| Storage for the widening of this fixed point number datatype. | |
| typedef int8_t | narrow_type |
| Storage for the narrowing of this fixed point number datatype. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type< M, F, false, test16(M, F, 0)> |
Storage type for a fixed point number representable on uint16.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| typedef uint16_t | value_type |
| Storage for the fixed point number. | |
| typedef uint32_t | wider_type |
| Storage for the widening of this fixed point number datatype. | |
| typedef uint8_t | narrow_type |
| Storage for the narrowing of this fixed point number datatype. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type< M, F, true, test8(M, F, 1)> |
Storage type for a fixed point number representable on int8.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| typedef int8_t | value_type |
| Storage for the fixed point number. | |
| typedef int16_t | wider_type |
| Storage for the widening of this fixed point number datatype. | |
| typedef int8_t | narrow_type |
| Storage for the narrowing of this fixed point number datatype. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::fixed_storage_type< M, F, false, test8(M, F, 0)> |
Storage type for a fixed point number representable on uint8.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| typedef uint8_t | value_type |
| Storage for the fixed point number. | |
| typedef uint16_t | wider_type |
| Storage for the widening of this fixed point number datatype. | |
| typedef uint8_t | narrow_type |
| Storage for the narrowing of this fixed point number datatype. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q< M, F, true, int64_t > |
Signed fixed point datatypes on 64 bits.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| using | value_type = typename fixed_storage_type<M,F,true>::value_type |
| Storage type for the value. | |
| using | wider_type = typename fixed_storage_type<M,F,true>::wider_type |
| Storage type for the widening of the value. | |
Public Member Functions | |
| constexpr | Q () |
| Create a new zero fixed point. | |
| constexpr | Q (const value_type x) |
| Create a new fixed point from a raw integer. | |
| constexpr | Q (const Q< M, F, false > &other) |
| Convert an unsigned fixed point to this fixed point. | |
| bool | operator== (const Q &b) const |
| this == b | |
| bool | operator!= (const Q &b) const |
| this != b | |
| bool | operator< (const Q &b) const |
| this < b | |
| bool | operator> (const Q &b) const |
| this > b | |
| bool | operator<= (const Q &b) const |
| this <= b | |
| bool | operator>= (const Q &b) const |
| this >= b | |
| Q & | operator+= (const Q other) |
| this += other | |
| Q & | operator-= (const Q other) |
| this -= other | |
Static Public Member Functions | |
| static constexpr value_type | convert (const float f) |
| Convert a float to fixed point. | |
| static constexpr Q | f (const float x) |
| Create a new fixed point from a float. | |
| static constexpr Q | one () |
| Fixed point number representing 1. | |
Data Fields | |
| value_type | v |
| Storage value. | |
Static Public Attributes | |
| static constexpr int | fracBits = F |
| Number of fractional bits. | |
| static constexpr int | mantissaBits = M |
| Number of mantissa bits (without sign bit) | |
| static constexpr bool | isSigned = true |
| Is this number representation signed. | |
| static constexpr value_type | maxVal = 0x7FFFFFFFFFFFFFFFLL |
| Maximum representable positive value. | |
| static constexpr value_type | minVal = 0x8000000000000000LL |
| Minimum representable negative value. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q< M, F, false, uint64_t > |
Unsigned fixed point datatypes on 64 bits.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| using | value_type = typename fixed_storage_type<M,F,false>::value_type |
| Storage type for the value. | |
| using | wider_type = typename fixed_storage_type<M,F,false>::wider_type |
| Storage type for the widening of the value. | |
Public Member Functions | |
| constexpr | Q () |
| Create a new zero fixed point. | |
| constexpr | Q (const value_type x) |
| Create a new fixed point from a raw integer. | |
| bool | operator== (const Q &b) const |
| this == b | |
| bool | operator!= (const Q &b) const |
| this != b | |
| bool | operator< (const Q &b) const |
| this < b | |
| bool | operator> (const Q &b) const |
| this > b | |
| bool | operator<= (const Q &b) const |
| this <= b | |
| bool | operator>= (const Q &b) const |
| this >= b | |
Static Public Member Functions | |
| static constexpr value_type | convert (const float f) |
| Convert a float to fixed point. | |
| static constexpr Q | f (const float x) |
| Create a new fixed point from a float. | |
| static constexpr Q | one () |
| Fixed point number representing 1. | |
Data Fields | |
| value_type | v |
| Storage value. | |
Static Public Attributes | |
| static constexpr int | fracBits = F |
| Number of fractional bits. | |
| static constexpr int | mantissaBits = M |
| Number of mantissa bits (without sign bit) | |
| static constexpr bool | isSigned = false |
| Is this number representation signed. | |
| static constexpr value_type | maxVal = 0xFFFFFFFFFFFFFFFFLL |
| Maximum representable positive value. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q< M, F, true, int32_t > |
Signed fixed point datatypes on 32 bits.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| using | value_type = typename fixed_storage_type<M,F,true>::value_type |
| Storage type for the value. | |
| using | wider_type = typename fixed_storage_type<M,F,true>::wider_type |
| Storage type for the widening of the value. | |
Public Member Functions | |
| constexpr | Q () |
| Create a new zero fixed point. | |
| constexpr | Q (const value_type x) |
| Create a new fixed point from a raw integer. | |
| constexpr | Q (const Q< M, F, false > &other) |
| Convert an unsigned fixed point to this fixed point. | |
| bool | operator== (const Q &b) const |
| this == b | |
| bool | operator!= (const Q &b) const |
| this != b | |
| bool | operator< (const Q &b) const |
| this < b | |
| bool | operator> (const Q &b) const |
| this > b | |
| bool | operator<= (const Q &b) const |
| this <= b | |
| bool | operator>= (const Q &b) const |
| this >= b | |
| Q & | operator+= (const Q other) |
| this += other | |
| Q & | operator-= (const Q other) |
| this -= other | |
Static Public Member Functions | |
| static constexpr value_type | sat (const wider_type i) |
| Saturate a wider type to the current type. | |
| static constexpr value_type | convert (const float f) |
| Convert a float to fixed point with saturation. | |
| static constexpr Q | f (const float x) |
| Create a new fixed point from a float. | |
| static constexpr Q | one () |
| Fixed point number representing 1. | |
Data Fields | |
| value_type | v |
| Storage value. | |
Static Public Attributes | |
| static constexpr int | fracBits = F |
| Number of fractional bits. | |
| static constexpr int | mantissaBits = M |
| Number of mantissa bits (without sign bit) | |
| static constexpr bool | isSigned = true |
| Is this number representation signed. | |
| static constexpr value_type | maxVal = 0x7FFFFFFFL |
| Maximum representable positive value. | |
| static constexpr value_type | minVal = 0x80000000L |
| Minimum representable negative value. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q< M, F, false, uint32_t > |
Unsigned fixed point datatypes on 32 bits.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| using | value_type = typename fixed_storage_type<M,F,false>::value_type |
| Storage type for the value. | |
| using | wider_type = typename fixed_storage_type<M,F,false>::wider_type |
| Storage type for the widening of the value. | |
Public Member Functions | |
| constexpr | Q () |
| Create a new zero fixed point. | |
| constexpr | Q (const value_type x) |
| Create a new fixed point from a raw integer. | |
| bool | operator== (const Q &b) const |
| this == b | |
| bool | operator!= (const Q &b) const |
| this != b | |
| bool | operator< (const Q &b) const |
| this < b | |
| bool | operator> (const Q &b) const |
| this > b | |
| bool | operator<= (const Q &b) const |
| this <= b | |
| bool | operator>= (const Q &b) const |
| this >= b | |
Static Public Member Functions | |
| static constexpr value_type | sat (const wider_type i) |
| Saturate a wider type to the current type. | |
| static constexpr value_type | convert (const float f) |
| Convert a float to fixed point with saturation. | |
| static constexpr Q | f (const float x) |
| Create a new fixed point from a float. | |
| static constexpr Q | one () |
| Fixed point number representing 1. | |
Data Fields | |
| value_type | v |
| Storage value. | |
Static Public Attributes | |
| static constexpr int | fracBits = F |
| Number of fractional bits. | |
| static constexpr int | mantissaBits = M |
| Number of mantissa bits (without sign bit) | |
| static constexpr bool | isSigned = false |
| Is this number representation signed. | |
| static constexpr value_type | maxVal = 0xFFFFFFFFL |
| Maximum representable positive value. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q< M, F, true, int16_t > |
Signed fixed point datatypes on 16 bits.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| using | value_type = typename fixed_storage_type<M,F,true>::value_type |
| Storage type for the value. | |
| using | wider_type = typename fixed_storage_type<M,F,true>::wider_type |
| Storage type for the widening of the value. | |
Public Member Functions | |
| constexpr | Q () |
| Create a new zero fixed point. | |
| constexpr | Q (const value_type x) |
| Create a new fixed point from a raw integer. | |
| constexpr | Q (const Q< M, F, false > &other) |
| Convert an unsigned fixed point to this fixed point. | |
| bool | operator== (const Q &b) const |
| this == b | |
| bool | operator!= (const Q &b) const |
| this != b | |
| bool | operator< (const Q &b) const |
| this < b | |
| bool | operator> (const Q &b) const |
| this > b | |
| bool | operator<= (const Q &b) const |
| this <= b | |
| bool | operator>= (const Q &b) const |
| this >= b | |
| Q & | operator+= (const Q other) |
| this += other | |
| Q & | operator-= (const Q other) |
| this -= other | |
Static Public Member Functions | |
| static constexpr value_type | sat (const wider_type i) |
| Saturate a wider type to the current type. | |
| static constexpr value_type | convert (const float f) |
| Convert a float to fixed point with saturation. | |
| static constexpr Q | f (const float x) |
| Create a new fixed point from a float. | |
| static constexpr Q | one () |
| Fixed point number representing 1. | |
Data Fields | |
| value_type | v |
| Storage value. | |
Static Public Attributes | |
| static constexpr int | fracBits = F |
| Number of fractional bits. | |
| static constexpr int | mantissaBits = M |
| Number of mantissa bits (without sign bit) | |
| static constexpr bool | isSigned = true |
| Is this number representation signed. | |
| static constexpr value_type | maxVal = 0x7FFF |
| Maximum representable positive value. | |
| static constexpr value_type | minVal = 0x8000 |
| Minimum representable negative value. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q< M, F, false, uint16_t > |
Unsigned fixed point datatypes on 16 bits.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| using | value_type = typename fixed_storage_type<M,F,false>::value_type |
| Storage type for the value. | |
| using | wider_type = typename fixed_storage_type<M,F,false>::wider_type |
| Storage type for the widening of the value. | |
Public Member Functions | |
| constexpr | Q () |
| Create a new zero fixed point. | |
| constexpr | Q (const value_type x) |
| Create a new fixed point from a raw integer. | |
| bool | operator== (const Q &b) const |
| this == b | |
| bool | operator!= (const Q &b) const |
| this != b | |
| bool | operator< (const Q &b) const |
| this < b | |
| bool | operator> (const Q &b) const |
| this > b | |
| bool | operator<= (const Q &b) const |
| this <= b | |
| bool | operator>= (const Q &b) const |
| this >= b | |
| Q & | operator+= (const Q other) |
| this += other | |
Static Public Member Functions | |
| static constexpr value_type | sat (const wider_type i) |
| Saturate a wider type to the current type. | |
| static constexpr value_type | convert (const float f) |
| Convert a float to fixed point with saturation. | |
| static constexpr Q | f (const float x) |
| Create a new fixed point from a float. | |
| static constexpr Q | one () |
| Fixed point number representing 1. | |
Data Fields | |
| value_type | v |
| Storage value. | |
Static Public Attributes | |
| static constexpr int | fracBits = F |
| Number of fractional bits. | |
| static constexpr int | mantissaBits = M |
| Number of mantissa bits (without sign bit) | |
| static constexpr bool | isSigned = false |
| Is this number representation signed. | |
| static constexpr value_type | maxVal = 0xFFFF |
| Maximum representable positive value. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q< M, F, true, int8_t > |
Signed fixed point datatypes on 8 bits.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| using | value_type = typename fixed_storage_type<M,F,true>::value_type |
| Storage type for the value. | |
| using | wider_type = typename fixed_storage_type<M,F,true>::wider_type |
| Storage type for the widening of the value. | |
Public Member Functions | |
| constexpr | Q () |
| Create a new zero fixed point. | |
| constexpr | Q (const value_type x) |
| Create a new fixed point from a raw integer. | |
| constexpr | Q (const Q< M, F, false > &other) |
| Convert an unsigned fixed point to this fixed point. | |
| bool | operator== (const Q &b) const |
| this == b | |
| bool | operator!= (const Q &b) const |
| this != b | |
| bool | operator< (const Q &b) const |
| this < b | |
| bool | operator> (const Q &b) const |
| this > b | |
| bool | operator<= (const Q &b) const |
| this <= b | |
| bool | operator>= (const Q &b) const |
| this >= b | |
| Q & | operator+= (const Q other) |
| this += other | |
| Q & | operator-= (const Q other) |
| this -= other | |
Static Public Member Functions | |
| static constexpr value_type | sat (const wider_type i) |
| Saturate a wider type to the current type. | |
| static constexpr value_type | convert (const float f) |
| Convert a float to fixed point with saturation. | |
| static constexpr Q | f (const float x) |
| Create a new fixed point from a float. | |
| static constexpr Q | one () |
| Fixed point number representing 1. | |
Data Fields | |
| value_type | v |
| Storage value. | |
Static Public Attributes | |
| static constexpr int | fracBits = F |
| Number of fractional bits. | |
| static constexpr int | mantissaBits = M |
| Number of mantissa bits (without sign bit) | |
| static constexpr bool | isSigned = true |
| Is this number representation signed. | |
| static constexpr value_type | maxVal = 0x7F |
| Maximum representable positive value. | |
| static constexpr value_type | minVal = 0x80 |
| Minimum representable negative value. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q< M, F, false, uint8_t > |
Unsigned fixed point datatypes on 8 bits.
| M | Number of bits for mantissa (without sign bit) |
| F | Number of bits for fractional part |
Public Types | |
| using | value_type = typename fixed_storage_type<M,F,false>::value_type |
| Storage type for the value. | |
| using | wider_type = typename fixed_storage_type<M,F,false>::wider_type |
| Storage type for the widening of the value. | |
Public Member Functions | |
| constexpr | Q () |
| Create a new zero fixed point. | |
| constexpr | Q (const value_type x) |
| Create a new fixed point from a raw integer. | |
| bool | operator== (const Q &b) const |
| this == b | |
| bool | operator!= (const Q &b) const |
| this != b | |
| bool | operator< (const Q &b) const |
| this < b | |
| bool | operator> (const Q &b) const |
| this > b | |
| bool | operator<= (const Q &b) const |
| this <= b | |
| bool | operator>= (const Q &b) const |
| this >= b | |
| Q & | operator+= (const Q other) |
| this += other | |
Static Public Member Functions | |
| static constexpr value_type | sat (const wider_type i) |
| Saturate a wider type to the current type. | |
| static constexpr value_type | convert (const float f) |
| Convert a float to fixed point with saturation. | |
| static constexpr Q | f (const float x) |
| Create a new fixed point from a float. | |
| static constexpr Q | one () |
| Fixed point number representing 1. | |
Data Fields | |
| value_type | v |
| Storage value. | |
Static Public Attributes | |
| static constexpr int | fracBits = F |
| Number of fractional bits. | |
| static constexpr int | mantissaBits = M |
| Number of mantissa bits (without sign bit) | |
| static constexpr bool | isSigned = false |
| Is this number representation signed. | |
| static constexpr value_type | maxVal = 0xFF |
| Maximum representable positive value. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::FixedCastShift< M, FD, FS, S,(FD >FS)> |
Changed fractional representation of a fixed point number using a shift.
| M | Number of mantissa bits for the fixed point number |
| FD | Number of fractional bits for the destination fixed point number |
| FS | Number of fractional bits for the source fixed point number |
| S | Is the fixed point number using a signed representation |
| src | The fixed point number |
Only applies if FD > FS
| struct arm_cmsis_dsp::arm_cmsis_dsp::FixedCastShift< M, FD, FS, S,(FD< FS)> |
Changed fractional representation of a fixed point number using a shift.
| M | Number of mantissa bits for the fixed point number |
| FD | Number of fractional bits for the destination fixed point number |
| FS | Number of fractional bits for the source fixed point number |
| S | Is the fixed point number using a signed representation |
| src | The fixed point number |
Only applies if FD < FS
| struct arm_cmsis_dsp::arm_cmsis_dsp::Accumulate< MD, MS, F, S, true > |
Accumulation without saturation.
| MD | Number of mantissa bits for the destination fixed point number |
| MS | Number of mantissa bits for the source fixed point number |
| F | Number of fractional bits for fixed point number |
| S | Is the fixed point number using a signed representation |
Static Public Member Functions | |
| static Q< MD, F, S > | acc (const Q< MD, F, S > &a, const Q< MS, F, S > &b) |
| Accumulation without saturation. | |
|
inlinestatic |
Accumulation without saturation.
| [in] | a | first fixed point number |
| [in] | b | second fixed point number |
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits |
Properties of a vector datatype linked to a scalar datatype.
| T | Type of the scalar |
| arch | Architecture. It is defined by the architecture selection code and should never be set by the user. |
Public Types | |
| typedef T | type |
| Scalar datatype. | |
| typedef T | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float = false |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed = false |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vctpq |
Predicate (only defined for vector architectures)
| T | scalar data type |
| v | Number of loops |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< std::complex< double > > |
Features for complex double.
Public Types | |
| typedef std::complex< double > | accumulator |
| Accumulator datatype for this scalar datatype. | |
| typedef std::complex< double > | compute_type |
| Compute datatype for this scalar datatype. | |
Static Public Member Functions | |
| static constexpr std::complex< double > | one () |
| One for this datatype. | |
Static Public Attributes | |
| static constexpr bool | is_float = true |
| It is a float number. | |
| static constexpr bool | is_fixed = false |
| It is not a fixed point. | |
|
inlinestaticconstexpr |
One for this datatype.
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< std::complex< double >, arch, void > |
Default vector datatype description for this scalar datatype.
| arch | Current architecture |
Public Types | |
| typedef std::complex< double > | type |
| typedef std::complex< double > | storage_type |
| typedef bool | vector |
| typedef bool | temp_accumulator |
| typedef uint32_t | predicate_t |
| typedef std::complex< double > | type |
| Scalar datatype. | |
| typedef std::complex< double > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| static constexpr bool | is_float = true |
| It is a float. | |
| static constexpr bool | is_fixed = false |
| Not a fixed point. | |
| static constexpr bool | has_predicate = false |
| No predicated loops. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| typedef uint32_t predicate_t |
Dummy datatype. Must be present for building but not used since by default there is no vector architecture assumed
| typedef std::complex<double> storage_type |
Storage datatype
| typedef bool temp_accumulator |
Dummy datatype. Must be present for building but not used since by default there is no vector architecture assumed
| typedef bool vector |
Dummy datatype. Must be present for building but not used since by default there is no vector architecture assumed
|
staticconstexpr |
By default : no vector architecture assumed
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< double > |
Features for double.
Public Types | |
| typedef double | accumulator |
| Accumulator datatype for this scalar datatype. | |
| typedef double | compute_type |
| Compute datatype for this scalar datatype. | |
| typedef double | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr double | one () |
| One for this datatype. | |
Static Public Attributes | |
| static constexpr bool | is_float = true |
| It is a float number. | |
| static constexpr bool | is_fixed = false |
| It is not a fixed point. | |
|
inlinestaticconstexpr |
One for this datatype.
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< double, arch, void > |
Default vector datatype description for this scalar datatype.
| arch | Current architecture |
Public Types | |
| typedef double | type |
| typedef double | storage_type |
| typedef bool | vector |
| typedef bool | temp_accumulator |
| typedef uint32_t | predicate_t |
| typedef double | type |
| Scalar datatype. | |
| typedef double | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| static constexpr bool | is_float = true |
| It is a float. | |
| static constexpr bool | is_fixed = false |
| Not a fixed point. | |
| static constexpr bool | has_predicate = false |
| No predicated loops. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| typedef uint32_t predicate_t |
Dummy datatype. Must be present for building but not used since by default there is no vector architecture assumed
| typedef double storage_type |
Storage datatype
| typedef bool temp_accumulator |
Dummy datatype. Must be present for building but not used since by default there is no vector architecture assumed
| typedef bool vector |
Dummy datatype. Must be present for building but not used since by default there is no vector architecture assumed
|
staticconstexpr |
By default : no vector architecture assumed
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< std::complex< float > > |
Features for complex float.
Public Types | |
| typedef std::complex< float > | accumulator |
| Accumulator datatype for this scalar datatype. | |
| typedef std::complex< float > | compute_type |
| Compute datatype for this scalar datatype. | |
| typedef std::complex< float > | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr std::complex< float > | one () |
| One for this datatype. | |
Static Public Attributes | |
| static constexpr bool | is_float = true |
| It is a float number. | |
| static constexpr bool | is_fixed = false |
| It is not a fixed point. | |
|
inlinestaticconstexpr |
One for this datatype.
| struct arm_cmsis_dsp::arm_cmsis_dsp::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.
| arch | Current architecture |
Public Types | |
| typedef std::complex< float > | type |
| Current type. | |
| typedef std::complex< float > | storage_type |
| Current storage type. | |
| typedef bool | vector |
| Dummy type. Not used when no vector instructions. | |
| typedef bool | temp_accumulator |
| Dummy type. Not used when no vector instructions. | |
| typedef uint32_t | predicate_t |
| Dummy type. Not used when no vector instructions. | |
| typedef std::complex< float > | type |
| Scalar datatype. | |
| typedef std::complex< float > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| No vector instructions for this datatype. | |
| static constexpr bool | is_float = true |
| Is float. | |
| static constexpr bool | is_fixed = false |
| Is fixed. | |
| static constexpr bool | has_predicate = false |
| No predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< float > |
Features for float.
Public Types | |
| typedef float | accumulator |
| Accumulator datatype for this scalar datatype. | |
| typedef float | compute_type |
| Compute datatype for this scalar datatype. | |
| typedef float | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr float | one () |
| One for this datatype. | |
Static Public Attributes | |
| static constexpr bool | is_float = true |
| It is a float number. | |
| static constexpr bool | is_fixed = false |
| It is not a fixed point. | |
|
inlinestaticconstexpr |
One for this datatype.
| struct arm_cmsis_dsp::arm_cmsis_dsp::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.
| arch | Current architecture |
Public Types | |
| typedef float | type |
| Current type. | |
| typedef float | storage_type |
| Current storage type. | |
| typedef bool | vector |
| Dummy type. Not used when no vector instructions. | |
| typedef bool | temp_accumulator |
| Dummy type. Not used when no vector instructions. | |
| typedef uint32_t | predicate_t |
| Dummy type. Not used when no vector instructions. | |
| typedef float | type |
| Scalar datatype. | |
| typedef float | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| No vector instructions for this datatype. | |
| static constexpr bool | is_float = true |
| Is float. | |
| static constexpr bool | is_fixed = false |
| Is fixed. | |
| static constexpr bool | has_predicate = false |
| No predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< std::complex< float16_t > > |
Feature for complex float16.
Public Types | |
| typedef std::complex< float16_t > | accumulator |
| Accumulator datatype. | |
| typedef std::complex< float16_t > | compute_type |
| Compute datatype (Less efficient than _Float16 but some C++ std lib is causing issues with _Float16) | |
| typedef std::complex< float16_t > | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr std::complex< float16_t > | one () |
| One value. | |
Static Public Attributes | |
| static constexpr bool | is_float = true |
| It is a float number. | |
| static constexpr bool | is_fixed = false |
| It is not a fixed point number. | |
|
inlinestaticconstexpr |
One value.
| struct arm_cmsis_dsp::arm_cmsis_dsp::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
Public Types | |
| typedef std::complex< float16_t > | type |
| Float16 datatype. | |
| typedef std::complex< float16_t > | storage_type |
| Float16 storage type. | |
| typedef bool | vector |
| Dummy type when no vector instruction is supported. | |
| typedef bool | temp_accumulator |
| Dummy type when no vector instruction is supported. | |
| typedef uint32_t | predicate_t |
| Dummy type when no vector instruction is supported. | |
| typedef std::complex< float16_t > | type |
| Scalar datatype. | |
| typedef std::complex< float16_t > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| No vector instruction. | |
| static constexpr bool | is_float = true |
| Is float. | |
| static constexpr bool | is_fixed = false |
| Not fixed point. | |
| static constexpr bool | has_predicate = false |
| Has predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< float16_t > |
Feature of float16 datatype.
Public Types | |
| typedef float16_t | accumulator |
| Accumulator datatype. | |
| typedef _Float16 | compute_type |
| Compute datatype. | |
| typedef float | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr float16_t | one () |
| One value. | |
Static Public Attributes | |
| static constexpr bool | is_float = true |
| It is a float number. | |
| static constexpr bool | is_fixed = false |
| It is not a fixed point number. | |
|
inlinestaticconstexpr |
One value.
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< Q31 > |
Features for Q31.
Public Types | |
| typedef Q< 15, 48 > | accumulator |
| Accumulator datatype. | |
| typedef Q31 | compute_type |
| Compute type. | |
| typedef Q31 | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr Q31 | one () |
| One value. | |
Static Public Attributes | |
| static constexpr bool | is_float = false |
| Is not a float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
|
inlinestaticconstexpr |
One value.
| struct arm_cmsis_dsp::arm_cmsis_dsp::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.
| arch | Current architecture |
Public Types | |
| typedef Q31 | type |
| Datatype. | |
| typedef type::value_type | storage_type |
| Storage tpe (int32_t) | |
| typedef bool | vector |
| Dummy type when no vector instructions are supported. | |
| typedef bool | temp_accumulator |
| Dummy type when no vector instructions are supported. | |
| typedef uint32_t | predicate_t |
| Dummy type when no vector instructions are supported. | |
| typedef Q31 | type |
| Scalar datatype. | |
| typedef Q31 | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| No vector instruction. | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed. | |
| static constexpr bool | has_predicate = false |
| No predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< std::complex< Q31 > > |
Features for complex Q31.
Public Types | |
| typedef std::complex< Q< 15, 48 > > | accumulator |
| Accumulator datatype. | |
| typedef std::complex< Q31 > | compute_type |
| Compute type. | |
| typedef std::complex< Q31 > | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr std::complex< Q31 > | one () |
| One value. | |
Static Public Attributes | |
| static constexpr bool | is_float = false |
| Is not a float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
|
inlinestaticconstexpr |
One value.
| struct arm_cmsis_dsp::arm_cmsis_dsp::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.
| arch | Current architecture |
Public Types | |
| typedef std::complex< Q31 > | type |
| Datatype. | |
| typedef type::value_type | storage_type |
| Storage tpe (int32_t) | |
| typedef bool | vector |
| Dummy type when no vector instructions are supported. | |
| typedef bool | temp_accumulator |
| Dummy type when no vector instructions are supported. | |
| typedef uint32_t | predicate_t |
| Dummy type when no vector instructions are supported. | |
| typedef std::complex< Q31 > | type |
| Scalar datatype. | |
| typedef std::complex< Q31 > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| No vector instruction. | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed. | |
| static constexpr bool | has_predicate = false |
| No predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< Q15 > |
Q15 features.
Public Types | |
| typedef Q< 33, 30 > | accumulator |
| Accumulator datatype. | |
| typedef Q15 | compute_type |
| Compute type. | |
| typedef Q15 | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr Q15 | one () |
| One value. | |
Static Public Attributes | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::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.
| arch | Current architecture |
Public Types | |
| typedef Q15 | type |
| Compute type. | |
| typedef type::value_type | storage_type |
| Storage datatype (int16_t) | |
| typedef bool | vector |
| Dummy type when no vector instructions. | |
| typedef bool | temp_accumulator |
| Dummy type when no vector instructions. | |
| typedef uint32_t | predicate_t |
| Dummy type when no vector instructions. | |
| typedef Q15 | type |
| Scalar datatype. | |
| typedef Q15 | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| Has no vector instructions. | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
| static constexpr bool | has_predicate = false |
| Has no predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< std::complex< Q15 > > |
Features for complex Q15.
Public Types | |
| typedef std::complex< Q< 33, 30 > > | accumulator |
| Accumulator datatype. | |
| typedef std::complex< Q15 > | compute_type |
| Compute type. | |
| typedef std::complex< Q15 > | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr std::complex< Q15 > | one () |
| One value. | |
Static Public Attributes | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
|
inlinestaticconstexpr |
One value.
| struct arm_cmsis_dsp::arm_cmsis_dsp::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.
| arch | Current architecture |
Public Types | |
| typedef std::complex< Q15 > | type |
| Compute type. | |
| typedef type::value_type | storage_type |
| Storage datatype (int16_t) | |
| typedef bool | vector |
| Dummy type when no vector instructions. | |
| typedef bool | temp_accumulator |
| Dummy type when no vector instructions. | |
| typedef uint32_t | predicate_t |
| Dummy type when no vector instructions. | |
| typedef std::complex< Q15 > | type |
| Scalar datatype. | |
| typedef std::complex< Q15 > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| Has no vector instructions. | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
| static constexpr bool | has_predicate = false |
| Has no predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< Q7 > |
Q7 features.
Public Types | |
| typedef Q< 17, 14 > | accumulator |
| Accumulator datatype. | |
| typedef Q7 | compute_type |
| Compute type. | |
| typedef Q7 | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr Q7 | one () |
| One value. | |
Static Public Attributes | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::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.
| arch | Current architecture |
Public Types | |
| typedef Q7 | type |
| Current datatype. | |
| typedef type::value_type | storage_type |
| Storage datatype (int8_t) | |
| typedef bool | vector |
| Dummy datatype when no vector instructions. | |
| typedef bool | temp_accumulator |
| Dummy datatype when no vector instructions. | |
| typedef uint32_t | predicate_t |
| Dummy datatype when no vector instructions. | |
| typedef Q7 | type |
| Scalar datatype. | |
| typedef Q7 | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| No vector instructions. | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
| static constexpr bool | has_predicate = false |
| No predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< std::complex< Q7 > > |
Features for Complex Q7.
Public Types | |
| typedef std::complex< Q< 17, 14 > > | accumulator |
| Accumulator datatype. | |
| typedef std::complex< Q7 > | compute_type |
| Compute type. | |
| typedef std::complex< Q7 > | display_type |
| Display type for printf. | |
Static Public Member Functions | |
| static constexpr std::complex< Q7 > | one () |
| One value. | |
Static Public Attributes | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
|
inlinestaticconstexpr |
One value.
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< std::complex< Q7 >, arch, void > |
Vector description when no vector architecture.
| arch | Current architecture |
Public Types | |
| typedef std::complex< Q7 > | type |
| Current datatype. | |
| typedef type::value_type | storage_type |
| Storage datatype (int8_t) | |
| typedef bool | vector |
| Dummy datatype when no vector instructions. | |
| typedef bool | temp_accumulator |
| Dummy datatype when no vector instructions. | |
| typedef uint32_t | predicate_t |
| Dummy datatype when no vector instructions. | |
| typedef std::complex< Q7 > | type |
| Scalar datatype. | |
| typedef std::complex< Q7 > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Attributes | |
| static constexpr bool | has_vector = false |
| No vector instructions. | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
| static constexpr bool | has_predicate = false |
| No predicated loop. | |
| static constexpr int | nb_lanes = 1 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| struct arm_cmsis_dsp::arm_cmsis_dsp::Q15DSPVector |
Representation of a vector when DSP extension supported.
Public Member Functions | |
| Q15DSPVector () | |
| Create new 0 initialized vector. | |
| Q15DSPVector (int32_t val) | |
| Create vector initialized from value. | |
| operator int32_t () | |
| Return value in vector. | |
|
inlineexplicit |
Create vector initialized from value.
| [in] | val | The value |
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< Q15, DSP, typename std::enable_if< true >::type > |
Public Types | |
| typedef Q15 | type |
| Scalar datatype. | |
| typedef type::value_type | storage_type |
| Storage datatype. | |
| typedef Q15DSPVector | vector |
| Vector datatype. | |
| typedef Q< 33, 30 > | temp_accumulator |
| Accumulator datatype. | |
| typedef uint32_t | predicate_t |
| typedef Q15 | type |
| Scalar datatype. | |
| typedef Q15 | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Member Functions | |
| static Q< 33, 30 > | temp_acc_zero () |
| Zero accumulator. | |
| static constexpr int16_t | zero_lane () |
| Value to write in a lane to write 0. | |
| static constexpr int16_t | lane_value (const Q15 x) |
| Convert to lane value. | |
Static Public Attributes | |
| static constexpr bool | has_vector = true |
| Has some vector instructions. | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
| static constexpr bool | has_predicate = false |
| No predicated loops. | |
| static constexpr int | nb_lanes = 2 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
| typedef uint32_t predicate_t |
Dummy type since there is no predicated loop for DSP extensions
|
inlinestaticconstexpr |
Convert to lane value.
| [in] | x | Value |
|
inlinestatic |
Zero accumulator.
|
inlinestaticconstexpr |
Value to write in a lane to write 0.
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< float, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
| arch | Current architecture |
Public Types | |
| typedef float | type |
| Scalar datatype. | |
| typedef float | storage_type |
| Storage datatype. | |
| typedef float32x4_t | vector |
| Vector datatype. | |
| typedef float32x4_t | temp_accumulator |
| Temp accumulator datatype (must be reduced to final scalar datatype) | |
| typedef mve_pred16_t | predicate_t |
| Predicate datatype. | |
| typedef float | type |
| Scalar datatype. | |
| typedef float | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Member Functions | |
| static float32x4_t | temp_acc_zero () |
| Temp accumulator initialized to 0. | |
| static constexpr float | zero_lane () |
| Zero lane. | |
| static constexpr float | lane_value (const float x) |
| Lane value. | |
Static Public Attributes | |
| static constexpr bool | has_vector = true |
| Has vector instruction. | |
| static constexpr bool | is_float = true |
| Is float. | |
| static constexpr bool | is_fixed = false |
| Is not fixed point. | |
| static constexpr bool | has_predicate = true |
| Has predicated loops. | |
| static constexpr int | nb_lanes = 4 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
|
inlinestaticconstexpr |
Lane value.
| [in] | x | Lane value |
|
inlinestatic |
Temp accumulator initialized to 0.
|
inlinestaticconstexpr |
Zero lane.
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vctpq< float > |
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vload1_gen_stride< float32_t, 0, 1, 2, 3 > |
Load with generalized stride specialized for <0,1,2,3>
Static Public Member Functions | |
| static float32x4_t | run (const float32_t *p) |
| Load with generalized stride. | |
|
inlinestatic |
Load with generalized stride.
| [in] | p | Load address |
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::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>
| S | List of offsets known at built time |
Static Public Member Functions | |
| static float32x4_t | run (const float32_t *p, const std::size_t nb, const mve_pred16_t p0) |
| Gather load with predicated specialized for <0,1,2,3> | |
|
inlinestatic |
Gather load with predicated specialized for <0,1,2,3>
| [in] | p | Load address |
| [in] | nb | Number of remaining samples in the loop |
| [in] | p0 | Predicate for samples in the loop |
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vstore1_gen_stride< float32_t, 0, 1, 2, 3 > |
Generalized store with stride (Specialized for <0,1,2,3>)
Static Public Member Functions | |
| static void | run (float32_t *p, const float32x4_t val) |
| Scatter store. | |
|
inlinestatic |
Scatter store.
| p | Store address | |
| [in] | val | Value to store |
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vstore1_gen_stride_z< float32_t, 0, 1, 2, 3 > |
Scatter store with tail predicate (specialized for <0,1,2,3>)
Static Public Member Functions | |
| static void | vstore1_z (float32_t *p, const float32x4_t val, const std::size_t nb, const mve_pred16_t p0) |
| Scatter store with tail predicate. | |
|
inlinestatic |
Scatter store with tail predicate.
| p | Store address | |
| [in] | val | Value to store |
| [in] | nb | Number of remaining loops |
| [in] | p0 | Loop predicate |
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< std::complex< float >, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
| arch | Current architecture |
Public Types | |
| typedef std::complex< float > | type |
| Scalar datatype. | |
| typedef std::complex< float > | storage_type |
| Storage datatype. | |
| typedef ComplexVector< float32x4_t > | vector |
| Vector datatype. | |
| typedef HalfComplexVector< float32x4_t > | half_vector |
| Half vector datatype. | |
| typedef float32x4_t | real_vector |
| Real vector datatype. | |
| typedef ComplexVector< float32x4_t > | temp_accumulator |
| Temp accumulator datatype (must be reduced to final scalar datatype) | |
| typedef bool | predicate_t |
| Predicate datatype (not used) | |
| typedef std::complex< float > | type |
| Scalar datatype. | |
| typedef std::complex< float > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Member Functions | |
| static ComplexVector< float32x4_t > | temp_acc_zero () |
| Temp accumulator initialized to 0. | |
Static Public Attributes | |
| static constexpr bool | has_vector = true |
| Has vector instruction. | |
| static constexpr bool | is_float = true |
| Is float. | |
| static constexpr bool | is_fixed = false |
| Is not fixed point. | |
| static constexpr bool | has_predicate = false |
| Has predicated loops. | |
| static constexpr int | nb_lanes = 4 |
| Number of lanes (each lane being two floats) | |
| static constexpr bool | support_mixed = true |
| If support mixed arithmetic. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
|
inlinestatic |
Temp accumulator initialized to 0.
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vload1_gen_stride< std::complex< float >, 0, 1, 2, 3 > |
Load with generalized stride specialized for <0,1,2,3>
Static Public Member Functions | |
| static ComplexVector< float32x4_t > | run (const std::complex< float32_t > *p) |
| Load with generalized stride. | |
|
inlinestatic |
Load with generalized stride.
| [in] | p | Load address |
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vstore1_gen_stride< std::complex< float32_t >, 0, 1, 2, 3 > |
Generalized store with stride (Specialized for <0,1,2,3>)
Static Public Member Functions | |
| static void | run (std::complex< float32_t > *p, const ComplexVector< float32x4_t > &val) |
| Scatter store. | |
|
inlinestatic |
Scatter store.
| p | Store address | |
| [in] | val | Value to store |
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< float16_t, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
Vector features for f16 on Helium.
| arch | Current architecture |
Public Types | |
| typedef float16_t | type |
| Scalar datatype. | |
| typedef float16_t | storage_type |
| Storage datatype. | |
| typedef float16x8_t | vector |
| Vector datatype. | |
| typedef float16x8_t | temp_accumulator |
| Temp accumulator datatype. | |
| typedef mve_pred16_t | predicate_t |
| Predicate datatype. | |
| typedef float16_t | type |
| Scalar datatype. | |
| typedef float16_t | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Member Functions | |
| static float16x8_t | temp_acc_zero () |
| Vector of 0. | |
| static constexpr float16_t | zero_lane () |
| Value to write 0 in a lane. | |
| static constexpr float16_t | lane_value (const float16_t x) |
| Convert from lane value. | |
Static Public Attributes | |
| static constexpr bool | has_vector = true |
| Has vector instructions. | |
| static constexpr bool | is_float = true |
| Is float. | |
| static constexpr bool | is_fixed = false |
| Is not fixed point. | |
| static constexpr bool | has_predicate = true |
| Has predicated loop. | |
| static constexpr int | nb_lanes = 8 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
|
inlinestaticconstexpr |
Convert from lane value.
| [in] | x | Lane value |
|
inlinestatic |
|
inlinestaticconstexpr |
Value to write 0 in a lane.
f16 suffix not supported in C++
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vctpq< float16_t > |
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< std::complex< float16_t >, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
| arch | Current architecture |
Public Types | |
| typedef std::complex< float16_t > | type |
| Scalar datatype. | |
| typedef std::complex< float16_t > | storage_type |
| Storage datatype. | |
| typedef ComplexVector< float16x8_t > | vector |
| Vector datatype. | |
| typedef HalfComplexVector< float16x8_t > | half_vector |
| Half vector datatype. | |
| typedef float16x8_t | real_vector |
| Real vector datatype. | |
| typedef ComplexVector< float16x8_t > | temp_accumulator |
| Temp accumulator datatype (must be reduced to final scalar datatype) | |
| typedef bool | predicate_t |
| Predicate datatype (not used for complex) | |
| typedef std::complex< float16_t > | type |
| Scalar datatype. | |
| typedef std::complex< float16_t > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Member Functions | |
| static ComplexVector< float16x8_t > | temp_acc_zero () |
| Temp accumulator initialized to 0. | |
Static Public Attributes | |
| static constexpr bool | has_vector = true |
| Has vector instruction. | |
| static constexpr bool | is_float = true |
| Is float. | |
| static constexpr bool | is_fixed = false |
| Is not fixed point. | |
| static constexpr bool | has_predicate = false |
| Has predicated loops (not used for complex) | |
| static constexpr int | nb_lanes = 8 |
| Number of lanes (each lane being two floats) | |
| static constexpr bool | support_mixed = true |
| If support mixed arithmetic. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
|
inlinestatic |
Temp accumulator initialized to 0.
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::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>
Static Public Member Functions | |
| static ComplexVector< float16x8_t > | run (const std::complex< float16_t > *p) |
| Load with generalized stride. | |
|
inlinestatic |
Load with generalized stride.
| [in] | p | Load address |
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::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>)
Static Public Member Functions | |
| static void | run (std::complex< float16_t > *p, const ComplexVector< float16x8_t > &val) |
| Scatter store. | |
|
inlinestatic |
Scatter store.
| p | Store address | |
| [in] | val | Value to store |
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< Q15, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type > |
Vector features for Q15 on Helium.
| arch | Current architecture |
Public Types | |
| typedef Q15 | type |
| Scalar datatype. | |
| typedef type::value_type | storage_type |
| Storage datatype (int16_t) | |
| typedef int16x8_t | vector |
| Vector datatype. | |
| typedef Q< 33, 30 > | temp_accumulator |
| Temp accumulator datatype. | |
| typedef mve_pred16_t | predicate_t |
| Predicate for loop. | |
| typedef Q15 | type |
| Scalar datatype. | |
| typedef Q15 | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Member Functions | |
| static Q< 33, 30 > | temp_acc_zero () |
| Zero. | |
| static constexpr int16_t | zero_lane () |
| Value to write in a lane to write 0. | |
| static constexpr int16_t | lane_value (const Q15 x) |
| Convert to lane value. | |
Static Public Attributes | |
| static constexpr bool | has_vector = true |
| Has vector instructions. | |
| static constexpr bool | is_float = false |
| Is not float. | |
| static constexpr bool | is_fixed = true |
| Is fixed point. | |
| static constexpr bool | has_predicate = true |
| Has predicated loop. | |
| static constexpr int | nb_lanes = 8 |
| Number of lanes. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
|
inlinestaticconstexpr |
Convert to lane value.
| [in] | x | Lane value |
|
inlinestatic |
Zero.
|
inlinestaticconstexpr |
Value to write in a lane to write 0.
| struct arm_cmsis_dsp::arm_cmsis_dsp::number_traits< std::tuple< E... > > |
Number description for a tuple of numbers.
| E | Datatype for all numbers |
Public Types | |
| typedef std::tuple< typename number_traits< E >::accumulator... > | accumulator |
| Tuple of accumulator datatype for the accumulator type. | |
| typedef std::tuple< typename number_traits< E >::compute_type... > | compute_type |
| Tuple of compute datatype for the compute type. | |
Static Public Member Functions | |
| static std::tuple< typename number_traits< E >::accumulator... > | one () |
| Return of tuples of one values. | |
Static Public Attributes | |
| static constexpr bool | is_float = false |
| It is not a float number. | |
| static constexpr bool | is_fixed = false |
| It is not a fixed point number. | |
|
inlinestatic |
Return of tuples of one values.
| struct arm_cmsis_dsp::arm_cmsis_dsp::vector_traits< std::tuple< E... >, arch > |
Tuple of compatible vectors.
| arch | Current architecture |
| E | List of vector dataypes |
The vector datatypes must be coherent : have same number of lanes or same lane datatype
Public Types | |
| using | RefScalar = typename std::tuple_element<0,std::tuple<E...>>::type |
| First element of tuple defines the scalar datatype. | |
| typedef std::tuple< typename vector_traits< E, arch >::temp_accumulator... > | temp_accumulator |
| Temporary accumulator datatype. | |
| typedef std::tuple< typename vector_traits< E, arch >::vector... > | vector |
| Vector datatype. | |
| typedef std::tuple< typename vector_traits< E, arch >::real_vector... > | real_vector |
| Real vector datatype. | |
| typedef std::tuple< typename vector_traits< E, arch >::predicate_t... > | predicate_t |
| Predicate datatype. | |
| typedef std::tuple< E... > | type |
| Scalar datatype. | |
| typedef std::tuple< E... > | storage_type |
| Storage type (for instance for Q15 scalar the storage is int16_t) | |
Static Public Member Functions | |
| static temp_accumulator | temp_acc_zero () |
| Zero represented with temp accumulator datatype. | |
Static Public Attributes | |
| static constexpr int | nb_lanes = vector_traits<RefScalar,arch>::nb_lanes |
| Number of lanes (from RefScalar) | |
| static constexpr bool | has_vector = vector_traits<RefScalar,arch>::has_vector |
| Has vector instructions. | |
| static constexpr bool | is_float = vector_traits<RefScalar,arch>::is_float |
| Is a float. | |
| static constexpr bool | is_fixed = vector_traits<RefScalar,arch>::is_fixed |
| Is fixed point. | |
| static constexpr bool | has_predicate = vector_traits<RefScalar,arch>::has_predicate |
| Has predicated loop. | |
| static constexpr bool | has_vector |
| True if scalar type has a related vector type. | |
| static constexpr bool | is_float |
| True if scalar type is a float (half, float or double) | |
| static constexpr bool | is_fixed |
| True if scalar type is fixed point. | |
|
inlinestatic |
Zero represented with temp accumulator datatype.
| struct arm_cmsis_dsp::arm_cmsis_dsp::inner::vctpq< std::tuple< E... > > |
Tuple of predicates.
| E | Tuple of datatypes |
The datatypes must be coherent (same number of lanes). The first element is used to infer the vctpq instruction to use
Static Public Member Functions | |
| static auto | mk (const uint32_t v) |
| Make a predicate for predicated loop. | |
|
inlinestatic |
Make a predicate for predicated loop.
| [in] | v | Remaining number of iterations |
| struct arm_cmsis_dsp::Vector_Base |
Storage for a vector.
| P | Type of the scalar |
Public Types | |
| typedef P | element_type |
| Type of vector elements. | |
| using | Vector = typename vector_traits<P>::vector |
| Type of vectors for a vector architecture and for scalar datatype P. | |
Public Member Functions | |
| vector_length_t | length () const |
| Vector dimension. | |
| P * | ptr () const |
| Pointer to storage buffer. | |
| P * | ptr (const index_t i) const |
| Pointer to storage buffer at index i. | |
| const P * | const_ptr () const |
| Pointer to storage buffer. | |
| const P * | const_ptr (const index_t i) const |
| Pointer to storage buffer at index i. | |
| P * | begin () const |
| Iterator begin. | |
| P * | end () const |
| Iterator end. | |
| P & | operator[] (const index_t i) |
| Element at index i. | |
| P & | operator[] (const index_t i) const |
| Element at index i. | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_vector, bool >::type = true> | |
| void | vector_store (const index_t i, const Vector val) const |
| Vector store at index i | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_predicate, bool >::type = true> | |
| void | vector_store_tail (const index_t i, const vector_length_t remaining, const Vector val) const |
| Vector store at index i with predicated tail | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_predicate, bool >::type = true> | |
| Vector const | vector_op_tail (const index_t i, const vector_length_t remaining) const |
| Vector operation at index i with predicated tail | |
| Vector const | vector_op (const index_t i) const |
| Vector operation at index i | |
|
inline |
Iterator begin.
|
inline |
Pointer to storage buffer.
|
inline |
Pointer to storage buffer at index i.
| i | Index in buffer |
|
inline |
Iterator end.
|
inline |
|
inline |
Element at index i.
| i | index |
|
inline |
Element at index i.
| i | index |
|
inline |
|
inline |
Pointer to storage buffer at index i.
| i | Index in buffer |
Vector operation at index i
| i | index |
On an architecture supporting vectors, if the scalar datatype T has a corresponding vector datatype, this function execute an operation at index i. In the case of a vector, this operation is a load
|
inline |
Vector operation at index i with predicated tail
| i | index |
| remaining | Number of remaining samples in the loop |
On an architecture supporting vectors and predicated loops, if the scalar datatype T has a corresponding vector datatype, this function execute an operation at index i with predication. In the case of a vector, this operation is a load
|
inline |
Vector store at index i
| T | scalar datatype |
| i | index |
| val | Vector value |
On an architecture supporting vectors, if the scalar datatype T has a corresponding vector datatype, this function stores a vector value at index i in this vector datatype
|
inline |
Vector store at index i with predicated tail
| i | index |
| remaining | Number of remaining samples in the loop |
| val | Vector value to write at index i with tail predication |
On an architecture supporting vectors and predicated loops, if the scalar datatype T has a corresponding vector datatype, this function stores a vector value at index i in this vector datatype with predication
| struct arm_cmsis_dsp::Vector |
Vector template for size knonw at build time.
| P | Type of the scalar |
| L | Vector length in number of elements. Negative if length not known at build time. It is the default value |
| Allocator | Memory allocator to use. By default it is the macro TMP_ALLOC |
Public Types | |
| using | element_type = P |
| Type of vector elements. | |
Public Types inherited from Vector_Base< P > | |
| typedef P | element_type |
| Type of vector elements. | |
| using | Vector = typename vector_traits<P>::vector |
| Type of vectors for a vector architecture and for scalar datatype P. | |
Public Member Functions | |
| Vector () | |
| Construct a new vector. | |
| Vector (P init_val) | |
| Construct a new vector and initialize it. | |
| Vector (const std::initializer_list< P > &l) | |
| Construct a new vector and initialize it with a list. | |
| template<template< int > typename OtherAllocator> | |
| Vector (const Vector< P, L, OtherAllocator > &other) | |
| Create a vector from a vector using a different memory allocator. | |
| template<int S> | |
| Vector (const VectorView< P, S > &other) | |
| Create a vector from a VectorView. | |
| template<typename Derived> | |
| Vector (const _Expr< Derived > &other) | |
| Create a vector from an expression. | |
| template<typename Derived> | |
| Vector & | operator= (const _Expr< Derived > &other) |
| Copy result of an expression to a vector content. | |
| template<typename T, typename std::enable_if< is_scalar< T >(), bool >::type = true> | |
| Vector & | operator= (const T other) |
| Fill a vector with a constant. | |
| template<typename Derived> | |
| Vector & | operator+= (const _Expr< Derived > &other) |
| Elementwise add the result of an expression to a vector. | |
| Vector & | operator+= (const Vector &other) |
| Elementwise add vector to another vector. | |
| Vector & | operator+= (const P other) |
| Elementwise add a constant to a vector. | |
| template<typename Derived> | |
| Vector & | operator-= (const _Expr< Derived > &other) |
| Elementwise subtract the result of an expression from a vector. | |
| Vector & | operator-= (const Vector &other) |
| Elementwise subtract a vector from a vector. | |
| Vector & | operator-= (const P other) |
| Elementwise subtract a constant from a vector. | |
| template<typename Derived> | |
| Vector & | operator*= (const _Expr< Derived > &other) |
| Elementwise multiply the result of an expression with a vector. | |
| Vector & | operator*= (const Vector &other) |
| Elementwise multiply a vector with a vector. | |
| Vector & | operator*= (const P other) |
| Elementwise multiply a constant with a vector. | |
| template<int S = 1> | |
| VectorView< P, S > | sub (const index_t start=0, const index_t stop=L) |
| Create a vector view. | |
Public Member Functions inherited from Vector_Base< P > | |
| vector_length_t | length () const |
| Vector dimension. | |
| P * | ptr () const |
| Pointer to storage buffer. | |
| P * | ptr (const index_t i) const |
| Pointer to storage buffer at index i. | |
| const P * | const_ptr () const |
| Pointer to storage buffer. | |
| const P * | const_ptr (const index_t i) const |
| Pointer to storage buffer at index i. | |
| P * | begin () const |
| Iterator begin. | |
| P * | end () const |
| Iterator end. | |
| P & | operator[] (const index_t i) |
| Element at index i. | |
| P & | operator[] (const index_t i) const |
| Element at index i. | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_vector, bool >::type = true> | |
| void | vector_store (const index_t i, const Vector val) const |
| Vector store at index i | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_predicate, bool >::type = true> | |
| void | vector_store_tail (const index_t i, const vector_length_t remaining, const Vector val) const |
| Vector store at index i with predicated tail | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_predicate, bool >::type = true> | |
| Vector const | vector_op_tail (const index_t i, const vector_length_t remaining) const |
| Vector operation at index i with predicated tail | |
| Vector const | vector_op (const index_t i) const |
| Vector operation at index i | |
Static Public Member Functions | |
| static char * | allocate () |
| Allocate a buffer for this vector using the memory allocator. | |
Static Public Attributes | |
| static constexpr vector_length_t | vector_size = sizeof(P)*L |
| Length of the vector when known at build time. | |
|
inline |
Construct a new vector.
The length is known at build time.
|
inlineexplicit |
Construct a new vector and initialize it.
The length is known at build time.
| init_val | Initialization value |
|
inline |
Construct a new vector and initialize it with a list.
A vector can be initialized like an array using {} syntax
The length is known at build time.
| l | Initialization list |
|
inlineexplicit |
Create a vector from a vector using a different memory allocator.
| other | Other vector using a different memory allocator |
|
inlineexplicit |
Create a vector from a VectorView.
| S | The stride of the vector view known at build time |
| other | The vector view |
|
inline |
Create a vector from an expression.
| Derived | The type representing the abstract syntax tree |
| other | The expression |
It is the mechanism allowing to evaluate an expression and merge all of the operators the of the expression in the same loop
|
inlinestatic |
Allocate a buffer for this vector using the memory allocator.
|
inline |
Elementwise multiply the result of an expression with a vector.
| Derived | The type representing the abstract syntax tree of the expression |
| other | The expression |
|
inline |
Elementwise multiply a constant with a vector.
| Derived | Constant datatype |
| other | The constant |
|
inline |
Elementwise multiply a vector with a vector.
| other | The othr vector |
|
inline |
Elementwise add the result of an expression to a vector.
| Derived | The type representing the abstract syntax tree of the expression |
| other | The expression |
|
inline |
Elementwise add a constant to a vector.
| P | The constant datatype |
| other | The expression |
|
inline |
Elementwise add vector to another vector.
| other | The vector |
|
inline |
Elementwise subtract the result of an expression from a vector.
| Derived | The type representing the abstract syntax tree of the expression |
| other | The expression |
|
inline |
Elementwise subtract a constant from a vector.
| P | Datatype of the constant |
| other | The constant |
|
inline |
Elementwise subtract a vector from a vector.
| other | The other vector |
|
inline |
Copy result of an expression to a vector content.
| Derived | The type representing the abstract syntax tree |
| other | The expression |
It is the mechanism allowing to evaluate an expression and merge all of the operators the of the expression in the same loop
|
inline |
Fill a vector with a constant.
| T | The constant datatype |
| other | The const |
|
inline |
Create a vector view.
| S | Stride known at build time |
| start | Start index for the vector view |
| stop | Stop index for the vector view (first element after the vector view) Default is length of the vector if known at build time. |
| struct arm_cmsis_dsp::Vector< P, DYNAMIC, Allocator > |
Vector template for dynamic vector (size known at runtime)
| P | Type of the scalar |
| Allocator | Memory allocator to use. By default it is the macro TMP_ALLOC |
Public Types | |
| using | element_type |
| Type of vector elements. | |
Public Types inherited from Vector_Base< P > | |
| typedef P | element_type |
| Type of vector elements. | |
| using | Vector = typename vector_traits<P>::vector |
| Type of vectors for a vector architecture and for scalar datatype P. | |
Public Member Functions | |
| Vector (vector_length_t length, P init_val) | |
| Create a new vector. | |
| Vector (vector_length_t length) | |
| Create a new vector. | |
| Vector (const std::initializer_list< P > &l) | |
| Create a new vector. | |
| template<int K, template< int > typename OtherAllocator> | |
| Vector (const Vector< P, K, OtherAllocator > &other) | |
| Create a new vector from a vector using a different memory allocator. | |
| Vector (const Vector &other) | |
| Create a new vector from a vector of same type. | |
| template<int S> | |
| Vector (const VectorView< P, S > &other) | |
| Create a new vector from a vector view. | |
| template<typename Derived> | |
| Vector (const _Expr< Derived > &other) | |
| Create a new vector from an expressipn. | |
| template<typename Derived> | |
| Vector & | operator= (const _Expr< Derived > &other) |
| Fill a vector with an expression. | |
| template<typename T, typename std::enable_if< is_scalar< T >(), bool >::type = true> | |
| Vector & | operator= (const T other) |
| Fill a vector with a scalar. | |
| template<typename Derived> | |
| Vector & | operator+= (const _Expr< Derived > &other) |
| Elementwise add an expression to a vector. | |
| Vector & | operator+= (const Vector &other) |
| Elementwise add a vector to a vector. | |
| Vector & | operator+= (const P other) |
| Elementwise add a scalar to a vector. | |
| template<typename Derived> | |
| Vector & | operator-= (const _Expr< Derived > &other) |
| Elementwise subtract an expression to a vector. | |
| Vector & | operator-= (const Vector &other) |
| Elementwise subtract a vector to a vector. | |
| Vector & | operator-= (const P other) |
| Elementwise subtract a scalar to a vector. | |
| template<typename Derived> | |
| Vector & | operator*= (const _Expr< Derived > &other) |
| Elementwise multiply an expression with a vector. | |
| Vector & | operator*= (const Vector &other) |
| Elementwise multiply a vector with a vector. | |
| Vector & | operator*= (const P other) |
| Elementwise multiply a scalar with a vector. | |
| template<int S = 1> | |
| VectorView< P, S > | sub (const index_t start=0, const index_t stop=-1) |
| Create a vector view. | |
| Vector () | |
| Construct a new vector. | |
| Vector (P init_val) | |
| Construct a new vector and initialize it. | |
| Vector (const std::initializer_list< P > &l) | |
| Construct a new vector and initialize it with a list. | |
| Vector (const Vector< P, L, OtherAllocator > &other) | |
| Create a vector from a vector using a different memory allocator. | |
| Vector (const VectorView< P, S > &other) | |
| Create a vector from a VectorView. | |
| Vector (const _Expr< Derived > &other) | |
| Create a vector from an expression. | |
| Vector & | operator= (const _Expr< Derived > &other) |
| Copy result of an expression to a vector content. | |
| Vector & | operator= (const T other) |
| Fill a vector with a constant. | |
| Vector & | operator+= (const _Expr< Derived > &other) |
| Elementwise add the result of an expression to a vector. | |
| Vector & | operator+= (const Vector &other) |
| Elementwise add vector to another vector. | |
| Vector & | operator+= (const P other) |
| Elementwise add a constant to a vector. | |
| Vector & | operator-= (const _Expr< Derived > &other) |
| Elementwise subtract the result of an expression from a vector. | |
| Vector & | operator-= (const Vector &other) |
| Elementwise subtract a vector from a vector. | |
| Vector & | operator-= (const P other) |
| Elementwise subtract a constant from a vector. | |
| Vector & | operator*= (const _Expr< Derived > &other) |
| Elementwise multiply the result of an expression with a vector. | |
| Vector & | operator*= (const Vector &other) |
| Elementwise multiply a vector with a vector. | |
| Vector & | operator*= (const P other) |
| Elementwise multiply a constant with a vector. | |
| VectorView< P, S > | sub (const index_t start=0, const index_t stop=L) |
| Create a vector view. | |
Public Member Functions inherited from Vector_Base< P > | |
| vector_length_t | length () const |
| Vector dimension. | |
| P * | ptr () const |
| Pointer to storage buffer. | |
| P * | ptr (const index_t i) const |
| Pointer to storage buffer at index i. | |
| const P * | const_ptr () const |
| Pointer to storage buffer. | |
| const P * | const_ptr (const index_t i) const |
| Pointer to storage buffer at index i. | |
| P * | begin () const |
| Iterator begin. | |
| P * | end () const |
| Iterator end. | |
| P & | operator[] (const index_t i) |
| Element at index i. | |
| P & | operator[] (const index_t i) const |
| Element at index i. | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_vector, bool >::type = true> | |
| void | vector_store (const index_t i, const Vector val) const |
| Vector store at index i | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_predicate, bool >::type = true> | |
| void | vector_store_tail (const index_t i, const vector_length_t remaining, const Vector val) const |
| Vector store at index i with predicated tail | |
| template<typename T = P, typename std::enable_if< vector_traits< T >::has_predicate, bool >::type = true> | |
| Vector const | vector_op_tail (const index_t i, const vector_length_t remaining) const |
| Vector operation at index i with predicated tail | |
| Vector const | vector_op (const index_t i) const |
| Vector operation at index i | |
Static Public Member Functions | |
| static char * | allocate (vector_length_t length) |
| Allocate a buffer for this vector using the memory allocator. | |
| static char * | allocate () |
| Allocate a buffer for this vector using the memory allocator. | |
Static Public Attributes | |
| static constexpr vector_length_t | vector_size |
| Length of the vector when known at build time. | |
|
inlineexplicit |
Create a new vector.
| length | Vector dimension |
| init_val | Initialization value |
|
inlineexplicit |
Create a new vector.
| length | Vector dimension |
|
inlineexplicit |
Create a new vector.
| l | Initializer list A vector can be initialized like an array using {} syntax |
|
inlineexplicit |
Create a new vector from a vector using a different memory allocator.
| K | Dimension of other vector (statically known or dynamic) |
| other | The vector to copy |
|
inline |
Create a new vector from a vector of same type.
| other | The vector to copy |
|
inlineexplicit |
Create a new vector from a vector view.
| S | Stride of vector view known at build time |
| other | The vector to copy |
|
inline |
Create a new vector from an expressipn.
| Derived | Type representing the abstract syntax tree of the expression |
| other | The expression to evaluate |
|
inline |
Construct a new vector.
The length is known at build time.
|
inlineexplicit |
Construct a new vector and initialize it.
The length is known at build time.
| init_val | Initialization value |
|
inline |
Construct a new vector and initialize it with a list.
A vector can be initialized like an array using {} syntax
The length is known at build time.
| l | Initialization list |
Create a vector from a vector using a different memory allocator.
| other | Other vector using a different memory allocator |
|
inlineexplicit |
Create a vector from a VectorView.
| S | The stride of the vector view known at build time |
| other | The vector view |
Create a vector from an expression.
| Derived | The type representing the abstract syntax tree |
| other | The expression |
It is the mechanism allowing to evaluate an expression and merge all of the operators the of the expression in the same loop
|
inlinestatic |
Allocate a buffer for this vector using the memory allocator.
|
inlinestatic |
Allocate a buffer for this vector using the memory allocator.
| length | Vector dimension |
Elementwise multiply the result of an expression with a vector.
| Derived | The type representing the abstract syntax tree of the expression |
| other | The expression |
|
inline |
Elementwise multiply an expression with a vector.
| Derived | Type representing the abstract syntax tree of the expression |
| other | The expression to evaluate |
|
inline |
Elementwise multiply a constant with a vector.
| Derived | Constant datatype |
| other | The constant |
|
inline |
Elementwise multiply a scalar with a vector.
| P | Scalar datatype |
| other | The scalar |
Elementwise multiply a vector with a vector.
| other | The othr vector |
|
inline |
Elementwise multiply a vector with a vector.
| other | The vector to add |
Elementwise add the result of an expression to a vector.
| Derived | The type representing the abstract syntax tree of the expression |
| other | The expression |
|
inline |
Elementwise add an expression to a vector.
| Derived | Type representing the abstract syntax tree of the expression |
| other | The expression to evaluate |
|
inline |
Elementwise add a constant to a vector.
| P | The constant datatype |
| other | The expression |
|
inline |
Elementwise add a scalar to a vector.
| P | Scalar datatype |
| other | The scalar |
Elementwise add vector to another vector.
| other | The vector |
|
inline |
Elementwise add a vector to a vector.
| other | The vector to add |
Elementwise subtract the result of an expression from a vector.
| Derived | The type representing the abstract syntax tree of the expression |
| other | The expression |
|
inline |
Elementwise subtract an expression to a vector.
| Derived | Type representing the abstract syntax tree of the expression |
| other | The expression to evaluate |
|
inline |
Elementwise subtract a constant from a vector.
| P | Datatype of the constant |
| other | The constant |
|
inline |
Elementwise subtract a scalar to a vector.
| P | Scalar datatype |
| other | The scalar |
Elementwise subtract a vector from a vector.
| other | The other vector |
|
inline |
Elementwise subtract a vector to a vector.
| other | The vector to add |
Copy result of an expression to a vector content.
| Derived | The type representing the abstract syntax tree |
| other | The expression |
It is the mechanism allowing to evaluate an expression and merge all of the operators the of the expression in the same loop
|
inline |
Fill a vector with an expression.
| Derived | Type representing the abstract syntax tree of the expression |
| other | The expression to evaluate |
|
inline |
Fill a vector with a constant.
| T | The constant datatype |
| other | The const |
|
inline |
Fill a vector with a scalar.
| T | Scalar datatype |
| other | The scalar |
|
inline |
Create a vector view.
| S | stride |
| start | Start index of view |
| stop | Stop index of view (first index after end of view) By default it is the length of the vector. |
|
inline |
Create a vector view.
| S | Stride known at build time |
| start | Start index for the vector view |
| stop | Stop index for the vector view (first element after the vector view) Default is length of the vector if known at build time. |
| struct arm_cmsis_dsp::VectorView |
Vector view.
| T | Type of the scalar |
| S | Stride known at build time (default 1) |
Public Types | |
| using | Vector = typename vector_traits<T>::vector |
| Type of vectors for a vector architecture and for scalar datatype P. | |
Public Member Functions | |
| VectorView (T *v, const vector_length_t start, const vector_length_t stop) | |
| Create a vector view on a buffer. | |
| VectorView (const Vector_Base< T > &v) | |
| Create a vector on a vector. | |
| VectorView (const Vector_Base< T > &v, const index_t start, const index_t stop) | |
| Create a vector view on vector. | |
| vector_length_t | length () const |
| Vector view dimension. | |
| T * | ptr () const |
| Pointer to view storage. | |
| T * | ptr (const index_t i) const |
| Pointer to view storage at index i. | |
| const T * | const_ptr () const |
| Pointer to view constant storage. | |
| const T * | const_ptr (const index_t i) const |
| Pointer to view constant storage at index i. | |
| T & | operator[] (const index_t i) |
| Element at index i. | |
| T & | operator[] (const index_t i) const |
| Element at index i. | |
| void | vector_store (const index_t i, const Vector val) |
| Vector store at index i | |
| void | vector_store_tail (const index_t i, const vector_length_t remaining, const Vector val) |
| Vector store at index i with predicated tail | |
| Vector const | vector_op_tail (const index_t i, const vector_length_t remaining) const |
| Vector operation at index i with predicated tail | |
| Vector const | vector_op (const index_t i) const |
| Vector operation at index i | |
| VectorView (const VectorView &other) | |
| Create a vector view from another view. | |
| VectorView (VectorView &&other) | |
| Move a vector view to another view. | |
| template<typename Derived> | |
| VectorView & | operator= (const _Expr< Derived > &other) |
| Assign an expression to a vector view. | |
| VectorView & | operator= (const T val) |
| Assign a scalar to a vector view. | |
| template<typename Derived> | |
| VectorView & | operator+= (const _Expr< Derived > &other) |
| Elementwise add an expression to a vector view. | |
| VectorView & | operator+= (const VectorView &other) |
| Elementwise add a vector view to a vector view. | |
| VectorView & | operator+= (const T other) |
| Elementwise add a scalar to a vector view. | |
| template<typename Derived> | |
| VectorView & | operator-= (const _Expr< Derived > &other) |
| Elementwise subtract an expression to a vector view. | |
| VectorView & | operator-= (const VectorView &other) |
| Elementwise subtract a vector view to a vector view. | |
| VectorView & | operator-= (const T other) |
| Elementwise subtract a scalar to a vector view. | |
| template<typename Derived> | |
| VectorView & | operator*= (const _Expr< Derived > &other) |
| Elementwise multiply an expression to a vector view. | |
| VectorView & | operator*= (const VectorView &other) |
| Elementwise multiply a vector view to a vector view. | |
| VectorView & | operator*= (const T other) |
| Elementwise multiply a scalar to a vector view. | |
| template<int S = 1> | |
| VectorView< T, S *stride > | sub (const index_t start=0, const index_t stop=-1) |
| Create a sub vector (a view of a view) | |
| template<int S = 1> | |
| const VectorView< T, S *stride > | sub (const index_t start=0, const index_t stop=-1) const |
| Create a constant sub vector (a view of a view) | |
Static Public Member Functions | |
| static constexpr vector_length_t | compute_length (const index_t start, const index_t stop) |
| Compute the number of elements in the vector view. | |
|
inlineexplicit |
Create a vector view on a buffer.
| v | Buffer of samples (not owned by the view) |
| start | Start index of the view |
| stop | Stop index of the view (first element after the view) |
|
inlineexplicit |
Create a vector on a vector.
| v | Vector storage (not owned by the view) |
|
inlineexplicit |
Create a vector view on vector.
| v | Vector storage (not owned by the view) |
| start | Start index of the view |
| stop | Stop index of the view (first element after the view) |
|
inline |
Create a vector view from another view.
| other | the other vector view |
The new vector view will point to the same storage as the other vector view. No copy of element is occurring. To copy vector view content, the expr and copy operators are needed.
|
inline |
Move a vector view to another view.
| other | the other vector view |
The new vector view will point to the same storage as the other vector view. No copy of element is occurring.
The other vector view is no more valid (points to null storage)
|
inlinestaticconstexpr |
|
inline |
Pointer to view constant storage.
|
inline |
Pointer to view constant storage at index i.
| i | Index |
The stride is used to compute this pointer. The index is scaled by the stride.
|
inline |
Vector view dimension.
|
inline |
Elementwise multiply an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise multiply a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise multiply a vector view to a vector view.
| other | the vector view to add |
|
inline |
Elementwise add an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise add a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise add a vector view to a vector view.
| other | the vector view to add |
|
inline |
Elementwise subtract an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise subtract a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise subtract a vector view to a vector view.
| other | the vector view to add |
|
inline |
Assign an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
Evaluate an expression an assign its result to the vector view
|
inline |
Assign a scalar to a vector view.
| val | the scalar |
|
inline |
Element at index i.
| i | Index |
The stride is used to compute this reference. The index is scaled by the stride.
|
inline |
Element at index i.
| i | Index |
The stride is used to compute this reference. The index is scaled by the stride.
|
inline |
Pointer to view storage.
|
inline |
Pointer to view storage at index i.
| i | Index |
The stride is used to compute this pointer. The index is scaled by the stride.
|
inline |
Create a sub vector (a view of a view)
| S | stride known at build time |
| start | Start index |
| stop | Stop index (first element after the view) By default it is the vector view length |
|
inline |
Create a constant sub vector (a view of a view)
| S | stride known at build time |
| start | Start index |
| stop | Stop index (first element after the view) By default it is the vector view length |
Vector operation at index i
| i | index |
On an architecture supporting vectors, if the scalar datatype T has a corresponding vector datatype, this function execute an operation at index i. In the case of a vector, this operation is a load
|
inline |
Vector operation at index i with predicated tail
| i | index |
| remaining | Number of remaining samples in the loop |
On an architecture supporting vectors and predicated loops, if the scalar datatype T has a corresponding vector datatype, this function execute an operation at index i with predication. In the case of a vector, this operation is a load
Vector store at index i
| i | index |
| val | Vector value |
On an architecture supporting vectors, if the scalar datatype T has a corresponding vector datatype, this function stores a vector value at index i in this vector datatype
|
inline |
Vector store at index i with predicated tail
| i | index |
| remaining | Number of remaining samples in the loop |
| val | Vector value to write at index i with tail predication |
On an architecture supporting vectors and predicated loops, if the scalar datatype T has a corresponding vector datatype, this function stores a vector value at index i in this vector datatype with predication
| struct arm_cmsis_dsp::VectorView< T, DYNAMIC > |
Vector view with dynamic stride (not known at build time)
| T | Type of the scalar |
Public Types | |
| using | Vector = typename vector_traits<T>::vector |
| Type of vectors for a vector architecture and for scalar datatype P. | |
| using | Vector |
| Type of vectors for a vector architecture and for scalar datatype P. | |
Public Member Functions | |
| vector_length_t | compute_length (const index_t start, const index_t stop, const index_t stride) const |
| Compute the number of elements in the vector view. | |
| VectorView (T *v, const index_t start, const index_t stop, const index_t stride) | |
| Create a vector view on a buffer. | |
| VectorView (const Vector_Base< T > &v, const index_t stride) | |
| Create a vector view on a vector. | |
| VectorView (const Vector_Base< T > &v, const index_t start, const index_t stop, const index_t stride) | |
| Create a vector view on a vector. | |
| vector_length_t | length () const |
| Vector view dimension. | |
| T * | ptr () const |
| Pointer to view storage. | |
| T * | ptr (const index_t i) const |
| Pointer to view storage at index i. | |
| const T * | const_ptr () const |
| Pointer to view constant storage. | |
| const T * | const_ptr (const index_t i) const |
| Pointer to view constant storage at index i. | |
| T & | operator[] (index_t i) |
| Element at index i. | |
| T & | operator[] (index_t i) const |
| Element at index i. | |
| void | vector_store (index_t i, Vector val) |
| Vector store at index i | |
| void | vector_store_tail (index_t i, vector_length_t remaining, Vector val) |
| Vector store at index i with predicated tail | |
| Vector const | vector_op_tail (index_t i, vector_length_t remaining) const |
| Vector operation at index i with predicated tail | |
| Vector const | vector_op (index_t i) const |
| Vector operation at index i | |
| VectorView (const VectorView &other) | |
| Create a vector view from another view. | |
| VectorView (VectorView &&other) | |
| Move a vector view to another view. | |
| template<typename Derived> | |
| VectorView & | operator= (const _Expr< Derived > &other) |
| Assign an expression to a vector view. | |
| VectorView & | operator= (const T val) |
| Assign a scalar to a vector view. | |
| template<typename Derived> | |
| VectorView & | operator+= (const _Expr< Derived > &other) |
| Elementwise add an expression to a vector view. | |
| VectorView & | operator+= (const VectorView &other) |
| Elementwise add a vector view to a vector view. | |
| VectorView & | operator+= (const T other) |
| Elementwise add a scalar to a vector view. | |
| template<typename Derived> | |
| VectorView & | operator-= (const _Expr< Derived > &other) |
| Elementwise subtract an expression to a vector view. | |
| VectorView & | operator-= (const VectorView &other) |
| Elementwise subtract a vector view to a vector view. | |
| VectorView & | operator-= (const T other) |
| Elementwise subtract a scalar to a vector view. | |
| template<typename Derived> | |
| VectorView & | operator*= (const _Expr< Derived > &other) |
| Elementwise multiply an expression to a vector view. | |
| VectorView & | operator*= (const VectorView &other) |
| Elementwise multiply a vector view to a vector view. | |
| VectorView & | operator*= (const T other) |
| Elementwise multiply a scalar to a vector view. | |
| index_t | stride () const |
| Stride of the vector view. | |
| template<int S = 1> | |
| VectorView< T, DYNAMIC > | sub (const index_t start=0, const index_t stop=-1) |
| Create a sub vector (a view of a view) | |
| template<int S = 1> | |
| const VectorView< T, DYNAMIC > | sub (const index_t start=0, const index_t stop=-1) const |
| Create a constant sub vector (a view of a view) | |
| VectorView (T *v, const vector_length_t start, const vector_length_t stop) | |
| Create a vector view on a buffer. | |
| VectorView (const Vector_Base< T > &v) | |
| Create a vector on a vector. | |
| VectorView (const Vector_Base< T > &v, const index_t start, const index_t stop) | |
| Create a vector view on vector. | |
| VectorView (const VectorView &other) | |
| Create a vector view from another view. | |
| VectorView (VectorView &&other) | |
| Move a vector view to another view. | |
| vector_length_t | length () const |
| Vector view dimension. | |
| T * | ptr () const |
| Pointer to view storage. | |
| T * | ptr (const index_t i) const |
| Pointer to view storage at index i. | |
| const T * | const_ptr () const |
| Pointer to view constant storage. | |
| const T * | const_ptr (const index_t i) const |
| Pointer to view constant storage at index i. | |
| T & | operator[] (const index_t i) |
| Element at index i. | |
| T & | operator[] (const index_t i) const |
| Element at index i. | |
| void | vector_store (const index_t i, const Vector val) |
| Vector store at index i | |
| void | vector_store_tail (const index_t i, const vector_length_t remaining, const Vector val) |
| Vector store at index i with predicated tail | |
| Vector const | vector_op_tail (const index_t i, const vector_length_t remaining) const |
| Vector operation at index i with predicated tail | |
| Vector const | vector_op (const index_t i) const |
| Vector operation at index i | |
| VectorView & | operator= (const _Expr< Derived > &other) |
| Assign an expression to a vector view. | |
| VectorView & | operator= (const T val) |
| Assign a scalar to a vector view. | |
| VectorView & | operator+= (const _Expr< Derived > &other) |
| Elementwise add an expression to a vector view. | |
| VectorView & | operator+= (const VectorView &other) |
| Elementwise add a vector view to a vector view. | |
| VectorView & | operator+= (const T other) |
| Elementwise add a scalar to a vector view. | |
| VectorView & | operator-= (const _Expr< Derived > &other) |
| Elementwise subtract an expression to a vector view. | |
| VectorView & | operator-= (const VectorView &other) |
| Elementwise subtract a vector view to a vector view. | |
| VectorView & | operator-= (const T other) |
| Elementwise subtract a scalar to a vector view. | |
| VectorView & | operator*= (const _Expr< Derived > &other) |
| Elementwise multiply an expression to a vector view. | |
| VectorView & | operator*= (const VectorView &other) |
| Elementwise multiply a vector view to a vector view. | |
| VectorView & | operator*= (const T other) |
| Elementwise multiply a scalar to a vector view. | |
| VectorView< T, S *stride > | sub (const index_t start=0, const index_t stop=-1) |
| Create a sub vector (a view of a view) | |
| const VectorView< T, S *stride > | sub (const index_t start=0, const index_t stop=-1) const |
| Create a constant sub vector (a view of a view) | |
Static Public Member Functions | |
| static constexpr vector_length_t | compute_length (const index_t start, const index_t stop) |
| Compute the number of elements in the vector view. | |
|
inlineexplicit |
Create a vector view on a buffer.
| v | Buffer of samples (not owned by the view) |
| start | Start index of the view |
| stop | Stop index of the view (first element after the view) |
| stride | Stride (only known at runtime) |
|
inlineexplicit |
Create a vector view on a vector.
| v | Vector owning the storage (not owned by the view) |
| stride | Stride (only known at runtime) |
start is 0 stop is defined by the length of the vector
|
inlineexplicit |
Create a vector view on a vector.
| v | Vector owning the storage (not owned by the view) |
| start | Start index of the view |
| stop | Stop index |
| stride | Stride (only known at runtime) |
|
inline |
Create a vector view from another view.
| other | the other vector view |
The new vector view will point to the same storage as the other vector view. No copy of element is occurring. To copy vector view content, the expr and copy operators are needed.
|
inline |
Move a vector view to another view.
| other | the other vector view |
The new vector view will point to the same storage as the other vector view. No copy of element is occurring.
The other vector view is no more valid (points to null storage)
|
inlineexplicit |
Create a vector view on a buffer.
| v | Buffer of samples (not owned by the view) |
| start | Start index of the view |
| stop | Stop index of the view (first element after the view) |
|
inlineexplicit |
Create a vector on a vector.
| v | Vector storage (not owned by the view) |
|
inlineexplicit |
Create a vector view on vector.
| v | Vector storage (not owned by the view) |
| start | Start index of the view |
| stop | Stop index of the view (first element after the view) |
|
inline |
Create a vector view from another view.
| other | the other vector view |
The new vector view will point to the same storage as the other vector view. No copy of element is occurring. To copy vector view content, the expr and copy operators are needed.
|
inline |
Move a vector view to another view.
| other | the other vector view |
The new vector view will point to the same storage as the other vector view. No copy of element is occurring.
The other vector view is no more valid (points to null storage)
|
inlinestaticconstexpr |
|
inline |
|
inline |
Pointer to view constant storage.
|
inline |
Pointer to view constant storage.
|
inline |
Pointer to view constant storage at index i.
| i | Index |
The stride is used to compute this pointer. The index is scaled by the stride.
|
inline |
Pointer to view constant storage at index i.
| i | Index |
The stride is used to compute this pointer. The index is scaled by the stride.
|
inline |
Vector view dimension.
|
inline |
Vector view dimension.
|
inline |
Elementwise multiply an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise multiply an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise multiply a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise multiply a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise multiply a vector view to a vector view.
| other | the vector view to add |
|
inline |
Elementwise multiply a vector view to a vector view.
| other | the vector view to add |
|
inline |
Elementwise add an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise add an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise add a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise add a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise add a vector view to a vector view.
| other | the vector view to add |
|
inline |
Elementwise add a vector view to a vector view.
| other | the vector view to add |
|
inline |
Elementwise subtract an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise subtract an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
|
inline |
Elementwise subtract a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise subtract a scalar to a vector view.
| other | the scalar |
|
inline |
Elementwise subtract a vector view to a vector view.
| other | the vector view to add |
|
inline |
Elementwise subtract a vector view to a vector view.
| other | the vector view to add |
|
inline |
Assign an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
Evaluate an expression an assign its result to the vector view
|
inline |
Assign an expression to a vector view.
| Derived | the datatype representing the abstract syntax tree of the view |
| other | the expression |
Evaluate an expression an assign its result to the vector view
|
inline |
Assign a scalar to a vector view.
| val | the scalar |
|
inline |
Assign a scalar to a vector view.
| val | the scalar |
|
inline |
Element at index i.
| i | Index |
The stride is used to compute this reference. The index is scaled by the stride.
|
inline |
Element at index i.
| i | Index |
The stride is used to compute this reference. The index is scaled by the stride.
|
inline |
Element at index i.
| i | Index |
The stride is used to compute this reference. The index is scaled by the stride.
|
inline |
Element at index i.
| i | Index |
The stride is used to compute this reference. The index is scaled by the stride.
|
inline |
Pointer to view storage.
|
inline |
Pointer to view storage.
|
inline |
Pointer to view storage at index i.
| i | Index |
The stride is used to compute this pointer. The index is scaled by the stride.
|
inline |
Pointer to view storage at index i.
| i | Index |
The stride is used to compute this pointer. The index is scaled by the stride.
|
inline |
Stride of the vector view.
|
inline |
Create a sub vector (a view of a view)
| S | stride known at build time |
| start | Start index |
| stop | Stop index (first element after the view) By default it is the vector view length |
|
inline |
Create a sub vector (a view of a view)
| S | stride known at build time |
| start | Start index |
| stop | Stop index (first element after the view) By default it is the vector view length |
|
inline |
Create a constant sub vector (a view of a view)
| S | stride known at build time |
| start | Start index |
| stop | Stop index (first element after the view) By default it is the vector view length |
|
inline |
Create a constant sub vector (a view of a view)
| S | stride known at build time |
| start | Start index |
| stop | Stop index (first element after the view) By default it is the vector view length |
Vector operation at index i
| i | index |
On an architecture supporting vectors, if the scalar datatype T has a corresponding vector datatype, this function execute an operation at index i. In the case of a vector, this operation is a load
Vector operation at index i
| i | index |
On an architecture supporting vectors, if the scalar datatype T has a corresponding vector datatype, this function execute an operation at index i. In the case of a vector, this operation is a load
|
inline |
Vector operation at index i with predicated tail
| i | index |
| remaining | Number of remaining samples in the loop |
On an architecture supporting vectors and predicated loops, if the scalar datatype T has a corresponding vector datatype, this function execute an operation at index i with predication. In the case of a vector, this operation is a load
|
inline |
Vector operation at index i with predicated tail
| i | index |
| remaining | Number of remaining samples in the loop |
On an architecture supporting vectors and predicated loops, if the scalar datatype T has a corresponding vector datatype, this function execute an operation at index i with predication. In the case of a vector, this operation is a load
Vector store at index i
| i | index |
| val | Vector value |
On an architecture supporting vectors, if the scalar datatype T has a corresponding vector datatype, this function stores a vector value at index i in this vector datatype
Vector store at index i
| i | index |
| val | Vector value |
On an architecture supporting vectors, if the scalar datatype T has a corresponding vector datatype, this function stores a vector value at index i in this vector datatype
|
inline |
Vector store at index i with predicated tail
| i | index |
| remaining | Number of remaining samples in the loop |
| val | Vector value to write at index i with tail predication |
On an architecture supporting vectors and predicated loops, if the scalar datatype T has a corresponding vector datatype, this function stores a vector value at index i in this vector datatype with predication
|
inline |
Vector store at index i with predicated tail
| i | index |
| remaining | Number of remaining samples in the loop |
| val | Vector value to write at index i with tail predication |
On an architecture supporting vectors and predicated loops, if the scalar datatype T has a corresponding vector datatype, this function stores a vector value at index i in this vector datatype with predication
| #define ARM_MATH_TYPES_F16_H |
// endgroup bufferSizeTypes
| #define F16INFINITY ((float16_t)__builtin_inf()) |
16-bit floating-point type definition. This is already defined in arm_mve.h
defined(ARM_MATH_AUTOVECTORIZE)
This is not fully supported on ARM AC5.
| #define F16INFINITY ((float16_t)__builtin_inf()) |
16-bit floating-point type definition. This is already defined in arm_mve.h
This is not fully supported on ARM AC5.
| #define F64_MAX ((float64_t)DBL_MAX) |
// endgroup generic
|
inline |
| LHS | Left hand side datatype |
| a | Left hand side expression tree |
-vector (including matrix)
|
inline |
Identity operator for expression.
| LHS | Left hand side datatype |
| a | Left hand side expression tree |
Used to consider a vector view as an expression and force the copy of this vector view when assigned to another vector entity.
|
inline |
Identity operator for expression.
| LHS | Left hand side datatype |
| a | Left hand side expression tree |
Used to consider a vector view as an expression and force the copy of this vector view when assigned to another vector entity.
|
inline |
Element wise multiplication operator for expressions.
| LHS | Left hand side datatype |
| RHS | Right hand side datatype |
| a | Left hand side expression tree |
| b | Right hand side expression tree |
elementwise vector * vector (including matrix)
|
inline |
| LHS | Left hand side datatype |
| a | Left hand side expression tree |
+vector (including matrix)
|
inline |
Addition operator for expressions.
| LHS | Left hand side datatype |
| RHS | Right hand side datatype |
| a | Left hand side expression tree |
| b | Right hand side expression tree |
vector + vector (including matrix)
|
inline |
| LHS | Left hand side datatype |
| a | Left hand side expression tree |
-vector (including matrix)
|
inline |
Subtraction operator for expressions.
| LHS | Left hand side datatype |
| RHS | Right hand side datatype |
| a | Left hand side expression tree |
| b | Right hand side expression tree |
vector - vector (including matrix)