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
KernelOps< T, Bits, Arch > Struct Template Reference

#include <kernel_ops.h>

Public Types

using K = Microkernel< T, Bits, Arch >
 

Static Public Member Functions

template<typename Expr >
static FORCE_INLINE void eval (T *output, const Expr &expr) noexcept
 Evaluation: Dispatch: pick contiguous or permuted eval based on expression layout.
 
template<typename Expr >
static FORCE_INLINEreduce_min (const Expr &expr) noexcept
 
template<typename Expr >
static FORCE_INLINEreduce_max (const Expr &expr) noexcept
 
template<typename Expr >
static FORCE_INLINEreduce_sum (const Expr &expr) noexcept
 
template<typename Expr1 , typename Expr2 >
static FORCE_INLINE bool reduce_all_approx_equal (const Expr1 &lhs, const Expr2 &rhs, T tolerance) noexcept
 Check if all logical elements of two expressions are approximately equal.
 
template<typename Expr1 , typename Expr2 >
static FORCE_INLINEdot (const Expr1 &expr1, my_size_t base1, my_size_t stride1, const Expr2 &expr2, my_size_t base2, my_size_t stride2, my_size_t len) noexcept
 Dispatch dot product based on stride values.
 
template<typename Expr1 , typename Expr2 >
static FORCE_INLINEnaive_dot_physical (const Expr1 &expr1, my_size_t base1, my_size_t stride1, const Expr2 &expr2, my_size_t base2, my_size_t stride2, my_size_t len) noexcept
 Naive scalar dot product for testing/validation.
 

Static Public Attributes

static constexpr my_size_t simdWidth = K::simdWidth
 

Member Typedef Documentation

◆ K

template<typename T , my_size_t Bits, typename Arch >
using KernelOps< T, Bits, Arch >::K = Microkernel<T, Bits, Arch>

Member Function Documentation

◆ dot()

template<typename T , my_size_t Bits, typename Arch >
template<typename Expr1 , typename Expr2 >
static FORCE_INLINE T KernelOps< T, Bits, Arch >::dot ( const Expr1 &  expr1,
my_size_t  base1,
my_size_t  stride1,
const Expr2 &  expr2,
my_size_t  base2,
my_size_t  stride2,
my_size_t  len 
)
inlinestaticnoexcept

Dispatch dot product based on stride values.

Here is the call graph for this function:

◆ eval()

template<typename T , my_size_t Bits, typename Arch >
template<typename Expr >
static FORCE_INLINE void KernelOps< T, Bits, Arch >::eval ( T *  output,
const Expr &  expr 
)
inlinestaticnoexcept

Evaluation: Dispatch: pick contiguous or permuted eval based on expression layout.

Here is the call graph for this function:

◆ naive_dot_physical()

template<typename T , my_size_t Bits, typename Arch >
template<typename Expr1 , typename Expr2 >
static FORCE_INLINE T KernelOps< T, Bits, Arch >::naive_dot_physical ( const Expr1 &  expr1,
my_size_t  base1,
my_size_t  stride1,
const Expr2 &  expr2,
my_size_t  base2,
my_size_t  stride2,
my_size_t  len 
)
inlinestaticnoexcept

Naive scalar dot product for testing/validation.

Here is the call graph for this function:

◆ reduce_all_approx_equal()

template<typename T , my_size_t Bits, typename Arch >
template<typename Expr1 , typename Expr2 >
static FORCE_INLINE bool KernelOps< T, Bits, Arch >::reduce_all_approx_equal ( const Expr1 &  lhs,
const Expr2 &  rhs,
tolerance 
)
inlinestaticnoexcept

Check if all logical elements of two expressions are approximately equal.

Here is the call graph for this function:

◆ reduce_max()

template<typename T , my_size_t Bits, typename Arch >
template<typename Expr >
static FORCE_INLINE T KernelOps< T, Bits, Arch >::reduce_max ( const Expr &  expr)
inlinestaticnoexcept
Here is the call graph for this function:

◆ reduce_min()

template<typename T , my_size_t Bits, typename Arch >
template<typename Expr >
static FORCE_INLINE T KernelOps< T, Bits, Arch >::reduce_min ( const Expr &  expr)
inlinestaticnoexcept
Here is the call graph for this function:

◆ reduce_sum()

template<typename T , my_size_t Bits, typename Arch >
template<typename Expr >
static FORCE_INLINE T KernelOps< T, Bits, Arch >::reduce_sum ( const Expr &  expr)
inlinestaticnoexcept
Here is the call graph for this function:

Member Data Documentation

◆ simdWidth

template<typename T , my_size_t Bits, typename Arch >
constexpr my_size_t KernelOps< T, Bits, Arch >::simdWidth = K::simdWidth
staticconstexpr

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