Grok 10.0.5
shared-inl.h File Reference
#include <math.h>
#include "hwy/base.h"
#include "hwy/ops/set_macros-inl.h"

Go to the source code of this file.

Classes

struct  hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >
 
struct  hwy::HWY_NAMESPACE::detail::ScalableTagChecker< T, kPow2 >
 
struct  hwy::HWY_NAMESPACE::detail::CappedTagChecker< T, kLimit >
 
struct  hwy::HWY_NAMESPACE::detail::FixedTagChecker< T, kNumLanes >
 

Namespaces

namespace  hwy
 
namespace  hwy::HWY_NAMESPACE
 
namespace  hwy::HWY_NAMESPACE::detail
 

Macros

#define HWY_IF_UNSIGNED_D(D)
 
#define HWY_IF_SIGNED_D(D)
 
#define HWY_IF_FLOAT_D(D)
 
#define HWY_IF_NOT_FLOAT_D(D)
 
#define HWY_IF_LANE_SIZE_D(D, bytes)
 
#define HWY_IF_NOT_LANE_SIZE_D(D, bytes)
 
#define HWY_IF_LANE_SIZE_ONE_OF_D(D, bit_array)
 
#define HWY_IF_LT128_D(D)
 
#define HWY_IF_GE128_D(D)
 
#define HWY_IF_UNSIGNED_V(V)
 
#define HWY_IF_SIGNED_V(V)
 
#define HWY_IF_FLOAT_V(V)
 
#define HWY_IF_LANE_SIZE_V(V, bytes)
 
#define HWY_IF_NOT_LANE_SIZE_V(V, bytes)
 
#define HWY_IF_LANE_SIZE_ONE_OF_V(V, bit_array)
 
#define HWY_IF_POW2_GE(D, MIN)
 

Typedefs

template<typename T , int kPow2 = 0>
using hwy::HWY_NAMESPACE::ScalableTag = typename detail::ScalableTagChecker<T, kPow2>::type
 
template<typename T , size_t kLimit>
using hwy::HWY_NAMESPACE::CappedTag = typename detail::CappedTagChecker<T, kLimit>::type
 
template<typename T , size_t kNumLanes>
using hwy::HWY_NAMESPACE::FixedTag = typename detail::FixedTagChecker<T, kNumLanes>::type
 
template<class D >
using hwy::HWY_NAMESPACE::TFromD = typename D::T
 
template<class T , class D >
using hwy::HWY_NAMESPACE::Rebind = typename D::template Rebind<T>
 
template<class D >
using hwy::HWY_NAMESPACE::RebindToSigned = Rebind<MakeSigned<TFromD<D>>, D>
 
template<class D >
using hwy::HWY_NAMESPACE::RebindToUnsigned = Rebind<MakeUnsigned<TFromD<D>>, D>
 
template<class D >
using hwy::HWY_NAMESPACE::RebindToFloat = Rebind<MakeFloat<TFromD<D>>, D>
 
template<class T , class D >
using hwy::HWY_NAMESPACE::Repartition = typename D::template Repartition<T>
 
template<class D >
using hwy::HWY_NAMESPACE::RepartitionToWide = Repartition<MakeWide<TFromD<D>>, D>
 
template<class D >
using hwy::HWY_NAMESPACE::RepartitionToNarrow = Repartition<MakeNarrow<TFromD<D>>, D>
 
template<class D >
using hwy::HWY_NAMESPACE::Half = typename D::Half
 
template<class D >
using hwy::HWY_NAMESPACE::Twice = typename D::Twice
 
template<typename T >
using hwy::HWY_NAMESPACE::Full16 = Simd<T, 2 / sizeof(T), 0>
 
template<typename T >
using hwy::HWY_NAMESPACE::Full32 = Simd<T, 4 / sizeof(T), 0>
 
template<typename T >
using hwy::HWY_NAMESPACE::Full64 = Simd<T, 8 / sizeof(T), 0>
 
template<class V >
using hwy::HWY_NAMESPACE::VecArg = V
 

Functions

 HWY_BEFORE_NAMESPACE ()
 
template<typename T , size_t N, int kPow2>
constexpr bool hwy::HWY_NAMESPACE::detail::IsFull (Simd< T, N, kPow2 >)
 
constexpr size_t hwy::HWY_NAMESPACE::detail::ScaleByPower (size_t N, int pow2)
 
