1#ifndef GENERIC_MICROKERNEL_H
2#define GENERIC_MICROKERNEL_H
12template <
typename T, my_
size_t Bits>
51 return abs(diff) <= tol;
Global configuration for the tesseract tensor library.
#define my_size_t
Size/index type used throughout the library.
Definition config.h:126
#define FORCE_INLINE
Hint the compiler to always inline a function.
Definition config.h:26
Definition generic_microkernel.h:9
static FORCE_INLINE VecType add(VecType a, VecType b) noexcept
Definition generic_microkernel.h:31
static FORCE_INLINE void scatter(T *base, const my_size_t *indices, VecType val) noexcept
Definition generic_microkernel.h:45
static FORCE_INLINE VecType div(VecType a, VecType b) noexcept
Definition generic_microkernel.h:34
T VecType
Definition generic_microkernel.h:21
static FORCE_INLINE VecType load(const T *ptr) noexcept
Definition generic_microkernel.h:24
static FORCE_INLINE VecType gather(const T *base, const my_size_t *indices) noexcept
Definition generic_microkernel.h:44
static FORCE_INLINE VecType abs(VecType v) noexcept
Definition generic_microkernel.h:47
static FORCE_INLINE VecType fnmsub(VecType a, VecType b, VecType c) noexcept
Definition generic_microkernel.h:39
static FORCE_INLINE VecType max(VecType a, VecType b) noexcept
Definition generic_microkernel.h:42
static FORCE_INLINE VecType loadu(const T *ptr) noexcept
Definition generic_microkernel.h:25
static FORCE_INLINE void storeu(T *ptr, VecType val) noexcept
Definition generic_microkernel.h:28
static FORCE_INLINE VecType set1(T scalar) noexcept
Definition generic_microkernel.h:30
static FORCE_INLINE VecType min(VecType a, VecType b) noexcept
Definition generic_microkernel.h:41
static FORCE_INLINE VecType fmadd(VecType a, VecType b, VecType c) noexcept
Definition generic_microkernel.h:36
static FORCE_INLINE VecType fnmadd(VecType a, VecType b, VecType c) noexcept
Definition generic_microkernel.h:38
static FORCE_INLINE VecType mul(VecType a, VecType b) noexcept
Definition generic_microkernel.h:32
static FORCE_INLINE VecType fmsub(VecType a, VecType b, VecType c) noexcept
Definition generic_microkernel.h:37
static FORCE_INLINE void store(T *ptr, VecType val) noexcept
Definition generic_microkernel.h:27
T ScalarType
Definition generic_microkernel.h:22
static FORCE_INLINE bool all_within_tolerance(VecType a, VecType b, T tol) noexcept
Definition generic_microkernel.h:48
static FORCE_INLINE VecType sub(VecType a, VecType b) noexcept
Definition generic_microkernel.h:33
Definition microkernel_base.h:16
static constexpr my_size_t simdWidth
Definition microkernel_base.h:17