Grok 12.0.1
Classes | Namespaces | Macros | Typedefs | Functions | Variables
base.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "hwy/detect_compiler_arch.h"
#include "hwy/highway_export.h"
#include <inttypes.h>

Go to the source code of this file.

Classes

struct  hwy::uint128_t
 
struct  hwy::K64V64
 
struct  hwy::K32V32
 
struct  hwy::EnableIfT< Condition >
 
struct  hwy::EnableIfT< true >
 
struct  hwy::IsSameT< T, U >
 
struct  hwy::IsSameT< T, T >
 
struct  hwy::IfT< Condition, Then, Else >
 
struct  hwy::IfT< false, Then, Else >
 
struct  hwy::IsConstT< T >
 
struct  hwy::IsConstT< const T >
 
struct  hwy::RemoveConstT< T >
 
struct  hwy::RemoveConstT< const T >
 
struct  hwy::RemoveVolatileT< T >
 
struct  hwy::RemoveVolatileT< volatile T >
 
struct  hwy::RemoveRefT< T >
 
struct  hwy::RemoveRefT< T & >
 
struct  hwy::RemoveRefT< T && >
 
struct  hwy::RemovePtrT< T >
 
struct  hwy::RemovePtrT< T * >
 
struct  hwy::RemovePtrT< const T * >
 
struct  hwy::RemovePtrT< volatile T * >
 
struct  hwy::RemovePtrT< const volatile T * >
 
struct  hwy::SizeTag< N >
 
class  hwy::DeclValT< T >
 
struct  hwy::IsArrayT< T >
 
struct  hwy::IsArrayT< T[]>
 
struct  hwy::IsArrayT< T[N]>
 
class  hwy::IsConvertibleT< From, To >
 
class  hwy::IsStaticCastableT< From, To >
 
class  hwy::IsAssignableT< T, From >
 
struct  hwy::detail::SpecialFloatUnwrapArithOpOperandT< T, TVal, bool >
 
struct  hwy::detail::SpecialFloatUnwrapArithOpOperandT< T, TVal, false >
 
struct  hwy::detail::NativeSpecialFloatToWrapperT< T, TVal >
 
struct  hwy::float16_t
 
struct  hwy::float16_t::F16FromU16BitsTag
 
struct  hwy::bfloat16_t
 
struct  hwy::bfloat16_t::BF16FromU16BitsTag
 
struct  hwy::detail::Relations< uint8_t >
 
struct  hwy::detail::Relations< int8_t >
 
struct  hwy::detail::Relations< uint16_t >
 
struct  hwy::detail::Relations< int16_t >
 
struct  hwy::detail::Relations< uint32_t >
 
struct  hwy::detail::Relations< int32_t >
 
struct  hwy::detail::Relations< uint64_t >
 
struct  hwy::detail::Relations< int64_t >
 
struct  hwy::detail::Relations< uint128_t >
 
struct  hwy::detail::Relations< float16_t >
 
struct  hwy::detail::Relations< bfloat16_t >
 
struct  hwy::detail::Relations< float >
 
struct  hwy::detail::Relations< double >
 
struct  hwy::detail::TypeFromSize< 1 >
 
struct  hwy::detail::TypeFromSize< 2 >
 
struct  hwy::detail::TypeFromSize< 4 >
 
struct  hwy::detail::TypeFromSize< 8 >
 
struct  hwy::detail::TypeFromSize< 16 >
 
struct  hwy::MakeLaneTypeIfIntegerT< T, bool >
 
struct  hwy::MakeLaneTypeIfIntegerT< T, true >
 
class  hwy::Divisor
 

Namespaces

namespace  hwy
 
namespace  hwy::detail
 

Macros

#define HWY_CXX_LANG   __cplusplus
 
#define __STDC_FORMAT_MACROS
 
#define HWY_STR_IMPL(macro)   #macro
 
#define HWY_STR(macro)   HWY_STR_IMPL(macro)
 
#define HWY_RESTRICT   __restrict__
 
#define HWY_INLINE   inline
 
#define HWY_NOINLINE   __attribute__((noinline))
 
#define HWY_FLATTEN   __attribute__((flatten))
 
#define HWY_NORETURN   __attribute__((noreturn))
 
#define HWY_LIKELY(expr)   __builtin_expect(!!(expr), 1)
 
#define HWY_UNLIKELY(expr)   __builtin_expect(!!(expr), 0)
 
#define HWY_PRAGMA(tokens)   _Pragma(#tokens)
 
#define HWY_DIAGNOSTICS(tokens)   HWY_PRAGMA(GCC diagnostic tokens)
 
#define HWY_DIAGNOSTICS_OFF(msc, gcc)   HWY_DIAGNOSTICS(gcc)
 
#define HWY_MAYBE_UNUSED   __attribute__((unused))
 
#define HWY_MUST_USE_RESULT   __attribute__((warn_unused_result))
 
#define HWY_FORMAT(idx_fmt, idx_arg)
 
#define HWY_ASSUME_ALIGNED(ptr, align)   (ptr) /* not supported */
 
#define HWY_RCAST_ALIGNED(type, ptr)    reinterpret_cast<type>(HWY_ASSUME_ALIGNED((ptr), alignof(RemovePtr<type>)))
 
#define HWY_PUSH_ATTRIBUTES(targets_str)
 
#define HWY_POP_ATTRIBUTES
 
#define HWY_API   static HWY_INLINE HWY_FLATTEN HWY_MAYBE_UNUSED
 
#define HWY_CONCAT_IMPL(a, b)   a##b
 
#define HWY_CONCAT(a, b)   HWY_CONCAT_IMPL(a, b)
 
#define HWY_MIN(a, b)   ((a) < (b) ? (a) : (b))
 
#define HWY_MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define HWY_UNROLL(factor)
 
#define HWY_DEFAULT_UNROLL
 
#define HWY_ASSUME(expr)   static_cast<void>(0)
 
#define HWY_FENCE
 
#define HWY_REP4(literal)   literal, literal, literal, literal
 
#define HWY_ABORT(format, ...)    ::hwy::Abort(__FILE__, __LINE__, format, ##__VA_ARGS__)
 
#define HWY_ASSERT(condition)
 
#define HWY_IS_MSAN   0
 
#define HWY_IS_ASAN   0
 
#define HWY_IS_TSAN   0
 
#define HWY_IS_UBSAN   0
 
#define HWY_ATTR_NO_MSAN
 
#define HWY_IS_DEBUG_BUILD   1
 
#define HWY_DASSERT(condition)   HWY_ASSERT(condition)
 
#define HWY_CXX17_CONSTEXPR
 
#define HWY_CXX14_CONSTEXPR
 
#define HWY_IF_CONSTEXPR   if
 
#define HWY_HAVE_CXX20_THREE_WAY_COMPARE   0
 
#define HWY_ALIGN_MAX   alignas(16)
 
#define HWY_IF_V_SIZE(T, kN, bytes)    hwy::EnableIf<kN * sizeof(T) == bytes>* = nullptr
 
#define HWY_IF_V_SIZE_LE(T, kN, bytes)    hwy::EnableIf<kN * sizeof(T) <= bytes>* = nullptr
 
#define HWY_IF_V_SIZE_GT(T, kN, bytes)    hwy::EnableIf<(kN * sizeof(T) > bytes)>* = nullptr
 
#define HWY_IF_LANES(kN, lanes)   hwy::EnableIf<(kN == lanes)>* = nullptr
 
#define HWY_IF_LANES_LE(kN, lanes)   hwy::EnableIf<(kN <= lanes)>* = nullptr
 
#define HWY_IF_LANES_GT(kN, lanes)   hwy::EnableIf<(kN > lanes)>* = nullptr
 
#define HWY_IF_UNSIGNED(T)   hwy::EnableIf<!hwy::IsSigned<T>()>* = nullptr
 
#define HWY_IF_NOT_UNSIGNED(T)   hwy::EnableIf<hwy::IsSigned<T>()>* = nullptr
 
#define HWY_IF_SIGNED(T)
 
#define HWY_IF_FLOAT(T)   hwy::EnableIf<hwy::IsFloat<T>()>* = nullptr
 
#define HWY_IF_NOT_FLOAT(T)   hwy::EnableIf<!hwy::IsFloat<T>()>* = nullptr
 
#define HWY_IF_FLOAT3264(T)   hwy::EnableIf<hwy::IsFloat3264<T>()>* = nullptr
 
#define HWY_IF_NOT_FLOAT3264(T)   hwy::EnableIf<!hwy::IsFloat3264<T>()>* = nullptr
 
#define HWY_IF_SPECIAL_FLOAT(T)    hwy::EnableIf<hwy::IsSpecialFloat<T>()>* = nullptr
 
#define HWY_IF_NOT_SPECIAL_FLOAT(T)    hwy::EnableIf<!hwy::IsSpecialFloat<T>()>* = nullptr
 
#define HWY_IF_FLOAT_OR_SPECIAL(T)    hwy::EnableIf<hwy::IsFloat<T>() || hwy::IsSpecialFloat<T>()>* = nullptr
 
#define HWY_IF_NOT_FLOAT_NOR_SPECIAL(T)    hwy::EnableIf<!hwy::IsFloat<T>() && !hwy::IsSpecialFloat<T>()>* = nullptr
 
#define HWY_IF_INTEGER(T)   hwy::EnableIf<hwy::IsInteger<T>()>* = nullptr
 
#define HWY_IF_T_SIZE(T, bytes)   hwy::EnableIf<sizeof(T) == (bytes)>* = nullptr
 
#define HWY_IF_NOT_T_SIZE(T, bytes)    hwy::EnableIf<sizeof(T) != (bytes)>* = nullptr
 
#define HWY_IF_T_SIZE_ONE_OF(T, bit_array)    hwy::EnableIf<((size_t{1} << sizeof(T)) & (bit_array)) != 0>* = nullptr
 
#define HWY_IF_T_SIZE_LE(T, bytes)    hwy::EnableIf<(sizeof(T) <= (bytes))>* = nullptr
 
#define HWY_IF_T_SIZE_GT(T, bytes)    hwy::EnableIf<(sizeof(T) > (bytes))>* = nullptr
 
#define HWY_IF_SAME(T, expected)    hwy::EnableIf<hwy::IsSame<hwy::RemoveCvRef<T>, expected>()>* = nullptr
 
#define HWY_IF_NOT_SAME(T, expected)    hwy::EnableIf<!hwy::IsSame<hwy::RemoveCvRef<T>, expected>()>* = nullptr
 
#define HWY_IF_SAME2(T, expected1, expected2)
 
#define HWY_IF_U8(T)   HWY_IF_SAME(T, uint8_t)
 
#define HWY_IF_U16(T)   HWY_IF_SAME(T, uint16_t)
 
#define HWY_IF_U32(T)   HWY_IF_SAME(T, uint32_t)
 
#define HWY_IF_U64(T)   HWY_IF_SAME(T, uint64_t)
 
#define HWY_IF_I8(T)   HWY_IF_SAME(T, int8_t)
 
#define HWY_IF_I16(T)   HWY_IF_SAME(T, int16_t)
 
#define HWY_IF_I32(T)   HWY_IF_SAME(T, int32_t)
 
#define HWY_IF_I64(T)   HWY_IF_SAME(T, int64_t)
 
#define HWY_IF_BF16(T)   HWY_IF_SAME(T, hwy::bfloat16_t)
 
#define HWY_IF_NOT_BF16(T)   HWY_IF_NOT_SAME(T, hwy::bfloat16_t)
 
#define HWY_IF_F16(T)   HWY_IF_SAME(T, hwy::float16_t)
 
#define HWY_IF_NOT_F16(T)   HWY_IF_NOT_SAME(T, hwy::float16_t)
 
#define HWY_IF_F32(T)   HWY_IF_SAME(T, float)
 
#define HWY_IF_F64(T)   HWY_IF_SAME(T, double)
 
#define HWY_IF_UI8(T)   HWY_IF_SAME2(T, uint8_t, int8_t)
 
#define HWY_IF_UI16(T)   HWY_IF_SAME2(T, uint16_t, int16_t)
 
#define HWY_IF_UI32(T)   HWY_IF_SAME2(T, uint32_t, int32_t)
 
#define HWY_IF_UI64(T)   HWY_IF_SAME2(T, uint64_t, int64_t)
 
#define HWY_IF_LANES_PER_BLOCK(T, N, LANES)    hwy::EnableIf<HWY_MIN(sizeof(T) * N, 16) / sizeof(T) == (LANES)>* = nullptr
 
#define HWY_IF_CASTABLE(From, To)    hwy::EnableIf<IsStaticCastable<From, To>()>* = nullptr
 
#define HWY_IF_OP_CASTABLE(op, T, Native)    HWY_IF_CASTABLE(decltype(DeclVal<Native>() op DeclVal<T>()), Native)
 
#define HWY_IF_ASSIGNABLE(T, From)    hwy::EnableIf<IsAssignable<T, From>()>* = nullptr
 
#define HWY_BITCASTSCALAR_CONSTEXPR
 
#define HWY_BITCASTSCALAR_CXX14_CONSTEXPR
 
#define HWY_NEON_HAVE_F16C   0
 
#define HWY_RVV_HAVE_F16_VEC   0
 
#define HWY_SSE2_HAVE_F16_TYPE   0
 
#define HWY_HAVE_SCALAR_F16_TYPE   0
 
#define HWY_HAVE_SCALAR_F16_OPERATORS   0
 
#define HWY_F16_CONSTEXPR   HWY_BITCASTSCALAR_CXX14_CONSTEXPR
 
#define HWY_F16_FROM_F32_DASSERT(condition)   HWY_DASSERT(condition)
 
#define HWY_ARM_HAVE_SCALAR_BF16_TYPE   0
 
#define HWY_SSE2_HAVE_SCALAR_BF16_TYPE   0
 
#define HWY_HAVE_SCALAR_BF16_TYPE   0
 
#define HWY_HAVE_SCALAR_BF16_OPERATORS   0
 
#define HWY_BF16_CONSTEXPR   HWY_BITCASTSCALAR_CONSTEXPR
 
#define HWY_BF16_TO_F16_CONSTEXPR   HWY_F16_CONSTEXPR
 

Typedefs

using hwy::float32_t = float
 
using hwy::float64_t = double
 
template<bool Condition>
using hwy::EnableIf = typename EnableIfT<Condition>::type
 
template<bool Condition, typename Then , typename Else >
using hwy::If = typename IfT<Condition, Then, Else>::type
 
template<class T >
using hwy::RemoveConst = typename RemoveConstT<T>::type
 
template<class T >
using hwy::RemoveVolatile = typename RemoveVolatileT<T>::type
 
template<class T >
using hwy::RemoveRef = typename RemoveRefT<T>::type
 
template<class T >
using hwy::RemoveCvRef = RemoveConst<RemoveVolatile<RemoveRef<T>>>
 
template<class T >
using hwy::RemovePtr = typename RemovePtrT<T>::type
 
template<class T >
using hwy::detail::SpecialFloatUnwrapArithOpOperand
 
template<class T >
using hwy::detail::NativeSpecialFloatToWrapper
 
template<typename T >
using hwy::MakeUnsigned = typename detail::Relations<T>::Unsigned
 
template<typename T >
using hwy::MakeSigned = typename detail::Relations<T>::Signed
 
template<typename T >
using hwy::MakeFloat = typename detail::Relations<T>::Float
 
template<typename T >
using hwy::MakeWide = typename detail::Relations<T>::Wide
 
template<typename T >
using hwy::MakeNarrow = typename detail::Relations<T>::Narrow
 
template<size_t N>
using hwy::UnsignedFromSize = typename detail::TypeFromSize<N>::Unsigned
 
template<size_t N>
using hwy::SignedFromSize = typename detail::TypeFromSize<N>::Signed
 
template<size_t N>
using hwy::FloatFromSize = typename detail::TypeFromSize<N>::Float
 
using hwy::UnsignedTag = SizeTag<0>
 
using hwy::SignedTag = SizeTag<0x100>
 
using hwy::FloatTag = SizeTag<0x200>
 
using hwy::SpecialTag = SizeTag<0x300>
 
using hwy::NonFloatTag = SizeTag<0x400>
 
template<typename T >
using hwy::MakeLaneTypeIfInteger = typename MakeLaneTypeIfIntegerT<T>::type
 

Functions

HWY_DLLEXPORT HWY_NORETURN void hwy::HWY_FORMAT (3, 4) Abort(const char *file
 
template<size_t kBytes, typename From , typename To >
HWY_API void hwy::CopyBytes (const From *from, To *to)
 
HWY_API void hwy::CopyBytes (const void *HWY_RESTRICT from, void *HWY_RESTRICT to, size_t num_of_bytes_to_copy)
 
template<typename From , typename To >
HWY_API void hwy::CopySameSize (const From *HWY_RESTRICT from, To *HWY_RESTRICT to)
 
template<size_t kBytes, typename To >
HWY_API void hwy::ZeroBytes (To *to)
 
HWY_API void hwy::ZeroBytes (void *to, size_t num_bytes)
 
static HWY_MAYBE_UNUSED bool hwy::operator< (const uint128_t &a, const uint128_t &b)
 
static HWY_MAYBE_UNUSED bool hwy::operator> (const uint128_t &a, const uint128_t &b)
 
static HWY_MAYBE_UNUSED bool hwy::operator== (const uint128_t &a, const uint128_t &b)
 
static HWY_MAYBE_UNUSED bool hwy::operator< (const K64V64 &a, const K64V64 &b)
 
static HWY_MAYBE_UNUSED bool hwy::operator> (const K64V64 &a, const K64V64 &b)
 
static HWY_MAYBE_UNUSED bool hwy::operator== (const K64V64 &a, const K64V64 &b)
 
static HWY_MAYBE_UNUSED bool hwy::operator< (const K32V32 &a, const K32V32 &b)
 
static HWY_MAYBE_UNUSED bool hwy::operator> (const K32V32 &a, const K32V32 &b)
 
static HWY_MAYBE_UNUSED bool hwy::operator== (const K32V32 &a, const K32V32 &b)
 
template<typename T , typename U >
HWY_API constexpr bool hwy::IsSame ()
 
template<typename T , typename U1 , typename U2 >
HWY_API constexpr bool hwy::IsSameEither ()
 
template<typename T >
HWY_API constexpr bool hwy::IsConst ()
 
template<class T >
HWY_API DeclValT< T >::type hwy::DeclVal () noexcept
 
template<class T >
static constexpr bool hwy::IsArray ()
 
template<class From , class To >
HWY_API constexpr bool hwy::IsConvertible ()
 
template<class From , class To >
static constexpr bool hwy::IsStaticCastable ()
 
template<class T , class From >
static constexpr bool hwy::IsAssignable ()
 
template<typename T >
HWY_API constexpr bool hwy::IsSpecialFloat ()
 
template<class T >
HWY_API constexpr bool hwy::IsIntegerLaneType ()
 
template<>
HWY_INLINE constexpr bool hwy::IsIntegerLaneType< int8_t > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsIntegerLaneType< uint8_t > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsIntegerLaneType< int16_t > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsIntegerLaneType< uint16_t > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsIntegerLaneType< int32_t > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsIntegerLaneType< uint32_t > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsIntegerLaneType< int64_t > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsIntegerLaneType< uint64_t > ()
 
template<class T >
HWY_API constexpr bool hwy::IsInteger ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< bool > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< char > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< signed char > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< unsigned char > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< short > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< unsigned short > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< int > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< unsigned > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< long > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< unsigned long > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< long long > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< unsigned long long > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< char16_t > ()
 
template<>
HWY_INLINE constexpr bool hwy::IsInteger< char32_t > ()
 
template<class To , class From >
HWY_API HWY_BITCASTSCALAR_CONSTEXPR To hwy::BitCastScalar (const From &val)
 
HWY_API HWY_F16_CONSTEXPR float hwy::F32FromF16 (float16_t f16)
 
HWY_API HWY_F16_CONSTEXPR float16_t hwy::F16FromF32 (float f32)
 
HWY_API HWY_F16_CONSTEXPR float16_t hwy::F16FromF64 (double f64)
 
HWY_F16_CONSTEXPR bool hwy::operator== (float16_t lhs, float16_t rhs) noexcept
 
HWY_F16_CONSTEXPR bool hwy::operator!= (float16_t lhs, float16_t rhs) noexcept
 
HWY_F16_CONSTEXPR bool hwy::operator< (float16_t lhs, float16_t rhs) noexcept
 
HWY_F16_CONSTEXPR bool hwy::operator<= (float16_t lhs, float16_t rhs) noexcept
 
HWY_F16_CONSTEXPR bool hwy::operator> (float16_t lhs, float16_t rhs) noexcept
 
HWY_F16_CONSTEXPR bool hwy::operator>= (float16_t lhs, float16_t rhs) noexcept
 
HWY_API HWY_BF16_CONSTEXPR float hwy::F32FromBF16 (bfloat16_t bf)
 
static HWY_INLINE HWY_MAYBE_UNUSED constexpr uint32_t hwy::detail::F32BitsToBF16RoundIncr (const uint32_t f32_bits)
 
static HWY_INLINE HWY_MAYBE_UNUSED constexpr uint16_t hwy::detail::F32BitsToBF16Bits (const uint32_t f32_bits)
 
HWY_API HWY_BF16_CONSTEXPR bfloat16_t hwy::BF16FromF32 (float f)
 
HWY_API HWY_BF16_CONSTEXPR bfloat16_t hwy::BF16FromF64 (double f64)
 
HWY_BF16_CONSTEXPR bool hwy::operator== (bfloat16_t lhs, bfloat16_t rhs) noexcept
 
HWY_BF16_CONSTEXPR bool hwy::operator!= (bfloat16_t lhs, bfloat16_t rhs) noexcept
 
HWY_BF16_CONSTEXPR bool hwy::operator< (bfloat16_t lhs, bfloat16_t rhs) noexcept
 
HWY_BF16_CONSTEXPR bool hwy::operator<= (bfloat16_t lhs, bfloat16_t rhs) noexcept
 
HWY_BF16_CONSTEXPR bool hwy::operator> (bfloat16_t lhs, bfloat16_t rhs) noexcept
 
HWY_BF16_CONSTEXPR bool hwy::operator>= (bfloat16_t lhs, bfloat16_t rhs) noexcept
 
template<typename T , class R = detail::Relations<T>>
constexpr auto hwy::TypeTag () -> hwy::SizeTag<((R::is_signed+R::is_float+R::is_bf16)<< 8)>
 
template<typename T , class R = detail::Relations<T>>
constexpr auto hwy::IsFloatTag () -> hwy::SizeTag<(R::is_float ? 0x200 :0x400)>
 
template<typename T >
HWY_API constexpr bool hwy::IsFloat3264 ()
 
template<typename T >
HWY_API constexpr bool hwy::IsFloat ()
 
template<typename T >
HWY_API constexpr bool hwy::IsSigned ()
 
template<>
constexpr bool hwy::IsSigned< float16_t > ()
 
template<>
constexpr bool hwy::IsSigned< bfloat16_t > ()
 
template<>
constexpr bool hwy::IsSigned< hwy::uint128_t > ()
 
template<>
constexpr bool hwy::IsSigned< hwy::K64V64 > ()
 
template<>
constexpr bool hwy::IsSigned< hwy::K32V32 > ()
 
template<typename T >
HWY_API constexpr T hwy::LimitsMax ()
 
template<typename T >
HWY_API constexpr T hwy::LimitsMin ()
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPRhwy::LowestValue ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR bfloat16_t hwy::LowestValue< bfloat16_t > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR float16_t hwy::LowestValue< float16_t > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR float hwy::LowestValue< float > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR double hwy::LowestValue< double > ()
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPRhwy::HighestValue ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR bfloat16_t hwy::HighestValue< bfloat16_t > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR float16_t hwy::HighestValue< float16_t > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR float hwy::HighestValue< float > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR double hwy::HighestValue< double > ()
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPRhwy::Epsilon ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR bfloat16_t hwy::Epsilon< bfloat16_t > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR float16_t hwy::Epsilon< float16_t > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR float hwy::Epsilon< float > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR double hwy::Epsilon< double > ()
 
template<typename T >
constexpr int hwy::MantissaBits ()
 
template<>
constexpr int hwy::MantissaBits< bfloat16_t > ()
 
template<>
constexpr int hwy::MantissaBits< float16_t > ()
 
template<>
constexpr int hwy::MantissaBits< float > ()
 
template<>
constexpr int hwy::MantissaBits< double > ()
 
template<typename T >
constexpr MakeSigned< T > hwy::MaxExponentTimes2 ()
 
template<typename T >
constexpr MakeUnsigned< T > hwy::SignMask ()
 
template<typename T >
constexpr MakeUnsigned< T > hwy::ExponentMask ()
 
template<typename T >
constexpr MakeUnsigned< T > hwy::MantissaMask ()
 
template<typename T >
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPRhwy::MantissaEnd ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR bfloat16_t hwy::MantissaEnd< bfloat16_t > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR float16_t hwy::MantissaEnd< float16_t > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR float hwy::MantissaEnd< float > ()
 
template<>
HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR double hwy::MantissaEnd< double > ()
 
template<typename T >
constexpr int hwy::ExponentBits ()
 
template<typename T >
constexpr MakeSigned< T > hwy::MaxExponentField ()
 
HWY_API float hwy::F32FromF16Mem (const void *ptr)
 
HWY_API float hwy::F32FromBF16Mem (const void *ptr)
 
template<typename TTo , typename TFrom , HWY_IF_NOT_SPECIAL_FLOAT(TTo) , HWY_IF_NOT_SPECIAL_FLOAT(TFrom) , HWY_IF_NOT_SAME(TTo, TFrom) >
HWY_API constexpr TTo hwy::ConvertScalarTo (const TFrom in)
 
template<typename TTo , HWY_IF_F16(TTo) >
HWY_API HWY_BF16_TO_F16_CONSTEXPR TTo hwy::ConvertScalarTo (const hwy::bfloat16_t in)
 
template<typename TTo , HWY_IF_F16(TTo) >
HWY_API HWY_F16_CONSTEXPR TTo hwy::ConvertScalarTo (const double in)
 
template<typename TTo , typename TFrom , HWY_IF_BF16(TTo) , HWY_IF_NOT_SPECIAL_FLOAT(TFrom) , HWY_IF_NOT_SAME(TFrom, double) >
HWY_API HWY_BF16_CONSTEXPR TTo hwy::ConvertScalarTo (const TFrom in)
 
template<typename TTo , HWY_IF_BF16(TTo) >
HWY_API HWY_BF16_TO_F16_CONSTEXPR TTo hwy::ConvertScalarTo (const hwy::float16_t in)
 
template<typename TTo , HWY_IF_BF16(TTo) >
HWY_API HWY_BF16_CONSTEXPR TTo hwy::ConvertScalarTo (const double in)
 
template<typename TTo , typename TFrom , HWY_IF_F16(TFrom) , HWY_IF_NOT_SPECIAL_FLOAT(TTo) >
HWY_API HWY_F16_CONSTEXPR TTo hwy::ConvertScalarTo (const TFrom in)
 
template<typename TTo , typename TFrom , HWY_IF_BF16(TFrom) , HWY_IF_NOT_SPECIAL_FLOAT(TTo) >
HWY_API HWY_BF16_CONSTEXPR TTo hwy::ConvertScalarTo (TFrom in)
 
template<typename TTo >
HWY_API constexpr TTo hwy::ConvertScalarTo (TTo in)
 
template<typename T1 , typename T2 >
constexpr T1 hwy::DivCeil (T1 a, T2 b)
 
constexpr size_t hwy::RoundUpTo (size_t what, size_t align)
 
constexpr size_t hwy::RoundDownTo (size_t what, size_t align)
 
template<class T >
static HWY_INLINE constexpr T hwy::detail::ScalarShr (hwy::UnsignedTag, T val, int shift_amt)
 
template<class T >
static HWY_INLINE constexpr T hwy::detail::ScalarShr (hwy::SignedTag, T val, int shift_amt)
 
template<class T , HWY_IF_INTEGER(RemoveCvRef< T >) >
HWY_API constexpr RemoveCvRef< T > hwy::ScalarShr (T val, int shift_amt)
 
HWY_API size_t hwy::Num0BitsBelowLS1Bit_Nonzero32 (const uint32_t x)
 
HWY_API size_t hwy::Num0BitsBelowLS1Bit_Nonzero64 (const uint64_t x)
 
HWY_API size_t hwy::Num0BitsAboveMS1Bit_Nonzero32 (const uint32_t x)
 
HWY_API size_t hwy::Num0BitsAboveMS1Bit_Nonzero64 (const uint64_t x)
 
template<class T , HWY_IF_INTEGER(RemoveCvRef< T >) , HWY_IF_T_SIZE_ONE_OF(RemoveCvRef< T >,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API size_t hwy::PopCount (T x)
 
template<typename TI >
constexpr size_t hwy::FloorLog2 (TI x)
 
template<typename TI >
constexpr size_t hwy::CeilLog2 (TI x)
 
template<typename T , typename T2 , HWY_IF_FLOAT(T) , HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_INLINE constexpr T hwy::AddWithWraparound (T t, T2 increment)
 
template<typename T , typename T2 , HWY_IF_SPECIAL_FLOAT(T) >
HWY_INLINE constexpr T hwy::AddWithWraparound (T t, T2 increment)
 
HWY_API uint64_t hwy::Mul128 (uint64_t a, uint64_t b, uint64_t *HWY_RESTRICT upper)
 
HWY_API int64_t hwy::Mul128 (int64_t a, int64_t b, int64_t *HWY_RESTRICT upper)
 
template<typename T >
static HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPRhwy::detail::ScalarAbs (hwy::FloatTag, T val)
 
template<typename T >
static HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPRhwy::detail::ScalarAbs (hwy::SpecialTag, T val)
 
template<typename T >
static HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPRhwy::detail::ScalarAbs (hwy::SignedTag, T val)
 
template<typename T >
static HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPRhwy::detail::ScalarAbs (hwy::UnsignedTag, T val)
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPR RemoveCvRef< T > hwy::ScalarAbs (T val)
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPR bool hwy::ScalarIsNaN (T val)
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPR bool hwy::ScalarIsInf (T val)
 
template<typename T >
static HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR bool hwy::detail::ScalarIsFinite (hwy::FloatTag, T val)
 
template<typename T >
static HWY_INLINE HWY_BITCASTSCALAR_CONSTEXPR bool hwy::detail::ScalarIsFinite (hwy::NonFloatTag, T)
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPR bool hwy::ScalarIsFinite (T val)
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPR RemoveCvRef< T > hwy::ScalarCopySign (T magn, T sign)
 
template<typename T >
HWY_API HWY_BITCASTSCALAR_CONSTEXPR bool hwy::ScalarSignBit (T val)
 
template<class T >
HWY_API void hwy::PreventElision (T &&output)
 

Variables

HWY_DLLEXPORT HWY_NORETURN void int hwy::line
 
HWY_DLLEXPORT HWY_NORETURN void int const char * hwy::format
 
static constexpr HWY_MAYBE_UNUSED size_t hwy::kMaxVectorSize = 16
 

Macro Definition Documentation

◆ __STDC_FORMAT_MACROS

#define __STDC_FORMAT_MACROS

◆ HWY_ABORT

#define HWY_ABORT ( format,
... )    ::hwy::Abort(__FILE__, __LINE__, format, ##__VA_ARGS__)

◆ HWY_ALIGN_MAX

#define HWY_ALIGN_MAX   alignas(16)

◆ HWY_API

#define HWY_API   static HWY_INLINE HWY_FLATTEN HWY_MAYBE_UNUSED

◆ HWY_ARM_HAVE_SCALAR_BF16_TYPE

#define HWY_ARM_HAVE_SCALAR_BF16_TYPE   0

◆ HWY_ASSERT

#define HWY_ASSERT ( condition)

◆ HWY_ASSUME

#define HWY_ASSUME ( expr)    static_cast<void>(0)

◆ HWY_ASSUME_ALIGNED

#define HWY_ASSUME_ALIGNED ( ptr,
align )   (ptr) /* not supported */

◆ HWY_ATTR_NO_MSAN

#define HWY_ATTR_NO_MSAN

◆ HWY_BF16_CONSTEXPR

#define HWY_BF16_CONSTEXPR   HWY_BITCASTSCALAR_CONSTEXPR

◆ HWY_BF16_TO_F16_CONSTEXPR

#define HWY_BF16_TO_F16_CONSTEXPR   HWY_F16_CONSTEXPR

◆ HWY_BITCASTSCALAR_CONSTEXPR

#define HWY_BITCASTSCALAR_CONSTEXPR

◆ HWY_BITCASTSCALAR_CXX14_CONSTEXPR

#define HWY_BITCASTSCALAR_CXX14_CONSTEXPR

◆ HWY_CONCAT

#define HWY_CONCAT ( a,
b )   HWY_CONCAT_IMPL(a, b)