template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr int hwy::HWY_NAMESPACE::Pow2 (D)
 
template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t hwy::HWY_NAMESPACE::MaxLanes (D)
 
template<typename T , size_t N, int kPow2>
HWY_INLINE HWY_MAYBE_UNUSED size_t hwy::HWY_NAMESPACE::Lanes (Simd< T, N, kPow2 >)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HWY_IF_FLOAT_D

#define HWY_IF_FLOAT_D ( D)
Value:
HWY_IF_FLOAT(TFromD<D>)
#define HWY_IF_FLOAT(T)
Definition base.h:417

◆ HWY_IF_FLOAT_V

#define HWY_IF_FLOAT_V ( V)
Value:
HWY_IF_FLOAT(TFromV<V>)

◆ HWY_IF_GE128_D

#define HWY_IF_GE128_D ( D)
Value:
hwy::EnableIf<D::kPrivateN * sizeof(TFromD<D>) >= 16>* = nullptr
typename EnableIfT< Condition >::type EnableIf
Definition base.h:383

◆ HWY_IF_LANE_SIZE_D

#define HWY_IF_LANE_SIZE_D ( D,
bytes )
Value:
HWY_IF_LANE_SIZE(TFromD<D>, bytes)
#define HWY_IF_LANE_SIZE(T, bytes)
Definition base.h:420

◆ HWY_IF_LANE_SIZE_ONE_OF_D

#define HWY_IF_LANE_SIZE_ONE_OF_D ( D,
bit_array )
Value:
HWY_IF_LANE_SIZE_ONE_OF(TFromD<D>, bit_array)
#define HWY_IF_LANE_SIZE_ONE_OF(T, bit_array)
Definition base.h:427

◆ HWY_IF_LANE_SIZE_ONE_OF_V

#define HWY_IF_LANE_SIZE_ONE_OF_V ( V,
bit_array )
Value:
HWY_IF_LANE_SIZE_ONE_OF(TFromV<V>, bit_array)

◆ HWY_IF_LANE_SIZE_V

#define HWY_IF_LANE_SIZE_V ( V,
bytes )
Value:
HWY_IF_LANE_SIZE(TFromV<V>, bytes)

◆ HWY_IF_LT128_D

#define HWY_IF_LT128_D ( D)
Value:
hwy::EnableIf<D::kPrivateN * sizeof(TFromD<D>) < 16>* = nullptr

◆ HWY_IF_NOT_FLOAT_D

#define HWY_IF_NOT_FLOAT_D ( D)
Value:
HWY_IF_NOT_FLOAT(TFromD<D>)
#define HWY_IF_NOT_FLOAT(T)
Definition base.h:418

◆ HWY_IF_NOT_LANE_SIZE_D

#define HWY_IF_NOT_LANE_SIZE_D ( D,
bytes )
Value:
HWY_IF_NOT_LANE_SIZE(TFromD<D>, bytes)
#define HWY_IF_NOT_LANE_SIZE(T, bytes)
Definition base.h:422

◆ HWY_IF_NOT_LANE_SIZE_V

#define HWY_IF_NOT_LANE_SIZE_V ( V,
bytes )
Value:
HWY_IF_NOT_LANE_SIZE(TFromV<V>, bytes)

◆ HWY_IF_POW2_GE

#define HWY_IF_POW2_GE ( D,
MIN )
Value:
hwy::EnableIf<Pow2<D>(D()) >= (MIN)>* = nullptr

◆ HWY_IF_SIGNED_D

#define HWY_IF_SIGNED_D ( D)
Value:
HWY_IF_SIGNED(TFromD<D>)
#define HWY_IF_SIGNED(T)
Definition base.h:415

◆ HWY_IF_SIGNED_V

#define HWY_IF_SIGNED_V ( V)
Value:
HWY_IF_SIGNED(TFromV<V>)

◆ HWY_IF_UNSIGNED_D

#define HWY_IF_UNSIGNED_D ( D)
Value:
HWY_IF_UNSIGNED(TFromD<D>)
#define HWY_IF_UNSIGNED(T)
Definition base.h:414

◆ HWY_IF_UNSIGNED_V

#define HWY_IF_UNSIGNED_V ( V)
Value:
HWY_IF_UNSIGNED(TFromV<V>)

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )