Grok 12.0.1
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Static Private Member Functions | Static Private Attributes | List of all members
hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 > Struct Template Reference

#include <shared-inl.h>

Public Types

using T = Lane
 
template<typename NewT >
using Rebind
 
template<typename NewT >
using Repartition
 
using Half = Simd<T, N, kPow2 - 1>
 
using Twice = Simd<T, N, kPow2 + 1>
 

Public Member Functions

constexpr Simd ()=default
 
constexpr size_t MaxLanes () const
 
constexpr size_t MaxBytes () const
 
constexpr size_t MaxBlocks () const
 
constexpr int Pow2 () const
 

Static Public Member Functions

template<typename NewT >
static constexpr size_t RepartitionLanes ()
 
template<typename NewT >
static constexpr int RebindPow2 ()
 
template<int kNewPow2, size_t kNewMaxLanes>
static constexpr size_t NewN ()
 

Static Public Attributes

static constexpr size_t kPrivateLanes
 
static constexpr int kPrivatePow2 = kPow2
 

Static Private Member Functions

template<int kNewPow2, size_t kNewMaxLanes>
static constexpr size_t WholeN ()
 
template<int kNewPow2, size_t kNewMaxLanes>
static constexpr size_t FracN ()
 

Static Private Attributes

static constexpr size_t kWhole = N & 0xFFFFF
 
static constexpr int kFrac = static_cast<int>(N >> 20)
 

Member Typedef Documentation

◆ Half

template<typename Lane , size_t N, int kPow2>
using hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::Half = Simd<T, N, kPow2 - 1>

◆ Rebind

template<typename Lane , size_t N, int kPow2>
template<typename NewT >
using hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::Rebind
Initial value:
Simd<NewT, NewN<RebindPow2<NewT>(), kPrivateLanes>(), RebindPow2<NewT>()>
static constexpr size_t kPrivateLanes
Definition ops/shared-inl.h:243

◆ Repartition

template<typename Lane , size_t N, int kPow2>
template<typename NewT >
using hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::Repartition
Initial value:
Simd<NewT, NewN<kPow2, RepartitionLanes<NewT>()>(), kPow2>

◆ T

template<typename Lane , size_t N, int kPow2>
using hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::T = Lane

◆ Twice

template<typename Lane , size_t N, int kPow2>
using hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::Twice = Simd<T, N, kPow2 + 1>

Constructor & Destructor Documentation

◆ Simd()

template<typename Lane , size_t N, int kPow2>
constexpr hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::Simd ( )
constexprdefault

Member Function Documentation

◆ FracN()

template<typename Lane , size_t N, int kPow2>
template<int kNewPow2, size_t kNewMaxLanes>
static constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::FracN ( )
inlinestaticconstexprprivate

References hwy::CeilLog2(), HWY_MAX, and HWY_MAX_N.

◆ MaxBlocks()

template<typename Lane , size_t N, int kPow2>
constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::MaxBlocks ( ) const
inlineconstexpr

◆ MaxBytes()

template<typename Lane , size_t N, int kPow2>
constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::MaxBytes ( ) const
inlineconstexpr

◆ MaxLanes()

template<typename Lane , size_t N, int kPow2>
constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::MaxLanes ( ) const
inlineconstexpr

◆ NewN()

template<typename Lane , size_t N, int kPow2>
template<int kNewPow2, size_t kNewMaxLanes>
static constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::NewN ( )
inlinestaticconstexpr

◆ Pow2()

template<typename Lane , size_t N, int kPow2>
constexpr int hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::Pow2 ( ) const
inlineconstexpr

◆ RebindPow2()

template<typename Lane , size_t N, int kPow2>
template<typename NewT >
static constexpr int hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::RebindPow2 ( )
inlinestaticconstexpr

References hwy::CeilLog2().

◆ RepartitionLanes()

template<typename Lane , size_t N, int kPow2>
template<typename NewT >
static constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::RepartitionLanes ( )
inlinestaticconstexpr

◆ WholeN()

template<typename Lane , size_t N, int kPow2>
template<int kNewPow2, size_t kNewMaxLanes>
static constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::WholeN ( )
inlinestaticconstexprprivate

Member Data Documentation

◆ kFrac

template<typename Lane , size_t N, int kPow2>
constexpr int hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::kFrac = static_cast<int>(N >> 20)
staticconstexprprivate

◆ kPrivateLanes

template<typename Lane , size_t N, int kPow2>
constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::kPrivateLanes
staticconstexpr
Initial value:
=
HWY_MAX(size_t{1}, detail::ScaleByPower(kWhole, kPow2 - kFrac))
#define HWY_MAX(a, b)
Definition base.h:177
constexpr size_t ScaleByPower(size_t N, int pow2)
Definition ops/shared-inl.h:146
static constexpr int kFrac
Definition ops/shared-inl.h:215
static constexpr size_t kWhole
Definition ops/shared-inl.h:213

Referenced by hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::MaxBytes(), hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::MaxLanes(), and hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::RepartitionLanes().

◆ kPrivatePow2

template<typename Lane , size_t N, int kPow2>
constexpr int hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::kPrivatePow2 = kPow2
staticconstexpr

◆ kWhole

template<typename Lane , size_t N, int kPow2>
constexpr size_t hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::kWhole = N & 0xFFFFF
staticconstexprprivate

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