◆ HWY_CONCAT_IMPL

#define HWY_CONCAT_IMPL ( a,
b )   a##b

◆ HWY_CXX14_CONSTEXPR

#define HWY_CXX14_CONSTEXPR

◆ HWY_CXX17_CONSTEXPR

#define HWY_CXX17_CONSTEXPR

◆ HWY_CXX_LANG

#define HWY_CXX_LANG   __cplusplus

◆ HWY_DASSERT

#define HWY_DASSERT ( condition)    HWY_ASSERT(condition)

Referenced by hwy::BlockUntilDifferent(), hwy::HWY_NAMESPACE::Broadcast(), hwy::PoolCommands::Broadcast(), hwy::HWY_NAMESPACE::Compress(), hwy::HWY_NAMESPACE::detail::CompressBits(), hwy::HWY_NAMESPACE::CompressNot(), hwy::HWY_NAMESPACE::detail::CompressNotBits(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Copy(), hwy::HWY_NAMESPACE::CopyIf(), hwy::HWY_NAMESPACE::detail::CountAndReplaceNaN(), hwy::HWY_NAMESPACE::ExtractLane(), hwy::HWY_NAMESPACE::ExtractLane(), hwy::HWY_NAMESPACE::ExtractLane(), hwy::HWY_NAMESPACE::Fill(), hwy::HWY_NAMESPACE::Find(), hwy::HWY_NAMESPACE::FindIf(), hwy::HWY_NAMESPACE::Foreach(), hwy::HWY_NAMESPACE::GatherIndex(), hwy::HWY_NAMESPACE::GatherIndex(), hwy::HWY_NAMESPACE::GatherIndex(), hwy::HWY_NAMESPACE::GatherIndex(), hwy::HWY_NAMESPACE::GatherOffset(), hwy::HWY_NAMESPACE::GatherOffset(), hwy::HWY_NAMESPACE::GatherOffset(), hwy::HWY_NAMESPACE::Generate(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IndicesForExpandFromBits(), hwy::HWY_NAMESPACE::detail::IndicesFromBits128(), hwy::HWY_NAMESPACE::detail::IndicesFromNotBits128(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::InsertLane(), hwy::HWY_NAMESPACE::InsertLane(), hwy::HWY_NAMESPACE::detail::LargerSortValue(), hwy::HWY_NAMESPACE::MaskedGatherIndex(), hwy::HWY_NAMESPACE::MaskedGatherIndex(), hwy::HWY_NAMESPACE::MaskedGatherIndexOr(), hwy::HWY_NAMESPACE::MaskedGatherIndexOr(), hwy::HWY_NAMESPACE::MaskedGatherIndexOr(), hwy::HWY_NAMESPACE::MaskedGatherIndexOr(), hwy::HWY_NAMESPACE::MatVecAddImpl(), hwy::Mirror(), hwy::ShuffledIota::Next(), hwy::Num0BitsAboveMS1Bit_Nonzero32(), hwy::Num0BitsAboveMS1Bit_Nonzero64(), hwy::Num0BitsBelowLS1Bit_Nonzero32(), hwy::Num0BitsBelowLS1Bit_Nonzero64(), hwy::Span< T >::operator=(), hwy::ParallelFor::Plan(), hwy::PoolWorker::PoolWorker(), hwy::HWY_NAMESPACE::Replace(), hwy::HWY_NAMESPACE::ReplaceIf(), hwy::HWY_NAMESPACE::Reverse(), hwy::ThreadPool::Run(), hwy::ThreadPool::SetWaitMode(), hwy::HWY_NAMESPACE::detail::SmallerSortValue(), hwy::ThreadPool::ThreadFunc(), hwy::HWY_NAMESPACE::Transform(), hwy::HWY_NAMESPACE::Transform1(), hwy::HWY_NAMESPACE::Transform2(), hwy::WakeAll(), and hwy::ParallelFor::WorkerRun().

◆ HWY_DEFAULT_UNROLL

#define HWY_DEFAULT_UNROLL

◆ HWY_DIAGNOSTICS

#define HWY_DIAGNOSTICS ( tokens)    HWY_PRAGMA(GCC diagnostic tokens)

◆ HWY_DIAGNOSTICS_OFF

#define HWY_DIAGNOSTICS_OFF ( msc,
gcc )   HWY_DIAGNOSTICS(gcc)

◆ HWY_F16_CONSTEXPR

#define HWY_F16_CONSTEXPR   HWY_BITCASTSCALAR_CXX14_CONSTEXPR

◆ HWY_F16_FROM_F32_DASSERT

#define HWY_F16_FROM_F32_DASSERT ( condition)    HWY_DASSERT(condition)

Referenced by hwy::F16FromF32().

◆ HWY_FENCE

#define HWY_FENCE

◆ HWY_FLATTEN

#define HWY_FLATTEN   __attribute__((flatten))

◆ HWY_FORMAT

#define HWY_FORMAT ( idx_fmt,
idx_arg )

◆ HWY_HAVE_CXX20_THREE_WAY_COMPARE

#define HWY_HAVE_CXX20_THREE_WAY_COMPARE   0

◆ HWY_HAVE_SCALAR_BF16_OPERATORS

#define HWY_HAVE_SCALAR_BF16_OPERATORS   0

◆ HWY_HAVE_SCALAR_BF16_TYPE

#define HWY_HAVE_SCALAR_BF16_TYPE   0

◆ HWY_HAVE_SCALAR_F16_OPERATORS

#define HWY_HAVE_SCALAR_F16_OPERATORS   0

◆ HWY_HAVE_SCALAR_F16_TYPE

#define HWY_HAVE_SCALAR_F16_TYPE   0

◆ HWY_IF_ASSIGNABLE

#define HWY_IF_ASSIGNABLE ( T,
From )    hwy::EnableIf<IsAssignable<T, From>()>* = nullptr

◆ HWY_IF_BF16

#define HWY_IF_BF16 ( T)    HWY_IF_SAME(T, hwy::bfloat16_t)

◆ HWY_IF_CASTABLE

#define HWY_IF_CASTABLE ( From,
To )    hwy::EnableIf<IsStaticCastable<From, To>()>* = nullptr

◆ HWY_IF_CONSTEXPR

#define HWY_IF_CONSTEXPR   if

◆ HWY_IF_F16

#define HWY_IF_F16 ( T)    HWY_IF_SAME(T, hwy::float16_t)

◆ HWY_IF_F32

#define HWY_IF_F32 ( T)    HWY_IF_SAME(T, float)

◆ HWY_IF_F64

#define HWY_IF_F64 ( T)    HWY_IF_SAME(T, double)

◆ HWY_IF_FLOAT

#define HWY_IF_FLOAT ( T)    hwy::EnableIf<hwy::IsFloat<T>()>* = nullptr

◆ HWY_IF_FLOAT3264

#define HWY_IF_FLOAT3264 ( T)    hwy::EnableIf<hwy::IsFloat3264<T>()>* = nullptr

◆ HWY_IF_FLOAT_OR_SPECIAL

#define HWY_IF_FLOAT_OR_SPECIAL ( T)     hwy::EnableIf<hwy::IsFloat<T>() || hwy::IsSpecialFloat<T>()>* = nullptr

