tesseract++ 0.0.1
N-dimensional tensor library for embedded systems
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
Microkernel< T, Bits, GENERICARCH > Struct Template Reference

#include <generic_microkernel.h>

Public Types

using VecType = T
 
using ScalarType = T
 

Static Public Member Functions

static FORCE_INLINE VecType load (const T *ptr) noexcept
 
static FORCE_INLINE VecType loadu (const T *ptr) noexcept
 
static FORCE_INLINE void store (T *ptr, VecType val) noexcept
 
static FORCE_INLINE void storeu (T *ptr, VecType val) noexcept
 
static FORCE_INLINE VecType set1 (T scalar) noexcept
 
static FORCE_INLINE VecType add (VecType a, VecType b) noexcept
 
static FORCE_INLINE VecType mul (VecType a, VecType b) noexcept
 
static FORCE_INLINE VecType sub (VecType a, VecType b) noexcept
 
static FORCE_INLINE VecType div (VecType a, VecType b) noexcept
 
static FORCE_INLINE VecType fmadd (VecType a, VecType b, VecType c) noexcept
 
static FORCE_INLINE VecType fmsub (VecType a, VecType b, VecType c) noexcept
 
static FORCE_INLINE VecType fnmadd (VecType a, VecType b, VecType c) noexcept
 
static FORCE_INLINE VecType fnmsub (VecType a, VecType b, VecType c) noexcept
 
static FORCE_INLINE VecType min (VecType a, VecType b) noexcept
 
static FORCE_INLINE VecType max (VecType a, VecType b) noexcept
 
static FORCE_INLINE VecType gather (const T *base, const my_size_t *indices) noexcept
 
static FORCE_INLINE void scatter (T *base, const my_size_t *indices, VecType val) noexcept
 
static FORCE_INLINE VecType abs (VecType v) noexcept
 
static FORCE_INLINE bool all_within_tolerance (VecType a, VecType b, T tol) noexcept
 

Static Public Attributes

static constexpr my_size_t simdWidth = 1
 
static constexpr my_size_t num_registers = 16
 
static constexpr my_size_t MR = 4
 
static constexpr my_size_t NR_VECS = 1
 
static constexpr my_size_t NR = NR_VECS * simdWidth
 

Member Typedef Documentation

◆ ScalarType

template<typename T , my_size_t Bits>
using Microkernel< T, Bits, GENERICARCH >::ScalarType = T

◆ VecType

template<typename T , my_size_t Bits>
using Microkernel< T, Bits, GENERICARCH >::VecType = T

Member Function Documentation

◆ abs()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::abs ( VecType  v)
inlinestaticnoexcept

◆ add()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::add ( VecType  a,
VecType  b 
)
inlinestaticnoexcept

◆ all_within_tolerance()

template<typename T , my_size_t Bits>
static FORCE_INLINE bool Microkernel< T, Bits, GENERICARCH >::all_within_tolerance ( VecType  a,
VecType  b,
tol 
)
inlinestaticnoexcept

◆ div()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::div ( VecType  a,
VecType  b 
)
inlinestaticnoexcept

◆ fmadd()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::fmadd ( VecType  a,
VecType  b,
VecType  c 
)
inlinestaticnoexcept

◆ fmsub()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::fmsub ( VecType  a,
VecType  b,
VecType  c 
)
inlinestaticnoexcept

◆ fnmadd()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::fnmadd ( VecType  a,
VecType  b,
VecType  c 
)
inlinestaticnoexcept

◆ fnmsub()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::fnmsub ( VecType  a,
VecType  b,
VecType  c 
)
inlinestaticnoexcept

◆ gather()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::gather ( const T *  base,
const my_size_t indices 
)
inlinestaticnoexcept

◆ load()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::load ( const T *  ptr)
inlinestaticnoexcept

◆ loadu()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::loadu ( const T *  ptr)
inlinestaticnoexcept

◆ max()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::max ( VecType  a,
VecType  b 
)
inlinestaticnoexcept

◆ min()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::min ( VecType  a,
VecType  b 
)
inlinestaticnoexcept

◆ mul()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::mul ( VecType  a,
VecType  b 
)
inlinestaticnoexcept

◆ scatter()

template<typename T , my_size_t Bits>
static FORCE_INLINE void Microkernel< T, Bits, GENERICARCH >::scatter ( T *  base,
const my_size_t indices,
VecType  val 
)
inlinestaticnoexcept

◆ set1()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::set1 ( scalar)
inlinestaticnoexcept

◆ store()

template<typename T , my_size_t Bits>
static FORCE_INLINE void Microkernel< T, Bits, GENERICARCH >::store ( T *  ptr,
VecType  val 
)
inlinestaticnoexcept

◆ storeu()

template<typename T , my_size_t Bits>
static FORCE_INLINE void Microkernel< T, Bits, GENERICARCH >::storeu ( T *  ptr,
VecType  val 
)
inlinestaticnoexcept

◆ sub()

template<typename T , my_size_t Bits>
static FORCE_INLINE VecType Microkernel< T, Bits, GENERICARCH >::sub ( VecType  a,
VecType  b 
)
inlinestaticnoexcept

Member Data Documentation

◆ MR

template<typename T , my_size_t Bits>
constexpr my_size_t Microkernel< T, Bits, GENERICARCH >::MR = 4
staticconstexpr

◆ NR

template<typename T , my_size_t Bits>
constexpr my_size_t Microkernel< T, Bits, GENERICARCH >::NR = NR_VECS * simdWidth
staticconstexpr

◆ NR_VECS

template<typename T , my_size_t Bits>
constexpr my_size_t Microkernel< T, Bits, GENERICARCH >::NR_VECS = 1
staticconstexpr

◆ num_registers

template<typename T , my_size_t Bits>
constexpr my_size_t Microkernel< T, Bits, GENERICARCH >::num_registers = 16
staticconstexpr

◆ simdWidth

template<typename T , my_size_t Bits>
constexpr my_size_t Microkernel< T, Bits, GENERICARCH >::simdWidth = 1
staticconstexpr

The documentation for this struct was generated from the following file: