|
struct | _Binary |
| Expression for binary operator. More...
|
|
struct | _Expr |
| Expression template. More...
|
|
struct | _Outer |
| Outer product operator for expressions. More...
|
|
struct | _Unary |
| Expression for unary operator. More...
|
|
struct | Accumulate |
| Accumulation without saturation. More...
|
|
struct | Accumulate< MD, MS, F, S, true > |
| Accumulation without saturation. More...
|
|
struct | default_user_allocator_malloc_free |
| Malloc memory allocator. More...
|
|
class | DSP |
|
struct | fixed_storage_type |
| Storage type for a fixed point number. More...
|
|
struct | fixed_storage_type< M, F, false, test16(M, F, 0)> |
| Storage type for a fixed point number representable on uint16. More...
|
|
struct | fixed_storage_type< M, F, false, test32(M, F, 0)> |
| Storage type for a fixed point number representable on uint32. More...
|
|
struct | fixed_storage_type< M, F, false, test64(M, F, 0)> |
| Storage type for a fixed point number representable on uint64. More...
|
|
struct | fixed_storage_type< M, F, false, test8(M, F, 0)> |
| Storage type for a fixed point number representable on uint8. More...
|
|
struct | fixed_storage_type< M, F, true, test16(M, F, 1)> |
| Storage type for a fixed point number representable on int16. More...
|
|
struct | fixed_storage_type< M, F, true, test32(M, F, 1)> |
| Storage type for a fixed point number representable on int32. More...
|
|
struct | fixed_storage_type< M, F, true, test64(M, F, 1)> |
| Storage type for a fixed point number representable on int64. More...
|
|
struct | fixed_storage_type< M, F, true, test8(M, F, 1)> |
| Storage type for a fixed point number representable on int8. More...
|
|
struct | FixedCastShift< M, FD, FS, S,(FD >FS)> |
| Changed fractional representation of a fixed point number using a shift. More...
|
|
struct | FixedCastShift< M, FD, FS, S,(FD< FS)> |
| Changed fractional representation of a fixed point number using a shift. More...
|
|
class | Helium |
|
class | Helium82 |
|
struct | ListElem |
| Simple list of elements. More...
|
|
struct | malloc_allocator |
| Default memory allocator for vectors and matrixes. More...
|
|
struct | Matrix |
| Matrix. More...
|
|
struct | Matrix< P, DYNAMIC, DYNAMIC, Allocator > |
| Matrix. More...
|
|
struct | MatrixView |
| Matrix. More...
|
|
struct | MatrixView< T, CONSTRAINED_DYNAMIC > |
| Dynamic Matrix View. More...
|
|
struct | MatrixView< T, DYNAMIC > |
| Dynamic Matrix View. More...
|
|
class | MemoryPool |
| This class describes a memory pool that can be used to build a memory allocator for vectors and matrixes. More...
|
|
class | Neon |
|
struct | number_traits |
| Properties of a scalar datatype. More...
|
|
struct | Q |
| Fixed point template. More...
|
|
struct | Q< M, F, false, uint16_t > |
| Unsigned fixed point datatypes on 16 bits. More...
|
|
struct | Q< M, F, false, uint32_t > |
| Unsigned fixed point datatypes on 32 bits. More...
|
|
struct | Q< M, F, false, uint64_t > |
| Unsigned fixed point datatypes on 64 bits. More...
|
|
struct | Q< M, F, false, uint8_t > |
| Unsigned fixed point datatypes on 8 bits. More...
|
|
struct | Q< M, F, true, int16_t > |
| Signed fixed point datatypes on 16 bits. More...
|
|
struct | Q< M, F, true, int32_t > |
| Signed fixed point datatypes on 32 bits. More...
|
|
struct | Q< M, F, true, int64_t > |
| Signed fixed point datatypes on 64 bits. More...
|
|
struct | Q< M, F, true, int8_t > |
| Signed fixed point datatypes on 8 bits. More...
|
|
class | Scalar |
|
struct | Slice |
| Slice. More...
|
|
struct | user_allocator_aligned_malloc |
| Memory allocation for aligned buffers. More...
|
|
struct | Vector |
| Vector template for size knonw at build time. More...
|
|
struct | Vector< P, DYNAMIC, Allocator > |
| Vector template for dynamic vector (size known at runtime) More...
|
|
struct | Vector_Base |
| Storage for a vector. More...
|
|
struct | vector_traits |
| Properties of a vector datatype linked to a scalar datatype. More...
|
|
struct | VectorView |
| Vector view. More...
|
|
struct | VectorView< T, DYNAMIC > |
| Vector view with dynamic stride (not known at build time) More...
|
|
|
template<typename MA , typename MB , typename std::enable_if< HasMatrixIndexing< MA >::value &&HasMatrixIndexing< MB >::value, bool >::type = true> |
void | transposeTo (MA &dst, const MB &src) |
| Transpose a matrix.
|
|
template<typename M , typename V , typename std::enable_if< CompatibleStaticMatVecProduct< M, V >::value, bool >::type = true> |
OutputVector< M, V >::type | dot (const M &m, const V &v) |
| Matrix x Vector product.
|
|
template<typename MA , typename MB , typename std::enable_if< CompatibleStaticMatMatProduct< MA, MB >::value &&number_traits< typename traits< MA >::Scalar >::is_fixed, bool >::type = true> |
OutputMatrix< MA, MB >::type | dot (const MA &ma, const MB &mb) |
| Matrix x Matrix product.
|
|
template<typename MA , typename MB , typename RES , typename std::enable_if< CompatibleDynamicMatMatProduct< MA, MB >::value &&number_traits< typename traits< MA >::Scalar >::is_float, bool >::type = true> |
void | dot (RES &&res, const MA &ma, const MB &mb) |
| Matrix x Matrix product.
|
|
template<typename P > |
Matrix< P, DYNAMIC, DYNAMIC, TMP_ALLOC > | mk_identity (const vector_length_t l) |
| Create identity matrix.
|
|
template<typename P , int L> |
Matrix< P, L, L, TMP_ALLOC > | mk_identity () |
| Create identity matrix.
|
|
template<typename T > |
void | PrintType (void) |
| Prints a textual representation of a type.
|
|
constexpr bool | test64 (const int M, const int F, const int S) |
| Function to identify the template for fixed number representable on 64 bits.
|
|
constexpr bool | test32 (const int M, const int F, const int S) |
| Function to identify the template for fixed number representable on 32 bits.
|
|
constexpr bool | test16 (const int M, const int F, const int S) |
| Function to identify the template for fixed number representable on 16 bits.
|
|
constexpr bool | test8 (const int M, const int F, const int S) |
| Function to identify the template for fixed number representable on 8 bits.
|
|
constexpr Q63 | operator""_q63 (long double x) |
| q63 literal
|
|
constexpr Q31 | operator""_q31 (long double x) |
| q31 literal
|
|
constexpr Q15 | operator""_q15 (long double x) |
| q15 literal
|
|
constexpr Q7 | operator""_q7 (long double x) |
| q7 literal
|
|
template<int MA, int FA, int MB, int FB, bool SA, bool SB> |
Q< MA+MB+1, FA+FB, SA||SB > | mult (const Q< MA, FA, SA > &a, const Q< MB, FB, SB > &b) |
| Multiplication of two fixed point numbers A and B.
|
|
template<int M, int F, bool S> |
Q< M, F, S > | operator+ (const Q< M, F, S > &a, const Q< M, F, S > &b) |
| Add two fixed point numbers with saturation.
|
|
template<int M, int F, bool S> |
Q< M, F, S > | operator- (const Q< M, F, S > &a, const Q< M, F, S > &b) |
| Subtract two fixed point numbers with saturation.
|
|
template<int M, int F, bool S> |
Q< M, F, S > | operator- (const Q< M, F, S > &a) |
| Negate a fixed point number with saturation.
|
|
template<int M, int F, bool S> |
Q< M, F, S > | add (const Q< M, F, S > &a, const Q< M, F, S > &b) |
| Add two fixed point numbers without saturation.
|
|
template<int M, int F, bool S> |
Q< M, F, S > | sub (const Q< M, F, S > &a, const Q< M, F, S > &b) |
| Subtract two fixed point numbers without saturation.
|
|
template<int M, int F, int N, bool S> |
Q< M, F, S > | operator>> (const Q< M, F, S > &a, std::integral_constant< int, N >) noexcept |
| Shift right a fixed point number with a shift known at build time.
|
|
template<int M, int F, int N, bool S> |
Q< M+N, F, S > | operator<< (const Q< M, F, S > &a, std::integral_constant< int, N >) noexcept |
| Shift left a fixed point number with a shift known at build time.
|
|
template<int MD = 0, int MS, int F> |
Q< MD, F, true > | saturate (const Q< MS, F, true > &src, typename std::enable_if<(MD< MS) &&((MD+F)< 31)>::type *=nullptr) |
| Saturate a signed fixed point number.
|
|
template<int MD = 0, int MS, int F> |
Q< MD, F, false > | saturate (const Q< MS, F, false > &src, typename std::enable_if<(MD< MS) &&((MD+F)< 31)>::type *=nullptr) |
| Saturate an unsigned fixed point number.
|
|
template<int FD, int M, int FS, bool S> |
Q< M, FD, S > | toFrac (const Q< M, FS, S > &src) |
| Convert between different fractional part formats.
|
|
template<int MD, int MS, int F, bool S> |
Q< MD, F, S > | accumulate (const Q< MD, F, S > &a, const Q< MS, F, S > &b) |
| Accumulate without saturation.
|
|
Q7 | operator* (const Q7 &a, const Q7 &b) |
| Multiplication operator.
|
|
Q15 | operator* (const Q15 &a, const Q15 &b) |
| Multiplication operator.
|
|
Q31 | operator* (const Q31 &a, const Q31 &b) |
| Multiplication operator.
|
|
template<int M, int F> |
bool | operator> (const Q< M, F > &a, const Q< M, F > &b) |
| Greater-than comparison operator.
|
|
template<int M, int F> |
bool | operator< (const Q< M, F > &a, const Q< M, F > &b) |
| Less-than comparison operator.
|
|
template<int M, int F> |
bool | operator>= (const Q< M, F > &a, const Q< M, F > &b) |
| Greater-than-or-equal comparison operator.
|
|
template<int M, int F> |
bool | operator<= (const Q< M, F > &a, const Q< M, F > &b) |
| Less-than-or-equal comparison operator.
|
|
template<int M, int F> |
bool | operator== (const Q< M, F > a, const Q< M, F > b) |
| Equality operator.
|
|
template<int M, int F> |
bool | operator!= (const Q< M, F > a, const Q< M, F > b) |
| Inequality operator.
|
|
template<int M, int F, bool S> |
Q< M, F, S > | operator/ (const Q< M, F, S > a, const int32_t b) |
| Division operator.
|
|
template<int M, int F, bool S> |
Q< M, F, S > | operator+ (const Q< M, F, S > &a) |
| No op operator.
|
|
template<typename DA > |
constexpr bool | has_vector_inst () |
| Determines if vector datatype supports vector instruction on a current architecture.
|
|
template<typename DA > |
constexpr bool | has_predicate_inst () |
| Determines if datatype has predicated loop for current architecture.
|
|
template<typename DA > |
constexpr bool | is_scalar () |
| Determines if scalar datatype (not vector, vectorview, matrix, matrixview)
|
|
template<typename DA > |
constexpr bool | must_use_matrix_idx () |
| Check if datatype can only be used as a matrix (no vector addressing)
|
|
template<typename DA , typename DB > |
constexpr bool | vector_idx_pair () |
| Check if both datatype have vector indexing are same scalar datatype.
|
|
template<typename DA > |
constexpr bool | is_only_vector () |
| Check if has vector indexing.
|
|
template<typename DA , typename DB > |
constexpr bool | must_use_matrix_idx_pair () |
| Check if datatypes have same scalar datatype and no vector indexing.
|
|
template<typename DA , typename DB > |
constexpr vector_length_t | static_length () |
| Static length.
|
|
template<typename DA , typename DB > |
constexpr bool | same_static_length () |
| Check compatibility of length.
|
|
template<typename VA , typename VB , typename std::enable_if< vector_idx_pair< VA, VB >() &&is_only_vector< VA >() &&is_only_vector< VB >() &&(!IsDynamic< VA >::value||!IsDynamic< VB >::value), bool >::type = true> |
DotResult< VA > | dot (const VA &a, const VB &b) |
| Dot product.
|
|
template<typename VA , typename VB , typename std::enable_if< vector_idx_pair< VA, VB >() &&(!IsDynamic< VA >::value||!IsDynamic< VB >::value), bool >::type = true> |
void | swap (VA &&a, VB &&b) |
| Swap vectors.
|
|
template<typename VA , typename VB , typename std::enable_if< vector_idx_pair< VA, VB >(), bool >::type = true> |
auto | outer (const VA &a, const VB &b) |
| Outer product.
|
|
void * | aligned_malloc (std::size_t alignment, std::size_t size) |
| Aligned memory allocation.
|
|
void | aligned_free (void *ptr) |
| Free an aligned buffer.
|
|
template<typename LHS , typename RHS , typename std::enable_if<(!is_scalar< LHS >()||!is_scalar< RHS >()) &&SameElementType< LHS, RHS >::value &&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 >()) &&SameElementType< LHS, RHS >::value &&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 RHS , typename std::enable_if<(!is_scalar< LHS >()||!is_scalar< RHS >()) &&SameElementType< LHS, RHS >::value &&same_static_length< LHS, RHS >(), bool >::type = true> |
auto | operator* (const LHS &a, const RHS &b) |
| Element wise multiplication operator for expressions.
|
|