◆ HWY_IF_I16

#define HWY_IF_I16 ( T)    HWY_IF_SAME(T, int16_t)

◆ HWY_IF_I32

#define HWY_IF_I32 ( T)    HWY_IF_SAME(T, int32_t)

◆ HWY_IF_I64

#define HWY_IF_I64 ( T)    HWY_IF_SAME(T, int64_t)

◆ HWY_IF_I8

#define HWY_IF_I8 ( T)    HWY_IF_SAME(T, int8_t)

◆ HWY_IF_INTEGER

#define HWY_IF_INTEGER ( T)    hwy::EnableIf<hwy::IsInteger<T>()>* = nullptr

◆ HWY_IF_LANES

#define HWY_IF_LANES ( kN,
lanes )   hwy::EnableIf<(kN == lanes)>* = nullptr

◆ HWY_IF_LANES_GT

#define HWY_IF_LANES_GT ( kN,
lanes )   hwy::EnableIf<(kN > lanes)>* = nullptr

◆ HWY_IF_LANES_LE

#define HWY_IF_LANES_LE ( kN,
lanes )   hwy::EnableIf<(kN <= lanes)>* = nullptr

◆ HWY_IF_LANES_PER_BLOCK

#define HWY_IF_LANES_PER_BLOCK ( T,
N,
LANES )    hwy::EnableIf<HWY_MIN(sizeof(T) * N, 16) / sizeof(T) == (LANES)>* = nullptr

◆ HWY_IF_NOT_BF16

#define HWY_IF_NOT_BF16 ( T)    HWY_IF_NOT_SAME(T, hwy::bfloat16_t)

◆ HWY_IF_NOT_F16

#define HWY_IF_NOT_F16 ( T)    HWY_IF_NOT_SAME(T, hwy::float16_t)

◆ HWY_IF_NOT_FLOAT

#define HWY_IF_NOT_FLOAT ( T)    hwy::EnableIf<!hwy::IsFloat<T>()>* = nullptr

◆ HWY_IF_NOT_FLOAT3264

#define HWY_IF_NOT_FLOAT3264 ( T)    hwy::EnableIf<!hwy::IsFloat3264<T>()>* = nullptr

◆ HWY_IF_NOT_FLOAT_NOR_SPECIAL

#define HWY_IF_NOT_FLOAT_NOR_SPECIAL ( T)     hwy::EnableIf<!hwy::IsFloat<T>() && !hwy::IsSpecialFloat<T>()>* = nullptr

◆ HWY_IF_NOT_SAME

#define HWY_IF_NOT_SAME ( T,
expected )    hwy::EnableIf<!hwy::IsSame<hwy::RemoveCvRef<T>, expected>()>* = nullptr

◆ HWY_IF_NOT_SPECIAL_FLOAT

#define HWY_IF_NOT_SPECIAL_FLOAT ( T)     hwy::EnableIf<!hwy::IsSpecialFloat<T>()>* = nullptr

◆ HWY_IF_NOT_T_SIZE

#define HWY_IF_NOT_T_SIZE ( T,
bytes )    hwy::EnableIf<sizeof(T) != (bytes)>* = nullptr

◆ HWY_IF_NOT_UNSIGNED

#define HWY_IF_NOT_UNSIGNED ( T)    hwy::EnableIf<hwy::IsSigned<T>()>* = nullptr

◆ HWY_IF_OP_CASTABLE

#define HWY_IF_OP_CASTABLE ( op,
T,
Native )    HWY_IF_CASTABLE(decltype(DeclVal<Native>() op DeclVal<T>()), Native)

◆ HWY_IF_SAME

#define HWY_IF_SAME ( T,
expected )    hwy::EnableIf<hwy::IsSame<hwy::RemoveCvRef<T>, expected>()>* = nullptr

◆ HWY_IF_SAME2

#define HWY_IF_SAME2 ( T,
expected1,
expected2 )
Value:
hwy::IsSameEither<hwy::RemoveCvRef<T>, expected1, expected2>()>* = \
nullptr
typename EnableIfT< Condition >::type EnableIf
Definition base.h:486

◆ HWY_IF_SIGNED

#define HWY_IF_SIGNED ( T)
Value:
hwy::EnableIf<hwy::IsSigned<T>() && !hwy::IsFloat<T>() && \
!hwy::IsSpecialFloat<T>()>* = nullptr

◆ HWY_IF_SPECIAL_FLOAT

#define HWY_IF_SPECIAL_FLOAT ( T)     hwy::EnableIf<hwy::IsSpecialFloat<T>()>* = nullptr

◆ HWY_IF_T_SIZE

#define HWY_IF_T_SIZE ( T,
bytes )   hwy::EnableIf<sizeof(T) == (bytes)>* = nullptr

◆ HWY_IF_T_SIZE_GT

#define HWY_IF_T_SIZE_GT ( T,
bytes )    hwy::EnableIf<(sizeof(T) > (bytes))>* = nullptr

◆ HWY_IF_T_SIZE_LE

