CMSIS-DSP  
CMSIS DSP Software Library
 
Loading...
Searching...
No Matches

Namespaces

namespace  inner
 
namespace  arm_cmsis_dsp::inner
 

Data Structures

struct  number_traits< std::tuple< E... > >
 Number description for a tuple of numbers. More...
 
struct  vector_traits< std::tuple< E... >, arch >
 Tuple of compatible vectors. More...
 
struct  number_traits< std::tuple< E... > >
 Number description for a tuple of numbers. More...
 
struct  vector_traits< std::tuple< E... >, arch >
 Tuple of compatible vectors. More...
 
struct  vctpq< std::tuple< E... > >
 Tuple of predicates. More...
 

Description

Tuples of numbers or expressions used for unrolling

Tuples of numbers or expressions used for unrolling


Data Structure Documentation

◆ number_traits< std::tuple< E... > >

struct number_traits< std::tuple< E... > >
template<typename ... E>
struct number_traits< std::tuple< E... > >

Number description for a tuple of numbers.

Template Parameters
EDatatype 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.
 

Member Function Documentation

◆ one()

template<typename ... E>
static std::tuple< typename number_traits< E >::accumulator... > one ( )
inlinestatic

Return of tuples of one values.

Returns
Tuples of one values with different datatypes

◆ vector_traits< std::tuple< E... >, arch >

struct vector_traits< std::tuple< E... >, arch >
template<typename arch, typename ... E>
struct vector_traits< std::tuple< E... >, arch >

Tuple of compatible vectors.

Template Parameters
archCurrent architecture
EList 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.
 

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.
 

Member Function Documentation

◆ temp_acc_zero()

template<typename arch, typename ... E>
static temp_accumulator temp_acc_zero ( )
inlinestatic

Zero represented with temp accumulator datatype.

Returns
Zero represented with temp accumulator datatype

◆ arm_cmsis_dsp::number_traits< std::tuple< E... > >

struct arm_cmsis_dsp::number_traits< std::tuple< E... > >
template<typename ... E>
struct arm_cmsis_dsp::number_traits< std::tuple< E... > >

Number description for a tuple of numbers.

Template Parameters
EDatatype 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.
 

Member Function Documentation

◆ one()

template<typename ... E>
static std::tuple< typename number_traits< E >::accumulator... > one ( )
inlinestatic

Return of tuples of one values.

Returns
Tuples of one values with different datatypes

◆ arm_cmsis_dsp::vector_traits< std::tuple< E... >, arch >

struct arm_cmsis_dsp::vector_traits< std::tuple< E... >, arch >
template<typename arch, typename ... E>
struct arm_cmsis_dsp::vector_traits< std::tuple< E... >, arch >

Tuple of compatible vectors.

Template Parameters
archCurrent architecture
EList 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.
 

Member Function Documentation

◆ temp_acc_zero()

template<typename arch, typename ... E>
static temp_accumulator temp_acc_zero ( )
inlinestatic

Zero represented with temp accumulator datatype.

Returns
Zero represented with temp accumulator datatype

◆ arm_cmsis_dsp::inner::vctpq< std::tuple< E... > >

struct arm_cmsis_dsp::inner::vctpq< std::tuple< E... > >
template<typename ... E>
struct arm_cmsis_dsp::inner::vctpq< std::tuple< E... > >

Tuple of predicates.

Template Parameters
ETuple 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.
 

Member Function Documentation

◆ mk()

template<typename ... E>
static auto mk ( const uint32_t v)
inlinestatic

Make a predicate for predicated loop.

Parameters
[in]vRemaining number of iterations
Returns
Predicate