#define HWY_IF_T_SIZE_LE ( T,
bytes )    hwy::EnableIf<(sizeof(T) <= (bytes))>* = nullptr

◆ HWY_IF_T_SIZE_ONE_OF

#define HWY_IF_T_SIZE_ONE_OF ( T,
bit_array )    hwy::EnableIf<((size_t{1} << sizeof(T)) & (bit_array)) != 0>* = nullptr

◆ HWY_IF_U16

#define HWY_IF_U16 ( T)    HWY_IF_SAME(T, uint16_t)

◆ HWY_IF_U32

#define HWY_IF_U32 ( T)    HWY_IF_SAME(T, uint32_t)

◆ HWY_IF_U64

#define HWY_IF_U64 ( T)    HWY_IF_SAME(T, uint64_t)

◆ HWY_IF_U8

#define HWY_IF_U8 ( T)    HWY_IF_SAME(T, uint8_t)

◆ HWY_IF_UI16

#define HWY_IF_UI16 ( T)    HWY_IF_SAME2(T, uint16_t, int16_t)

◆ HWY_IF_UI32

#define HWY_IF_UI32 ( T)    HWY_IF_SAME2(T, uint32_t, int32_t)

◆ HWY_IF_UI64

#define HWY_IF_UI64 ( T)    HWY_IF_SAME2(T, uint64_t, int64_t)

◆ HWY_IF_UI8

#define HWY_IF_UI8 ( T)    HWY_IF_SAME2(T, uint8_t, int8_t)

◆ HWY_IF_UNSIGNED

#define HWY_IF_UNSIGNED ( T)    hwy::EnableIf<!hwy::IsSigned<T>()>* = nullptr

◆ HWY_IF_V_SIZE

#define HWY_IF_V_SIZE ( T,
kN,
bytes )    hwy::EnableIf<kN * sizeof(T) == bytes>* = nullptr

◆ HWY_IF_V_SIZE_GT

#define HWY_IF_V_SIZE_GT ( T,
kN,
bytes )    hwy::EnableIf<(kN * sizeof(T) > bytes)>* = nullptr

◆ HWY_IF_V_SIZE_LE

#define HWY_IF_V_SIZE_LE ( T,
kN,
bytes )    hwy::EnableIf<kN * sizeof(T) <= bytes>* = nullptr

◆ HWY_INLINE

#define HWY_INLINE   inline

◆ HWY_IS_ASAN

#define HWY_IS_ASAN   0

◆ HWY_IS_DEBUG_BUILD

#define HWY_IS_DEBUG_BUILD   1

◆ HWY_IS_MSAN

#define HWY_IS_MSAN   0

◆ HWY_IS_TSAN

#define HWY_IS_TSAN   0

◆ HWY_IS_UBSAN

#define HWY_IS_UBSAN   0

◆ HWY_LIKELY

#define HWY_LIKELY ( expr)    __builtin_expect(!!(expr), 1)

◆ HWY_MAX

#define HWY_MAX ( a,
b )   ((a) > (b) ? (a) : (b))

◆ HWY_MAYBE_UNUSED

#define HWY_MAYBE_UNUSED   __attribute__((unused))

◆ HWY_MIN

#define HWY_MIN ( a,
b )   ((a) < (b) ? (a) : (b))

Referenced by hwy::HWY_NAMESPACE::AdjustedLog2Reps(), hwy::SortConstants::BaseCaseNumLanes(), hwy::HWY_NAMESPACE::detail::CastValueForF2IConv(), hwy::HWY_NAMESPACE::detail::CastValueForInRangeF2IConv(), hwy::HWY_NAMESPACE::CompressBitsStore(), hwy::detail::ComputeUlpDelta(), hwy::ShuffledIota::CoprimeNonzero(), hwy::HWY_NAMESPACE::DemoteTo(), hwy::HWY_NAMESPACE::DemoteTo(), hwy::F16FromF32(), hwy::HWY_NAMESPACE::FirstN(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), hwy::HWY_NAMESPACE::LoadN(), hwy::HWY_NAMESPACE::LoadN(), hwy::HWY_NAMESPACE::LoadNOr(), hwy::HWY_NAMESPACE::Min(), hwy::HWY_NAMESPACE::detail::Min(), hwy::HWY_NAMESPACE::detail::Min(), hwy::HWY_NAMESPACE::MLenFromD(), hwy::PoolWorker::PoolWorker(), hwy::RandomFiniteValue(), hwy::HWY_NAMESPACE::ReduceMin(), hwy::HWY_NAMESPACE::ReorderDemote2To(), hwy::HWY_NAMESPACE::ResizeBitCast(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::StoreN(), and hwy::HWY_NAMESPACE::StoreN().

◆ HWY_MUST_USE_RESULT

#define HWY_MUST_USE_RESULT   __attribute__((warn_unused_result))

◆ HWY_NEON_HAVE_F16C

#define HWY_NEON_HAVE_F16C   0

◆ HWY_NOINLINE

#define HWY_NOINLINE   __attribute__((noinline))

◆ HWY_NORETURN

#define HWY_NORETURN   __attribute__((noreturn))

◆ HWY_POP_ATTRIBUTES

#define HWY_POP_ATTRIBUTES

◆ HWY_PRAGMA

#define HWY_PRAGMA ( tokens)    _Pragma(#tokens)

◆ HWY_PUSH_ATTRIBUTES

#define HWY_PUSH_ATTRIBUTES ( targets_str)

◆ HWY_RCAST_ALIGNED

#define HWY_RCAST_ALIGNED ( type,
ptr )    reinterpret_cast<type>(HWY_ASSUME_ALIGNED((ptr), alignof(RemovePtr<type>)))

◆ HWY_REP4

#define HWY_REP4 ( literal)    literal, literal, literal, literal

◆ HWY_RESTRICT

#define HWY_RESTRICT   __restrict__

◆ HWY_RVV_HAVE_F16_VEC

#define HWY_RVV_HAVE_F16_VEC   0

◆ HWY_SSE2_HAVE_F16_TYPE

#define HWY_SSE2_HAVE_F16_TYPE   0

◆ HWY_SSE2_HAVE_SCALAR_BF16_TYPE

#define HWY_SSE2_HAVE_SCALAR_BF16_TYPE   0

◆ HWY_STR

#define HWY_STR ( macro)    HWY_STR_IMPL(macro)

◆ HWY_STR_IMPL

#define HWY_STR_IMPL ( macro)    #macro

◆ HWY_UNLIKELY

#define HWY_UNLIKELY ( expr)    __builtin_expect(!!(expr), 0)

◆ HWY_UNROLL

#define HWY_UNROLL ( factor)