Grok 10.0.3
Namespaces | Classes | Typedefs | Functions | Variables
hwy::HWY_NAMESPACE Namespace Reference

Namespaces

namespace  detail
 
namespace  impl
 

Classes

struct  CompressIsPartition
 
struct  DFromV_t
 
struct  Dot
 
class  ForDemoteVectors
 
class  ForExtendableVectors
 
class  ForGEVectors
 
class  ForHalfVectors
 
class  ForPartialVectors
 
class  ForPromoteVectors
 
class  ForShrinkableVectors
 
struct  Indices1
 
struct  Indices128
 
struct  Indices256
 
struct  Indices512
 
class  Mask1
 
struct  Mask128
 
struct  Mask256
 
struct  Mask512
 
struct  Result
 
struct  SharedState
 
struct  Simd
 
struct  ThreadLocal
 
struct  Vec1
 
class  Vec128
 
class  Vec256
 
class  Vec512
 
class  Xorshift128Plus
 

Typedefs

template<typename T >
using SortTag = ScalableTag< T, -1 >
 
template<typename T >
using Vec64 = Vec128< T, 8/sizeof(T)>
 
template<typename T >
using Vec32 = Vec128< T, 4/sizeof(T)>
 
template<typename T >
using Mask64 = Mask128< T, 8/sizeof(T)>
 
template<class V >
using DFromV = decltype(detail::DeduceD()(V()))
 
template<class V >
using TFromV = TFromD< DFromV< V > >
 
template<class D >
using VFromD = decltype(Zero(D()))
 
template<typename T >
using Full128 = Simd< T, 16/sizeof(T), 0 >
 
template<class V >
using LaneType = decltype(GetLane(V()))
 
template<class D >
using Vec = decltype(Zero(D()))
 
template<class D >
using Mask = decltype(MaskFromVec(Zero(D())))
 
template<class D >
using MFromD = decltype(MaskFromVec(Zero(D())))
 
template<class DF >
using DU16FromDF = RepartitionToNarrow< RebindToUnsigned< DF > >
 
template<typename T >
using Sisd = Simd< T, 1, 0 >
 
template<typename T , int kPow2 = 0>
using ScalableTag = typename detail::ScalableTagChecker< T, kPow2 >::type
 
template<typename T , size_t kLimit>
using CappedTag = typename detail::CappedTagChecker< T, kLimit >::type
 
template<typename T , size_t kNumLanes>
using FixedTag = typename detail::FixedTagChecker< T, kNumLanes >::type
 
template<class D >
using TFromD = typename D::T
 
template<class T , class D >
using Rebind = typename D::template Rebind< T >
 
template<class D >
using RebindToSigned = Rebind< MakeSigned< TFromD< D > >, D >
 
template<class D >
using RebindToUnsigned = Rebind< MakeUnsigned< TFromD< D > >, D >
 
template<class D >
using RebindToFloat = Rebind< MakeFloat< TFromD< D > >, D >
 
template<class T , class D >
using Repartition = typename D::template Repartition< T >
 
template<class D >
using RepartitionToWide = Repartition< MakeWide< TFromD< D > >, D >
 
template<class D >
using RepartitionToNarrow = Repartition< MakeNarrow< TFromD< D > >, D >
 
template<class D >
using Half = typename D::Half
 
template<class D >
using Twice = typename D::Twice
 
template<typename T >
using Full32 = Simd< T, 4/sizeof(T), 0 >
 
template<typename T >
using Full64 = Simd< T, 8/sizeof(T), 0 >
 
template<class V >
using VecArg = V
 
template<typename T >
using Full256 = Simd< T, 32/sizeof(T), 0 >
 
template<typename T >
using Full512 = Simd< T, 64/sizeof(T), 0 >
 
using GatherIndex64 = long long int
 
template<class Test >
using ForGE128Vectors = ForGEVectors< 128, Test >
 

Functions

template<class D , typename T = TFromD<D>>
void Fill (D d, T value, size_t count, T *HWY_RESTRICT to)
 
template<class D , typename T = TFromD<D>>
void Copy (D d, const T *HWY_RESTRICT from, size_t count, T *HWY_RESTRICT to)
 
template<class D , class Func , typename T = TFromD<D>>
T * CopyIf (D d, const T *HWY_RESTRICT from, size_t count, T *HWY_RESTRICT to, const Func &func)
 
template<class D , typename T = TFromD<D>>
size_t Find (D d, T value, const T *HWY_RESTRICT in, size_t count)
 
template<class D , class Func , typename T = TFromD<D>>
size_t FindIf (D d, const T *HWY_RESTRICT in, size_t count, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Generate (D d, T *HWY_RESTRICT out, size_t count, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Transform (D d, T *HWY_RESTRICT inout, size_t count, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Transform1 (D d, T *HWY_RESTRICT inout, size_t count, const T *HWY_RESTRICT in1, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Transform2 (D d, T *HWY_RESTRICT inout, size_t count, const T *HWY_RESTRICT in1, const T *HWY_RESTRICT in2, const Func &func)
 
template<class D , typename T = TFromD<D>>
void Replace (D d, T *HWY_RESTRICT inout, size_t count, T new_t, T old_t)
 
template<class D , class Func , typename T = TFromD<D>>
void ReplaceIf (D d, T *HWY_RESTRICT inout, size_t count, T new_t, const Func &func)
 
template<class D , class V >
HWY_INLINEAcos (const D d, V x)
 Highway SIMD version of std::acos(x). More...
 
template<class D , class V >
HWY_NOINLINECallAcos (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAcosh (const D d, V x)
 Highway SIMD version of std::acosh(x). More...
 
template<class D , class V >
HWY_NOINLINECallAcosh (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAsin (const D d, V x)
 Highway SIMD version of std::asin(x). More...
 
template<class D , class V >
HWY_NOINLINECallAsin (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAsinh (const D d, V x)
 Highway SIMD version of std::asinh(x). More...
 
template<class D , class V >
HWY_NOINLINECallAsinh (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAtan (const D d, V x)
 Highway SIMD version of std::atan(x). More...
 
template<class D , class V >
HWY_NOINLINECallAtan (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAtanh (const D d, V x)
 Highway SIMD version of std::atanh(x). More...
 
template<class D , class V >
HWY_NOINLINECallAtanh (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINECos (const D d, V x)
 Highway SIMD version of std::cos(x). More...
 
template<class D , class V >
HWY_NOINLINECallCos (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEExp (const D d, V x)
 Highway SIMD version of std::exp(x). More...
 
template<class D , class V >
HWY_NOINLINECallExp (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEExpm1 (const D d, V x)
 Highway SIMD version of std::expm1(x). More...
 
template<class D , class V >
HWY_NOINLINECallExpm1 (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINELog (const D d, V x)
 Highway SIMD version of std::log(x). More...
 
template<class D , class V >
HWY_NOINLINECallLog (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINELog10 (const D d, V x)
 Highway SIMD version of std::log10(x). More...
 
template<class D , class V >
HWY_NOINLINECallLog10 (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINELog1p (const D d, V x)
 Highway SIMD version of std::log1p(x). More...
 
template<class D , class V >
HWY_NOINLINECallLog1p (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINELog2 (const D d, V x)
 Highway SIMD version of std::log2(x). More...
 
template<class D , class V >
HWY_NOINLINECallLog2 (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINESin (const D d, V x)
 Highway SIMD version of std::sin(x). More...
 
template<class D , class V >
HWY_NOINLINECallSin (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINESinh (const D d, V x)
 Highway SIMD version of std::sinh(x). More...
 
template<class D , class V >
HWY_NOINLINECallSinh (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINETanh (const D d, V x)
 Highway SIMD version of std::tanh(x). More...
 
template<class D , class V >
HWY_NOINLINECallTanh (const D d, VecArg< V > x)
 
template<typename T , class DU64 , HWY_IF_NOT_FLOAT(T) >
Vec< DU64 > RandomValues (DU64 du64, Vec< DU64 > &s0, Vec< DU64 > &s1, const Vec< DU64 > mask)
 
template<class DU64 >
Vec< DU64 > MaskForDist (DU64 du64, const Dist dist, size_t sizeof_t)
 
template<typename T >
InputStats< T > GenerateInput (const Dist dist, T *v, size_t num)
 
template<class Order , typename KeyType , HWY_IF_NOT_LANE_SIZE(KeyType, 16) >
void CallHeapSort (KeyType *HWY_RESTRICT keys, const size_t num_keys)
 
template<class Order , typename KeyType >
void Run (Algo algo, KeyType *HWY_RESTRICT inout, size_t num, SharedState &shared, size_t thread)
 
template<class Traits , typename LaneType >
bool VerifySort (Traits st, const InputStats< LaneType > &input_stats, const LaneType *out, size_t num_lanes, const char *caller)
 
template<class D , class Traits , typename T >
void Sort (D d, Traits st, T *HWY_RESTRICT keys, size_t num, T *HWY_RESTRICT buf)
 
template<typename T , size_t N, typename FromT >
HWY_API Vec128< T, NBitCast (Simd< T, N, 0 > d, Vec128< FromT, N *sizeof(T)/sizeof(FromT)> v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NZero (Simd< T, N, 0 > d)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, NZero (Simd< bfloat16_t, N, 0 >)
 
template<typename T , size_t N>
HWY_API Vec128< T, NUndefined (Simd< T, N, 0 >)
 
template<typename T , size_t N, typename T2 >
Vec128< T, NIota (const Simd< T, N, 0 > d, const T2 first)
 
template<class V >
HWY_API TFromV< V > GetLane (const V v)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 1 > v, size_t i)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 2 > v, size_t i)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 4 > v, size_t i)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 8 > v, size_t i)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 16 > v, size_t i)
 
template<typename T >
HWY_API Vec128< T, 1 > InsertLane (const Vec128< T, 1 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 2 > InsertLane (const Vec128< T, 2 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 4 > InsertLane (const Vec128< T, 4 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 8 > InsertLane (const Vec128< T, 8 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 16 > InsertLane (const Vec128< T, 16 > v, size_t i, T t)
 
HWY_API Vec128< uint64_t > SumsOf8 (const Vec128< uint8_t > v)
 
HWY_API Vec64< uint64_t > SumsOf8 (const Vec64< uint8_t > v)
 
 HWY_NEON_DEF_FUNCTION_INT_8_16_32 (Neg, vneg, _, 1) HWY_API Vec64< int64_t > Neg(const Vec64< int64_t > v)
 
HWY_API Vec128< int64_t > Neg (const Vec128< int64_t > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, NRotateRight (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, NRotateRight (const Vec128< uint64_t, N > v)
 
HWY_API Vec128< uint8_t > operator<< (const Vec128< uint8_t > v, const Vec128< uint8_t > bits)
 
template<size_t N, HWY_IF_LE64(uint8_t, N) >
HWY_API Vec128< uint8_t, Noperator<< (const Vec128< uint8_t, N > v, const Vec128< uint8_t, N > bits)
 
HWY_API Vec128< uint16_t > operator<< (const Vec128< uint16_t > v, const Vec128< uint16_t > bits)
 
template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, Noperator<< (const Vec128< uint16_t, N > v, const Vec128< uint16_t, N > bits)
 
HWY_API Vec128< uint32_t > operator<< (const Vec128< uint32_t > v, const Vec128< uint32_t > bits)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, Noperator<< (const Vec128< uint32_t, N > v, const Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint64_t > operator<< (const Vec128< uint64_t > v, const Vec128< uint64_t > bits)
 
HWY_API Vec64< uint64_t > operator<< (const Vec64< uint64_t > v, const Vec64< uint64_t > bits)
 
HWY_API Vec128< int8_t > operator<< (const Vec128< int8_t > v, const Vec128< int8_t > bits)
 
template<size_t N, HWY_IF_LE64(int8_t, N) >
HWY_API Vec128< int8_t, Noperator<< (const Vec128< int8_t, N > v, const Vec128< int8_t, N > bits)
 
HWY_API Vec128< int16_t > operator<< (const Vec128< int16_t > v, const Vec128< int16_t > bits)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, Noperator<< (const Vec128< int16_t, N > v, const Vec128< int16_t, N > bits)
 
HWY_API Vec128< int32_t > operator<< (const Vec128< int32_t > v, const Vec128< int32_t > bits)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, Noperator<< (const Vec128< int32_t, N > v, const Vec128< int32_t, N > bits)
 
HWY_API Vec128< int64_t > operator<< (const Vec128< int64_t > v, const Vec128< int64_t > bits)
 
HWY_API Vec64< int64_t > operator<< (const Vec64< int64_t > v, const Vec64< int64_t > bits)
 
HWY_API Vec128< uint8_t > operator>> (const Vec128< uint8_t > v, const Vec128< uint8_t > bits)
 
template<size_t N, HWY_IF_LE64(uint8_t, N) >
HWY_API Vec128< uint8_t, Noperator>> (const Vec128< uint8_t, N > v, const Vec128< uint8_t, N > bits)
 
HWY_API Vec128< uint16_t > operator>> (const Vec128< uint16_t > v, const Vec128< uint16_t > bits)
 
template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, Noperator>> (const Vec128< uint16_t, N > v, const Vec128< uint16_t, N > bits)
 
HWY_API Vec128< uint32_t > operator>> (const Vec128< uint32_t > v, const Vec128< uint32_t > bits)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, Noperator>> (const Vec128< uint32_t, N > v, const Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint64_t > operator>> (const Vec128< uint64_t > v, const Vec128< uint64_t > bits)
 
HWY_API Vec64< uint64_t > operator>> (const Vec64< uint64_t > v, const Vec64< uint64_t > bits)
 
HWY_API Vec128< int8_t > operator>> (const Vec128< int8_t > v, const Vec128< int8_t > bits)
 
template<size_t N, HWY_IF_LE64(int8_t, N) >
HWY_API Vec128< int8_t, Noperator>> (const Vec128< int8_t, N > v, const Vec128< int8_t, N > bits)
 
HWY_API Vec128< int16_t > operator>> (const Vec128< int16_t > v, const Vec128< int16_t > bits)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, Noperator>> (const Vec128< int16_t, N > v, const Vec128< int16_t, N > bits)
 
HWY_API Vec128< int32_t > operator>> (const Vec128< int32_t > v, const Vec128< int32_t > bits)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, Noperator>> (const Vec128< int32_t, N > v, const Vec128< int32_t, N > bits)
 
HWY_API Vec128< int64_t > operator>> (const Vec128< int64_t > v, const Vec128< int64_t > bits)
 
HWY_API Vec64< int64_t > operator>> (const Vec64< int64_t > v, const Vec64< int64_t > bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, NShiftLeftSame (const Vec128< T, N > v, int bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, NShiftRightSame (const Vec128< T, N > v, int bits)
 
HWY_API Vec128< uint16_t > operator* (const Vec128< uint16_t > a, const Vec128< uint16_t > b)
 
HWY_API Vec128< uint32_t > operator* (const Vec128< uint32_t > a, const Vec128< uint32_t > b)
 
template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, Noperator* (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, Noperator* (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
HWY_API Vec128< int16_t > operator* (const Vec128< int16_t > a, const Vec128< int16_t > b)
 
HWY_API Vec128< int32_t > operator* (const Vec128< int32_t > a, const Vec128< int32_t > b)
 
template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< int16_t, Noperator* (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, Noperator* (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
HWY_API Vec128< int16_t > MulHigh (const Vec128< int16_t > a, const Vec128< int16_t > b)
 
HWY_API Vec128< uint16_t > MulHigh (const Vec128< uint16_t > a, const Vec128< uint16_t > b)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, NMulHigh (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, NMulHigh (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
HWY_API Vec128< int16_t > MulFixedPoint15 (Vec128< int16_t > a, Vec128< int16_t > b)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, NMulFixedPoint15 (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
HWY_API Vec128< float > ApproximateReciprocal (const Vec128< float > v)
 
template<size_t N>
HWY_API Vec128< float, NApproximateReciprocal (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, Noperator/ (const Vec128< float, N > a, const Vec128< float, N > b)
 
HWY_API Vec128< float > AbsDiff (const Vec128< float > a, const Vec128< float > b)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, NAbsDiff (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< float, NMulAdd (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > add)
 
template<size_t N>
HWY_API Vec128< float, NNegMulAdd (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > add)
 
template<size_t N>
HWY_API Vec128< float, NMulSub (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > sub)
 
template<size_t N>
HWY_API Vec128< float, NNegMulSub (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > sub)
 
HWY_API Vec128< float > ApproximateReciprocalSqrt (const Vec128< float > v)
 
template<size_t N>
HWY_API Vec128< float, NApproximateReciprocalSqrt (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, NSqrt (const Vec128< float, N > v)
 
template<typename T >
HWY_API Vec128< T > Not (const Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, NNot (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NAnd (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, NAndNot (const Vec128< T, N > not_mask, const Vec128< T, N > mask)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NOr (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NXor (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NOr3 (Vec128< T, N > o1, Vec128< T, N > o2, Vec128< T, N > o3)
 
template<typename T , size_t N>
HWY_API Vec128< T, NOrAnd (Vec128< T, N > o, Vec128< T, N > a1, Vec128< T, N > a2)
 
template<typename T , size_t N>
HWY_API Vec128< T, NIfVecThenElse (Vec128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, Noperator& (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Noperator| (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Noperator^ (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, NPopulationCount (Vec128< T, N > v)
 
HWY_API Vec128< int8_t > Abs (const Vec128< int8_t > v)
 
HWY_API Vec128< int16_t > Abs (const Vec128< int16_t > v)
 
HWY_API Vec128< int32_t > Abs (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Abs (const Vec128< float > v)
 
template<size_t N, HWY_IF_LE64(int8_t, N) >
HWY_API Vec128< int8_t, NAbs (const Vec128< int8_t, N > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, NAbs (const Vec128< int16_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, NAbs (const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, NAbs (const Vec128< float, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NCopySign (const Vec128< T, N > magn, const Vec128< T, N > sign)
 
template<typename T , size_t N>
HWY_API Vec128< T, NCopySignToAbs (const Vec128< T, N > abs, const Vec128< T, N > sign)
 
template<typename T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, NBroadcastSignBit (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, NMaskFromVec (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NVecFromMask (Simd< T, N, 0 > d, const Mask128< T, N > v)
 
template<typename TFrom , typename TTo , size_t N>
HWY_API Mask128< TTo, NRebindMask (Simd< TTo, N, 0 > dto, Mask128< TFrom, N > m)
 
template<typename T , size_t N>
HWY_API Vec128< T, NIfThenElseZero (const Mask128< T, N > mask, const Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_API Vec128< T, NIfThenZeroElse (const Mask128< T, N > mask, const Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, NIfNegativeThenElse (Vec128< T, N > v, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, NZeroIfNegative (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, NNot (const Mask128< T, N > m)
 
template<typename T , size_t N>
HWY_API Mask128< T, NAnd (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, NAndNot (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, NOr (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, NXor (const Mask128< T, N > a, Mask128< T, N > b)
 
HWY_API Vec64< uint32_t > Shuffle2301 (const Vec64< uint32_t > v)
 
HWY_API Vec64< int32_t > Shuffle2301 (const Vec64< int32_t > v)
 
HWY_API Vec64< float > Shuffle2301 (const Vec64< float > v)
 
HWY_API Vec128< uint32_t > Shuffle2301 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle2301 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle2301 (const Vec128< float > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, Noperator> (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Noperator>= (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, NFirstN (const Simd< T, N, 0 > d, size_t num)
 
template<size_t N>
HWY_API Mask128< uint64_t, NTestBit (Vec128< uint64_t, N > v, Vec128< uint64_t, N > bit)
 
template<size_t N>
HWY_API Mask128< int64_t, NTestBit (Vec128< int64_t, N > v, Vec128< int64_t, N > bit)
 
HWY_API Vec128< int64_t > Abs (const Vec128< int64_t > v)
 
HWY_API Vec64< int64_t > Abs (const Vec64< int64_t > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, NMin (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, NMin (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, NMax (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, NMax (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
HWY_API Vec128< uint8_t > LoadU (Full128< uint8_t >, const uint8_t *HWY_RESTRICT unaligned)
 
HWY_API Vec128< uint16_t > LoadU (Full128< uint16_t >, const uint16_t *HWY_RESTRICT unaligned)
 
HWY_API Vec128< uint32_t > LoadU (Full128< uint32_t >, const uint32_t *HWY_RESTRICT unaligned)
 
HWY_API Vec128< uint64_t > LoadU (Full128< uint64_t >, const uint64_t *HWY_RESTRICT unaligned)
 
HWY_API Vec128< int8_t > LoadU (Full128< int8_t >, const int8_t *HWY_RESTRICT unaligned)
 
HWY_API Vec128< int16_t > LoadU (Full128< int16_t >, const int16_t *HWY_RESTRICT unaligned)
 
HWY_API Vec128< int32_t > LoadU (Full128< int32_t >, const int32_t *HWY_RESTRICT unaligned)
 
HWY_API Vec128< int64_t > LoadU (Full128< int64_t >, const int64_t *HWY_RESTRICT unaligned)
 
HWY_API Vec128< float > LoadU (Full128< float >, const float *HWY_RESTRICT unaligned)
 
HWY_API Vec64< uint8_t > LoadU (Full64< uint8_t >, const uint8_t *HWY_RESTRICT p)
 
HWY_API Vec64< uint16_t > LoadU (Full64< uint16_t >, const uint16_t *HWY_RESTRICT p)
 
HWY_API Vec64< uint32_t > LoadU (Full64< uint32_t >, const uint32_t *HWY_RESTRICT p)
 
HWY_API Vec64< uint64_t > LoadU (Full64< uint64_t >, const uint64_t *HWY_RESTRICT p)
 
HWY_API Vec64< int8_t > LoadU (Full64< int8_t >, const int8_t *HWY_RESTRICT p)
 
HWY_API Vec64< int16_t > LoadU (Full64< int16_t >, const int16_t *HWY_RESTRICT p)
 
HWY_API Vec64< int32_t > LoadU (Full64< int32_t >, const int32_t *HWY_RESTRICT p)
 
HWY_API Vec64< int64_t > LoadU (Full64< int64_t >, const int64_t *HWY_RESTRICT p)
 
HWY_API Vec64< float > LoadU (Full64< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec32< uint32_t > LoadU (Full32< uint32_t >, const uint32_t *HWY_RESTRICT p)
 
HWY_API Vec32< int32_t > LoadU (Full32< int32_t >, const int32_t *HWY_RESTRICT p)
 
HWY_API Vec32< float > LoadU (Full32< float >, const float *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE_LT(T, 4) >
HWY_API Vec32< T > LoadU (Full32< T > d, const T *HWY_RESTRICT p)
 
HWY_API Vec128< uint16_t, 1 > LoadU (Simd< uint16_t, 1, 0 >, const uint16_t *HWY_RESTRICT p)
 
HWY_API Vec128< int16_t, 1 > LoadU (Simd< int16_t, 1, 0 >, const int16_t *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE_LT(T, 2) >
HWY_API Vec128< T, 2 > LoadU (Simd< T, 2, 0 > d, const T *HWY_RESTRICT p)
 
HWY_API Vec128< uint8_t, 1 > LoadU (Simd< uint8_t, 1, 0 >, const uint8_t *HWY_RESTRICT p)
 
HWY_API Vec128< int8_t, 1 > LoadU (Simd< int8_t, 1, 0 >, const int8_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< float16_t, NLoadU (Simd< float16_t, N, 0 > d, const float16_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, NLoadU (Simd< bfloat16_t, N, 0 > d, const bfloat16_t *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API Vec128< T, NLoad (Simd< T, N, 0 > d, const T *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API Vec128< T, NMaskedLoad (Mask128< T, N > m, Simd< T, N, 0 > d, const T *HWY_RESTRICT aligned)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, NLoadDup128 (Simd< T, N, 0 > d, const T *const HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint8_t > v, Full128< uint8_t >, uint8_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec128< uint16_t > v, Full128< uint16_t >, uint16_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec128< uint32_t > v, Full128< uint32_t >, uint32_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec128< uint64_t > v, Full128< uint64_t >, uint64_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec128< int8_t > v, Full128< int8_t >, int8_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec128< int16_t > v, Full128< int16_t >, int16_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec128< int32_t > v, Full128< int32_t >, int32_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec128< int64_t > v, Full128< int64_t >, int64_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec128< float > v, Full128< float >, float *HWY_RESTRICT unaligned)
 
HWY_API void StoreU (const Vec64< uint8_t > v, Full64< uint8_t >, uint8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec64< uint16_t > v, Full64< uint16_t >, uint16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec64< uint32_t > v, Full64< uint32_t >, uint32_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec64< uint64_t > v, Full64< uint64_t >, uint64_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec64< int8_t > v, Full64< int8_t >, int8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec64< int16_t > v, Full64< int16_t >, int16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec64< int32_t > v, Full64< int32_t >, int32_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec64< int64_t > v, Full64< int64_t >, int64_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec64< float > v, Full64< float >, float *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec32< uint32_t > v, Full32< uint32_t >, uint32_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec32< int32_t > v, Full32< int32_t >, int32_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec32< float > v, Full32< float >, float *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE_LT(T, 4) >
HWY_API void StoreU (const Vec32< T > v, Full32< T > d, T *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint16_t, 1 > v, Simd< uint16_t, 1, 0 >, uint16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int16_t, 1 > v, Simd< int16_t, 1, 0 >, int16_t *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE_LT(T, 2) >
HWY_API void StoreU (const Vec128< T, 2 > v, Simd< T, 2, 0 > d, T *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint8_t, 1 > v, Simd< uint8_t, 1, 0 >, uint8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int8_t, 1 > v, Simd< int8_t, 1, 0 >, int8_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void StoreU (Vec128< float16_t, N > v, Simd< float16_t, N, 0 > d, float16_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void StoreU (Vec128< bfloat16_t, N > v, Simd< bfloat16_t, N, 0 > d, bfloat16_t *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API void Store (Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT aligned)
 
template<typename T , size_t N>
HWY_API void BlendedStore (Vec128< T, N > v, Mask128< T, N > m, Simd< T, N, 0 > d, T *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API void Stream (const Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT aligned)
 
HWY_API Vec128< uint16_t > PromoteTo (Full128< uint16_t >, const Vec64< uint8_t > v)
 
HWY_API Vec128< uint32_t > PromoteTo (Full128< uint32_t >, const Vec32< uint8_t > v)
 
HWY_API Vec128< uint32_t > PromoteTo (Full128< uint32_t >, const Vec64< uint16_t > v)
 
HWY_API Vec128< uint64_t > PromoteTo (Full128< uint64_t >, const Vec64< uint32_t > v)
 
HWY_API Vec128< int16_t > PromoteTo (Full128< int16_t > d, const Vec64< uint8_t > v)
 
HWY_API Vec128< int32_t > PromoteTo (Full128< int32_t > d, const Vec32< uint8_t > v)
 
HWY_API Vec128< int32_t > PromoteTo (Full128< int32_t > d, const Vec64< uint16_t > v)
 
template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, NPromoteTo (Simd< uint16_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, NPromoteTo (Simd< uint32_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint32_t, NPromoteTo (Simd< uint32_t, N, 0 >, const Vec128< uint16_t, N > v)
 
template<size_t N, HWY_IF_LE64(uint64_t, N) >
HWY_API Vec128< uint64_t, NPromoteTo (Simd< uint64_t, N, 0 >, const Vec128< uint32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, NPromoteTo (Simd< int16_t, N, 0 > d, const Vec128< uint8_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, NPromoteTo (Simd< int32_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, NPromoteTo (Simd< int32_t, N, 0 >, const Vec128< uint16_t, N > v)
 
HWY_API Vec128< int16_t > PromoteTo (Full128< int16_t >, const Vec64< int8_t > v)
 
HWY_API Vec128< int32_t > PromoteTo (Full128< int32_t >, const Vec32< int8_t > v)
 
HWY_API Vec128< int32_t > PromoteTo (Full128< int32_t >, const Vec64< int16_t > v)
 
HWY_API Vec128< int64_t > PromoteTo (Full128< int64_t >, const Vec64< int32_t > v)
 
template<size_t N>
HWY_API Vec128< int16_t, NPromoteTo (Simd< int16_t, N, 0 >, const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NPromoteTo (Simd< int32_t, N, 0 >, const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NPromoteTo (Simd< int32_t, N, 0 >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, NPromoteTo (Simd< int64_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, NPromoteTo (Simd< float, N, 0 > df32, const Vec128< float16_t, N > v)
 
HWY_API Vec64< uint16_t > DemoteTo (Full64< uint16_t >, const Vec128< int32_t > v)
 
HWY_API Vec64< int16_t > DemoteTo (Full64< int16_t >, const Vec128< int32_t > v)
 
HWY_API Vec32< uint8_t > DemoteTo (Full32< uint8_t >, const Vec128< int32_t > v)
 
HWY_API Vec64< uint8_t > DemoteTo (Full64< uint8_t >, const Vec128< int16_t > v)
 
HWY_API Vec32< int8_t > DemoteTo (Full32< int8_t >, const Vec128< int32_t > v)
 
HWY_API Vec64< int8_t > DemoteTo (Full64< int8_t >, const Vec128< int16_t > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< uint16_t, NDemoteTo (Simd< uint16_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int16_t, NDemoteTo (Simd< int16_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< uint8_t, NDemoteTo (Simd< uint8_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< uint8_t, NDemoteTo (Simd< uint8_t, N, 0 >, const Vec128< int16_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int8_t, NDemoteTo (Simd< int8_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int8_t, NDemoteTo (Simd< int8_t, N, 0 >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< float16_t, NDemoteTo (Simd< float16_t, N, 0 > df16, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, NDemoteTo (Simd< bfloat16_t, N, 0 > dbf16, const Vec128< float, N > v)
 
HWY_API Vec32< uint8_t > U8FromU32 (const Vec128< uint32_t > v)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint8_t, NU8FromU32 (const Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, NDemoteTo (Simd< uint8_t, N, 0 >, const Vec128< int32_t > v)
 
template<size_t N>
HWY_API Vec128< int8_t, NDemoteTo (Simd< int8_t, N, 0 >, const Vec128< int32_t > v)
 
HWY_API Vec128< float > ConvertTo (Full128< float >, const Vec128< int32_t > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< float, NConvertTo (Simd< float, N, 0 >, const Vec128< int32_t, N > v)
 
HWY_API Vec128< int32_t > ConvertTo (Full128< int32_t >, const Vec128< float > v)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< int32_t, NConvertTo (Simd< int32_t, N, 0 >, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, NTrunc (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, NRound (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, NCeil (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, NFloor (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NNearestInt (const Vec128< float, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, NIsNaN (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, NIsInf (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, NIsFinite (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LE64(uint8_t, N) >
HWY_API Vec128< T, N/2 > LowerHalf (const Vec128< T, N > v)
 
HWY_API Vec64< uint8_t > LowerHalf (const Vec128< uint8_t > v)
 
HWY_API Vec64< uint16_t > LowerHalf (const Vec128< uint16_t > v)
 
HWY_API Vec64< uint32_t > LowerHalf (const Vec128< uint32_t > v)
 
HWY_API Vec64< uint64_t > LowerHalf (const Vec128< uint64_t > v)
 
HWY_API Vec64< int8_t > LowerHalf (const Vec128< int8_t > v)
 
HWY_API Vec64< int16_t > LowerHalf (const Vec128< int16_t > v)
 
HWY_API Vec64< int32_t > LowerHalf (const Vec128< int32_t > v)
 
HWY_API Vec64< int64_t > LowerHalf (const Vec128< int64_t > v)
 
HWY_API Vec64< float > LowerHalf (const Vec128< float > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N/2 > LowerHalf (Simd< T, N/2, 0 >, Vec128< T, N > v)
 
template<int kBytes, typename T , class V128 = Vec128<T>>
HWY_API V128 CombineShiftRightBytes (Full128< T > d, V128 hi, V128 lo)
 
template<int kBytes, typename T >
HWY_API Vec64< T > CombineShiftRightBytes (Full64< T > d, Vec64< T > hi, Vec64< T > lo)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, NShiftLeftBytes (Simd< T, N, 0 >, Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, NShiftLeftBytes (const Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, NShiftLeftLanes (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, NShiftLeftLanes (const Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, NShiftRightBytes (Simd< T, N, 0 >, Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, NShiftRightLanes (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N, HWY_IF_LE32(T, N) >
HWY_API Vec128< T, NCombineShiftRightBytes (Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
HWY_API Vec64< uint8_t > UpperHalf (Full64< uint8_t >, const Vec128< uint8_t > v)
 
HWY_API Vec64< uint16_t > UpperHalf (Full64< uint16_t >, const Vec128< uint16_t > v)
 
HWY_API Vec64< uint32_t > UpperHalf (Full64< uint32_t >, const Vec128< uint32_t > v)
 
HWY_API Vec64< uint64_t > UpperHalf (Full64< uint64_t >, const Vec128< uint64_t > v)
 
HWY_API Vec64< int8_t > UpperHalf (Full64< int8_t >, const Vec128< int8_t > v)
 
HWY_API Vec64< int16_t > UpperHalf (Full64< int16_t >, const Vec128< int16_t > v)
 
HWY_API Vec64< int32_t > UpperHalf (Full64< int32_t >, const Vec128< int32_t > v)
 
HWY_API Vec64< int64_t > UpperHalf (Full64< int64_t >, const Vec128< int64_t > v)
 
HWY_API Vec64< float > UpperHalf (Full64< float >, const Vec128< float > v)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T,(N+1)/2 > UpperHalf (Half< Simd< T, N, 0 > >, Vec128< T, N > v)
 
template<int kLane>
HWY_API Vec128< uint16_t > Broadcast (const Vec128< uint16_t > v)
 
template<int kLane, size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, NBroadcast (const Vec128< uint16_t, N > v)
 
template<int kLane>
HWY_API Vec128< uint32_t > Broadcast (const Vec128< uint32_t > v)
 
template<int kLane, size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, NBroadcast (const Vec128< uint32_t, N > v)
 
template<int kLane>
HWY_API Vec128< uint64_t > Broadcast (const Vec128< uint64_t > v)
 
template<int kLane>
HWY_API Vec128< int16_t > Broadcast (const Vec128< int16_t > v)
 
template<int kLane, size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, NBroadcast (const Vec128< int16_t, N > v)
 
template<int kLane>
HWY_API Vec128< int32_t > Broadcast (const Vec128< int32_t > v)
 
template<int kLane, size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, NBroadcast (const Vec128< int32_t, N > v)
 
template<int kLane>
HWY_API Vec128< int64_t > Broadcast (const Vec128< int64_t > v)
 
template<int kLane>
HWY_API Vec128< float > Broadcast (const Vec128< float > v)
 
template<int kLane, size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, NBroadcast (const Vec128< float, N > v)
 
template<int kLane>
HWY_API Vec64< uint64_t > Broadcast (const Vec64< uint64_t > v)
 
template<int kLane>
HWY_API Vec64< int64_t > Broadcast (const Vec64< int64_t > v)
 
template<typename T , size_t N, typename TI , HWY_IF_LE128(T, N) >
HWY_API Indices128< T, NIndicesFromVec (Simd< T, N, 0 > d, Vec128< TI, N > vec)
 
template<typename T , size_t N, typename TI , HWY_IF_LE128(T, N) >
HWY_API Indices128< T, NSetTableIndices (Simd< T, N, 0 > d, const TI *idx)
 
template<typename T , size_t N>
HWY_API Vec128< T, NTableLookupLanes (Vec128< T, N > v, Indices128< T, N > idx)
 
template<typename T >
HWY_API Vec128< T, 1 > Reverse (Simd< T, 1, 0 >, const Vec128< T, 1 > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, 2 > Reverse (Simd< T, 2, 0 >, const Vec128< T, 2 > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > Reverse (Full128< T >, const Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, NReverse (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) , HWY_IF_LE64(T, N) >
HWY_API Vec128< T, NReverse2 (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T > Reverse2 (Full128< T > d, const Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T, NReverse2 (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) , HWY_IF_LE64(T, N) >
HWY_API Vec128< T, NReverse4 (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T > Reverse4 (Full128< T > d, const Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, NReverse4 (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, NReverse8 (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle1032 (const Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle01 (const Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle0321 (const Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle2103 (const Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle0123 (const Vec128< T > v)
 
HWY_API Vec128< uint64_t > InterleaveLower (const Vec128< uint64_t > a, const Vec128< uint64_t > b)
 
HWY_API Vec128< int64_t > InterleaveLower (const Vec128< int64_t > a, const Vec128< int64_t > b)
 
HWY_API Vec128< float > InterleaveLower (const Vec128< float > a, const Vec128< float > b)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, NInterleaveLower (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<typename T , size_t N, HWY_IF_LE32(T, N) >
HWY_API Vec128< T, NInterleaveLower (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, class V = Vec128<T, N>>
HWY_APIInterleaveLower (Simd< T, N, 0 >, V a, V b)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) , class V = Vec128<T, N>>
HWY_APIInterleaveUpper (Simd< T, N, 0 >, V a, V b)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > ZipLower (V a, V b)
 
template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipLower (DW dw, V a, V b)
 
template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipUpper (DW dw, V a, V b)
 
template<size_t N>
HWY_API Vec128< float, NReorderWidenMulAccumulate (Simd< float, N, 0 > df32, Vec128< bfloat16_t, 2 *N > a, Vec128< bfloat16_t, 2 *N > b, const Vec128< float, N > sum0, Vec128< float, N > &sum1)
 
HWY_API Vec128< uint8_t > Combine (Full128< uint8_t >, Vec64< uint8_t > hi, Vec64< uint8_t > lo)
 
HWY_API Vec128< uint16_t > Combine (Full128< uint16_t >, Vec64< uint16_t > hi, Vec64< uint16_t > lo)
 
HWY_API Vec128< uint32_t > Combine (Full128< uint32_t >, Vec64< uint32_t > hi, Vec64< uint32_t > lo)
 
HWY_API Vec128< uint64_t > Combine (Full128< uint64_t >, Vec64< uint64_t > hi, Vec64< uint64_t > lo)
 
HWY_API Vec128< int8_t > Combine (Full128< int8_t >, Vec64< int8_t > hi, Vec64< int8_t > lo)
 
HWY_API Vec128< int16_t > Combine (Full128< int16_t >, Vec64< int16_t > hi, Vec64< int16_t > lo)
 
HWY_API Vec128< int32_t > Combine (Full128< int32_t >, Vec64< int32_t > hi, Vec64< int32_t > lo)
 
HWY_API Vec128< int64_t > Combine (Full128< int64_t >, Vec64< int64_t > hi, Vec64< int64_t > lo)
 
HWY_API Vec128< float > Combine (Full128< float >, Vec64< float > hi, Vec64< float > lo)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, NCombine (Simd< T, N, 0 > d, Vec128< T, N/2 > hi, Vec128< T, N/2 > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, NZeroExtendVector (Simd< T, N, 0 > d, Vec128< T, N/2 > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, NConcatLowerLower (const Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, NConcatUpperUpper (const Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, NConcatLowerUpper (const Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, NConcatUpperLower (Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N, hwy::EnableIf< N !=2 &&sizeof(T) *N > = 8>
N ConcatOdd (Simd< T, N, 0 >, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 4 > ConcatOdd (Simd< T, 4, 0 > d, Vec128< T, 4 > hi, Vec128< T, 4 > lo)
 
template<typename T >
HWY_API Vec128< T, 2 > ConcatOdd (Simd< T, 2, 0 > d, Vec128< T, 2 > hi, Vec128< T, 2 > lo)
 
template<typename T , size_t N, hwy::EnableIf< N !=2 &&sizeof(T) *N > = 8>
N ConcatEven (Simd< T, N, 0 >, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 4 > ConcatEven (Simd< T, 4, 0 > d, Vec128< T, 4 > hi, Vec128< T, 4 > lo)
 
template<typename T >
HWY_API Vec128< T, 2 > ConcatEven (Simd< T, 2, 0 > d, Vec128< T, 2 > hi, Vec128< T, 2 > lo)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, NDupEven (Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, NDupOdd (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NOddEven (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NOddEvenBlocks (Vec128< T, N >, Vec128< T, N > even)
 
template<typename T , size_t N>
HWY_API Vec128< T, NSwapAdjacentBlocks (Vec128< T, N > v)
 
template<typename T >
HWY_API Vec128< T > ReverseBlocks (Full128< T >, const Vec128< T > v)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, 2 *NReorderDemote2To (Simd< bfloat16_t, 2 *N, 0 > dbf16, Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< float, NPromoteTo (Simd< float, N, 0 > df32, const Vec128< bfloat16_t, N > v)
 
HWY_API Vec128< int64_t > MulEven (Vec128< int32_t > a, Vec128< int32_t > b)
 
HWY_API Vec128< uint64_t > MulEven (Vec128< uint32_t > a, Vec128< uint32_t > b)
 
template<size_t N>
HWY_API Vec128< int64_t,(N+1)/2 > MulEven (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > MulEven (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
HWY_INLINE Vec128< uint64_t > MulEven (Vec128< uint64_t > a, Vec128< uint64_t > b)
 
HWY_INLINE Vec128< uint64_t > MulOdd (Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<typename T , typename TI >
HWY_API Vec128< TI > TableLookupBytes (const Vec128< T > bytes, const Vec128< TI > from)
 
template<typename T , typename TI , size_t NI, HWY_IF_LE64(TI, NI) >
HWY_API Vec128< TI, NI > TableLookupBytes (const Vec128< T > bytes, const Vec128< TI, NI > from)
 
template<typename T , size_t N, typename TI , HWY_IF_LE64(T, N) >
HWY_API Vec128< TI > TableLookupBytes (const Vec128< T, N > bytes, const Vec128< TI > from)
 
template<typename T , size_t N, typename TI , size_t NI, HWY_IF_LE64(T, N) , HWY_IF_LE64(TI, NI) >
HWY_API VFromD< Repartition< T, Simd< TI, NI, 0 > > > TableLookupBytes (Vec128< T, N > bytes, Vec128< TI, NI > from)
 
template<class V , class VI >
HWY_API VI TableLookupBytesOr0 (const V bytes, const VI from)
 
template<typename T , size_t N, typename Offset , HWY_IF_LE128(T, N) >
HWY_API void ScatterOffset (Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT base, const Vec128< Offset, N > offset)
 
template<typename T , size_t N, typename Index , HWY_IF_LE128(T, N) >
HWY_API void ScatterIndex (Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT base, const Vec128< Index, N > index)
 
template<typename T , size_t N, typename Offset >
HWY_API Vec128< T, NGatherOffset (const Simd< T, N, 0 > d, const T *HWY_RESTRICT base, const Vec128< Offset, N > offset)
 
template<typename T , size_t N, typename Index >
HWY_API Vec128< T, NGatherIndex (const Simd< T, N, 0 > d, const T *HWY_RESTRICT base, const Vec128< Index, N > index)
 
template<typename T , size_t N>
HWY_API Vec128< T, NSumOfLanes (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NMinOfLanes (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NMaxOfLanes (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, NLoadMaskBits (Simd< T, N, 0 > d, const uint8_t *HWY_RESTRICT bits)
 
template<typename T >
HWY_API size_t CountTrue (Full128< T >, const Mask128< T > mask)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API size_t CountTrue (Simd< T, N, 0 > d, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API intptr_t FindFirstTrue (const Simd< T, N, 0 > d, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API size_t StoreMaskBits (Simd< T, N, 0 >, const Mask128< T, N > mask, uint8_t *bits)
 
template<typename T , size_t N>
HWY_API bool AllFalse (const Simd< T, N, 0 > d, const Mask128< T, N > m)
 
template<typename T >
HWY_API bool AllTrue (const Full128< T > d, const Mask128< T > m)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API bool AllTrue (const Simd< T, N, 0 > d, const Mask128< T, N > m)
 
template<typename T >
HWY_API Vec128< T, 1 > Compress (Vec128< T, 1 > v, Mask128< T, 1 >)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T, NCompress (Vec128< T, N > v, const Mask128< T, N > mask)
 
template<typename T >
HWY_API Vec128< T, 1 > CompressNot (Vec128< T, 1 > v, Mask128< T, 1 >)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > CompressNot (Vec128< T > v, Mask128< T > mask)
 
template<typename T , size_t N, HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API Vec128< T, NCompressNot (Vec128< T, N > v, Mask128< T, N > mask)
 
HWY_API Vec128< uint64_t > CompressBlocksNot (Vec128< uint64_t > v, Mask128< uint64_t >)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, NCompressBits (Vec128< T, N > v, const uint8_t *HWY_RESTRICT bits)
 
template<typename T , size_t N>
HWY_API size_t CompressStore (Vec128< T, N > v, const Mask128< T, N > mask, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N>
HWY_API size_t CompressBlendedStore (Vec128< T, N > v, Mask128< T, N > m, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N>
HWY_API size_t CompressBitsStore (Vec128< T, N > v, const uint8_t *HWY_RESTRICT bits, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_LOAD_INT(T, N) >
HWY_API void LoadInterleaved2 (Simd< T, N, 0 >, const T *HWY_RESTRICT unaligned, Vec128< T, N > &v0, Vec128< T, N > &v1)
 
template<typename T , size_t N, HWY_IF_LOAD_INT(T, N) >
HWY_API void LoadInterleaved3 (Simd< T, N, 0 >, const T *HWY_RESTRICT unaligned, Vec128< T, N > &v0, Vec128< T, N > &v1, Vec128< T, N > &v2)
 
template<typename T , size_t N, HWY_IF_LOAD_INT(T, N) >
HWY_API void LoadInterleaved4 (Simd< T, N, 0 >, const T *HWY_RESTRICT unaligned, Vec128< T, N > &v0, Vec128< T, N > &v1, Vec128< T, N > &v2, Vec128< T, N > &v3)
 
template<typename T , size_t N, HWY_IF_STORE_INT(T, N) >
HWY_API void StoreInterleaved2 (const Vec128< T, N > v0, const Vec128< T, N > v1, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_STORE_INT(T, N) >
HWY_API void StoreInterleaved3 (const Vec128< T, N > v0, const Vec128< T, N > v1, const Vec128< T, N > v2, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_STORE_INT(T, N) >
HWY_API void StoreInterleaved4 (const Vec128< T, N > v0, const Vec128< T, N > v1, const Vec128< T, N > v2, const Vec128< T, N > v3, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_INLINE Mask128< T, NLt128 (Simd< T, N, 0 > d, Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_INLINE Mask128< T, NLt128Upper (Simd< T, N, 0 > d, Vec128< T, N > a, Vec128< T, N > b)
 
template<class D >
HWY_INLINE VFromD< D > Min128 (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE VFromD< D > Max128 (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE VFromD< D > Min128Upper (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE VFromD< D > Max128Upper (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class V >
HWY_APIAdd (V a, V b)
 
template<class V >
HWY_APISub (V a, V b)
 
template<class V >
HWY_APIMul (V a, V b)
 
template<class V >
HWY_APIDiv (V a, V b)
 
template<class V >
Shl (V a, V b)
 
template<class V >
Shr (V a, V b)
 
template<class V >
HWY_API auto Eq (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Ne (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Lt (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Gt (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Ge (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Le (V a, V b) -> decltype(a==b)
 
template<typename T , size_t N, int kPow2>
HWY_API constexpr size_t Lanes (Simd< T, N, kPow2 >)
 
template<size_t N, int kPow2>
svuint16_t Set (Simd< bfloat16_t, N, kPow2 > d, bfloat16_t arg)
 
template<class D >
VFromD< D > Zero (D d)
 
template<class D , class FromV >
HWY_API VFromD< D > BitCast (D d, FromV v)
 
 HWY_SVE_FOREACH_UI (HWY_SVE_RETV_ARGPV, Not, not) namespace detail
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIAnd (const V a, const V b)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIOr (const V a, const V b)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIXor (const V a, const V b)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIAndNot (const V a, const V b)
 
template<class V >
HWY_APIOr3 (V o1, V o2, V o3)
 
template<class V >
HWY_APIOrAnd (const V o, const V a1, const V a2)
 
template<class V >
HWY_APICopySign (const V magn, const V sign)
 
template<class V >
HWY_APICopySignToAbs (const V abs, const V sign)
 
HWY_API svuint64_t SumsOf8 (const svuint8_t v)
 
template<int kBits, class V >
HWY_APIRotateRight (const V v)
 
HWY_API svint16_t MulFixedPoint15 (svint16_t a, svint16_t b)
 
template<class D , typename MFrom >
HWY_API svbool_t RebindMask (const D, const MFrom mask)
 
HWY_API svbool_t Not (svbool_t m)
 
HWY_API svbool_t And (svbool_t a, svbool_t b)
 
HWY_API svbool_t AndNot (svbool_t a, svbool_t b)
 
HWY_API svbool_t Or (svbool_t a, svbool_t b)
 
HWY_API svbool_t Xor (svbool_t a, svbool_t b)
 
template<class D >
HWY_API bool AllFalse (D d, svbool_t m)
 
template<class D >
HWY_API bool AllTrue (D d, svbool_t m)
 
template<class D >
HWY_API intptr_t FindFirstTrue (D d, svbool_t m)
 
template<class V >
HWY_APIIfThenElseZero (const svbool_t mask, const V yes)
 
template<class V >
HWY_APIIfThenZeroElse (const svbool_t mask, const V no)
 
template<class V >
HWY_API svbool_t Gt (const V a, const V b)
 
template<class V >
HWY_API svbool_t Ge (const V a, const V b)
 
template<class V >
HWY_API svbool_t TestBit (const V a, const V bit)
 
template<class V >
HWY_API svbool_t MaskFromVec (const V v)
 
template<class D >
HWY_API VFromD< D > VecFromMask (const D d, svbool_t mask)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIIfVecThenElse (const V mask, const V yes, const V no)
 
template<class V >
HWY_API svbool_t IsNaN (const V v)
 
template<class V >
HWY_API svbool_t IsInf (const V v)
 
template<class V >
HWY_API svbool_t IsFinite (const V v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t Load (Simd< bfloat16_t, N, kPow2 > d, const bfloat16_t *HWY_RESTRICT p)
 
template<size_t N, int kPow2>
HWY_API void Store (svuint16_t v, Simd< bfloat16_t, N, kPow2 > d, bfloat16_t *HWY_RESTRICT p)
 
template<class D >
HWY_API VFromD< D > LoadU (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class V , class D >
HWY_API void StoreU (const V v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<size_t N, int kPow2>
HWY_API svuint32_t PromoteTo (Simd< uint32_t, N, kPow2 > dto, svuint8_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svint32_t PromoteTo (Simd< int32_t, N, kPow2 > dto, svint8_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svint16_t PromoteTo (Simd< int16_t, N, kPow2 > dto, svuint8_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svint32_t PromoteTo (Simd< int32_t, N, kPow2 > dto, svuint16_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svint32_t PromoteTo (Simd< int32_t, N, kPow2 > dto, svuint8_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t PromoteTo (Simd< float32_t, N, kPow2 >, const svfloat16_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat64_t PromoteTo (Simd< float64_t, N, kPow2 >, const svfloat32_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat64_t PromoteTo (Simd< float64_t, N, kPow2 >, const svint32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N, kPow2 > dn, const svint16_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t DemoteTo (Simd< uint16_t, N, kPow2 > dn, const svint32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N, kPow2 > dn, const svint32_t v)
 
HWY_API svuint8_t U8FromU32 (const svuint32_t v)
 
template<size_t N, int kPow2>
HWY_API svint8_t DemoteTo (Simd< int8_t, N, kPow2 > dn, const svint16_t v)
 
template<size_t N, int kPow2>
HWY_API svint16_t DemoteTo (Simd< int16_t, N, kPow2 > dn, const svint32_t v)
 
template<size_t N, int kPow2>
HWY_API svint8_t DemoteTo (Simd< int8_t, N, kPow2 > dn, const svint32_t v)
 
template<class D >
HWY_API VFromD< D > ConcatOdd (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D >
HWY_API VFromD< D > ConcatEven (D d, VFromD< D > hi, VFromD< D > lo)
 
template<size_t N, int kPow2>
HWY_API svfloat16_t DemoteTo (Simd< float16_t, N, kPow2 > d, const svfloat32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t DemoteTo (Simd< bfloat16_t, N, kPow2 >, svfloat32_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t DemoteTo (Simd< float32_t, N, kPow2 > d, const svfloat64_t v)
 
template<size_t N, int kPow2>
HWY_API svint32_t DemoteTo (Simd< int32_t, N, kPow2 > d, const svfloat64_t v)
 
template<class VF , class DI = RebindToSigned<DFromV<VF>>>
HWY_API VFromD< DI > NearestInt (VF v)
 
template<class D , HWY_IF_FLOAT_D(D) >
HWY_API VFromD< D > Iota (const D d, TFromD< D > first)
 
template<class D , class V >
HWY_APIInterleaveLower (D d, const V a, const V b)
 
template<class V >
HWY_APIInterleaveLower (const V a, const V b)
 
template<class D , class V = VFromD<D>, hwy::EnableIf< detail::IsFull(D())> * = nullptr>
HWY_APIInterleaveUpper (D d, const V a, const V b)
 
template<class D , class V >
HWY_APIConcatUpperLower (const D d, const V hi, const V lo)
 
template<class D , class V >
HWY_APIConcatLowerLower (const D d, const V hi, const V lo)
 
template<class D , class V >
HWY_APIConcatLowerUpper (const D d, const V hi, const V lo)
 
template<class D , class V >
HWY_APIConcatUpperUpper (const D d, const V hi, const V lo)
 
template<class D , class V2 >
HWY_API VFromD< D > Combine (const D d, const V2 hi, const V2 lo)
 
template<class D , class V >
HWY_APIZeroExtendVector (const D d, const V lo)
 
template<class D2 , class V >
HWY_APILowerHalf (D2, const V v)
 
template<class V >
HWY_APILowerHalf (const V v)
 
template<class D2 , class V >
HWY_APIUpperHalf (const D2 d2, const V v)
 
template<class D , class V >
SumOfLanes (D d, V v)
 
template<class D , class V >
MinOfLanes (D d, V v)
 
template<class D , class V >
MaxOfLanes (D d, V v)
 
template<class V >
HWY_API TFromV< V > ExtractLane (V v, size_t i)
 
template<class V >
HWY_APIInsertLane (const V v, size_t i, TFromV< V > t)
 
template<class V >
HWY_APIDupEven (const V v)
 
template<class V >
HWY_APIDupOdd (const V v)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIOddEven (const V odd, const V even)
 
template<class V >
HWY_APIOddEvenBlocks (const V odd, const V even)
 
template<class D , class VI >
HWY_API VFromD< RebindToUnsigned< D > > IndicesFromVec (D d, VI vec)
 
template<class D , typename TI >
HWY_API VFromD< RebindToUnsigned< D > > SetTableIndices (D d, const TI *idx)
 
template<class V >
HWY_APISwapAdjacentBlocks (const V v)
 
template<class D , class V >
HWY_APIReverse (D d, V v)
 
template<class D , HWY_IF_LANE_SIZE_D(D, 2) >
HWY_API VFromD< D > Reverse2 (D d, const VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > Reverse4 (D d, const VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > Reverse8 (D d, const VFromD< D > v)
 
template<class V , HWY_IF_LANE_SIZE_V(V, 8) >
HWY_APICompress (V v, svbool_t mask)
 
HWY_API svfloat16_t Compress (svfloat16_t v, svbool_t mask16)
 
template<class V , HWY_IF_NOT_LANE_SIZE_V(V, 8) >
HWY_APICompressNot (V v, const svbool_t mask)
 
HWY_API svuint64_t CompressBlocksNot (svuint64_t v, svbool_t mask)
 
template<class V , class D >
HWY_API size_t CompressStore (const V v, const svbool_t mask, const D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , class D >
HWY_API size_t CompressBlendedStore (const V v, const svbool_t mask, const D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<size_t kBytes, class D , class V = VFromD<D>>
HWY_APICombineShiftRightBytes (const D d, const V hi, const V lo)
 
template<class V >
HWY_APIShuffle2301 (const V v)
 
template<class V >
HWY_APIShuffle2103 (const V v)
 
template<class V >
HWY_APIShuffle0321 (const V v)
 
template<class V >
HWY_APIShuffle1032 (const V v)
 
template<class V >
HWY_APIShuffle01 (const V v)
 
template<class V >
HWY_APIShuffle0123 (const V v)
 
template<class D , class V = VFromD<D>>
HWY_APIReverseBlocks (D d, V v)
 
template<class V , class VI >
HWY_API VI TableLookupBytes (const V v, const VI idx)
 
template<int kLane, class V >
HWY_APIBroadcast (const V v)
 
template<size_t kLanes, class D , class V = VFromD<D>>
HWY_APIShiftLeftLanes (D d, const V v)
 
template<size_t kLanes, class V >
HWY_APIShiftLeftLanes (const V v)
 
template<size_t kLanes, class D , class V = VFromD<D>>
HWY_APIShiftRightLanes (D d, V v)
 
template<int kBytes, class D , class V = VFromD<D>>
HWY_APIShiftLeftBytes (const D d, const V v)
 
template<int kBytes, class V >
HWY_APIShiftLeftBytes (const V v)
 
template<int kBytes, class D , class V = VFromD<D>>
HWY_APIShiftRightBytes (const D d, const V v)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > ZipLower (DW dw, V a, V b)
 
template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipLower (const V a, const V b)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > ZipUpper (DW dw, V a, V b)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t PromoteTo (Simd< float32_t, N, kPow2 > df32, const svuint16_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t ReorderDemote2To (Simd< bfloat16_t, N, kPow2 > dbf16, svfloat32_t a, svfloat32_t b)
 
template<class V >
HWY_APIZeroIfNegative (const V v)
 
template<class V >
HWY_APIBroadcastSignBit (const V v)
 
template<class V >
HWY_APIIfNegativeThenElse (V v, V yes, V no)
 
template<class D , HWY_IF_LANE_SIZE_D(D, 1) >
HWY_INLINE svbool_t LoadMaskBits (D d, const uint8_t *HWY_RESTRICT bits)
 
template<class D >
HWY_API size_t StoreMaskBits (D d, svbool_t m, uint8_t *bits)
 
template<class V >
HWY_INLINECompressBits (V v, const uint8_t *HWY_RESTRICT bits)
 
template<class D >
HWY_API size_t CompressBitsStore (VFromD< D > v, const uint8_t *HWY_RESTRICT bits, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > MulEven (const V a, const V b)
 
HWY_API svuint64_t MulEven (const svuint64_t a, const svuint64_t b)
 
HWY_API svuint64_t MulOdd (const svuint64_t a, const svuint64_t b)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t ReorderWidenMulAccumulate (Simd< float, N, kPow2 > df32, svuint16_t a, svuint16_t b, const svfloat32_t sum0, svfloat32_t &sum1)
 
template<class D >
HWY_INLINE svbool_t Lt128 (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svbool_t Lt128Upper (D d, svuint64_t a, svuint64_t b)
 
template<class D >
HWY_INLINE svuint64_t Min128 (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svuint64_t Max128 (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svuint64_t Min128Upper (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svuint64_t Max128Upper (D d, const svuint64_t a, const svuint64_t b)
 
template<typename T , size_t N, typename FromT , size_t FromN>
HWY_API Vec128< T, NBitCast (Simd< T, N, 0 >, Vec128< FromT, FromN > v)
 
template<typename T , size_t N, typename T2 >
HWY_API Vec128< T, NSet (Simd< T, N, 0 >, const T2 t)
 
template<typename T , size_t N, typename T2 >
HWY_API Vec128< T, NIota (const Simd< T, N, 0 >, T2 first)
 
template<typename T , size_t N>
HWY_API Vec128< T, NNot (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NAnd (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NAndNot (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NOr (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NXor (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NBroadcastSignBit (Vec128< T, N > v)
 
template<typename T , size_t N>
Vec128< T, NVecFromMask (const Mask128< T, N > mask)
 
template<typename T , size_t N>
Vec128< T, NVecFromMask (Simd< T, N, 0 >, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, NIfThenElse (const Mask128< T, N > mask, const Vec128< T, N > yes, const Vec128< T, N > no)
 
template<int kBits, typename T , size_t N>
HWY_API Vec128< T, NShiftLeft (Vec128< T, N > v)
 
template<int kBits, typename T , size_t N>
HWY_API Vec128< T, NShiftRight (Vec128< T, N > v)
 
template<int kBits, typename T , size_t N>
HWY_API Vec128< T, NRotateRight (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Noperator<< (Vec128< T, N > v, const Vec128< T, N > bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, Noperator>> (Vec128< T, N > v, const Vec128< T, N > bits)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, Noperator+ (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, Noperator- (Vec128< T, N > a, Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t,(N+7)/8 > SumsOf8 (const Vec128< uint8_t, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NSaturatedAdd (Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NSaturatedSub (Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_UNSIGNED(T) >
HWY_API Vec128< T, NAverageRound (Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, NAbs (Vec128< T, N > a)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, NMin (Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, NMax (Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NNeg (Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, Noperator* (Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Noperator/ (Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, NMulHigh (Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, NMulHigh (Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, NMulFixedPoint15 (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t,(N+1)/2 > MulOdd (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > MulOdd (Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, NAbsDiff (Vec128< float, N > a, const Vec128< float, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NMulAdd (Vec128< T, N > mul, const Vec128< T, N > x, const Vec128< T, N > add)
 
template<typename T , size_t N>
HWY_API Vec128< T, NNegMulAdd (Vec128< T, N > mul, const Vec128< T, N > x, const Vec128< T, N > add)
 
template<typename T , size_t N>
HWY_API Vec128< T, NMulSub (Vec128< T, N > mul, const Vec128< T, N > x, const Vec128< T, N > sub)
 
template<typename T , size_t N>
HWY_API Vec128< T, NNegMulSub (Vec128< T, N > mul, const Vec128< T, N > x, const Vec128< T, N > sub)
 
template<typename T , size_t N>
HWY_API Vec128< T, NSqrt (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NRound (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NTrunc (Vec128< T, N > v)
 
template<typename Float , size_t N>
Vec128< Float, NCeil (Vec128< Float, N > v)
 
template<typename Float , size_t N>
Vec128< Float, NFloor (Vec128< Float, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, Noperator== (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Noperator!= (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, NTestBit (const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_API Mask128< T, Noperator< (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Noperator<= (const Vec128< T, N > a, const Vec128< T, N > b)
 
HWY_API Mask128< uint64_t > Lt128 (Simd< uint64_t, 2, 0 >, Vec128< uint64_t > a, const Vec128< uint64_t > b)
 
HWY_API Mask128< uint64_t > Lt128Upper (Simd< uint64_t, 2, 0 >, Vec128< uint64_t > a, const Vec128< uint64_t > b)
 
template<class D , class V = VFromD<D>>
HWY_APIMin128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIMax128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIMin128Upper (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIMax128Upper (D d, const V a, const V b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NLoadU (Simd< T, N, 0 > d, const T *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API Vec128< T, NLoadDup128 (Simd< T, N, 0 > d, const T *HWY_RESTRICT aligned)
 
template<typename T , size_t N>
HWY_API void StoreU (const Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API void LoadInterleaved2 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, Vec128< T, N > &v0, Vec128< T, N > &v1)
 
template<typename T , size_t N>
HWY_API void LoadInterleaved3 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, Vec128< T, N > &v0, Vec128< T, N > &v1, Vec128< T, N > &v2)
 
template<typename T , size_t N>
HWY_API void LoadInterleaved4 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, Vec128< T, N > &v0, Vec128< T, N > &v1, Vec128< T, N > &v2, Vec128< T, N > &v3)
 
template<typename T , size_t N>
HWY_API void StoreInterleaved2 (const Vec128< T, N > v0, const Vec128< T, N > v1, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N>
HWY_API void StoreInterleaved3 (const Vec128< T, N > v0, const Vec128< T, N > v1, const Vec128< T, N > v2, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N>
HWY_API void StoreInterleaved4 (const Vec128< T, N > v0, const Vec128< T, N > v1, const Vec128< T, N > v2, const Vec128< T, N > v3, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, typename Offset >
HWY_API void ScatterOffset (Vec128< T, N > v, Simd< T, N, 0 >, T *base, const Vec128< Offset, N > offset)
 
template<typename T , size_t N, typename Index >
HWY_API void ScatterIndex (Vec128< T, N > v, Simd< T, N, 0 >, T *HWY_RESTRICT base, const Vec128< Index, N > index)
 
template<typename T , size_t N, typename Offset >
HWY_API Vec128< T, NGatherOffset (Simd< T, N, 0 >, const T *base, const Vec128< Offset, N > offset)
 
template<typename FromT , typename ToT , size_t N>
HWY_API Vec128< ToT, NPromoteTo (Simd< ToT, N, 0 >, Vec128< FromT, N > from)
 
template<size_t N>
HWY_API Vec128< float, NDemoteTo (Simd< float, N, 0 >, Vec128< double, N > from)
 
template<size_t N>
HWY_API Vec128< int32_t, NDemoteTo (Simd< int32_t, N, 0 >, Vec128< double, N > from)
 
template<typename FromT , typename ToT , size_t N>
HWY_API Vec128< ToT, NDemoteTo (Simd< ToT, N, 0 >, Vec128< FromT, N > from)
 
template<typename FromT , typename ToT , size_t N, HWY_IF_FLOAT(FromT) >
HWY_API Vec128< ToT, NConvertTo (Simd< ToT, N, 0 >, Vec128< FromT, N > from)
 
template<size_t N>
HWY_API Vec128< uint8_t, NU8FromU32 (const Vec128< uint32_t, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N/2 > LowerHalf (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N/2 > UpperHalf (Simd< T, N/2, 0 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NCombine (Simd< T, N, 0 >, Vec128< T, N/2 > hi_half, Vec128< T, N/2 > lo_half)
 
template<typename T , size_t N>
HWY_API Vec128< T, NConcatLowerLower (Simd< T, N, 0 >, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, NConcatUpperUpper (Simd< T, N, 0 >, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, NConcatLowerUpper (Simd< T, N, 0 >, const Vec128< T, N > hi, const Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, NConcatEven (Simd< T, N, 0 >, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, NConcatOdd (Simd< T, N, 0 >, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<int kBytes, typename T , size_t N, class V = Vec128<T, N>>
HWY_APICombineShiftRightBytes (Simd< T, N, 0 >, V hi, V lo)
 
template<typename T , size_t N>
HWY_APIGetLane (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NInsertLane (Vec128< T, N > v, size_t i, T t)
 
template<typename T , size_t N>
HWY_APIExtractLane (const Vec128< T, N > v, size_t i)
 
template<typename T , size_t N>
HWY_API Vec128< T, NDupEven (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NDupOdd (Vec128< T, N > v)
 
template<typename T , size_t N, typename TI >
HWY_API Indices128< T, NIndicesFromVec (Simd< T, N, 0 >, Vec128< TI, N > vec)
 
template<typename T , size_t N, typename TI >
HWY_API Indices128< T, NSetTableIndices (Simd< T, N, 0 > d, const TI *idx)
 
template<typename T , size_t N>
HWY_API Vec128< T, NReverseBlocks (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NReverse (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NReverse2 (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NReverse4 (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NReverse8 (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, NShuffle2301 (const Vec128< T, N > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T > Shuffle1032 (const Vec128< T > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > Shuffle01 (const Vec128< T > v)
 
template<int kLane, typename T , size_t N>
HWY_API Vec128< T, NBroadcast (Vec128< T, N > v)
 
template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytes (const Vec128< T, N > v, const Vec128< TI, NI > indices)
 
template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytesOr0 (const Vec128< T, N > v, const Vec128< TI, NI > indices)
 
template<typename T , size_t N>
HWY_API Vec128< T, NInterleaveLower (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<class V >
HWY_APIInterleaveLower (DFromV< V >, V a, V b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NInterleaveUpper (Simd< T, N, 0 >, const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API bool AllTrue (Simd< T, N, 0 >, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Mask128< T, NLoadMaskBits (Simd< T, N, 0 >, const uint8_t *HWY_RESTRICT bits)
 
template<typename T , size_t N>
HWY_API size_t CountTrue (Simd< T, N, 0 >, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, NCompress (Vec128< T, N > v, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, NCompressNot (Vec128< T, N > v, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, NCompressBits (Vec128< T, N > v, const uint8_t *HWY_RESTRICT bits)
 
template<class V >
HWY_APIClamp (const V v, const V lo, const V hi)
 
template<class D >
HWY_API Vec< D > SignBit (D d)
 
template<class D >
HWY_API Vec< D > NaN (D d)
 
template<class D >
HWY_API Vec< D > Inf (D d)
 
template<class D , typename T = TFromD<D>>
HWY_API void SafeFillN (const size_t num, const T value, D d, T *HWY_RESTRICT to)
 
template<class D , typename T = TFromD<D>>
HWY_API void SafeCopyN (const size_t num, D d, const T *HWY_RESTRICT from, T *HWY_RESTRICT to)
 
template<typename T , size_t N, class V >
HWY_API void LoadInterleaved2 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1)
 
template<typename T , class V >
HWY_API void LoadInterleaved2 (Simd< T, 1, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1)
 
template<typename T , size_t N, class V , HWY_IF_LANES_PER_BLOCK(T, N, 16) >
HWY_API void LoadInterleaved3 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2)
 
template<typename T , size_t N, class V , HWY_IF_LANE_SIZE(T, 1) , HWY_IF_LANES_PER_BLOCK(T, N, 8) >
HWY_API void LoadInterleaved3 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2)
 
template<typename T , class V >
HWY_API void LoadInterleaved3 (Simd< T, 1, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2)
 
template<typename T , size_t N, class V , HWY_IF_LANES_PER_BLOCK(T, N, 16) >
HWY_API void LoadInterleaved4 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2, V &v3)
 
template<typename T , class V >
HWY_API void LoadInterleaved4 (Simd< T, 1, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2, V &v3)
 
template<typename T , size_t N, class V , HWY_IF_GE128(T, N) >
HWY_API void StoreInterleaved2 (const V v0, const V v1, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void StoreInterleaved2 (const Vec64< T > part0, const Vec64< T > part1, Full64< T >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, class V , HWY_IF_LANE_SIZE(T, 1) , HWY_IF_GE128(T, N) >
HWY_API void StoreInterleaved3 (const V v0, const V v1, const V v2, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void StoreInterleaved3 (const Vec64< T > part0, const Vec64< T > part1, const Vec64< T > part2, Full64< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) , HWY_IF_LE32(T, N) >
HWY_API void StoreInterleaved3 (const Vec128< T, N > part0, const Vec128< T, N > part1, const Vec128< T, N > part2, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API void StoreInterleaved3 (const Vec128< T, 2 > part0, const Vec128< T, 2 > part1, const Vec128< T, 2 > part2, Simd< T, 2, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void StoreInterleaved3 (const Vec128< T, 1 > v0, const Vec128< T, 1 > v1, const Vec128< T, 1 > v2, Simd< T, 1, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, class V , HWY_IF_NOT_LANE_SIZE(T, 8) , HWY_IF_GE128(T, N) >
HWY_API void StoreInterleaved4 (const V v0, const V v1, const V v2, const V v3, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API void StoreInterleaved4 (const Vec64< T > part0, const Vec64< T > part1, const Vec64< T > part2, const Vec64< T > part3, Full64< T >, T *HWY_RESTRICT unaligned)
 
template<typename V , class D = DFromV<V>, HWY_IF_LANE_SIZE_D(D, 1) , HWY_IF_GE128_D(D) , HWY_IF_POW2_GE(D, HWY_MIN_POW2_FOR_128) >
HWY_APIPopulationCount (V v)
 
template<typename V , class D = DFromV<V>, HWY_IF_LANE_SIZE_D(D, 2) >
HWY_APIPopulationCount (V v)
 
template<typename T , size_t N, int kPow2>
constexpr size_t MLenFromD (Simd< T, N, kPow2 >)
 
template<size_t N, int kPow2>
HWY_API size_t Lanes (Simd< bfloat16_t, N, kPow2 >)
 
template<size_t N, int kPow2>
decltype(Set(Simd< uint16_t, N, kPow2 >(), 0)) Set (Simd< bfloat16_t, N, kPow2 > d, bfloat16_t arg)
 
template<typename T , size_t N, int kPow2>
HWY_API VFromD< Simd< T, N, kPow2 > > Zero (Simd< T, N, kPow2 > d)
 
template<class D >
HWY_API VFromD< D > Undefined (D d)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APINot (const V v)
 
template<class V >
HWY_APIAndNot (const V not_a, const V b)
 
template<class VU8 >
HWY_API VFromD< Repartition< uint64_t, DFromV< VU8 > > > SumsOf8 (const VU8 v)
 
template<class V >
HWY_API auto TestBit (const V a, const V bit) -> decltype(Eq(a, bit))
 
template<class M , class V >
HWY_APIIfThenElseZero (const M mask, const V yes)
 
template<class V >
HWY_API auto MaskFromVec (const V v) -> decltype(Eq(v, v))
 
template<class D , typename MFrom >
HWY_API MFromD< D > RebindMask (const D, const MFrom mask)
 
template<class D , HWY_IF_NOT_FLOAT_D(D) >
HWY_API VFromD< D > VecFromMask (const D d, MFromD< D > mask)
 
template<class V >
HWY_APIIfVecThenElse (const V mask, const V yes, const V no)
 
template<class D >
HWY_API bool AllFalse (D d, MFromD< D > m)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > Load (Simd< bfloat16_t, N, kPow2 > d, const bfloat16_t *HWY_RESTRICT p)
 
template<size_t N, int kPow2>
HWY_API void Store (VFromD< Simd< uint16_t, N, kPow2 > > v, Simd< bfloat16_t, N, kPow2 > d, bfloat16_t *HWY_RESTRICT p)
 
template<class V , class D , typename T >
HWY_API void Stream (const V v, D d, T *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_LANE_SIZE_D(D, 4) >
HWY_API void ScatterIndex (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT base, const VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_LANE_SIZE_D(D, 4) >
HWY_API VFromD< D > GatherIndex (D d, const TFromD< D > *HWY_RESTRICT base, const VFromD< RebindToSigned< D > > index)
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int16_t, N, kPow2 > d, VFromD< Rebind< uint8_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int32_t, N, kPow2 > d, VFromD< Rebind< uint8_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int32_t, N, kPow2 > d, VFromD< Rebind< uint16_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< float32_t, N, kPow2 > d, VFromD< Rebind< bfloat16_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N>
HWY_API vuint8mf8_t DemoteTo (Simd< uint8_t, N, -3 > d, const vint32mf2_t v)
 
template<size_t N>
HWY_API vuint8mf4_t DemoteTo (Simd< uint8_t, N, -2 > d, const vint32m1_t v)
 
template<size_t N>
HWY_API vuint8mf2_t DemoteTo (Simd< uint8_t, N, -1 > d, const vint32m2_t v)
 
template<size_t N>
HWY_API vuint8m1_t DemoteTo (Simd< uint8_t, N, 0 > d, const vint32m4_t v)
 
template<size_t N>
HWY_API vuint8m2_t DemoteTo (Simd< uint8_t, N, 1 > d, const vint32m8_t v)
 
HWY_API vuint8mf8_t U8FromU32 (const vuint32mf2_t v)
 
HWY_API vuint8mf4_t U8FromU32 (const vuint32m1_t v)
 
HWY_API vuint8mf2_t U8FromU32 (const vuint32m2_t v)
 
HWY_API vuint8m1_t U8FromU32 (const vuint32m4_t v)
 
HWY_API vuint8m2_t U8FromU32 (const vuint32m8_t v)
 
template<size_t N>
HWY_API vint8mf8_t DemoteTo (Simd< int8_t, N, -3 > d, const vint32mf2_t v)
 
template<size_t N>
HWY_API vint8mf4_t DemoteTo (Simd< int8_t, N, -2 > d, const vint32m1_t v)
 
template<size_t N>
HWY_API vint8mf2_t DemoteTo (Simd< int8_t, N, -1 > d, const vint32m2_t v)
 
template<size_t N>
HWY_API vint8m1_t DemoteTo (Simd< int8_t, N, 0 > d, const vint32m4_t v)
 
template<size_t N>
HWY_API vint8m2_t DemoteTo (Simd< int8_t, N, 1 > d, const vint32m8_t v)
 
 HWY_RVV_FOREACH_F64 (HWY_RVV_DEMOTE_F, DemoteTo, vfncvt_rod_f_f_w_f, _DEMOTE_VIRT) template< size_t N > HWY_API vint32mf2_t DemoteTo(Simd< int32_t
 
template<size_t N>
HWY_API vint32mf2_t DemoteTo (Simd< int32_t, N, -1 > d, const vfloat64m1_t v)
 
template<size_t N>
HWY_API vint32m1_t DemoteTo (Simd< int32_t, N, 0 > d, const vfloat64m2_t v)
 
template<size_t N>
HWY_API vint32m2_t DemoteTo (Simd< int32_t, N, 1 > d, const vfloat64m4_t v)
 
template<size_t N>
HWY_API vint32m4_t DemoteTo (Simd< int32_t, N, 2 > d, const vfloat64m8_t v)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > DemoteTo (Simd< bfloat16_t, N, kPow2 > d, VFromD< Simd< float, N, kPow2+1 > > v)
 
template<class D2 , class V >
HWY_API VFromD< D2 > Combine (D2 d2, const V hi, const V lo)
 
template<class D2 , class V >
HWY_API VFromD< D2 > ZeroExtendVector (D2 d2, const V lo)
 
template<class DH , hwy::EnableIf< detail::IsSupportedLMUL(DH())> * = nullptr>
HWY_API VFromD< DH > LowerHalf (const DH, const VFromD< Twice< DH > > v)
 
template<class DH , class V , hwy::EnableIf<!detail::IsSupportedLMUL(DH())> * = nullptr>
HWY_APILowerHalf (const DH, const V v)
 
template<class V >
HWY_API VFromD< Half< DFromV< V > > > LowerHalf (const V v)
 
template<class DH >
HWY_API VFromD< DH > UpperHalf (const DH d2, const VFromD< Twice< DH > > v)
 
template<class V , HWY_IF_NOT_LANE_SIZE_V(V, 1) >
HWY_APIInsertLane (const V v, size_t i, TFromV< V > t)
 
template<class V >
HWY_APIOddEven (const V a, const V b)
 
template<class D , class V >
HWY_APIConcatOdd (D d, const V hi, const V lo)
 
template<class D , class V >
HWY_APIConcatEven (D d, const V hi, const V lo)
 
template<class D >
HWY_API VFromD< D > Reverse (D, VFromD< D > v)
 
template<class D , HWY_IF_LANE_SIZE_D(D, 2) , HWY_RVV_IF_POW2_IN(D, -1, 3) >
HWY_API VFromD< D > Reverse2 (D d, const VFromD< D > v)
 
template<class D , class V = VFromD<D>, HWY_IF_LANE_SIZE_D(D, 8) >
HWY_APIReverse2 (D, const V v)
 
template<class V , class M >
HWY_APICompressNot (V v, const M mask)
 
template<class V , class M >
HWY_APICompressBlocksNot (V v, const M mask)
 
template<class V , class M , class D >
HWY_API size_t CompressStore (const V v, const M mask, const D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , class M , class D >
HWY_API size_t CompressBlendedStore (const V v, const M mask, const D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<size_t kLanes, class D , class V = VFromD<D>>
HWY_APICombineShiftRightLanes (const D d, const V hi, V lo)
 
template<class VT , class VI >
HWY_API VI TableLookupBytes (const VT vt, const VI vi)
 
template<class VT , class VI >
HWY_API VI TableLookupBytesOr0 (const VT vt, const VI idx)
 
template<int kBytes, class D >
HWY_API VFromD< D > ShiftLeftBytes (D d, const VFromD< D > v)
 
template<size_t kLanes, typename T , size_t N, int kPow2, class V = VFromD<Simd<T, N, kPow2>>>
HWY_APIShiftRightLanes (const Simd< T, N, kPow2 > d, V v)
 
template<class D , class V >
HWY_APIInterleaveUpper (const D d, const V a, const V b)
 
template<class D >
HWY_API VFromD< D > SumOfLanes (D d, const VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > MinOfLanes (D d, const VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > MaxOfLanes (D d, const VFromD< D > v)
 
template<class V >
decltype(MaskFromVec(v)) HWY_APIRound (const V v)
 
template<class V >
HWY_APITrunc (const V v)
 
template<class V >
HWY_APICeil (const V v)
 
template<class V >
HWY_APIFloor (const V v)
 
template<class V >
HWY_API MFromD< DFromV< V > > IsNaN (const V v)
 
template<class V , class D = DFromV<V>>
HWY_API MFromD< D > IsInf (const V v)
 
template<class V , class D = DFromV<V>>
HWY_API MFromD< D > IsFinite (const V v)
 
template<class V , HWY_IF_LANE_SIZE_V(V, 4) , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > MulEven (const V a, const V b)
 
template<class V , HWY_IF_LANE_SIZE_V(V, 8) >
HWY_INLINEMulEven (const V a, const V b)
 
template<class V , HWY_IF_LANE_SIZE_V(V, 8) >
HWY_INLINEMulOdd (const V a, const V b)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > ReorderDemote2To (Simd< bfloat16_t, N, kPow2 > dbf16, VFromD< RepartitionToWide< decltype(dbf16)> > a, VFromD< RepartitionToWide< decltype(dbf16)> > b)
 
template<size_t N, int kPow2>
HWY_API auto ReorderWidenMulAccumulate (Simd< float, N, kPow2 > df32, VFromD< DU16FromDF< decltype(df32)> > a, VFromD< DU16FromDF< decltype(df32)> > b, const VFromD< decltype(df32)> sum0, VFromD< decltype(df32)> &sum1) -> VFromD< decltype(df32)>
 
template<class D >
HWY_INLINE MFromD< D > Lt128 (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE MFromD< D > Lt128Upper (D d, const VFromD< D > a, const VFromD< D > b)
 
template<typename T , typename FromT >
HWY_API Vec1< T > BitCast (Sisd< T >, Vec1< FromT > v)
 
template<typename T >
HWY_API Vec1< T > Zero (Sisd< T >)
 
template<typename T , typename T2 >
HWY_API Vec1< T > Set (Sisd< T >, const T2 t)
 
template<typename T >
HWY_API Vec1< T > Undefined (Sisd< T > d)
 
template<typename T , typename T2 >
HWY_API Vec1< T > Iota (const Sisd< T >, const T2 first)
 
template<typename T >
HWY_API Vec1< T > Not (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > And (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > operator& (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > AndNot (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > Or (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > operator| (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > Xor (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > operator^ (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > Or3 (Vec1< T > o1, Vec1< T > o2, Vec1< T > o3)
 
template<typename T >
HWY_API Vec1< T > OrAnd (const Vec1< T > o, const Vec1< T > a1, const Vec1< T > a2)
 
template<typename T >
HWY_API Vec1< T > IfVecThenElse (Vec1< T > mask, Vec1< T > yes, Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > CopySign (const Vec1< T > magn, const Vec1< T > sign)
 
template<typename T >
HWY_API Vec1< T > CopySignToAbs (const Vec1< T > abs, const Vec1< T > sign)
 
template<typename T >
HWY_API Vec1< T > BroadcastSignBit (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > PopulationCount (Vec1< T > v)
 
template<typename TFrom , typename TTo >
HWY_API Mask1< TTo > RebindMask (Sisd< TTo >, Mask1< TFrom > m)
 
template<typename T >
HWY_API Mask1< T > MaskFromVec (const Vec1< T > v)
 
template<typename T >
Vec1< T > VecFromMask (const Mask1< T > mask)
 
template<typename T >
Vec1< T > VecFromMask (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API Mask1< T > FirstN (Sisd< T >, size_t n)
 
template<typename T >
HWY_API Vec1< T > IfThenElse (const Mask1< T > mask, const Vec1< T > yes, const Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > IfThenElseZero (const Mask1< T > mask, const Vec1< T > yes)
 
template<typename T >
HWY_API Vec1< T > IfThenZeroElse (const Mask1< T > mask, const Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > IfNegativeThenElse (Vec1< T > v, Vec1< T > yes, Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > ZeroIfNegative (const Vec1< T > v)
 
template<typename T >
HWY_API Mask1< T > Not (const Mask1< T > m)
 
template<typename T >
HWY_API Mask1< T > And (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > AndNot (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > Or (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > Xor (const Mask1< T > a, Mask1< T > b)
 
template<int kBits, typename T >
HWY_API Vec1< T > ShiftLeft (const Vec1< T > v)
 
template<int kBits, typename T >
HWY_API Vec1< T > ShiftRight (const Vec1< T > v)
 
template<int kBits, typename T >
HWY_API Vec1< T > RotateRight (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > ShiftLeftSame (const Vec1< T > v, int bits)
 
template<typename T >
HWY_API Vec1< T > ShiftRightSame (const Vec1< T > v, int bits)
 
template<typename T >
HWY_API Vec1< T > operator<< (const Vec1< T > v, const Vec1< T > bits)
 
template<typename T >
HWY_API Vec1< T > operator>> (const Vec1< T > v, const Vec1< T > bits)
 
template<typename T >
HWY_API Vec1< T > operator+ (Vec1< T > a, Vec1< T > b)
 
HWY_API Vec1< float > operator+ (const Vec1< float > a, const Vec1< float > b)
 
HWY_API Vec1< double > operator+ (const Vec1< double > a, const Vec1< double > b)
 
template<typename T >
HWY_API Vec1< T > operator- (Vec1< T > a, Vec1< T > b)
 
HWY_API Vec1< float > operator- (const Vec1< float > a, const Vec1< float > b)
 
HWY_API Vec1< double > operator- (const Vec1< double > a, const Vec1< double > b)
 
HWY_API Vec1< uint64_t > SumsOf8 (const Vec1< uint8_t > v)
 
HWY_API Vec1< uint8_t > SaturatedAdd (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > SaturatedAdd (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< int8_t > SaturatedAdd (const Vec1< int8_t > a, const Vec1< int8_t > b)
 
HWY_API Vec1< int16_t > SaturatedAdd (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< uint8_t > SaturatedSub (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > SaturatedSub (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< int8_t > SaturatedSub (const Vec1< int8_t > a, const Vec1< int8_t > b)
 
HWY_API Vec1< int16_t > SaturatedSub (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< uint8_t > AverageRound (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > AverageRound (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
template<typename T >
HWY_API Vec1< T > Abs (const Vec1< T > a)
 
HWY_API Vec1< float > Abs (const Vec1< float > a)
 
HWY_API Vec1< double > Abs (const Vec1< double > a)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > Min (const Vec1< T > a, const Vec1< T > b)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > Max (const Vec1< T > a, const Vec1< T > b)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > Neg (const Vec1< T > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > operator* (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > operator/ (const Vec1< T > a, const Vec1< T > b)
 
HWY_API Vec1< int16_t > MulHigh (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< uint16_t > MulHigh (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< int16_t > MulFixedPoint15 (Vec1< int16_t > a, Vec1< int16_t > b)
 
HWY_API Vec1< int64_t > MulEven (const Vec1< int32_t > a, const Vec1< int32_t > b)
 
HWY_API Vec1< uint64_t > MulEven (const Vec1< uint32_t > a, const Vec1< uint32_t > b)
 
HWY_API Vec1< float > ApproximateReciprocal (const Vec1< float > v)
 
HWY_API Vec1< float > AbsDiff (const Vec1< float > a, const Vec1< float > b)
 
template<typename T >
HWY_API Vec1< T > MulAdd (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > add)
 
template<typename T >
HWY_API Vec1< T > NegMulAdd (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > add)
 
template<typename T >
HWY_API Vec1< T > MulSub (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > sub)
 
template<typename T >
HWY_API Vec1< T > NegMulSub (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > sub)
 
HWY_API Vec1< float > ApproximateReciprocalSqrt (const Vec1< float > v)
 
HWY_API Vec1< float > Sqrt (const Vec1< float > v)
 
HWY_API Vec1< double > Sqrt (const Vec1< double > v)
 
template<typename T >
HWY_API Vec1< T > Round (const Vec1< T > v)
 
HWY_API Vec1< int32_t > NearestInt (const Vec1< float > v)
 
template<typename T >
HWY_API Vec1< T > Trunc (const Vec1< T > v)
 
template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
Ceiling (const V v)
 
template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
Floor (const V v)
 
HWY_API Vec1< float > Ceil (const Vec1< float > v)
 
HWY_API Vec1< double > Ceil (const Vec1< double > v)
 
HWY_API Vec1< float > Floor (const Vec1< float > v)
 
HWY_API Vec1< double > Floor (const Vec1< double > v)
 
template<typename T >
HWY_API Mask1< T > operator== (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > operator!= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > TestBit (const Vec1< T > v, const Vec1< T > bit)
 
template<typename T >
HWY_API Mask1< T > operator< (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > operator> (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > operator<= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > operator>= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > IsNaN (const Vec1< T > v)
 
HWY_API Mask1< float > IsInf (const Vec1< float > v)
 
HWY_API Mask1< double > IsInf (const Vec1< double > v)
 
HWY_API Mask1< float > IsFinite (const Vec1< float > v)
 
HWY_API Mask1< double > IsFinite (const Vec1< double > v)
 
template<typename T >
HWY_API Vec1< T > Load (Sisd< T >, const T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec1< T > MaskedLoad (Mask1< T > m, Sisd< T > d, const T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec1< T > LoadU (Sisd< T > d, const T *HWY_RESTRICT p)
 
template<typename T >
HWY_API Vec1< T > LoadDup128 (Sisd< T > d, const T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void Store (const Vec1< T > v, Sisd< T >, T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void StoreU (const Vec1< T > v, Sisd< T > d, T *HWY_RESTRICT p)
 
template<typename T >
HWY_API void BlendedStore (const Vec1< T > v, Mask1< T > m, Sisd< T > d, T *HWY_RESTRICT p)
 
template<typename T >
HWY_API void LoadInterleaved2 (Sisd< T > d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1)
 
template<typename T >
HWY_API void LoadInterleaved3 (Sisd< T > d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1, Vec1< T > &v2)
 
template<typename T >
HWY_API void LoadInterleaved4 (Sisd< T > d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1, Vec1< T > &v2, Vec1< T > &v3)
 
template<typename T >
HWY_API void StoreInterleaved2 (const Vec1< T > v0, const Vec1< T > v1, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void StoreInterleaved3 (const Vec1< T > v0, const Vec1< T > v1, const Vec1< T > v2, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void StoreInterleaved4 (const Vec1< T > v0, const Vec1< T > v1, const Vec1< T > v2, const Vec1< T > v3, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void Stream (const Vec1< T > v, Sisd< T > d, T *HWY_RESTRICT aligned)
 
template<typename T , typename Offset >
HWY_API void ScatterOffset (Vec1< T > v, Sisd< T > d, T *base, const Vec1< Offset > offset)
 
template<typename T , typename Index >
HWY_API void ScatterIndex (Vec1< T > v, Sisd< T > d, T *HWY_RESTRICT base, const Vec1< Index > index)
 
template<typename T , typename Offset >
HWY_API Vec1< T > GatherOffset (Sisd< T > d, const T *base, const Vec1< Offset > offset)
 
template<typename T , typename Index >
HWY_API Vec1< T > GatherIndex (Sisd< T > d, const T *HWY_RESTRICT base, const Vec1< Index > index)
 
template<typename FromT , typename ToT >
HWY_API Vec1< ToT > PromoteTo (Sisd< ToT >, Vec1< FromT > from)
 
HWY_API Vec1< float > DemoteTo (Sisd< float >, Vec1< double > from)
 
HWY_API Vec1< int32_t > DemoteTo (Sisd< int32_t >, Vec1< double > from)
 
template<typename FromT , typename ToT >
HWY_API Vec1< ToT > DemoteTo (Sisd< ToT >, Vec1< FromT > from)
 
HWY_API Vec1< float > PromoteTo (Sisd< float >, const Vec1< float16_t > v)
 
HWY_API Vec1< float > PromoteTo (Sisd< float > d, const Vec1< bfloat16_t > v)
 
HWY_API Vec1< float16_tDemoteTo (Sisd< float16_t >, const Vec1< float > v)
 
HWY_API Vec1< bfloat16_tDemoteTo (Sisd< bfloat16_t > d, const Vec1< float > v)
 
template<typename FromT , typename ToT , HWY_IF_FLOAT(FromT) >
HWY_API Vec1< ToT > ConvertTo (Sisd< ToT >, Vec1< FromT > from)
 
HWY_API Vec1< uint8_t > U8FromU32 (const Vec1< uint32_t > v)
 
template<typename T >
HWY_API Vec1< T > LowerHalf (Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > LowerHalf (Sisd< T >, Vec1< T > v)
 
template<typename T >
HWY_APIGetLane (const Vec1< T > v)
 
template<typename T >
HWY_APIExtractLane (const Vec1< T > v, size_t i)
 
template<typename T >
HWY_API Vec1< T > InsertLane (Vec1< T > v, size_t i, T t)
 
template<typename T >
HWY_API Vec1< T > DupEven (Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > OddEven (Vec1< T >, Vec1< T > even)
 
template<typename T >
HWY_API Vec1< T > OddEvenBlocks (Vec1< T >, Vec1< T > even)
 
template<typename T >
HWY_API Vec1< T > SwapAdjacentBlocks (Vec1< T > v)
 
template<typename T , typename TI >
HWY_API Indices1< T > IndicesFromVec (Sisd< T >, Vec1< TI > vec)
 
template<typename T , typename TI >
HWY_API Indices1< T > SetTableIndices (Sisd< T > d, const TI *idx)
 
template<typename T >
HWY_API Vec1< T > TableLookupLanes (const Vec1< T > v, const Indices1< T >)
 
template<typename T >
HWY_API Vec1< T > ReverseBlocks (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > Reverse (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > Reverse2 (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > Reverse4 (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > Reverse8 (Sisd< T >, const Vec1< T > v)
 
template<int kLane, typename T >
HWY_API Vec1< T > Broadcast (const Vec1< T > v)
 
template<typename T , typename TI >
HWY_API Vec1< TI > TableLookupBytes (const Vec1< T > in, const Vec1< TI > indices)
 
template<typename T , typename TI >
HWY_API Vec1< TI > TableLookupBytesOr0 (const Vec1< T > in, const Vec1< TI > indices)
 
HWY_API Vec1< uint16_t > ZipLower (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint32_t > ZipLower (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< uint64_t > ZipLower (const Vec1< uint32_t > a, const Vec1< uint32_t > b)
 
HWY_API Vec1< int16_t > ZipLower (const Vec1< int8_t > a, const Vec1< int8_t > b)
 
HWY_API Vec1< int32_t > ZipLower (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< int64_t > ZipLower (const Vec1< int32_t > a, const Vec1< int32_t > b)
 
template<typename T , typename TW = MakeWide<T>, class VW = Vec1<TW>>
HWY_API VW ZipLower (Sisd< TW >, Vec1< T > a, Vec1< T > b)
 
template<typename T >
HWY_API bool AllFalse (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API bool AllTrue (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API Mask1< T > LoadMaskBits (Sisd< T >, const uint8_t *HWY_RESTRICT bits)
 
template<typename T >
HWY_API size_t StoreMaskBits (Sisd< T > d, const Mask1< T > mask, uint8_t *bits)
 
template<typename T >
HWY_API size_t CountTrue (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API intptr_t FindFirstTrue (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API Vec1< T > Compress (Vec1< T > v, const Mask1< T >)
 
template<typename T >
HWY_API Vec1< T > CompressNot (Vec1< T > v, const Mask1< T >)
 
template<typename T >
HWY_API size_t CompressStore (Vec1< T > v, const Mask1< T > mask, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API size_t CompressBlendedStore (Vec1< T > v, const Mask1< T > mask, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API Vec1< T > CompressBits (Vec1< T > v, const uint8_t *HWY_RESTRICT)
 
template<typename T >
HWY_API size_t CompressBitsStore (Vec1< T > v, const uint8_t *HWY_RESTRICT bits, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
HWY_API Vec1< float > ReorderWidenMulAccumulate (Sisd< float >, Vec1< bfloat16_t > a, Vec1< bfloat16_t > b, const Vec1< float > sum0, Vec1< float > &)
 
template<typename T >
HWY_API Vec1< T > SumOfLanes (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > MinOfLanes (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > MaxOfLanes (Sisd< T >, const Vec1< T > v)
 
template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr int Pow2 (D)
 
template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t MaxLanes (D)
 
template<typename T , size_t N, int kPow2>
HWY_INLINE HWY_MAYBE_UNUSED size_t Lanes (Simd< T, N, kPow2 >)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, NZero (Simd< T, N, 0 >)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, NZero (Simd< float, N, 0 >)
 
template<size_t N, HWY_IF_LE128(uint8_t, N) >
HWY_API Vec128< uint8_t, NSet (Simd< uint8_t, N, 0 >, const uint8_t t)
 
template<size_t N, HWY_IF_LE128(uint16_t, N) >
HWY_API Vec128< uint16_t, NSet (Simd< uint16_t, N, 0 >, const uint16_t t)
 
template<size_t N, HWY_IF_LE128(uint32_t, N) >
HWY_API Vec128< uint32_t, NSet (Simd< uint32_t, N, 0 >, const uint32_t t)
 
template<size_t N, HWY_IF_LE128(uint64_t, N) >
HWY_API Vec128< uint64_t, NSet (Simd< uint64_t, N, 0 >, const uint64_t t)
 
template<size_t N, HWY_IF_LE128(int8_t, N) >
HWY_API Vec128< int8_t, NSet (Simd< int8_t, N, 0 >, const int8_t t)
 
template<size_t N, HWY_IF_LE128(int16_t, N) >
HWY_API Vec128< int16_t, NSet (Simd< int16_t, N, 0 >, const int16_t t)
 
template<size_t N, HWY_IF_LE128(int32_t, N) >
HWY_API Vec128< int32_t, NSet (Simd< int32_t, N, 0 >, const int32_t t)
 
template<size_t N, HWY_IF_LE128(int64_t, N) >
HWY_API Vec128< int64_t, NSet (Simd< int64_t, N, 0 >, const int64_t t)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, NSet (Simd< float, N, 0 >, const float t)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, NUndefined (Simd< T, N, 0 > d)
 
template<size_t N>
HWY_API Vec128< uint8_t, Noperator+ (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Noperator+ (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, Noperator+ (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, Noperator+ (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, Noperator+ (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Noperator+ (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, Noperator+ (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, Noperator+ (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, Noperator+ (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, Noperator- (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Noperator- (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, Noperator- (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, Noperator- (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, Noperator- (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Noperator- (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, Noperator- (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, Noperator- (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, Noperator- (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, NSaturatedAdd (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, NSaturatedAdd (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, NSaturatedAdd (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, NSaturatedAdd (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, NSaturatedSub (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, NSaturatedSub (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, NSaturatedSub (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, NSaturatedSub (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, NAverageRound (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, NAverageRound (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, NAbs (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, NAbs (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NAbs (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, NAbs (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, NAbs (const Vec128< float, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, NShiftLeft (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, NShiftRight (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, NShiftLeft (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, NShiftLeft (const Vec128< uint64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, NShiftRight (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, NShiftRight (const Vec128< uint64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int16_t, NShiftLeft (const Vec128< int16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int16_t, NShiftRight (const Vec128< int16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int32_t, NShiftLeft (const Vec128< int32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int64_t, NShiftLeft (const Vec128< int64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int32_t, NShiftRight (const Vec128< int32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int64_t, NShiftRight (const Vec128< int64_t, N > v)
 
template<int kBits, typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, NShiftLeft (const Vec128< T, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint8_t, NShiftRight (const Vec128< uint8_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int8_t, NShiftRight (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint16_t, NShiftLeftSame (const Vec128< uint16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint16_t, NShiftRightSame (const Vec128< uint16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, NShiftLeftSame (const Vec128< uint32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, NShiftRightSame (const Vec128< uint32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint64_t, NShiftLeftSame (const Vec128< uint64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint64_t, NShiftRightSame (const Vec128< uint64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, NShiftLeftSame (const Vec128< int16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, NShiftRightSame (const Vec128< int16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int32_t, NShiftLeftSame (const Vec128< int32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int32_t, NShiftRightSame (const Vec128< int32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int64_t, NShiftLeftSame (const Vec128< int64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int64_t, NShiftRightSame (const Vec128< int64_t, N > v, const int bits)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, NShiftLeftSame (const Vec128< T, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint8_t, NShiftRightSame (Vec128< uint8_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int8_t, NShiftRightSame (Vec128< int8_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint8_t, NMin (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, NMin (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, NMin (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, NMin (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, NMin (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, NMin (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, NMin (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, NMax (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, NMax (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, NMax (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, NMax (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, NMax (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, NMax (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, NMax (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Noperator* (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, Noperator* (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Noperator* (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, Noperator* (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, NNeg (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, NNeg (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NNeg (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, NNeg (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, Noperator* (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< uint8_t, Noperator== (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, Noperator== (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, Noperator== (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint64_t, Noperator== (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, Noperator== (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, Noperator== (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, Noperator== (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, Noperator== (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, Noperator== (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< uint8_t, Noperator!= (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, Noperator!= (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, Noperator!= (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint64_t, Noperator!= (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, Noperator!= (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, Noperator!= (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, Noperator!= (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, Noperator!= (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, Noperator!= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, Noperator> (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, Noperator> (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, Noperator> (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, Noperator> (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint8_t, Noperator> (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, Noperator> (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, Noperator> (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint64_t, Noperator> (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, Noperator> (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< float, Noperator<= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< float, Noperator>= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, NBroadcastSignBit (const Vec128< int8_t, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NZeroIfNegative (Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, Noperator<< (Vec128< T, N > v, const Vec128< T, N > bits)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, Noperator>> (Vec128< T, N > v, const Vec128< T, N > bits)
 
template<typename T >
HWY_API Vec128< T > Load (Full128< T >, const T *HWY_RESTRICT aligned)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, NLoad (Simd< T, N, 0 >, const T *HWY_RESTRICT p)
 
template<typename T >
HWY_API void Store (Vec128< T > v, Full128< T >, T *HWY_RESTRICT aligned)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API void Store (Vec128< T, N > v, Simd< T, N, 0 >, T *HWY_RESTRICT p)
 
HWY_API void Store (const Vec128< float, 1 > v, Simd< float, 1, 0 >, float *HWY_RESTRICT p)
 
template<typename T >
HWY_API Vec64< T > UpperHalf (Full64< T >, const Vec128< T > v)
 
template<int kBytes, typename T , class V = Vec128<T>>
HWY_APICombineShiftRightBytes (Full128< T >, V hi, V lo)
 
template<int kBytes, typename T , size_t N, HWY_IF_LE64(T, N) , class V = Vec128<T, N>>
HWY_APICombineShiftRightBytes (Simd< T, N, 0 > d, V hi, V lo)
 
template<int kLane, typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, NBroadcast (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, NShuffle2301 (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, NInterleaveLower (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, NInterleaveLower (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, NInterleaveLower (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, NInterleaveLower (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, NInterleaveLower (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, NInterleaveLower (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, NInterleaveLower (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, NInterleaveLower (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, NInterleaveLower (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, NInterleaveLower (Vec128< double, N > a, Vec128< double, N > b)
 
template<typename T , class V = Vec128<T>>
HWY_APIInterleaveUpper (Full128< T >, V a, V b)
 
template<typename T >
HWY_API Vec128< T > ConcatLowerLower (Full128< T >, const Vec128< T > hi, const Vec128< T > lo)
 
template<typename T >
HWY_API Vec128< T > ConcatUpperUpper (Full128< T >, const Vec128< T > hi, const Vec128< T > lo)
 
template<typename T >
HWY_API Vec128< T > ConcatLowerUpper (Full128< T > d, const Vec128< T > hi, const Vec128< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T > ConcatOdd (Full128< T >, Vec128< T > hi, Vec128< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 8 > ConcatOdd (Simd< T, 8, 0 >, Vec128< T, 8 > hi, Vec128< T, 8 > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T > ConcatEven (Full128< T >, Vec128< T > hi, Vec128< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 8 > ConcatEven (Simd< T, 8, 0 >, Vec128< T, 8 > hi, Vec128< T, 8 > lo)
 
template<size_t N>
HWY_API Vec128< float, NOddEven (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, NPromoteTo (Simd< uint16_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint32_t, NPromoteTo (Simd< uint32_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, NPromoteTo (Simd< int16_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NPromoteTo (Simd< int32_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, NPromoteTo (Simd< uint64_t, N, 0 >, const Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NPromoteTo (Simd< int32_t, N, 0 >, const Vec128< uint16_t, N > v)
 
template<size_t N>
HWY_API Vec128< double, NPromoteTo (Simd< double, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint16_t, NDemoteTo (Simd< uint16_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, NDemoteTo (Simd< int16_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, NDemoteTo (Simd< uint8_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, NDemoteTo (Simd< uint8_t, N, 0 >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, NDemoteTo (Simd< int8_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, NDemoteTo (Simd< int8_t, N, 0 >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, NConvertTo (Simd< float, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NConvertTo (Simd< int32_t, N, 0 >, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, N/8 > SumsOf8 (const Vec128< uint8_t, N > v)
 
template<typename T , size_t N>
HWY_API size_t CountTrue (const Simd< T, N, 0 >, const Mask128< T > m)
 
template<typename T >
HWY_API bool AllFalse (const Full128< T > d, const Mask128< T > m)
 
template<typename T , size_t N>
HWY_API bool AllTrue (const Simd< T, N, 0 >, const Mask128< T > m)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API bool AllFalse (Simd< T, N, 0 >, const Mask128< T, N > m)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > Compress (Vec128< T > v, Mask128< T > mask)
 
template<typename T , typename FromT >
HWY_API Vec256< T > BitCast (Full256< T > d, Vec256< FromT > v)
 
template<typename T >
HWY_API Vec256< T > Zero (Full256< T >)
 
HWY_API Vec256< float > Zero (Full256< float >)
 
HWY_API Vec256< uint8_t > Set (Full256< uint8_t >, const uint8_t t)
 
HWY_API Vec256< uint16_t > Set (Full256< uint16_t >, const uint16_t t)
 
HWY_API Vec256< uint32_t > Set (Full256< uint32_t >, const uint32_t t)
 
HWY_API Vec256< uint64_t > Set (Full256< uint64_t >, const uint64_t t)
 
HWY_API Vec256< int8_t > Set (Full256< int8_t >, const int8_t t)
 
HWY_API Vec256< int16_t > Set (Full256< int16_t >, const int16_t t)
 
HWY_API Vec256< int32_t > Set (Full256< int32_t >, const int32_t t)
 
HWY_API Vec256< int64_t > Set (Full256< int64_t >, const int64_t t)
 
HWY_API Vec256< float > Set (Full256< float >, const float t)
 
template<typename T >
HWY_API Vec256< T > Undefined (Full256< T > d)
 
template<typename T , typename T2 >
Vec256< T > Iota (const Full256< T > d, const T2 first)
 
HWY_API Vec256< uint8_t > operator+ (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > operator+ (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > operator+ (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< int8_t > operator+ (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > operator+ (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > operator+ (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< float > operator+ (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< uint8_t > operator- (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > operator- (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > operator- (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< int8_t > operator- (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > operator- (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > operator- (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< float > operator- (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< uint64_t > SumsOf8 (const Vec256< uint8_t > v)
 
HWY_API Vec256< uint8_t > SaturatedAdd (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > SaturatedAdd (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< int8_t > SaturatedAdd (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > SaturatedAdd (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< uint8_t > SaturatedSub (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > SaturatedSub (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< int8_t > SaturatedSub (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > SaturatedSub (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< uint8_t > AverageRound (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > AverageRound (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< int8_t > Abs (const Vec256< int8_t > v)
 
HWY_API Vec256< int16_t > Abs (const Vec256< int16_t > v)
 
HWY_API Vec256< int32_t > Abs (const Vec256< int32_t > v)
 
HWY_API Vec256< int64_t > Abs (const Vec256< int64_t > v)
 
HWY_API Vec256< float > Abs (const Vec256< float > v)
 
template<int kBits>
HWY_API Vec256< uint16_t > ShiftLeft (const Vec256< uint16_t > v)
 
template<int kBits>
HWY_API Vec256< uint16_t > ShiftRight (const Vec256< uint16_t > v)
 
template<int kBits>
HWY_API Vec256< uint32_t > ShiftLeft (const Vec256< uint32_t > v)
 
template<int kBits>
HWY_API Vec256< uint32_t > ShiftRight (const Vec256< uint32_t > v)
 
template<int kBits>
HWY_API Vec256< int16_t > ShiftLeft (const Vec256< int16_t > v)
 
template<int kBits>
HWY_API Vec256< int16_t > ShiftRight (const Vec256< int16_t > v)
 
template<int kBits>
HWY_API Vec256< int32_t > ShiftLeft (const Vec256< int32_t > v)
 
template<int kBits>
HWY_API Vec256< int32_t > ShiftRight (const Vec256< int32_t > v)
 
template<int kBits, typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > ShiftLeft (const Vec256< T > v)
 
template<int kBits>
HWY_API Vec256< uint8_t > ShiftRight (const Vec256< uint8_t > v)
 
template<int kBits>
HWY_API Vec256< int8_t > ShiftRight (const Vec256< int8_t > v)
 
template<int kBits, typename T >
HWY_API Vec256< T > RotateRight (const Vec256< T > v)
 
HWY_API Vec256< uint16_t > ShiftLeftSame (const Vec256< uint16_t > v, const int bits)
 
HWY_API Vec256< uint16_t > ShiftRightSame (const Vec256< uint16_t > v, const int bits)
 
HWY_API Vec256< uint32_t > ShiftLeftSame (const Vec256< uint32_t > v, const int bits)
 
HWY_API Vec256< uint32_t > ShiftRightSame (const Vec256< uint32_t > v, const int bits)
 
HWY_API Vec256< int16_t > ShiftLeftSame (const Vec256< int16_t > v, const int bits)
 
HWY_API Vec256< int16_t > ShiftRightSame (const Vec256< int16_t > v, const int bits)
 
HWY_API Vec256< int32_t > ShiftLeftSame (const Vec256< int32_t > v, const int bits)
 
HWY_API Vec256< int32_t > ShiftRightSame (const Vec256< int32_t > v, const int bits)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > ShiftLeftSame (const Vec256< T > v, const int bits)
 
HWY_API Vec256< uint8_t > ShiftRightSame (Vec256< uint8_t > v, const int bits)
 
HWY_API Vec256< int8_t > ShiftRightSame (Vec256< int8_t > v, const int bits)
 
HWY_API Vec256< uint8_t > Min (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > Min (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > Min (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > Min (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > Min (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > Min (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > Min (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > Min (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< float > Min (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< uint8_t > Max (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > Max (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > Max (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > Max (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > Max (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > Max (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > Max (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > Max (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< float > Max (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< uint16_t > operator* (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > operator* (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< int16_t > operator* (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > operator* (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< uint16_t > MulHigh (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< int16_t > MulHigh (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int16_t > MulFixedPoint15 (Vec256< int16_t >, Vec256< int16_t >)
 
HWY_API Vec256< int64_t > MulEven (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< uint64_t > MulEven (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > Neg (const Vec256< T > v)
 
HWY_API Vec256< int8_t > Neg (const Vec256< int8_t > v)
 
HWY_API Vec256< int16_t > Neg (const Vec256< int16_t > v)
 
HWY_API Vec256< int32_t > Neg (const Vec256< int32_t > v)
 
HWY_API Vec256< int64_t > Neg (const Vec256< int64_t > v)
 
HWY_API Vec256< float > operator* (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< float > operator/ (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< float > ApproximateReciprocal (const Vec256< float > v)
 
HWY_API Vec256< float > AbsDiff (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< float > MulAdd (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > add)
 
HWY_API Vec256< float > NegMulAdd (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > add)
 
HWY_API Vec256< float > MulSub (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > sub)
 
HWY_API Vec256< float > NegMulSub (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > sub)
 
HWY_API Vec256< float > Sqrt (const Vec256< float > v)
 
HWY_API Vec256< float > ApproximateReciprocalSqrt (const Vec256< float > v)
 
HWY_API Vec256< float > Round (const Vec256< float > v)
 
HWY_API Vec256< float > Trunc (const Vec256< float > v)
 
HWY_API Vec256< float > Ceil (const Vec256< float > v)
 
HWY_API Vec256< float > Floor (const Vec256< float > v)
 
template<typename T >
HWY_API Mask256< T > IsNaN (const Vec256< T > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Mask256< T > IsInf (const Vec256< T > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Mask256< T > IsFinite (const Vec256< T > v)
 
template<typename TFrom , typename TTo >
HWY_API Mask256< TTo > RebindMask (Full256< TTo >, Mask256< TFrom > m)
 
template<typename T >
HWY_API Mask256< T > TestBit (Vec256< T > v, Vec256< T > bit)
 
HWY_API Mask256< uint8_t > operator== (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Mask256< uint16_t > operator== (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Mask256< uint32_t > operator== (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Mask256< int8_t > operator== (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Mask256< int16_t > operator== (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Mask256< int32_t > operator== (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Mask256< float > operator== (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Mask256< uint8_t > operator!= (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Mask256< uint16_t > operator!= (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Mask256< uint32_t > operator!= (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Mask256< int8_t > operator!= (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Mask256< int16_t > operator!= (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Mask256< int32_t > operator!= (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Mask256< float > operator!= (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Mask256< int8_t > operator> (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Mask256< int16_t > operator> (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Mask256< int32_t > operator> (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Mask256< int64_t > operator> (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
template<typename T , HWY_IF_UNSIGNED(T) >
HWY_API Mask256< T > operator> (Vec256< T > a, Vec256< T > b)
 
HWY_API Mask256< float > operator> (const Vec256< float > a, const Vec256< float > b)
 
template<typename T >
HWY_API Mask256< T > operator< (const Vec256< T > a, const Vec256< T > b)
 
HWY_API Mask256< float > operator<= (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Mask256< float > operator>= (const Vec256< float > a, const Vec256< float > b)
 
template<typename T >
HWY_API Mask256< T > FirstN (const Full256< T > d, size_t num)
 
template<typename T >
HWY_API Vec256< T > Not (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > And (Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > AndNot (Vec256< T > not_mask, Vec256< T > mask)
 
template<typename T >
HWY_API Vec256< T > Or (Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Xor (Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Or3 (Vec256< T > o1, Vec256< T > o2, Vec256< T > o3)
 
template<typename T >
HWY_API Vec256< T > OrAnd (Vec256< T > o, Vec256< T > a1, Vec256< T > a2)
 
template<typename T >
HWY_API Vec256< T > IfVecThenElse (Vec256< T > mask, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_API Vec256< T > operator& (const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > operator| (const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > operator^ (const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > CopySign (const Vec256< T > magn, const Vec256< T > sign)
 
template<typename T >
HWY_API Vec256< T > CopySignToAbs (const Vec256< T > abs, const Vec256< T > sign)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API Vec256< T > BroadcastSignBit (const Vec256< T > v)
 
HWY_API Vec256< int8_t > BroadcastSignBit (const Vec256< int8_t > v)
 
template<typename T >
HWY_API Mask256< T > MaskFromVec (const Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > VecFromMask (Full256< T >, Mask256< T > v)
 
template<typename T >
HWY_API Vec256< T > IfThenElse (Mask256< T > mask, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_API Vec256< T > IfThenElseZero (Mask256< T > mask, Vec256< T > yes)
 
template<typename T >
HWY_API Vec256< T > IfThenZeroElse (Mask256< T > mask, Vec256< T > no)
 
template<typename T >
HWY_API Vec256< T IfNegativeThenElse(Vec256< T > v, Vec256< T > yes, Vec256< T > no) { HWY_ASSERT(0);}template< typename T, HWY_IF_FLOAT(T)>HWY_API Vec256< T > ZeroIfNegative(Vec256< T > v) { const Full256< T > d;const auto zero=Zero(d);return IfThenElse(Mask256< T >{(v > zero).raw}, v, zero);}template< typename T >HWY_API Mask256< T > Not(const Mask256< T > m) { return MaskFromVec(Not(VecFromMask(Full256< T >(), m)));}template< typename T > HWY_API Mask256< T > And (const Mask256< T > a, Mask256< T > b)
 
template<typename T >
HWY_API Mask256< T > AndNot (const Mask256< T > a, Mask256< T > b)
 
template<typename T >
HWY_API Mask256< T > Or (const Mask256< T > a, Mask256< T > b)
 
template<typename T >
HWY_API Mask256< T > Xor (const Mask256< T > a, Mask256< T > b)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > operator<< (Vec256< T > v, const Vec256< T > bits)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > operator>> (Vec256< T > v, const Vec256< T > bits)
 
template<typename T >
HWY_API Vec256< T > Load (Full256< T >, const T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec256< T > MaskedLoad (Mask256< T > m, Full256< T > d, const T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec256< T > LoadU (Full256< T > d, const T *HWY_RESTRICT p)
 
template<typename T >
HWY_API Vec256< T > LoadDup128 (Full256< T > d, const T *HWY_RESTRICT p)
 
template<typename T >
HWY_API void Store (Vec256< T > v, Full256< T >, T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void StoreU (Vec256< T > v, Full256< T > d, T *HWY_RESTRICT p)
 
template<typename T >
HWY_API void BlendedStore (Vec256< T > v, Mask256< T > m, Full256< T > d, T *HWY_RESTRICT p)
 
template<typename T >
HWY_API void Stream (Vec256< T > v, Full256< T >, T *HWY_RESTRICT aligned)
 
template<typename T , typename Offset >
HWY_API void ScatterOffset (Vec256< T > v, Full256< T > d, T *HWY_RESTRICT base, const Vec256< Offset > offset)
 
template<typename T , typename Index >
HWY_API void ScatterIndex (Vec256< T > v, Full256< T > d, T *HWY_RESTRICT base, const Vec256< Index > index)
 
template<typename T , typename Offset >
HWY_API Vec256< T > GatherOffset (const Full256< T > d, const T *HWY_RESTRICT base, const Vec256< Offset > offset)
 
template<typename T , typename Index >
HWY_API Vec256< T > GatherIndex (const Full256< T > d, const T *HWY_RESTRICT base, const Vec256< Index > index)
 
HWY_API uint8_t GetLane (const Vec256< uint8_t > v)
 
HWY_API int8_t GetLane (const Vec256< int8_t > v)
 
HWY_API uint16_t GetLane (const Vec256< uint16_t > v)
 
HWY_API int16_t GetLane (const Vec256< int16_t > v)
 
HWY_API uint32_t GetLane (const Vec256< uint32_t > v)
 
HWY_API int32_t GetLane (const Vec256< int32_t > v)
 
HWY_API uint64_t GetLane (const Vec256< uint64_t > v)
 
HWY_API int64_t GetLane (const Vec256< int64_t > v)
 
HWY_API float GetLane (const Vec256< float > v)
 
template<typename T >
HWY_API Vec128< T > LowerHalf (Full128< T >, Vec256< T > v)
 
template<typename T >
HWY_API Vec128< T > LowerHalf (Vec256< T > v)
 
template<int kBytes, typename T >
HWY_API Vec256< T > ShiftLeftBytes (Full256< T >, Vec256< T > v)
 
template<int kBytes, typename T >
HWY_API Vec256< T > ShiftLeftBytes (Vec256< T > v)
 
template<int kLanes, typename T >
HWY_API Vec256< T > ShiftLeftLanes (Full256< T > d, const Vec256< T > v)
 
template<int kLanes, typename T >
HWY_API Vec256< T > ShiftLeftLanes (const Vec256< T > v)
 
template<int kBytes, typename T >
HWY_API Vec256< T > ShiftRightBytes (Full256< T >, Vec256< T > v)
 
template<int kLanes, typename T >
HWY_API Vec256< T > ShiftRightLanes (Full256< T > d, const Vec256< T > v)
 
template<typename T >
HWY_API Vec128< T, 8/sizeof(T)> UpperHalf (Full128< T >, const Vec256< T > v)
 
HWY_API Vec128< float, 2 > UpperHalf (Full128< float >, const Vec128< float > v)
 
template<int kBytes, typename T , class V = Vec256<T>>
HWY_APICombineShiftRightBytes (Full256< T >, V hi, V lo)
 
template<int kLane>
HWY_API Vec256< uint16_t > Broadcast (const Vec256< uint16_t > v)
 
template<int kLane>
HWY_API Vec256< uint32_t > Broadcast (const Vec256< uint32_t > v)
 
template<int kLane>
HWY_API Vec256< int16_t > Broadcast (const Vec256< int16_t > v)
 
template<int kLane>
HWY_API Vec256< int32_t > Broadcast (const Vec256< int32_t > v)
 
template<int kLane>
HWY_API Vec256< float > Broadcast (const Vec256< float > v)
 
template<typename T , typename TI >
HWY_API Vec256< TI > TableLookupBytes (const Vec256< T > bytes, const Vec256< TI > from)
 
template<typename T , typename TI >
HWY_API Vec256< TI > TableLookupBytesOr0 (const Vec256< T > bytes, const Vec256< TI > from)
 
HWY_API Vec128< uint32_t > Shuffle1032 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle1032 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle1032 (const Vec128< float > v)
 
HWY_API Vec128< uint32_t > Shuffle0321 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle0321 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle0321 (const Vec128< float > v)
 
HWY_API Vec128< uint32_t > Shuffle2103 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle2103 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle2103 (const Vec128< float > v)
 
HWY_API Vec128< uint32_t > Shuffle0123 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle0123 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle0123 (const Vec128< float > v)
 
template<typename T , typename TI >
HWY_API Indices256< T > IndicesFromVec (Full256< T > d, Vec256< TI > vec)
 
template<typename T , typename TI >
HWY_API Indices256< T > SetTableIndices (Full256< T > d, const TI *idx)
 
template<typename T >
HWY_API Vec256< T > TableLookupLanes (Vec256< T > v, Indices256< T > idx)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec256< T > Reverse (Full256< T >, const Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > Reverse2 (Full256< T > d, const Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > Reverse4 (Full256< T > d, const Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > Reverse8 (Full256< T > d, const Vec256< T > v)
 
HWY_API Vec256< uint8_t > InterleaveLower (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > InterleaveLower (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > InterleaveLower (Vec256< uint32_t > a, Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > InterleaveLower (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > InterleaveLower (Vec256< int8_t > a, Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > InterleaveLower (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > InterleaveLower (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > InterleaveLower (Vec256< int64_t > a, Vec256< int64_t > b)
 
HWY_API Vec256< float > InterleaveLower (Vec256< float > a, Vec256< float > b)
 
template<typename T , class V = Vec256<T>>
HWY_APIInterleaveLower (Full256< T >, V a, V b)
 
template<typename T , class V = Vec256<T>>
HWY_APIInterleaveUpper (Full256< T >, V a, V b)
 
template<typename T , class DW = RepartitionToWide<Full256<T>>>
HWY_API VFromD< DW > ZipLower (Vec256< T > a, Vec256< T > b)
 
template<typename T , class D = Full256<T>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipLower (DW dw, Vec256< T > a, Vec256< T > b)
 
template<typename T , class D = Full256<T>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipUpper (DW dw, Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Combine (Full256< T > d, Vec128< T > hi_half, Vec128< T > lo_half)
 
template<typename T >
HWY_API Vec256< T > ZeroExtendVector (Full256< T > d, Vec128< T > lo)
 
template<typename T >
HWY_API Vec256< T > ConcatLowerLower (Full256< T >, const Vec256< T > hi, const Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > ConcatUpperUpper (Full256< T >, const Vec256< T > hi, const Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > ConcatLowerUpper (Full256< T > d, const Vec256< T > hi, const Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > ConcatUpperLower (Full256< T > d, const Vec256< T > hi, const Vec256< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > ConcatOdd (Full256< T >, Vec256< T > hi, Vec256< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > ConcatEven (Full256< T >, Vec256< T > hi, Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > DupEven (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > DupOdd (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > OddEven (const Vec256< T > a, const Vec256< T > b)
 
HWY_API Vec256< float > OddEven (const Vec256< float > a, const Vec256< float > b)
 
template<typename T >
HWY_API Vec256< T > OddEvenBlocks (Vec256< T >, Vec256< T > even)
 
template<typename T >
HWY_API Vec256< T > SwapAdjacentBlocks (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > ReverseBlocks (Full256< T >, const Vec256< T > v)
 
HWY_API Vec256< uint16_t > PromoteTo (Full256< uint16_t >, const Vec128< uint8_t > v)
 
HWY_API Vec256< uint32_t > PromoteTo (Full256< uint32_t >, const Vec128< uint8_t > v)
 
HWY_API Vec256< int16_t > PromoteTo (Full256< int16_t >, const Vec128< uint8_t > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, const Vec128< uint8_t > v)
 
HWY_API Vec256< uint32_t > PromoteTo (Full256< uint32_t >, const Vec128< uint16_t > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, const Vec128< uint16_t > v)
 
HWY_API Vec256< int16_t > PromoteTo (Full256< int16_t >, const Vec128< int8_t > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, const Vec128< int8_t > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, const Vec128< int16_t > v)
 
HWY_API Vec256< double > PromoteTo (Full256< double >, const Vec128< int32_t > v)
 
HWY_API Vec256< float > PromoteTo (Full256< float >, const Vec128< float16_t > v)
 
HWY_API Vec256< float > PromoteTo (Full256< float > df32, const Vec128< bfloat16_t > v)
 
HWY_API Vec128< uint16_t > DemoteTo (Full128< uint16_t >, const Vec256< int32_t > v)
 
HWY_API Vec128< int16_t > DemoteTo (Full128< int16_t >, const Vec256< int32_t > v)
 
HWY_API Vec128< uint8_t > DemoteTo (Full128< uint8_t >, const Vec256< int32_t > v)
 
HWY_API Vec128< uint8_t > DemoteTo (Full128< uint8_t >, const Vec256< int16_t > v)
 
HWY_API Vec128< int8_t > DemoteTo (Full128< int8_t >, const Vec256< int32_t > v)
 
HWY_API Vec128< int8_t > DemoteTo (Full128< int8_t >, const Vec256< int16_t > v)
 
HWY_API Vec128< int32_t > DemoteTo (Full128< int32_t >, const Vec256< double > v)
 
HWY_API Vec128< float16_tDemoteTo (Full128< float16_t >, const Vec256< float > v)
 
HWY_API Vec128< bfloat16_tDemoteTo (Full128< bfloat16_t > dbf16, const Vec256< float > v)
 
HWY_API Vec128< bfloat16_tReorderDemote2To (Full128< bfloat16_t > dbf16, Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< uint8_t > U8FromU32 (const Vec256< uint32_t > v)
 
HWY_API Vec256< float > ConvertTo (Full256< float >, const Vec256< int32_t > v)
 
HWY_API Vec256< int32_t > ConvertTo (Full256< int32_t >, const Vec256< float > v)
 
HWY_API Vec256< int32_t > NearestInt (const Vec256< float > v)
 
template<typename T >
HWY_API Mask256< T > LoadMaskBits (Full256< T > d, const uint8_t *HWY_RESTRICT bits)
 
template<typename T >
HWY_API size_t StoreMaskBits (const Full256< T >, const Mask256< T > mask, uint8_t *bits)
 
template<typename T >
HWY_API size_t CountTrue (const Full256< T >, const Mask128< T > m)
 
template<typename T >
HWY_API bool AllFalse (const Full256< T > d, const Mask128< T > m)
 
template<typename T >
HWY_API bool AllTrue (const Full256< T >, const Mask128< T > m)
 
template<typename T >
HWY_API intptr_t FindFirstTrue (const Full256< T >, const Mask256< T > mask)
 
template<typename T >
HWY_API Vec256< T > Compress (Vec256< T > v, const Mask256< T > mask)
 
HWY_API Vec256< uint64_t > CompressBlocksNot (Vec256< uint64_t > v, Mask256< uint64_t > mask)
 
template<typename T >
HWY_API Vec256< T > CompressBits (Vec256< T > v, const uint8_t *HWY_RESTRICT bits)
 
template<typename T >
HWY_API size_t CompressStore (Vec256< T > v, const Mask256< T > mask, Full256< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API size_t CompressBlendedStore (Vec256< T > v, Mask256< T > m, Full256< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API size_t CompressBitsStore (Vec256< T > v, const uint8_t *HWY_RESTRICT bits, Full256< T > d, T *HWY_RESTRICT unaligned)
 
HWY_INLINE Vec256< uint64_t > MulEven (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_INLINE Vec256< uint64_t > MulOdd (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< float > ReorderWidenMulAccumulate (Full256< float > df32, Vec256< bfloat16_t > a, Vec256< bfloat16_t > b, const Vec256< float > sum0, Vec256< float > &sum1)
 
template<typename T >
HWY_API Vec256< T > SumOfLanes (Full256< T >, const Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > MinOfLanes (Full256< T >, const Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > MaxOfLanes (Full256< T >, const Vec256< T > v)
 
template<typename T >
HWY_INLINE Mask256< T > Lt128 (Full256< T > d, Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Lt128Upper (Full256< T > d, Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_INLINE Vec256< T > Min128 (Full256< T > d, Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_INLINE Vec256< T > Max128 (Full256< T > d, Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_INLINE Vec256< T > Min128Upper (Full256< T > d, Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_INLINE Vec256< T > Max128Upper (Full256< T > d, Vec256< T > a, Vec256< T > b)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, NZero (Simd< double, N, 0 >)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, NSet (Simd< double, N, 0 >, const double t)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, NUndefined (Simd< float, N, 0 >)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, NUndefined (Simd< double, N, 0 >)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_APIGetLane (const Vec128< T, N > v)
 
template<size_t N>
HWY_API float GetLane (const Vec128< float, N > v)
 
template<size_t N>
HWY_API uint64_t GetLane (const Vec128< uint64_t, N > v)
 
template<size_t N>
HWY_API int64_t GetLane (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API double GetLane (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< float, NAnd (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, NAnd (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< float, NAndNot (const Vec128< float, N > not_mask, const Vec128< float, N > mask)
 
template<size_t N>
HWY_API Vec128< double, NAndNot (const Vec128< double, N > not_mask, const Vec128< double, N > mask)
 
template<size_t N>
HWY_API Vec128< float, NOr (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, NOr (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< float, NXor (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, NXor (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, NPopulationCount (Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< double, NAbs (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< float, NIfThenElse (Mask128< float, N > mask, Vec128< float, N > yes, Vec128< float, N > no)
 
template<size_t N>
HWY_API Vec128< double, NIfThenElse (Mask128< double, N > mask, Vec128< double, N > yes, Vec128< double, N > no)
 
template<size_t N>
HWY_API Vec128< float, NIfThenElseZero (Mask128< float, N > mask, Vec128< float, N > yes)
 
template<size_t N>
HWY_API Vec128< double, NIfThenElseZero (Mask128< double, N > mask, Vec128< double, N > yes)
 
template<size_t N>
HWY_API Vec128< float, NIfThenZeroElse (Mask128< float, N > mask, Vec128< float, N > no)
 
template<size_t N>
HWY_API Vec128< double, NIfThenZeroElse (Mask128< double, N > mask, Vec128< double, N > no)
 
template<size_t N>
HWY_API Vec128< float, NShuffle2301 (const Vec128< float, N > v)
 
HWY_API Vec128< uint64_t > Shuffle01 (const Vec128< uint64_t > v)
 
HWY_API Vec128< int64_t > Shuffle01 (const Vec128< int64_t > v)
 
HWY_API Vec128< double > Shuffle01 (const Vec128< double > v)
 
template<typename TFrom , size_t NFrom, typename TTo , size_t NTo>
HWY_API Mask128< TTo, NTo > RebindMask (Simd< TTo, NTo, 0 >, Mask128< TFrom, NFrom > m)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask128< T, Noperator== (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Mask128< double, Noperator== (Vec128< double, N > a, Vec128< double, N > b)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask128< T, Noperator!= (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Mask128< double, Noperator!= (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< double, Noperator> (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< double, Noperator>= (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< float, NMaskFromVec (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, NMaskFromVec (const Vec128< double, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, NVecFromMask (const Mask128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, NVecFromMask (const Mask128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, NVecFromMask (const Mask128< double, N > v)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, NFirstN (const Simd< T, N, 0 > d, size_t num)
 
HWY_API Vec128< float > Load (Full128< float >, const float *HWY_RESTRICT aligned)
 
HWY_API Vec128< double > Load (Full128< double >, const double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec128< T > LoadU (Full128< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec128< double > LoadU (Full128< double >, const double *HWY_RESTRICT p)
 
template<typename T >
HWY_API Vec64< T > Load (Full64< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec128< float, 2 > Load (Full64< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec64< double > Load (Full64< double >, const double *HWY_RESTRICT p)
 
HWY_API Vec128< float, 1 > Load (Full32< float >, const float *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, NLoadU (Simd< T, N, 0 > d, const T *HWY_RESTRICT p)
 
template<typename T , size_t N, typename T2 , HWY_IF_LE128(T, N) >
HWY_API Vec128< T, NIota (const Simd< T, N, 0 > d, const T2 first)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, NMaskedLoad (Mask128< T, N > m, Simd< T, N, 0 >, const T *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< float, NMaskedLoad (Mask128< float, N > m, Simd< float, N, 0 >, const float *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< double, NMaskedLoad (Mask128< double, N > m, Simd< double, N, 0 >, const double *HWY_RESTRICT p)
 
HWY_API void Store (const Vec128< float > v, Full128< float >, float *HWY_RESTRICT aligned)
 
HWY_API void Store (const Vec128< double > v, Full128< double >, double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void StoreU (Vec128< T > v, Full128< T >, T *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< double > v, Full128< double >, double *HWY_RESTRICT p)
 
template<typename T >
HWY_API void Store (Vec64< T > v, Full64< T >, T *HWY_RESTRICT p)
 
HWY_API void Store (const Vec128< float, 2 > v, Full64< float >, float *HWY_RESTRICT p)
 
HWY_API void Store (const Vec64< double > v, Full64< double >, double *HWY_RESTRICT p)
 
HWY_API void Store (const Vec128< float, 1 > v, Full32< float >, float *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API void StoreU (const Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API void BlendedStore (Vec128< T, N > v, Mask128< T, N > m, Simd< T, N, 0 >, T *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void BlendedStore (Vec128< float, N > v, Mask128< float, N > m, Simd< float, N, 0 >, float *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void BlendedStore (Vec128< double, N > v, Mask128< double, N > m, Simd< double, N, 0 >, double *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< double, Noperator+ (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< double, Noperator- (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int64_t,(N+1)/2 > MulEven (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, NBroadcastSignBit (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, NBroadcastSignBit (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, NBroadcastSignBit (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, NIfNegativeThenElse (const Vec128< int8_t, N > v, const Vec128< int8_t, N > yes, const Vec128< int8_t, N > no)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, NIfNegativeThenElse (Vec128< T, N > v, Vec128< T, N > yes, Vec128< T, N > no)
 
HWY_API Vec128< float, 1 > operator* (const Vec128< float, 1 > a, const Vec128< float, 1 > b)
 
template<size_t N>
HWY_API Vec128< double, Noperator* (const Vec128< double, N > a, const Vec128< double, N > b)
 
HWY_API Vec64< double > operator* (const Vec64< double > a, const Vec64< double > b)
 
HWY_API Vec128< float, 1 > operator/ (const Vec128< float, 1 > a, const Vec128< float, 1 > b)
 
template<size_t N>
HWY_API Vec128< double, Noperator/ (const Vec128< double, N > a, const Vec128< double, N > b)
 
HWY_API Vec64< double > operator/ (const Vec64< double > a, const Vec64< double > b)
 
HWY_API Vec128< float, 1 > ApproximateReciprocal (const Vec128< float, 1 > v)
 
template<size_t N>
HWY_API Vec128< double, NMulAdd (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > add)
 
template<size_t N>
HWY_API Vec128< double, NNegMulAdd (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > add)
 
template<size_t N>
HWY_API Vec128< double, NMulSub (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > sub)
 
template<size_t N>
HWY_API Vec128< double, NNegMulSub (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > sub)
 
HWY_API Vec128< float, 1 > Sqrt (const Vec128< float, 1 > v)
 
template<size_t N>
HWY_API Vec128< double, NSqrt (const Vec128< double, N > v)
 
HWY_API Vec64< double > Sqrt (const Vec64< double > v)
 
HWY_API Vec128< float, 1 > ApproximateReciprocalSqrt (const Vec128< float, 1 > v)
 
template<size_t N>
HWY_API Vec128< double, NMin (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< double, NMax (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API void Stream (const Vec128< float, N > v, Simd< float, N, 0 >, float *HWY_RESTRICT aligned)
 
template<size_t N>
HWY_API void Stream (const Vec128< double, N > v, Simd< double, N, 0 >, double *HWY_RESTRICT aligned)
 
template<typename T , size_t N, typename Offset >
HWY_API void ScatterOffset (Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT base, const Vec128< Offset, N > offset)
 
template<size_t N>
HWY_API void ScatterOffset (Vec128< float, N > v, Simd< float, N, 0 >, float *HWY_RESTRICT base, const Vec128< int32_t, N > offset)
 
template<size_t N>
HWY_API void ScatterIndex (Vec128< float, N > v, Simd< float, N, 0 >, float *HWY_RESTRICT base, const Vec128< int32_t, N > index)
 
template<size_t N>
HWY_API void ScatterOffset (Vec128< double, N > v, Simd< double, N, 0 >, double *HWY_RESTRICT base, const Vec128< int64_t, N > offset)
 
template<size_t N>
HWY_API void ScatterIndex (Vec128< double, N > v, Simd< double, N, 0 >, double *HWY_RESTRICT base, const Vec128< int64_t, N > index)
 
template<typename T >
HWY_API Vec64< T > UpperHalf (Half< Full128< T > >, Vec128< T > v)
 
HWY_API Vec64< double > UpperHalf (Full64< double >, Vec128< double > v)
 
template<int kLane, size_t N>
HWY_API Vec128< uint16_t, NBroadcast (const Vec128< uint16_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< uint32_t, NBroadcast (const Vec128< uint32_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< uint64_t, NBroadcast (const Vec128< uint64_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int16_t, NBroadcast (const Vec128< int16_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int32_t, NBroadcast (const Vec128< int32_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int64_t, NBroadcast (const Vec128< int64_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< float, NBroadcast (const Vec128< float, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< double, NBroadcast (const Vec128< double, N > v)
 
template<typename T , size_t N, typename TI , HWY_IF_LE128(T, N) , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Indices128< T, NIndicesFromVec (Simd< T, N, 0 > d, Vec128< TI, N > vec)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, NTableLookupLanes (Vec128< T, N > v, Indices128< T, N > idx)
 
template<size_t N, HWY_IF_GE64(float, N) >
HWY_API Vec128< float, NTableLookupLanes (Vec128< float, N > v, Indices128< float, N > idx)
 
template<typename T >
HWY_API Vec128< T, 1 > TableLookupLanes (Vec128< T, 1 > v, Indices128< T, 1 >)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > TableLookupLanes (Vec128< T > v, Indices128< T > idx)
 
HWY_API Vec128< double > TableLookupLanes (Vec128< double > v, Indices128< double > idx)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, 2 > Reverse (Full64< T >, const Vec128< T, 2 > v)
 
template<size_t N, HWY_IF_LE128(uint8_t, N) >
HWY_API Vec128< uint8_t, NInterleaveLower (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N, HWY_IF_LE128(uint16_t, N) >
HWY_API Vec128< uint16_t, NInterleaveLower (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N, HWY_IF_LE128(uint32_t, N) >
HWY_API Vec128< uint32_t, NInterleaveLower (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N, HWY_IF_LE128(uint64_t, N) >
HWY_API Vec128< uint64_t, NInterleaveLower (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N, HWY_IF_LE128(int8_t, N) >
HWY_API Vec128< int8_t, NInterleaveLower (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N, HWY_IF_LE128(int16_t, N) >
HWY_API Vec128< int16_t, NInterleaveLower (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N, HWY_IF_LE128(int32_t, N) >
HWY_API Vec128< int32_t, NInterleaveLower (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N, HWY_IF_LE128(int64_t, N) >
HWY_API Vec128< int64_t, NInterleaveLower (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, NInterleaveLower (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T > ZeroExtendVector (Full128< T >, Vec64< T > lo)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, NZeroExtendVector (Simd< T, N, 0 > d, Vec128< T, N/2 > lo)
 
template<typename T >
HWY_API Vec128< T > ConcatUpperLower (Full128< T > d, Vec128< T > hi, Vec128< T > lo)
 
HWY_API Vec128< float > ConcatUpperLower (Full128< float > d, Vec128< float > hi, Vec128< float > lo)
 
HWY_API Vec128< double > ConcatUpperLower (Full128< double >, Vec128< double > hi, Vec128< double > lo)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, NConcatUpperLower (Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec64< T > ConcatOdd (Simd< T, 8, 0 > d, Vec64< T > hi, Vec64< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec32< T > ConcatOdd (Simd< T, 4, 0 > d, Vec32< T > hi, Vec32< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec64< T > ConcatOdd (Simd< T, 4, 0 > d, Vec64< T > hi, Vec64< T > lo)
 
template<size_t N>
HWY_API Vec128< float > ConcatOdd (Full128< float >, Vec128< float > hi, Vec128< float > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec64< T > ConcatEven (Simd< T, 8, 0 > d, Vec64< T > hi, Vec64< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec32< T > ConcatEven (Simd< T, 4, 0 > d, Vec32< T > hi, Vec32< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec64< T > ConcatEven (Simd< T, 4, 0 > d, Vec64< T > hi, Vec64< T > lo)
 
HWY_API Vec128< float > ConcatEven (Full128< float >, Vec128< float > hi, Vec128< float > lo)
 
template<size_t N>
HWY_API Vec128< float, NDupEven (Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, NDupOdd (Vec128< float, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_INLINE Vec128< T, NOddEven (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Noperator<< (const Vec128< uint16_t, N > v, const Vec128< uint16_t, N > bits)
 
HWY_API Vec128< uint16_t, 1 > operator<< (const Vec128< uint16_t, 1 > v, const Vec128< uint16_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, Noperator<< (const Vec128< uint32_t, N > v, const Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint32_t, 1 > operator<< (const Vec128< uint32_t, 1 > v, const Vec128< uint32_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< uint16_t, Noperator>> (const Vec128< uint16_t, N > in, const Vec128< uint16_t, N > bits)
 
HWY_API Vec128< uint16_t, 1 > operator>> (const Vec128< uint16_t, 1 > in, const Vec128< uint16_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, Noperator>> (const Vec128< uint32_t, N > in, const Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint32_t, 1 > operator>> (const Vec128< uint32_t, 1 > in, const Vec128< uint32_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< int16_t, Noperator>> (const Vec128< int16_t, N > v, const Vec128< int16_t, N > bits)
 
HWY_API Vec128< int16_t, 1 > operator>> (const Vec128< int16_t, 1 > v, const Vec128< int16_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< int32_t, Noperator>> (const Vec128< int32_t, N > v, const Vec128< int32_t, N > bits)
 
HWY_API Vec128< int32_t, 1 > operator>> (const Vec128< int32_t, 1 > v, const Vec128< int32_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< int64_t, Noperator>> (const Vec128< int64_t, N > v, const Vec128< int64_t, N > bits)
 
template<size_t N>
HWY_INLINE_F16 Vec128< float, NPromoteTo (Simd< float, N, 0 > df32, const Vec128< float16_t, N > v)
 
template<size_t N>
HWY_API Vec128< double, NPromoteTo (Simd< double, N, 0 >, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, NConvertTo (Simd< double, N, 0 > dd, const Vec128< int64_t, N > v)
 
HWY_API Vec128< int64_t > ConvertTo (Full128< int64_t > di, const Vec128< double > v)
 
HWY_API Vec64< int64_t > ConvertTo (Full64< int64_t > di, const Vec64< double > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NRound (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NTrunc (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NCeil (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, NFloor (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Mask128< float, NIsNaN (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, NIsNaN (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Mask128< float, NIsInf (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, NIsInf (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Mask128< float, NIsFinite (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, NIsFinite (const Vec128< double, N > v)
 
template<size_t N, HWY_IF_GE64(float, N) >
HWY_API Vec128< float, NCompress (Vec128< float, N > v, Mask128< float, N > mask)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API size_t CompressStore (Vec128< T, N > v, Mask128< T, N > mask, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API size_t CompressStore (Vec128< float, N > v, Mask128< float, N > mask, Simd< float, N, 0 >, float *HWY_RESTRICT unaligned)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API size_t CompressStore (Vec128< double, N > v, Mask128< double, N > mask, Simd< double, N, 0 >, double *HWY_RESTRICT unaligned)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > Lt128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > Lt128Upper (D d, const V a, const V b)
 
HWY_API Vec256< double > Zero (Full256< double >)
 
HWY_API Vec256< double > Set (Full256< double >, const double t)
 
HWY_API Vec256< float > Undefined (Full256< float >)
 
HWY_API Vec256< double > Undefined (Full256< double >)
 
HWY_API Vec256< float > And (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > And (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< float > AndNot (const Vec256< float > not_mask, const Vec256< float > mask)
 
HWY_API Vec256< double > AndNot (const Vec256< double > not_mask, const Vec256< double > mask)
 
HWY_API Vec256< float > Or (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > Or (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< float > Xor (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > Xor (const Vec256< double > a, const Vec256< double > b)
 
template<typename T >
HWY_API Vec256< T > PopulationCount (Vec256< T > v)
 
HWY_API Vec256< float > IfThenElse (Mask256< float > mask, Vec256< float > yes, Vec256< float > no)
 
HWY_API Vec256< double > IfThenElse (Mask256< double > mask, Vec256< double > yes, Vec256< double > no)
 
HWY_API Vec256< float > IfThenElseZero (Mask256< float > mask, Vec256< float > yes)
 
HWY_API Vec256< double > IfThenElseZero (Mask256< double > mask, Vec256< double > yes)
 
HWY_API Vec256< float > IfThenZeroElse (Mask256< float > mask, Vec256< float > no)
 
HWY_API Vec256< double > IfThenZeroElse (Mask256< double > mask, Vec256< double > no)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > ZeroIfNegative (const Vec256< T > v)
 
template<typename T >
HWY_API Mask256< T > And (const Mask256< T > a, Mask256< T > b)
 
template<typename T >
HWY_API Mask256< T > Not (const Mask256< T > m)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask256< T > operator== (const Vec256< T > a, const Vec256< T > b)
 
HWY_API Mask256< double > operator== (Vec256< double > a, Vec256< double > b)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask256< T > operator!= (const Vec256< T > a, const Vec256< T > b)
 
HWY_API Mask256< double > operator!= (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< uint8_t > operator> (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Mask256< uint16_t > operator> (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Mask256< uint32_t > operator> (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Mask256< uint64_t > operator> (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Mask256< double > operator> (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< double > operator>= (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< float > MaskFromVec (const Vec256< float > v)
 
HWY_API Mask256< double > MaskFromVec (const Vec256< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > VecFromMask (const Mask256< T > v)
 
HWY_API Vec256< float > VecFromMask (const Mask256< float > v)
 
HWY_API Vec256< double > VecFromMask (const Mask256< double > v)
 
template<typename T >
HWY_API Mask256< T > operator<= (const Vec256< T > a, const Vec256< T > b)
 
HWY_API Vec256< double > Min (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< double > Max (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< uint64_t > operator+ (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< int64_t > operator+ (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< double > operator+ (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< uint64_t > operator- (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< int64_t > operator- (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< double > operator- (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< double > Abs (const Vec256< double > v)
 
template<int kBits>
HWY_API Vec256< uint64_t > ShiftLeft (const Vec256< uint64_t > v)
 
template<int kBits>
HWY_API Vec256< int64_t > ShiftLeft (const Vec256< int64_t > v)
 
template<int kBits>
HWY_API Vec256< uint64_t > ShiftRight (const Vec256< uint64_t > v)
 
template<int kBits>
HWY_API Vec256< uint32_t > RotateRight (const Vec256< uint32_t > v)
 
template<int kBits>
HWY_API Vec256< uint64_t > RotateRight (const Vec256< uint64_t > v)
 
HWY_API Vec256< int16_t > BroadcastSignBit (const Vec256< int16_t > v)
 
HWY_API Vec256< int32_t > BroadcastSignBit (const Vec256< int32_t > v)
 
HWY_API Vec256< int64_t > BroadcastSignBit (const Vec256< int64_t > v)
 
template<int kBits>
HWY_API Vec256< int64_t > ShiftRight (const Vec256< int64_t > v)
 
HWY_API Vec256< int8_t > IfNegativeThenElse (Vec256< int8_t > v, Vec256< int8_t > yes, Vec256< int8_t > no)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > IfNegativeThenElse (Vec256< T > v, Vec256< T > yes, Vec256< T > no)
 
HWY_API Vec256< uint64_t > ShiftLeftSame (const Vec256< uint64_t > v, const int bits)
 
HWY_API Vec256< int64_t > ShiftLeftSame (const Vec256< int64_t > v, const int bits)
 
HWY_API Vec256< uint64_t > ShiftRightSame (const Vec256< uint64_t > v, const int bits)
 
HWY_API Vec256< int64_t > ShiftRightSame (const Vec256< int64_t > v, const int bits)
 
HWY_API Vec256< double > operator* (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< double > operator/ (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< double > MulAdd (const Vec256< double > mul, const Vec256< double > x, const Vec256< double > add)
 
HWY_API Vec256< double > NegMulAdd (const Vec256< double > mul, const Vec256< double > x, const Vec256< double > add)
 
HWY_API Vec256< double > MulSub (const Vec256< double > mul, const Vec256< double > x, const Vec256< double > sub)
 
HWY_API Vec256< double > NegMulSub (const Vec256< double > mul, const Vec256< double > x, const Vec256< double > sub)
 
HWY_API Vec256< double > Sqrt (const Vec256< double > v)
 
HWY_API Vec256< double > Round (const Vec256< double > v)
 
HWY_API Vec256< double > Trunc (const Vec256< double > v)
 
HWY_API Vec256< double > Ceil (const Vec256< double > v)
 
HWY_API Vec256< double > Floor (const Vec256< double > v)
 
HWY_API Mask256< float > IsNaN (const Vec256< float > v)
 
HWY_API Mask256< double > IsNaN (const Vec256< double > v)
 
HWY_API Mask256< float > IsInf (const Vec256< float > v)
 
HWY_API Mask256< double > IsInf (const Vec256< double > v)
 
HWY_API Mask256< float > IsFinite (const Vec256< float > v)
 
HWY_API Mask256< double > IsFinite (const Vec256< double > v)
 
HWY_API Vec256< float > Load (Full256< float >, const float *HWY_RESTRICT aligned)
 
HWY_API Vec256< double > Load (Full256< double >, const double *HWY_RESTRICT aligned)
 
HWY_API Vec256< float > LoadU (Full256< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec256< double > LoadU (Full256< double >, const double *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > MaskedLoad (Mask256< T > m, Full256< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec256< float > MaskedLoad (Mask256< float > m, Full256< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec256< double > MaskedLoad (Mask256< double > m, Full256< double >, const double *HWY_RESTRICT p)
 
HWY_API Vec256< float > LoadDup128 (Full256< float >, const float *const HWY_RESTRICT p)
 
HWY_API Vec256< double > LoadDup128 (Full256< double >, const double *const HWY_RESTRICT p)
 
HWY_API void Store (const Vec256< float > v, Full256< float >, float *HWY_RESTRICT aligned)
 
HWY_API void Store (const Vec256< double > v, Full256< double >, double *HWY_RESTRICT aligned)
 
HWY_API void StoreU (const Vec256< float > v, Full256< float >, float *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec256< double > v, Full256< double >, double *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void BlendedStore (Vec256< T > v, Mask256< T > m, Full256< T >, T *HWY_RESTRICT p)
 
HWY_API void BlendedStore (Vec256< float > v, Mask256< float > m, Full256< float >, float *HWY_RESTRICT p)
 
HWY_API void BlendedStore (Vec256< double > v, Mask256< double > m, Full256< double >, double *HWY_RESTRICT p)
 
HWY_API void Stream (const Vec256< float > v, Full256< float >, float *HWY_RESTRICT aligned)
 
HWY_API void Stream (const Vec256< double > v, Full256< double >, double *HWY_RESTRICT aligned)
 
HWY_API void ScatterOffset (Vec256< float > v, Full256< float >, float *HWY_RESTRICT base, const Vec256< int32_t > offset)
 
HWY_API void ScatterIndex (Vec256< float > v, Full256< float >, float *HWY_RESTRICT base, const Vec256< int32_t > index)
 
HWY_API void ScatterOffset (Vec256< double > v, Full256< double >, double *HWY_RESTRICT base, const Vec256< int64_t > offset)
 
HWY_API void ScatterIndex (Vec256< double > v, Full256< double >, double *HWY_RESTRICT base, const Vec256< int64_t > index)
 
HWY_API Vec256< float > GatherOffset (Full256< float >, const float *HWY_RESTRICT base, const Vec256< int32_t > offset)
 
HWY_API Vec256< float > GatherIndex (Full256< float >, const float *HWY_RESTRICT base, const Vec256< int32_t > index)
 
HWY_API Vec256< double > GatherOffset (Full256< double >, const double *HWY_RESTRICT base, const Vec256< int64_t > offset)
 
HWY_API Vec256< double > GatherIndex (Full256< double >, const double *HWY_RESTRICT base, const Vec256< int64_t > index)
 
HWY_API Vec128< float > LowerHalf (Full128< float >, Vec256< float > v)
 
HWY_API Vec128< double > LowerHalf (Full128< double >, Vec256< double > v)
 
template<typename T >
HWY_API Vec128< T > UpperHalf (Full128< T >, Vec256< T > v)
 
HWY_API Vec128< float > UpperHalf (Full128< float >, Vec256< float > v)
 
HWY_API Vec128< double > UpperHalf (Full128< double >, Vec256< double > v)
 
template<typename T >
HWY_APIExtractLane (const Vec256< T > v, size_t i)
 
template<typename T >
HWY_API Vec256< T > InsertLane (const Vec256< T > v, size_t i, T t)
 
template<typename T >
HWY_APIGetLane (const Vec256< T > v)
 
HWY_API Vec256< float > ZeroExtendVector (Full256< float >, Vec128< float > lo)
 
HWY_API Vec256< double > ZeroExtendVector (Full256< double >, Vec128< double > lo)
 
HWY_API Vec256< float > Combine (Full256< float > d, Vec128< float > hi, Vec128< float > lo)
 
HWY_API Vec256< double > Combine (Full256< double > d, Vec128< double > hi, Vec128< double > lo)
 
template<int kLane>
HWY_API Vec256< uint64_t > Broadcast (const Vec256< uint64_t > v)
 
template<int kLane>
HWY_API Vec256< int64_t > Broadcast (const Vec256< int64_t > v)
 
template<int kLane>
HWY_API Vec256< double > Broadcast (const Vec256< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > Shuffle2301 (const Vec256< T > v)
 
HWY_API Vec256< float > Shuffle2301 (const Vec256< float > v)
 
HWY_API Vec256< uint32_t > Shuffle1032 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle1032 (const Vec256< int32_t > v)
 
HWY_API Vec256< float > Shuffle1032 (const Vec256< float > v)
 
HWY_API Vec256< uint64_t > Shuffle01 (const Vec256< uint64_t > v)
 
HWY_API Vec256< int64_t > Shuffle01 (const Vec256< int64_t > v)
 
HWY_API Vec256< double > Shuffle01 (const Vec256< double > v)
 
HWY_API Vec256< uint32_t > Shuffle0321 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle0321 (const Vec256< int32_t > v)
 
HWY_API Vec256< float > Shuffle0321 (const Vec256< float > v)
 
HWY_API Vec256< uint32_t > Shuffle2103 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle2103 (const Vec256< int32_t > v)
 
HWY_API Vec256< float > Shuffle2103 (const Vec256< float > v)
 
HWY_API Vec256< uint32_t > Shuffle0123 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle0123 (const Vec256< int32_t > v)
 
HWY_API Vec256< float > Shuffle0123 (const Vec256< float > v)
 
template<typename T , typename TI , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Indices256< T > IndicesFromVec (Full256< T >, Vec256< TI > vec)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > TableLookupLanes (Vec256< T > v, Indices256< T > idx)
 
HWY_API Vec256< float > TableLookupLanes (const Vec256< float > v, const Indices256< float > idx)
 
HWY_API Vec256< double > TableLookupLanes (const Vec256< double > v, const Indices256< double > idx)
 
HWY_API Vec256< float > SwapAdjacentBlocks (Vec256< float > v)
 
HWY_API Vec256< double > SwapAdjacentBlocks (Vec256< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > Reverse2 (Full256< T > d, const Vec256< T > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > Reverse4 (Full256< T > d, const Vec256< T > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > Reverse8 (Full256< T > d, const Vec256< T > v)
 
HWY_API Vec256< double > InterleaveLower (const Vec256< double > a, const Vec256< double > b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec256< TW > ZipLower (Vec256< T > a, Vec256< T > b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec256< TW > ZipLower (Full256< TW > dw, Vec256< T > a, Vec256< T > b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec256< TW > ZipUpper (Full256< TW > dw, Vec256< T > a, Vec256< T > b)
 
HWY_API Vec256< float > ConcatLowerLower (Full256< float > d, const Vec256< float > hi, const Vec256< float > lo)
 
HWY_API Vec256< double > ConcatLowerLower (Full256< double > d, const Vec256< double > hi, const Vec256< double > lo)
 
HWY_API Vec256< float > ConcatLowerUpper (Full256< float >, const Vec256< float > hi, const Vec256< float > lo)
 
HWY_API Vec256< double > ConcatLowerUpper (Full256< double >, const Vec256< double > hi, const Vec256< double > lo)
 
HWY_API Vec256< float > ConcatUpperLower (Full256< float >, const Vec256< float > hi, const Vec256< float > lo)
 
HWY_API Vec256< double > ConcatUpperLower (Full256< double >, const Vec256< double > hi, const Vec256< double > lo)
 
HWY_API Vec256< float > ConcatUpperUpper (Full256< float >, const Vec256< float > hi, const Vec256< float > lo)
 
HWY_API Vec256< double > ConcatUpperUpper (Full256< double >, const Vec256< double > hi, const Vec256< double > lo)
 
HWY_API Vec256< float > ConcatOdd (Full256< float > d, Vec256< float > hi, Vec256< float > lo)
 
HWY_API Vec256< double > ConcatOdd (Full256< double > d, Vec256< double > hi, Vec256< double > lo)
 
HWY_API Vec256< float > ConcatEven (Full256< float > d, Vec256< float > hi, Vec256< float > lo)
 
HWY_API Vec256< double > ConcatEven (Full256< double > d, Vec256< double > hi, Vec256< double > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > DupEven (Vec256< T > v)
 
HWY_API Vec256< float > DupEven (Vec256< float > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > DupOdd (Vec256< T > v)
 
HWY_API Vec256< float > DupOdd (Vec256< float > v)
 
HWY_API Vec256< double > OddEven (const Vec256< double > a, const Vec256< double > b)
 
template<typename T >
Vec256< T > OddEvenBlocks (Vec256< T > odd, Vec256< T > even)
 
HWY_API Vec256< float > OddEvenBlocks (Vec256< float > odd, Vec256< float > even)
 
HWY_API Vec256< double > OddEvenBlocks (Vec256< double > odd, Vec256< double > even)
 
template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytes (const Vec256< T > bytes, const Vec128< TI, NI > from)
 
template<typename T , size_t N, typename TI >
HWY_API Vec256< TI > TableLookupBytes (const Vec128< T, N > bytes, const Vec256< TI > from)
 
HWY_API Vec256< uint16_t > operator<< (const Vec256< uint16_t > v, const Vec256< uint16_t > bits)
 
HWY_API Vec256< uint32_t > operator<< (const Vec256< uint32_t > v, const Vec256< uint32_t > bits)
 
HWY_API Vec256< uint64_t > operator<< (const Vec256< uint64_t > v, const Vec256< uint64_t > bits)
 
HWY_API Vec256< uint16_t > operator>> (const Vec256< uint16_t > v, const Vec256< uint16_t > bits)
 
HWY_API Vec256< uint32_t > operator>> (const Vec256< uint32_t > v, const Vec256< uint32_t > bits)
 
HWY_API Vec256< uint64_t > operator>> (const Vec256< uint64_t > v, const Vec256< uint64_t > bits)
 
HWY_API Vec256< int16_t > operator>> (const Vec256< int16_t > v, const Vec256< int16_t > bits)
 
HWY_API Vec256< int32_t > operator>> (const Vec256< int32_t > v, const Vec256< int32_t > bits)
 
HWY_API Vec256< int64_t > operator>> (const Vec256< int64_t > v, const Vec256< int64_t > bits)
 
HWY_API Vec256< double > PromoteTo (Full256< double >, const Vec128< float, 4 > v)
 
HWY_API Vec256< double > PromoteTo (Full256< double >, const Vec128< int32_t, 4 > v)
 
HWY_API Vec256< uint32_t > PromoteTo (Full256< uint32_t >, Vec128< uint8_t, 8 > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, Vec128< uint8_t, 8 > v)
 
HWY_API Vec256< uint64_t > PromoteTo (Full256< uint64_t >, Vec128< uint32_t > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, Vec128< int8_t, 8 > v)
 
HWY_API Vec256< int64_t > PromoteTo (Full256< int64_t >, Vec128< int32_t > v)
 
HWY_API Vec128< uint8_t, 8 > DemoteTo (Full64< uint8_t >, const Vec256< int32_t > v)
 
HWY_API Vec128< int8_t, 8 > DemoteTo (Full64< int8_t >, const Vec256< int32_t > v)
 
HWY_API Vec256< bfloat16_tReorderDemote2To (Full256< bfloat16_t > dbf16, Vec256< float > a, Vec256< float > b)
 
HWY_API Vec128< float > DemoteTo (Full128< float >, const Vec256< double > v)
 
HWY_API Vec256< double > ConvertTo (Full256< double > dd, const Vec256< int64_t > v)
 
HWY_API Vec256< int64_t > ConvertTo (Full256< int64_t > di, const Vec256< double > v)
 
HWY_API Vec256< uint8_t > AESRound (Vec256< uint8_t > state, Vec256< uint8_t > round_key)
 
HWY_API Vec256< uint8_t > AESLastRound (Vec256< uint8_t > state, Vec256< uint8_t > round_key)
 
HWY_API Vec256< uint64_t > CLMulLower (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
HWY_API Vec256< uint64_t > CLMulUpper (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
template<typename T , typename T2 >
HWY_API Vec256< T > Iota (const Full256< T > d, const T2 first)
 
template<typename T >
HWY_API size_t CountTrue (const Full256< T >, const Mask256< T > mask)
 
template<typename T >
HWY_API bool AllFalse (const Full256< T >, const Mask256< T > mask)
 
template<typename T >
HWY_API bool AllTrue (const Full256< T >, const Mask256< T > mask)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > Compress (Vec256< T > v, Mask256< T > mask)
 
HWY_API Vec256< float > Compress (Vec256< float > v, Mask256< float > mask)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API Vec256< T > CompressNot (Vec256< T > v, const Mask256< T > mask)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API size_t CompressStore (Vec256< T > v, Mask256< T > mask, Full256< T > d, T *HWY_RESTRICT unaligned)
 
HWY_API size_t CompressStore (Vec256< float > v, Mask256< float > mask, Full256< float >, float *HWY_RESTRICT unaligned)
 
HWY_API size_t CompressStore (Vec256< double > v, Mask256< double > mask, Full256< double >, double *HWY_RESTRICT unaligned)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 2) >
HWY_API size_t CompressBlendedStore (Vec256< T > v, Mask256< T > m, Full256< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T , typename FromT >
HWY_API Vec512< T > BitCast (Full512< T > d, Vec512< FromT > v)
 
template<typename T >
HWY_API Vec512< T > Zero (Full512< T >)
 
HWY_API Vec512< float > Zero (Full512< float >)
 
HWY_API Vec512< double > Zero (Full512< double >)
 
HWY_API Vec512< uint8_t > Set (Full512< uint8_t >, const uint8_t t)
 
HWY_API Vec512< uint16_t > Set (Full512< uint16_t >, const uint16_t t)
 
HWY_API Vec512< uint32_t > Set (Full512< uint32_t >, const uint32_t t)
 
HWY_API Vec512< uint64_t > Set (Full512< uint64_t >, const uint64_t t)
 
HWY_API Vec512< int8_t > Set (Full512< int8_t >, const int8_t t)
 
HWY_API Vec512< int16_t > Set (Full512< int16_t >, const int16_t t)
 
HWY_API Vec512< int32_t > Set (Full512< int32_t >, const int32_t t)
 
HWY_API Vec512< int64_t > Set (Full512< int64_t >, const int64_t t)
 
HWY_API Vec512< float > Set (Full512< float >, const float t)
 
HWY_API Vec512< double > Set (Full512< double >, const double t)
 
template<typename T >
HWY_API Vec512< T > Undefined (Full512< T >)
 
HWY_API Vec512< float > Undefined (Full512< float >)
 
HWY_API Vec512< double > Undefined (Full512< double >)
 
template<typename T >
HWY_API Vec512< T > Not (const Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > And (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > And (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > And (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > AndNot (const Vec512< T > not_mask, const Vec512< T > mask)
 
HWY_API Vec512< float > AndNot (const Vec512< float > not_mask, const Vec512< float > mask)
 
HWY_API Vec512< double > AndNot (const Vec512< double > not_mask, const Vec512< double > mask)
 
template<typename T >
HWY_API Vec512< T > Or (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > Or (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > Or (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > Xor (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > Xor (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > Xor (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > Or3 (Vec512< T > o1, Vec512< T > o2, Vec512< T > o3)
 
template<typename T >
HWY_API Vec512< T > OrAnd (Vec512< T > o, Vec512< T > a1, Vec512< T > a2)
 
template<typename T >
HWY_API Vec512< T > IfVecThenElse (Vec512< T > mask, Vec512< T > yes, Vec512< T > no)
 
template<typename T >
HWY_API Vec512< T > operator& (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > operator| (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > operator^ (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > PopulationCount (Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > CopySign (const Vec512< T > magn, const Vec512< T > sign)
 
template<typename T >
HWY_API Vec512< T > CopySignToAbs (const Vec512< T > abs, const Vec512< T > sign)
 
template<typename T >
HWY_API Mask512< T > FirstN (const Full512< T >, size_t n)
 
template<typename T >
HWY_API Vec512< T > IfThenElse (const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
HWY_API Vec512< float > IfThenElse (const Mask512< float > mask, const Vec512< float > yes, const Vec512< float > no)
 
HWY_API Vec512< double > IfThenElse (const Mask512< double > mask, const Vec512< double > yes, const Vec512< double > no)
 
template<typename T >
HWY_API Vec512< T > IfThenElseZero (const Mask512< T > mask, const Vec512< T > yes)
 
HWY_API Vec512< float > IfThenElseZero (const Mask512< float > mask, const Vec512< float > yes)
 
HWY_API Vec512< double > IfThenElseZero (const Mask512< double > mask, const Vec512< double > yes)
 
template<typename T >
HWY_API Vec512< T > IfThenZeroElse (const Mask512< T > mask, const Vec512< T > no)
 
HWY_API Vec512< float > IfThenZeroElse (const Mask512< float > mask, const Vec512< float > no)
 
HWY_API Vec512< double > IfThenZeroElse (const Mask512< double > mask, const Vec512< double > no)
 
template<typename T >
HWY_API Vec512< T > IfNegativeThenElse (Vec512< T > v, Vec512< T > yes, Vec512< T > no)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec512< T > ZeroIfNegative (const Vec512< T > v)
 
HWY_API Vec512< uint8_t > operator+ (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > operator+ (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > operator+ (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > operator+ (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > operator+ (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > operator+ (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > operator+ (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > operator+ (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > operator+ (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > operator+ (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint8_t > operator- (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > operator- (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > operator- (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > operator- (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > operator- (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > operator- (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > operator- (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > operator- (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > operator- (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > operator- (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint64_t > SumsOf8 (const Vec512< uint8_t > v)
 
HWY_API Vec512< uint8_t > SaturatedAdd (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > SaturatedAdd (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > SaturatedAdd (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > SaturatedAdd (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< uint8_t > SaturatedSub (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > SaturatedSub (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > SaturatedSub (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > SaturatedSub (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< uint8_t > AverageRound (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > AverageRound (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > Abs (const Vec512< int8_t > v)
 
HWY_API Vec512< int16_t > Abs (const Vec512< int16_t > v)
 
HWY_API Vec512< int32_t > Abs (const Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > Abs (const Vec512< int64_t > v)
 
HWY_API Vec512< float > Abs (const Vec512< float > v)
 
HWY_API Vec512< double > Abs (const Vec512< double > v)
 
template<int kBits>
HWY_API Vec512< uint16_t > ShiftLeft (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > ShiftLeft (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > ShiftLeft (const Vec512< uint64_t > v)
 
template<int kBits>
HWY_API Vec512< int16_t > ShiftLeft (const Vec512< int16_t > v)
 
template<int kBits>
HWY_API Vec512< int32_t > ShiftLeft (const Vec512< int32_t > v)
 
template<int kBits>
HWY_API Vec512< int64_t > ShiftLeft (const Vec512< int64_t > v)
 
template<int kBits, typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > ShiftLeft (const Vec512< T > v)
 
template<int kBits>
HWY_API Vec512< uint16_t > ShiftRight (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > ShiftRight (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > ShiftRight (const Vec512< uint64_t > v)
 
template<int kBits>
HWY_API Vec512< uint8_t > ShiftRight (const Vec512< uint8_t > v)
 
template<int kBits>
HWY_API Vec512< int16_t > ShiftRight (const Vec512< int16_t > v)
 
template<int kBits>
HWY_API Vec512< int32_t > ShiftRight (const Vec512< int32_t > v)
 
template<int kBits>
HWY_API Vec512< int64_t > ShiftRight (const Vec512< int64_t > v)
 
template<int kBits>
HWY_API Vec512< int8_t > ShiftRight (const Vec512< int8_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > RotateRight (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > RotateRight (const Vec512< uint64_t > v)
 
HWY_API Vec512< uint16_t > ShiftLeftSame (const Vec512< uint16_t > v, const int bits)
 
HWY_API Vec512< uint32_t > ShiftLeftSame (const Vec512< uint32_t > v, const int bits)
 
HWY_API Vec512< uint64_t > ShiftLeftSame (const Vec512< uint64_t > v, const int bits)
 
HWY_API Vec512< int16_t > ShiftLeftSame (const Vec512< int16_t > v, const int bits)
 
HWY_API Vec512< int32_t > ShiftLeftSame (const Vec512< int32_t > v, const int bits)
 
HWY_API Vec512< int64_t > ShiftLeftSame (const Vec512< int64_t > v, const int bits)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > ShiftLeftSame (const Vec512< T > v, const int bits)
 
HWY_API Vec512< uint16_t > ShiftRightSame (const Vec512< uint16_t > v, const int bits)
 
HWY_API Vec512< uint32_t > ShiftRightSame (const Vec512< uint32_t > v, const int bits)
 
HWY_API Vec512< uint64_t > ShiftRightSame (const Vec512< uint64_t > v, const int bits)
 
HWY_API Vec512< uint8_t > ShiftRightSame (Vec512< uint8_t > v, const int bits)
 
HWY_API Vec512< int16_t > ShiftRightSame (const Vec512< int16_t > v, const int bits)
 
HWY_API Vec512< int32_t > ShiftRightSame (const Vec512< int32_t > v, const int bits)
 
HWY_API Vec512< int64_t > ShiftRightSame (const Vec512< int64_t > v, const int bits)
 
HWY_API Vec512< int8_t > ShiftRightSame (Vec512< int8_t > v, const int bits)
 
HWY_API Vec512< uint16_t > operator<< (const Vec512< uint16_t > v, const Vec512< uint16_t > bits)
 
HWY_API Vec512< uint32_t > operator<< (const Vec512< uint32_t > v, const Vec512< uint32_t > bits)
 
HWY_API Vec512< uint64_t > operator<< (const Vec512< uint64_t > v, const Vec512< uint64_t > bits)
 
template<typename T , HWY_IF_SIGNED(T) >
HWY_API Vec512< T > operator<< (const Vec512< T > v, const Vec512< T > bits)
 
HWY_API Vec512< uint16_t > operator>> (const Vec512< uint16_t > v, const Vec512< uint16_t > bits)
 
HWY_API Vec512< uint32_t > operator>> (const Vec512< uint32_t > v, const Vec512< uint32_t > bits)
 
HWY_API Vec512< uint64_t > operator>> (const Vec512< uint64_t > v, const Vec512< uint64_t > bits)
 
HWY_API Vec512< int16_t > operator>> (const Vec512< int16_t > v, const Vec512< int16_t > bits)
 
HWY_API Vec512< int32_t > operator>> (const Vec512< int32_t > v, const Vec512< int32_t > bits)
 
HWY_API Vec512< int64_t > operator>> (const Vec512< int64_t > v, const Vec512< int64_t > bits)
 
HWY_API Vec512< uint8_t > Min (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > Min (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > Min (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > Min (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > Min (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > Min (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > Min (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > Min (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > Min (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > Min (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint8_t > Max (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > Max (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > Max (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > Max (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > Max (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > Max (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > Max (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > Max (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > Max (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > Max (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint16_t > operator* (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > operator* (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< int16_t > operator* (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > operator* (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< uint16_t > MulHigh (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int16_t > MulHigh (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int16_t > MulFixedPoint15 (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int64_t > MulEven (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< uint64_t > MulEven (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec512< T > Neg (const Vec512< T > v)
 
HWY_API Vec512< float > operator* (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > operator* (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< float > operator/ (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > operator/ (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< float > ApproximateReciprocal (const Vec512< float > v)
 
HWY_API Vec512< float > AbsDiff (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< float > MulAdd (const Vec512< float > mul, const Vec512< float > x, const Vec512< float > add)
 
HWY_API Vec512< double > MulAdd (const Vec512< double > mul, const Vec512< double > x, const Vec512< double > add)
 
HWY_API Vec512< float > NegMulAdd (const Vec512< float > mul, const Vec512< float > x, const Vec512< float > add)
 
HWY_API Vec512< double > NegMulAdd (const Vec512< double > mul, const Vec512< double > x, const Vec512< double > add)
 
HWY_API Vec512< float > MulSub (const Vec512< float > mul, const Vec512< float > x, const Vec512< float > sub)
 
HWY_API Vec512< double > MulSub (const Vec512< double > mul, const Vec512< double > x, const Vec512< double > sub)
 
HWY_API Vec512< float > NegMulSub (const Vec512< float > mul, const Vec512< float > x, const Vec512< float > sub)
 
HWY_API Vec512< double > NegMulSub (const Vec512< double > mul, const Vec512< double > x, const Vec512< double > sub)
 
HWY_API Vec512< float > Sqrt (const Vec512< float > v)
 
HWY_API Vec512< double > Sqrt (const Vec512< double > v)
 
HWY_API Vec512< float > ApproximateReciprocalSqrt (const Vec512< float > v)
 
HWY_API Vec512< float > Round (const Vec512< float > v)
 
HWY_API Vec512< double > Round (const Vec512< double > v)
 
HWY_API Vec512< float > Trunc (const Vec512< float > v)
 
HWY_API Vec512< double > Trunc (const Vec512< double > v)
 
HWY_API Vec512< float > Ceil (const Vec512< float > v)
 
HWY_API Vec512< double > Ceil (const Vec512< double > v)
 
HWY_API Vec512< float > Floor (const Vec512< float > v)
 
HWY_API Vec512< double > Floor (const Vec512< double > v)
 
template<typename TFrom , typename TTo >
HWY_API Mask512< TTo > RebindMask (Full512< TTo >, Mask512< TFrom > m)
 
template<typename T >
HWY_API Mask512< T > TestBit (const Vec512< T > v, const Vec512< T > bit)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask512< T > operator== (Vec512< T > a, Vec512< T > b)
 
HWY_API Mask512< float > operator== (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > operator== (Vec512< double > a, Vec512< double > b)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask512< T > operator!= (Vec512< T > a, Vec512< T > b)
 
HWY_API Mask512< float > operator!= (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > operator!= (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< uint8_t > operator> (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Mask512< uint16_t > operator> (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Mask512< uint32_t > operator> (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Mask512< uint64_t > operator> (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Mask512< int8_t > operator> (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Mask512< int16_t > operator> (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Mask512< int32_t > operator> (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Mask512< int64_t > operator> (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Mask512< float > operator> (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > operator> (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< float > operator>= (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > operator>= (Vec512< double > a, Vec512< double > b)
 
template<typename T >
HWY_API Mask512< T > operator< (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Mask512< T > operator<= (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Mask512< T > MaskFromVec (const Vec512< T > v)
 
HWY_API Mask512< float > MaskFromVec (const Vec512< float > v)
 
HWY_API Mask512< double > MaskFromVec (const Vec512< double > v)
 
HWY_API Vec512< uint8_t > VecFromMask (const Mask512< uint8_t > v)
 
HWY_API Vec512< int8_t > VecFromMask (const Mask512< int8_t > v)
 
HWY_API Vec512< uint16_t > VecFromMask (const Mask512< uint16_t > v)
 
HWY_API Vec512< int16_t > VecFromMask (const Mask512< int16_t > v)
 
HWY_API Vec512< uint32_t > VecFromMask (const Mask512< uint32_t > v)
 
HWY_API Vec512< int32_t > VecFromMask (const Mask512< int32_t > v)
 
HWY_API Vec512< float > VecFromMask (const Mask512< float > v)
 
HWY_API Vec512< uint64_t > VecFromMask (const Mask512< uint64_t > v)
 
HWY_API Vec512< int64_t > VecFromMask (const Mask512< int64_t > v)
 
HWY_API Vec512< double > VecFromMask (const Mask512< double > v)
 
template<typename T >
HWY_API Vec512< T > VecFromMask (Full512< T >, const Mask512< T > v)
 
template<typename T >
HWY_API Mask512< T > Not (const Mask512< T > m)
 
template<typename T >
HWY_API Mask512< T > And (const Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > AndNot (const Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > Or (const Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > Xor (const Mask512< T > a, Mask512< T > b)
 
HWY_API Vec512< int8_t > BroadcastSignBit (const Vec512< int8_t > v)
 
HWY_API Vec512< int16_t > BroadcastSignBit (const Vec512< int16_t > v)
 
HWY_API Vec512< int32_t > BroadcastSignBit (const Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > BroadcastSignBit (const Vec512< int64_t > v)
 
HWY_API Mask512< float > IsNaN (const Vec512< float > v)
 
HWY_API Mask512< double > IsNaN (const Vec512< double > v)
 
HWY_API Mask512< float > IsInf (const Vec512< float > v)
 
HWY_API Mask512< double > IsInf (const Vec512< double > v)
 
HWY_API Mask512< float > IsFinite (const Vec512< float > v)
 
HWY_API Mask512< double > IsFinite (const Vec512< double > v)
 
template<typename T >
HWY_API Vec512< T > Load (Full512< T >, const T *HWY_RESTRICT aligned)
 
HWY_API Vec512< float > Load (Full512< float >, const float *HWY_RESTRICT aligned)
 
HWY_API Vec512< double > Load (Full512< double >, const double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec512< T > LoadU (Full512< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec512< float > LoadU (Full512< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec512< double > LoadU (Full512< double >, const double *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > MaskedLoad (Mask512< T > m, Full512< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec512< float > MaskedLoad (Mask512< float > m, Full512< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec512< double > MaskedLoad (Mask512< double > m, Full512< double >, const double *HWY_RESTRICT p)
 
template<typename T >
HWY_API Vec512< T > LoadDup128 (Full512< T >, const T *const HWY_RESTRICT p)
 
HWY_API Vec512< float > LoadDup128 (Full512< float >, const float *const HWY_RESTRICT p)
 
HWY_API Vec512< double > LoadDup128 (Full512< double >, const double *const HWY_RESTRICT p)
 
template<typename T >
HWY_API void Store (const Vec512< T > v, Full512< T >, T *HWY_RESTRICT aligned)
 
HWY_API void Store (const Vec512< float > v, Full512< float >, float *HWY_RESTRICT aligned)
 
HWY_API void Store (const Vec512< double > v, Full512< double >, double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void StoreU (const Vec512< T > v, Full512< T >, T *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec512< float > v, Full512< float >, float *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec512< double > v, Full512< double >, double *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void BlendedStore (Vec512< T > v, Mask512< T > m, Full512< T >, T *HWY_RESTRICT p)
 
HWY_API void BlendedStore (Vec512< float > v, Mask512< float > m, Full512< float >, float *HWY_RESTRICT p)
 
HWY_API void BlendedStore (Vec512< double > v, Mask512< double > m, Full512< double >, double *HWY_RESTRICT p)
 
template<typename T >
HWY_API void Stream (const Vec512< T > v, Full512< T >, T *HWY_RESTRICT aligned)
 
HWY_API void Stream (const Vec512< float > v, Full512< float >, float *HWY_RESTRICT aligned)
 
HWY_API void Stream (const Vec512< double > v, Full512< double >, double *HWY_RESTRICT aligned)
 
template<typename T , typename Offset >
HWY_API void ScatterOffset (Vec512< T > v, Full512< T > d, T *HWY_RESTRICT base, const Vec512< Offset > offset)
 
template<typename T , typename Index >
HWY_API void ScatterIndex (Vec512< T > v, Full512< T > d, T *HWY_RESTRICT base, const Vec512< Index > index)
 
HWY_API void ScatterOffset (Vec512< float > v, Full512< float >, float *HWY_RESTRICT base, const Vec512< int32_t > offset)
 
HWY_API void ScatterIndex (Vec512< float > v, Full512< float >, float *HWY_RESTRICT base, const Vec512< int32_t > index)
 
HWY_API void ScatterOffset (Vec512< double > v, Full512< double >, double *HWY_RESTRICT base, const Vec512< int64_t > offset)
 
HWY_API void ScatterIndex (Vec512< double > v, Full512< double >, double *HWY_RESTRICT base, const Vec512< int64_t > index)
 
template<typename T , typename Offset >
HWY_API Vec512< T > GatherOffset (Full512< T > d, const T *HWY_RESTRICT base, const Vec512< Offset > offset)
 
template<typename T , typename Index >
HWY_API Vec512< T > GatherIndex (Full512< T > d, const T *HWY_RESTRICT base, const Vec512< Index > index)
 
HWY_API Vec512< float > GatherOffset (Full512< float >, const float *HWY_RESTRICT base, const Vec512< int32_t > offset)
 
HWY_API Vec512< float > GatherIndex (Full512< float >, const float *HWY_RESTRICT base, const Vec512< int32_t > index)
 
HWY_API Vec512< double > GatherOffset (Full512< double >, const double *HWY_RESTRICT base, const Vec512< int64_t > offset)
 
HWY_API Vec512< double > GatherIndex (Full512< double >, const double *HWY_RESTRICT base, const Vec512< int64_t > index)
 
template<typename T >
HWY_API Vec256< T > LowerHalf (Full256< T >, Vec512< T > v)
 
HWY_API Vec256< float > LowerHalf (Full256< float >, Vec512< float > v)
 
HWY_API Vec256< double > LowerHalf (Full256< double >, Vec512< double > v)
 
template<typename T >
HWY_API Vec256< T > LowerHalf (Vec512< T > v)
 
template<typename T >
HWY_API Vec256< T > UpperHalf (Full256< T >, Vec512< T > v)
 
HWY_API Vec256< float > UpperHalf (Full256< float >, Vec512< float > v)
 
HWY_API Vec256< double > UpperHalf (Full256< double >, Vec512< double > v)
 
template<typename T >
HWY_APIExtractLane (const Vec512< T > v, size_t i)
 
template<typename T >
HWY_API Vec512< T > InsertLane (const Vec512< T > v, size_t i, T t)
 
template<typename T >
HWY_APIGetLane (const Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > ZeroExtendVector (Full512< T >, Vec256< T > lo)
 
HWY_API Vec512< float > ZeroExtendVector (Full512< float >, Vec256< float > lo)
 
HWY_API Vec512< double > ZeroExtendVector (Full512< double >, Vec256< double > lo)
 
template<typename T >
HWY_API Vec512< T > Combine (Full512< T > d, Vec256< T > hi, Vec256< T > lo)
 
HWY_API Vec512< float > Combine (Full512< float > d, Vec256< float > hi, Vec256< float > lo)
 
HWY_API Vec512< double > Combine (Full512< double > d, Vec256< double > hi, Vec256< double > lo)
 
template<int kBytes, typename T >
HWY_API Vec512< T > ShiftLeftBytes (Full512< T >, const Vec512< T > v)
 
template<int kBytes, typename T >
HWY_API Vec512< T > ShiftLeftBytes (const Vec512< T > v)
 
template<int kLanes, typename T >
HWY_API Vec512< T > ShiftLeftLanes (Full512< T > d, const Vec512< T > v)
 
template<int kLanes, typename T >
HWY_API Vec512< T > ShiftLeftLanes (const Vec512< T > v)
 
template<int kBytes, typename T >
HWY_API Vec512< T > ShiftRightBytes (Full512< T >, const Vec512< T > v)
 
template<int kLanes, typename T >
HWY_API Vec512< T > ShiftRightLanes (Full512< T > d, const Vec512< T > v)
 
template<int kBytes, typename T , class V = Vec512<T>>
HWY_APICombineShiftRightBytes (Full512< T > d, V hi, V lo)
 
template<int kLane>
HWY_API Vec512< uint16_t > Broadcast (const Vec512< uint16_t > v)
 
template<int kLane>
HWY_API Vec512< uint32_t > Broadcast (const Vec512< uint32_t > v)
 
template<int kLane>
HWY_API Vec512< uint64_t > Broadcast (const Vec512< uint64_t > v)
 
template<int kLane>
HWY_API Vec512< int16_t > Broadcast (const Vec512< int16_t > v)
 
template<int kLane>
HWY_API Vec512< int32_t > Broadcast (const Vec512< int32_t > v)
 
template<int kLane>
HWY_API Vec512< int64_t > Broadcast (const Vec512< int64_t > v)
 
template<int kLane>
HWY_API Vec512< float > Broadcast (const Vec512< float > v)
 
template<int kLane>
HWY_API Vec512< double > Broadcast (const Vec512< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > Shuffle2301 (const Vec512< T > v)
 
HWY_API Vec512< float > Shuffle2301 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > Shuffle1032 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle1032 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > Shuffle1032 (const Vec512< float > v)
 
HWY_API Vec512< uint64_t > Shuffle01 (const Vec512< uint64_t > v)
 
HWY_API Vec512< int64_t > Shuffle01 (const Vec512< int64_t > v)
 
HWY_API Vec512< double > Shuffle01 (const Vec512< double > v)
 
HWY_API Vec512< uint32_t > Shuffle0321 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle0321 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > Shuffle0321 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > Shuffle2103 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle2103 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > Shuffle2103 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > Shuffle0123 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle0123 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > Shuffle0123 (const Vec512< float > v)
 
template<typename T , typename TI >
HWY_API Indices512< T > IndicesFromVec (Full512< T >, Vec512< TI > vec)
 
template<typename T , typename TI >
HWY_API Indices512< T > SetTableIndices (const Full512< T > d, const TI *idx)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > TableLookupLanes (Vec512< T > v, Indices512< T > idx)
 
HWY_API Vec512< float > TableLookupLanes (Vec512< float > v, Indices512< float > idx)
 
HWY_API Vec512< double > TableLookupLanes (Vec512< double > v, Indices512< double > idx)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > Reverse (Full512< T > d, const Vec512< T > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > Reverse2 (Full512< T > d, const Vec512< T > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > Reverse4 (Full512< T > d, const Vec512< T > v)
 
HWY_API Vec512< double > Reverse4 (Full512< double >, Vec512< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > Reverse8 (Full512< T > d, const Vec512< T > v)
 
HWY_API Vec512< uint8_t > InterleaveLower (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > InterleaveLower (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > InterleaveLower (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > InterleaveLower (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > InterleaveLower (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > InterleaveLower (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > InterleaveLower (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > InterleaveLower (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > InterleaveLower (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > InterleaveLower (const Vec512< double > a, const Vec512< double > b)
 
template<typename T , class V = Vec512<T>>
HWY_APIInterleaveUpper (Full512< T >, V a, V b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > ZipLower (Vec512< T > a, Vec512< T > b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > ZipLower (Full512< TW >, Vec512< T > a, Vec512< T > b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > ZipUpper (Full512< TW > d, Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > ConcatLowerLower (Full512< T >, const Vec512< T > hi, const Vec512< T > lo)
 
HWY_API Vec512< float > ConcatLowerLower (Full512< float >, const Vec512< float > hi, const Vec512< float > lo)
 
HWY_API Vec512< double > ConcatLowerLower (Full512< double >, const Vec512< double > hi, const Vec512< double > lo)
 
template<typename T >
HWY_API Vec512< T > ConcatUpperUpper (Full512< T >, const Vec512< T > hi, const Vec512< T > lo)
 
HWY_API Vec512< float > ConcatUpperUpper (Full512< float >, const Vec512< float > hi, const Vec512< float > lo)
 
HWY_API Vec512< double > ConcatUpperUpper (Full512< double >, const Vec512< double > hi, const Vec512< double > lo)
 
template<typename T >
HWY_API Vec512< T > ConcatLowerUpper (Full512< T >, const Vec512< T > hi, const Vec512< T > lo)
 
HWY_API Vec512< float > ConcatLowerUpper (Full512< float >, const Vec512< float > hi, const Vec512< float > lo)
 
HWY_API Vec512< double > ConcatLowerUpper (Full512< double >, const Vec512< double > hi, const Vec512< double > lo)
 
template<typename T >
HWY_API Vec512< T > ConcatUpperLower (Full512< T >, const Vec512< T > hi, const Vec512< T > lo)
 
HWY_API Vec512< float > ConcatUpperLower (Full512< float >, const Vec512< float > hi, const Vec512< float > lo)
 
HWY_API Vec512< double > ConcatUpperLower (Full512< double >, const Vec512< double > hi, const Vec512< double > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > ConcatOdd (Full512< T > d, Vec512< T > hi, Vec512< T > lo)
 
HWY_API Vec512< float > ConcatOdd (Full512< float > d, Vec512< float > hi, Vec512< float > lo)
 
HWY_API Vec512< double > ConcatOdd (Full512< double > d, Vec512< double > hi, Vec512< double > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > ConcatEven (Full512< T > d, Vec512< T > hi, Vec512< T > lo)
 
HWY_API Vec512< float > ConcatEven (Full512< float > d, Vec512< float > hi, Vec512< float > lo)
 
HWY_API Vec512< double > ConcatEven (Full512< double > d, Vec512< double > hi, Vec512< double > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > DupEven (Vec512< T > v)
 
HWY_API Vec512< float > DupEven (Vec512< float > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > DupOdd (Vec512< T > v)
 
HWY_API Vec512< float > DupOdd (Vec512< float > v)
 
template<typename T >
HWY_API Vec512< T > OddEven (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > OddEvenBlocks (Vec512< T > odd, Vec512< T > even)
 
HWY_API Vec512< float > OddEvenBlocks (Vec512< float > odd, Vec512< float > even)
 
HWY_API Vec512< double > OddEvenBlocks (Vec512< double > odd, Vec512< double > even)
 
template<typename T >
HWY_API Vec512< T > SwapAdjacentBlocks (Vec512< T > v)
 
HWY_API Vec512< float > SwapAdjacentBlocks (Vec512< float > v)
 
HWY_API Vec512< double > SwapAdjacentBlocks (Vec512< double > v)
 
template<typename T >
HWY_API Vec512< T > ReverseBlocks (Full512< T >, Vec512< T > v)
 
HWY_API Vec512< float > ReverseBlocks (Full512< float >, Vec512< float > v)
 
HWY_API Vec512< double > ReverseBlocks (Full512< double >, Vec512< double > v)
 
template<typename T , typename TI >
HWY_API Vec512< TI > TableLookupBytes (Vec512< T > bytes, Vec512< TI > indices)
 
template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytes (Vec512< T > bytes, Vec128< TI, NI > from)
 
template<typename T , typename TI >
HWY_API Vec256< TI > TableLookupBytes (Vec512< T > bytes, Vec256< TI > from)
 
template<typename T , size_t N, typename TI >
HWY_API Vec512< TI > TableLookupBytes (Vec128< T, N > bytes, Vec512< TI > from)
 
template<typename T , typename TI >
HWY_API Vec512< TI > TableLookupBytes (Vec256< T > bytes, Vec512< TI > from)
 
HWY_API Vec512< uint16_t > PromoteTo (Full512< uint16_t >, Vec256< uint8_t > v)
 
HWY_API Vec512< uint32_t > PromoteTo (Full512< uint32_t >, Vec128< uint8_t > v)
 
HWY_API Vec512< int16_t > PromoteTo (Full512< int16_t >, Vec256< uint8_t > v)
 
HWY_API Vec512< int32_t > PromoteTo (Full512< int32_t >, Vec128< uint8_t > v)
 
HWY_API Vec512< uint32_t > PromoteTo (Full512< uint32_t >, Vec256< uint16_t > v)
 
HWY_API Vec512< int32_t > PromoteTo (Full512< int32_t >, Vec256< uint16_t > v)
 
HWY_API Vec512< uint64_t > PromoteTo (Full512< uint64_t >, Vec256< uint32_t > v)
 
HWY_API Vec512< int16_t > PromoteTo (Full512< int16_t >, Vec256< int8_t > v)
 
HWY_API Vec512< int32_t > PromoteTo (Full512< int32_t >, Vec128< int8_t > v)
 
HWY_API Vec512< int32_t > PromoteTo (Full512< int32_t >, Vec256< int16_t > v)
 
HWY_API Vec512< int64_t > PromoteTo (Full512< int64_t >, Vec256< int32_t > v)
 
HWY_API Vec512< float > PromoteTo (Full512< float >, const Vec256< float16_t > v)
 
HWY_API Vec512< float > PromoteTo (Full512< float > df32, const Vec256< bfloat16_t > v)
 
HWY_API Vec512< double > PromoteTo (Full512< double >, Vec256< float > v)
 
HWY_API Vec512< double > PromoteTo (Full512< double >, Vec256< int32_t > v)
 
HWY_API Vec256< uint16_t > DemoteTo (Full256< uint16_t >, const Vec512< int32_t > v)
 
HWY_API Vec256< int16_t > DemoteTo (Full256< int16_t >, const Vec512< int32_t > v)
 
HWY_API Vec128< uint8_t, 16 > DemoteTo (Full128< uint8_t >, const Vec512< int32_t > v)
 
HWY_API Vec256< uint8_t > DemoteTo (Full256< uint8_t >, const Vec512< int16_t > v)
 
HWY_API Vec128< int8_t, 16 > DemoteTo (Full128< int8_t >, const Vec512< int32_t > v)
 
HWY_API Vec256< int8_t > DemoteTo (Full256< int8_t >, const Vec512< int16_t > v)
 
HWY_API Vec256< float16_tDemoteTo (Full256< float16_t >, const Vec512< float > v)
 
HWY_API Vec256< bfloat16_tDemoteTo (Full256< bfloat16_t > dbf16, const Vec512< float > v)
 
HWY_API Vec512< bfloat16_tReorderDemote2To (Full512< bfloat16_t > dbf16, Vec512< float > a, Vec512< float > b)
 
HWY_API Vec256< float > DemoteTo (Full256< float >, const Vec512< double > v)
 
HWY_API Vec256< int32_t > DemoteTo (Full256< int32_t >, const Vec512< double > v)
 
HWY_API Vec128< uint8_t, 16 > U8FromU32 (const Vec512< uint32_t > v)
 
HWY_API Vec512< float > ConvertTo (Full512< float >, const Vec512< int32_t > v)
 
HWY_API Vec512< double > ConvertTo (Full512< double >, const Vec512< int64_t > v)
 
HWY_API Vec512< int32_t > ConvertTo (Full512< int32_t > d, const Vec512< float > v)
 
HWY_API Vec512< int64_t > ConvertTo (Full512< int64_t > di, const Vec512< double > v)
 
HWY_API Vec512< int32_t > NearestInt (const Vec512< float > v)
 
HWY_API Vec512< uint8_t > AESRound (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint8_t > AESLastRound (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint64_t > CLMulLower (Vec512< uint64_t > va, Vec512< uint64_t > vb)
 
HWY_API Vec512< uint64_t > CLMulUpper (Vec512< uint64_t > va, Vec512< uint64_t > vb)
 
template<typename T , typename T2 >
Vec512< T > Iota (const Full512< T > d, const T2 first)
 
template<typename T >
HWY_API bool AllFalse (const Full512< T >, const Mask512< T > mask)
 
template<typename T >
HWY_API bool AllTrue (const Full512< T >, const Mask512< T > mask)
 
template<typename T >
HWY_API Mask512< T > LoadMaskBits (const Full512< T >, const uint8_t *HWY_RESTRICT bits)
 
template<typename T >
HWY_API size_t StoreMaskBits (const Full512< T >, const Mask512< T > mask, uint8_t *bits)
 
template<typename T >
HWY_API size_t CountTrue (const Full512< T >, const Mask512< T > mask)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API intptr_t FindFirstTrue (const Full512< T >, const Mask512< T > mask)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > Compress (Vec512< T > v, Mask512< T > mask)
 
HWY_API Vec512< float > Compress (Vec512< float > v, Mask512< float > mask)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API Vec512< T > CompressNot (Vec512< T > v, const Mask512< T > mask)
 
HWY_API Vec512< uint64_t > CompressBlocksNot (Vec512< uint64_t > v, Mask512< uint64_t > mask)
 
template<typename T >
HWY_API Vec512< T > CompressBits (Vec512< T > v, const uint8_t *HWY_RESTRICT bits)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API size_t CompressStore (Vec512< T > v, Mask512< T > mask, Full512< T > d, T *HWY_RESTRICT unaligned)
 
HWY_API size_t CompressStore (Vec512< float > v, Mask512< float > mask, Full512< float >, float *HWY_RESTRICT unaligned)
 
HWY_API size_t CompressStore (Vec512< double > v, Mask512< double > mask, Full512< double >, double *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API size_t CompressBlendedStore (Vec512< T > v, Mask512< T > m, Full512< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API size_t CompressBitsStore (Vec512< T > v, const uint8_t *HWY_RESTRICT bits, Full512< T > d, T *HWY_RESTRICT unaligned)
 
HWY_INLINE Vec512< uint64_t > MulEven (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_INLINE Vec512< uint64_t > MulOdd (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< float > ReorderWidenMulAccumulate (Full512< float > df32, Vec512< bfloat16_t > a, Vec512< bfloat16_t > b, const Vec512< float > sum0, Vec512< float > &sum1)
 
HWY_API Vec512< int32_t > SumOfLanes (Full512< int32_t > d, Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > SumOfLanes (Full512< int64_t > d, Vec512< int64_t > v)
 
HWY_API Vec512< uint32_t > SumOfLanes (Full512< uint32_t > d, Vec512< uint32_t > v)
 
HWY_API Vec512< uint64_t > SumOfLanes (Full512< uint64_t > d, Vec512< uint64_t > v)
 
HWY_API Vec512< float > SumOfLanes (Full512< float > d, Vec512< float > v)
 
HWY_API Vec512< double > SumOfLanes (Full512< double > d, Vec512< double > v)
 
HWY_API Vec512< int32_t > MinOfLanes (Full512< int32_t > d, Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > MinOfLanes (Full512< int64_t > d, Vec512< int64_t > v)
 
HWY_API Vec512< uint32_t > MinOfLanes (Full512< uint32_t > d, Vec512< uint32_t > v)
 
HWY_API Vec512< uint64_t > MinOfLanes (Full512< uint64_t > d, Vec512< uint64_t > v)
 
HWY_API Vec512< float > MinOfLanes (Full512< float > d, Vec512< float > v)
 
HWY_API Vec512< double > MinOfLanes (Full512< double > d, Vec512< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > MinOfLanes (Full512< T > d, Vec512< T > v)
 
HWY_API Vec512< int32_t > MaxOfLanes (Full512< int32_t > d, Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > MaxOfLanes (Full512< int64_t > d, Vec512< int64_t > v)
 
HWY_API Vec512< uint32_t > MaxOfLanes (Full512< uint32_t > d, Vec512< uint32_t > v)
 
HWY_API Vec512< uint64_t > MaxOfLanes (Full512< uint64_t > d, Vec512< uint64_t > v)
 
HWY_API Vec512< float > MaxOfLanes (Full512< float > d, Vec512< float > v)
 
HWY_API Vec512< double > MaxOfLanes (Full512< double > d, Vec512< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > MaxOfLanes (Full512< T > d, Vec512< T > v)
 
template<class D , class V = Vec<D>>
void Print (const D d, const char *caption, VecArg< V > v, size_t lane_u=0, size_t max_lanes=7)
 
template<class D , typename T = TFromD<D>, class V = Vec<D>>
HWY_INLINE void AssertVecEqual (D d, const T *expected, VecArg< V > actual, const char *filename, const int line)
 
template<class D , typename T = TFromD<D>, class V = Vec<D>>
HWY_INLINE void AssertVecEqual (D d, VecArg< V > expected, VecArg< V > actual, const char *filename, int line)
 
template<class D >
HWY_NOINLINE void AssertMaskEqual (D d, VecArg< Mask< D > > a, VecArg< Mask< D > > b, const char *filename, int line)
 
template<class D >
HWY_INLINE Mask< D > MaskTrue (const D d)
 
template<class D >
HWY_INLINE Mask< D > MaskFalse (const D d)
 
template<class Func >
void ForSignedTypes (const Func &func)
 
template<class Func >
void ForUnsignedTypes (const Func &func)
 
template<class Func >
void ForIntegerTypes (const Func &func)
 
template<class Func >
void ForFloatTypes (const Func &func)
 
template<class Func >
void ForAllTypes (const Func &func)
 
template<class Func >
void ForUI8 (const Func &func)
 
template<class Func >
void ForUI16 (const Func &func)
 
template<class Func >
void ForUIF16 (const Func &func)
 
template<class Func >
void ForUI32 (const Func &func)
 
template<class Func >
void ForUIF32 (const Func &func)
 
template<class Func >
void ForUI64 (const Func &func)
 
template<class Func >
void ForUIF64 (const Func &func)
 
template<class Func >
void ForUI3264 (const Func &func)
 
template<class Func >
void ForUIF3264 (const Func &func)
 
template<class Func >
void ForUI163264 (const Func &func)
 
template<class Func >
void ForUIF163264 (const Func &func)
 
constexpr size_t AdjustedReps (size_t max_reps)
 
constexpr size_t AdjustedLog2Reps (size_t max_pow2)
 

Variables

 N
 
 d
 
const vfloat64m1_t v
 

Typedef Documentation

◆ CappedTag

template<typename T , size_t kLimit>
using hwy::HWY_NAMESPACE::CappedTag = typedef typename detail::CappedTagChecker<T, kLimit>::type

◆ DFromV

template<class V >
using hwy::HWY_NAMESPACE::DFromV = typedef typename detail::ExpandDFromV<V>::type

◆ DU16FromDF

template<class DF >
using hwy::HWY_NAMESPACE::DU16FromDF = typedef RepartitionToNarrow<RebindToUnsigned<DF> >

◆ FixedTag

template<typename T , size_t kNumLanes>
using hwy::HWY_NAMESPACE::FixedTag = typedef typename detail::FixedTagChecker<T, kNumLanes>::type

◆ ForGE128Vectors

template<class Test >
using hwy::HWY_NAMESPACE::ForGE128Vectors = typedef ForGEVectors<128, Test>

◆ Full128

template<typename T >
using hwy::HWY_NAMESPACE::Full128 = typedef Simd<T, 16 / sizeof(T), 0>

◆ Full256

template<typename T >
using hwy::HWY_NAMESPACE::Full256 = typedef Simd<T, 32 / sizeof(T), 0>

◆ Full32

template<typename T >
using hwy::HWY_NAMESPACE::Full32 = typedef Simd<T, 4 / sizeof(T), 0>

◆ Full512

template<typename T >
using hwy::HWY_NAMESPACE::Full512 = typedef Simd<T, 64 / sizeof(T), 0>

◆ Full64

template<typename T >
using hwy::HWY_NAMESPACE::Full64 = typedef Simd<T, 8 / sizeof(T), 0>

◆ GatherIndex64

using hwy::HWY_NAMESPACE::GatherIndex64 = typedef long long int

◆ Half

template<class D >
using hwy::HWY_NAMESPACE::Half = typedef typename D::Half

◆ LaneType

template<class V >
using hwy::HWY_NAMESPACE::LaneType = typedef decltype(GetLane(V()))

◆ Mask

template<class D >
using hwy::HWY_NAMESPACE::Mask = typedef decltype(MaskFromVec(Zero(D())))

◆ Mask64

template<typename T >
using hwy::HWY_NAMESPACE::Mask64 = typedef Mask128<T, 8 / sizeof(T)>

◆ MFromD

template<class D >
using hwy::HWY_NAMESPACE::MFromD = typedef decltype(FirstN(D(), 0))

◆ Rebind

template<class T , class D >
using hwy::HWY_NAMESPACE::Rebind = typedef typename D::template Rebind<T>

◆ RebindToFloat

template<class D >
using hwy::HWY_NAMESPACE::RebindToFloat = typedef Rebind<MakeFloat<TFromD<D> >, D>

◆ RebindToSigned

template<class D >
using hwy::HWY_NAMESPACE::RebindToSigned = typedef Rebind<MakeSigned<TFromD<D> >, D>

◆ RebindToUnsigned

template<class D >
using hwy::HWY_NAMESPACE::RebindToUnsigned = typedef Rebind<MakeUnsigned<TFromD<D> >, D>

◆ Repartition

template<class T , class D >
using hwy::HWY_NAMESPACE::Repartition = typedef typename D::template Repartition<T>

◆ RepartitionToNarrow

template<class D >
using hwy::HWY_NAMESPACE::RepartitionToNarrow = typedef Repartition<MakeNarrow<TFromD<D> >, D>

◆ RepartitionToWide

template<class D >
using hwy::HWY_NAMESPACE::RepartitionToWide = typedef Repartition<MakeWide<TFromD<D> >, D>

◆ ScalableTag

template<typename T , int kPow2 = 0>
using hwy::HWY_NAMESPACE::ScalableTag = typedef typename detail::ScalableTagChecker<T, kPow2>::type

◆ Sisd

template<typename T >
using hwy::HWY_NAMESPACE::Sisd = typedef Simd<T, 1, 0>

◆ SortTag

template<typename T >
using hwy::HWY_NAMESPACE::SortTag = typedef ScalableTag<T, -1>

◆ TFromD

template<class D >
using hwy::HWY_NAMESPACE::TFromD = typedef typename D::T

◆ TFromV

template<class V >
using hwy::HWY_NAMESPACE::TFromV = typedef TFromD<DFromV<V> >

◆ Twice

template<class D >
using hwy::HWY_NAMESPACE::Twice = typedef typename D::Twice

◆ Vec

template<class D >
using hwy::HWY_NAMESPACE::Vec = typedef decltype(Zero(D()))

◆ Vec32

template<typename T >
using hwy::HWY_NAMESPACE::Vec32 = typedef Vec128<T, 4 / sizeof(T)>

◆ Vec64

template<typename T >
using hwy::HWY_NAMESPACE::Vec64 = typedef Vec128<T, 8 / sizeof(T)>

◆ VecArg

template<class V >
using hwy::HWY_NAMESPACE::VecArg = typedef V

◆ VFromD

template<class D >
using hwy::HWY_NAMESPACE::VFromD = typedef decltype(Zero(D()))

Function Documentation

◆ Abs() [1/32]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< double, N v)

References BitCast(), and v.

◆ Abs() [2/32]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Abs ( const Vec128< float >  v)

References v.

◆ Abs() [3/32]

template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< float, N v)

References v.

◆ Abs() [4/32]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< float, N v)

References v.

◆ Abs() [5/32]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::Abs ( const Vec128< int16_t >  v)

References v.

◆ Abs() [6/32]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int16_t, N v)

References v.

◆ Abs() [7/32]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int16_t, N v)

References v.

◆ Abs() [8/32]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Abs ( const Vec128< int32_t >  v)

References v.

◆ Abs() [9/32]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int32_t, N v)

References v.

◆ Abs() [10/32]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int32_t, N v)

References v.

◆ Abs() [11/32]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Abs ( const Vec128< int64_t >  v)

◆ Abs() [12/32]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int64_t, N v)

References v.

◆ Abs() [13/32]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::Abs ( const Vec128< int8_t >  v)

◆ Abs() [14/32]

template<size_t N, HWY_IF_LE64(int8_t, N) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int8_t, N v)

References v.

◆ Abs() [15/32]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int8_t, N v)

References v.

◆ Abs() [16/32]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::Abs ( const Vec1< double >  a)

◆ Abs() [17/32]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::Abs ( const Vec1< float >  a)

◆ Abs() [18/32]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Abs ( const Vec1< T >  a)

◆ Abs() [19/32]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Abs ( const Vec256< double >  v)

References BitCast(), and v.

◆ Abs() [20/32]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Abs ( const Vec256< float >  v)

References v.

◆ Abs() [21/32]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Abs ( const Vec256< int16_t >  v)

References v.

◆ Abs() [22/32]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Abs ( const Vec256< int32_t >  v)

References v.

◆ Abs() [23/32]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Abs ( const Vec256< int64_t >  v)

References v.

◆ Abs() [24/32]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::Abs ( const Vec256< int8_t >  v)

References v.

◆ Abs() [25/32]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Abs ( const Vec512< double >  v)

References v.

◆ Abs() [26/32]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Abs ( const Vec512< float >  v)

References v.

◆ Abs() [27/32]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Abs ( const Vec512< int16_t >  v)

References v.

◆ Abs() [28/32]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Abs ( const Vec512< int32_t >  v)

References v.

◆ Abs() [29/32]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Abs ( const Vec512< int64_t >  v)

References v.

◆ Abs() [30/32]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Abs ( const Vec512< int8_t >  v)

References v, and Zero().

◆ Abs() [31/32]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::Abs ( const Vec64< int64_t >  v)

◆ Abs() [32/32]

template<typename T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Abs ( Vec128< T, N a)

◆ AbsDiff() [1/6]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::AbsDiff ( const Vec128< float >  a,
const Vec128< float >  b 
)

◆ AbsDiff() [2/6]

template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::AbsDiff ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ AbsDiff() [3/6]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::AbsDiff ( const Vec1< float >  a,
const Vec1< float >  b 
)

References Abs().

◆ AbsDiff() [4/6]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::AbsDiff ( const Vec256< float >  a,
const Vec256< float >  b 
)

References Abs().

◆ AbsDiff() [5/6]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::AbsDiff ( const Vec512< float >  a,
const Vec512< float >  b 
)

References Abs().

◆ AbsDiff() [6/6]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::AbsDiff ( Vec128< float, N a,
const Vec128< float, N b 
)

References Abs().

◆ Acos()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Acos ( const D  d,
x 
)

Highway SIMD version of std::acos(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: [-1, +1]

Returns
arc cosine of 'x'

References Add(), And(), d, Ge(), IfThenElse(), Lt(), Mul(), NegMulAdd(), Or(), Set(), SignBit(), Sqrt(), Sub(), Xor(), and Zero().

Referenced by CallAcos().

◆ Acosh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Acosh ( const D  d,
x 
)

Highway SIMD version of std::acosh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: float32[1, +FLT_MAX], float64[1, +DBL_MAX]

Returns
hyperbolic arc cosine of 'x'

References Add(), d, Div(), Eq(), Gt(), IfThenElse(), IfThenElseZero(), IfThenZeroElse(), hwy::HWY_NAMESPACE::impl::Log(), Mul(), MulAdd(), MulSub(), Set(), Sqrt(), and Sub().

Referenced by CallAcosh().

◆ Add()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Add ( a,
b 
)

◆ AdjustedLog2Reps()

constexpr size_t hwy::HWY_NAMESPACE::AdjustedLog2Reps ( size_t  max_pow2)
constexpr

References HWY_MIN.

◆ AdjustedReps()

constexpr size_t hwy::HWY_NAMESPACE::AdjustedReps ( size_t  max_reps)
constexpr

References HWY_MAX.

◆ AESLastRound() [1/2]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AESLastRound ( Vec256< uint8_t >  state,
Vec256< uint8_t >  round_key 
)

◆ AESLastRound() [2/2]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESLastRound ( Vec512< uint8_t >  state,
Vec512< uint8_t >  round_key 
)

◆ AESRound() [1/2]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AESRound ( Vec256< uint8_t >  state,
Vec256< uint8_t >  round_key 
)

◆ AESRound() [2/2]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESRound ( Vec512< uint8_t >  state,
Vec512< uint8_t >  round_key 
)

◆ AllFalse() [1/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( const Full128< T >  d,
const Mask128< T >  m 
)

◆ AllFalse() [2/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( const Full256< T >  d,
const Mask128< T >  m 
)

◆ AllFalse() [3/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( const Full256< T >  ,
const Mask256< T >  mask 
)

◆ AllFalse() [4/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( const Full512< T >  ,
const Mask512< T >  mask 
)

◆ AllFalse() [5/9]

template<typename T , size_t N>
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( const Simd< T, N, 0 >  d,
const Mask128< T, N m 
)

◆ AllFalse() [6/9]

template<class D >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( d,
MFromD< D >  m 
)

References d, and FindFirstTrue().

◆ AllFalse() [7/9]

template<class D >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( d,
svbool_t  m 
)

◆ AllFalse() [8/9]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( Simd< T, N, 0 >  ,
const Mask128< T, N m 
)

References AllFalse(), and AndNot().

◆ AllFalse() [9/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( Sisd< T >  ,
const Mask1< T >  mask 
)

◆ AllTrue() [1/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( const Full128< T >  d,
const Mask128< T >  m 
)

◆ AllTrue() [2/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( const Full256< T >  ,
const Mask128< T >  m 
)

◆ AllTrue() [3/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( const Full256< T >  ,
const Mask256< T >  mask 
)

◆ AllTrue() [4/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( const Full512< T >  ,
const Mask512< T >  mask 
)

◆ AllTrue() [5/9]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( const Simd< T, N, 0 >  d,
const Mask128< T, N m 
)

◆ AllTrue() [6/9]

template<typename T , size_t N>
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( const Simd< T, N, 0 >  ,
const Mask128< T >  m 
)

◆ AllTrue() [7/9]

template<class D >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( d,
svbool_t  m 
)

References CountTrue(), d, and Lanes().

◆ AllTrue() [8/9]

template<typename T , size_t N>
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( Simd< T, N, 0 >  ,
const Mask128< T, N mask 
)

◆ AllTrue() [9/9]

template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( Sisd< T >  ,
const Mask1< T >  mask 
)

◆ And() [1/18]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::And ( const Mask128< T, N a,
Mask128< T, N b 
)

References And(), d, MaskFromVec(), and VecFromMask().

◆ And() [2/18]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::And ( const Mask1< T >  a,
Mask1< T >  b 
)

References And(), d, MaskFromVec(), and VecFromMask().

◆ And() [3/18]

template<typename T >
HWY_API Vec256< T IfNegativeThenElse(Vec256< T > v, Vec256< T > yes, Vec256< T > no) { HWY_ASSERT(0);}template< typename T, HWY_IF_FLOAT(T)>HWY_API Vec256< T > ZeroIfNegative(Vec256< T > v) { const Full256< T > d; const auto zero=Zero(d); return IfThenElse(Mask256< T >{(v > zero).raw}, v, zero);}template< typename T >HWY_API Mask256< T > Not(const Mask256< T > m) { return MaskFromVec(Not(VecFromMask(Full256< T >(), m)));}template< typename T > HWY_API Mask256< T > hwy::HWY_NAMESPACE::And ( const Mask256< T >  a,
Mask256< T >  b 
)

References And(), d, MaskFromVec(), and VecFromMask().

◆ And() [4/18]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::And ( const Mask256< T >  a,
Mask256< T >  b 
)

◆ And() [5/18]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::And ( const Mask512< T >  a,
Mask512< T >  b 
)

◆ And() [6/18]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::And ( const V  a,
const V  b 
)

References And(), and BitCast().

◆ And() [7/18]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::And ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ And() [8/18]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::And ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ And() [9/18]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::And ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ And() [10/18]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::And ( const Vec128< T, N a,
const Vec128< T, N b 
)

References BitCast(), d, and N.

◆ And() [11/18]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::And ( const Vec1< T >  a,
const Vec1< T >  b 
)

References BitCast().

◆ And() [12/18]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::And ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ And() [13/18]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::And ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ And() [14/18]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::And ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ And() [15/18]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::And ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ And() [16/18]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::And ( const Vec512< T >  a,
const Vec512< T >  b 
)

◆ And() [17/18]

HWY_API svbool_t hwy::HWY_NAMESPACE::And ( svbool_t  a,
svbool_t  b 
)

◆ And() [18/18]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::And ( Vec256< T >  a,
Vec256< T >  b 
)

◆ AndNot() [1/18]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::AndNot ( const Mask128< T, N a,
Mask128< T, N b 
)

References AndNot(), d, MaskFromVec(), and VecFromMask().

◆ AndNot() [2/18]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::AndNot ( const Mask1< T >  a,
Mask1< T >  b 
)

References AndNot(), d, MaskFromVec(), and VecFromMask().

◆ AndNot() [3/18]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::AndNot ( const Mask256< T >  a,
Mask256< T >  b 
)

References AndNot(), d, MaskFromVec(), and VecFromMask().

◆ AndNot() [4/18]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::AndNot ( const Mask512< T >  a,
Mask512< T >  b 
)

◆ AndNot() [5/18]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::AndNot ( const V  a,
const V  b 
)

References AndNot(), and BitCast().

◆ AndNot() [6/18]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::AndNot ( const V  not_a,
const V  b 
)

References And(), and Not().

◆ AndNot() [7/18]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::AndNot ( const Vec128< double, N not_mask,
const Vec128< double, N mask 
)

◆ AndNot() [8/18]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::AndNot ( const Vec128< float, N not_mask,
const Vec128< float, N mask 
)

◆ AndNot() [9/18]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::AndNot ( const Vec128< T, N a,
const Vec128< T, N b 
)

References And(), and Not().

◆ AndNot() [10/18]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::AndNot ( const Vec128< T, N not_mask,
const Vec128< T, N mask 
)

◆ AndNot() [11/18]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::AndNot ( const Vec1< T >  a,
const Vec1< T >  b 
)

References BitCast().

◆ AndNot() [12/18]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::AndNot ( const Vec256< double >  not_mask,
const Vec256< double >  mask 
)

◆ AndNot() [13/18]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::AndNot ( const Vec256< float >  not_mask,
const Vec256< float >  mask 
)

◆ AndNot() [14/18]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::AndNot ( const Vec512< double >  not_mask,
const Vec512< double >  mask 
)

◆ AndNot() [15/18]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::AndNot ( const Vec512< float >  not_mask,
const Vec512< float >  mask 
)

◆ AndNot() [16/18]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::AndNot ( const Vec512< T >  not_mask,
const Vec512< T >  mask 
)

◆ AndNot() [17/18]

HWY_API svbool_t hwy::HWY_NAMESPACE::AndNot ( svbool_t  a,
svbool_t  b 
)

◆ AndNot() [18/18]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::AndNot ( Vec256< T >  not_mask,
Vec256< T >  mask 
)

◆ ApproximateReciprocal() [1/6]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec128< float >  v)

References v.

Referenced by operator/().

◆ ApproximateReciprocal() [2/6]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec128< float, 1 >  v)

References v.

◆ ApproximateReciprocal() [3/6]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec128< float, N v)

References v.

◆ ApproximateReciprocal() [4/6]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec1< float >  v)

References v.

◆ ApproximateReciprocal() [5/6]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec256< float >  v)

References v.

◆ ApproximateReciprocal() [6/6]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec512< float >  v)

References v.

◆ ApproximateReciprocalSqrt() [1/6]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec128< float >  v)

References v.

Referenced by Sqrt().

◆ ApproximateReciprocalSqrt() [2/6]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec128< float, 1 >  v)

References v.

◆ ApproximateReciprocalSqrt() [3/6]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec128< float, N v)

References v.

◆ ApproximateReciprocalSqrt() [4/6]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec1< float >  v)

References v.

◆ ApproximateReciprocalSqrt() [5/6]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec256< float >  v)

References Sqrt(), and v.

◆ ApproximateReciprocalSqrt() [6/6]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec512< float >  v)

References v.

◆ Asin()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Asin ( const D  d,
x 
)

Highway SIMD version of std::asin(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: [-1, +1]

Returns
arc sine of 'x'

References And(), d, IfThenElse(), Lt(), Mul(), MulAdd(), NegMulAdd(), Or(), Set(), SignBit(), Sqrt(), and Xor().

Referenced by CallAsin().

◆ Asinh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Asinh ( const D  d,
x 
)

Highway SIMD version of std::asinh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: float32[-FLT_MAX, +FLT_MAX], float64[-DBL_MAX, +DBL_MAX]

Returns
hyperbolic arc sine of 'x'

References Add(), And(), d, Div(), Eq(), Gt(), IfThenElse(), IfThenElseZero(), IfThenZeroElse(), hwy::HWY_NAMESPACE::impl::Log(), Lt(), Mul(), MulAdd(), Or(), Set(), SignBit(), Sqrt(), Sub(), and Xor().

Referenced by CallAsinh().

◆ AssertMaskEqual()

template<class D >
HWY_NOINLINE void hwy::HWY_NAMESPACE::AssertMaskEqual ( d,
VecArg< Mask< D > >  a,
VecArg< Mask< D > >  b,
const char *  filename,
int  line 
)

◆ AssertVecEqual() [1/2]

template<class D , typename T = TFromD<D>, class V = Vec<D>>
HWY_INLINE void hwy::HWY_NAMESPACE::AssertVecEqual ( d,
const T *  expected,
VecArg< V >  actual,
const char *  filename,
const int  line 
)

◆ AssertVecEqual() [2/2]

template<class D , typename T = TFromD<D>, class V = Vec<D>>
HWY_INLINE void hwy::HWY_NAMESPACE::AssertVecEqual ( d,
VecArg< V >  expected,
VecArg< V >  actual,
const char *  filename,
int  line 
)

◆ Atan()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Atan ( const D  d,
x 
)

Highway SIMD version of std::atan(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: float32[-FLT_MAX, +FLT_MAX], float64[-DBL_MAX, +DBL_MAX]

Returns
arc tangent of 'x'

References And(), d, Div(), Gt(), IfThenElse(), Or(), Set(), SignBit(), Sub(), and Xor().

Referenced by CallAtan().

◆ Atanh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Atanh ( const D  d,
x 
)

Highway SIMD version of std::atanh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: (-1, +1)

Returns
hyperbolic arc tangent of 'x'

References Add(), And(), d, Div(), Log1p(), Mul(), Set(), SignBit(), Sub(), and Xor().

Referenced by CallAtanh().

◆ AverageRound() [1/9]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::AverageRound ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ AverageRound() [2/9]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::AverageRound ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ AverageRound() [3/9]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::AverageRound ( const Vec1< uint16_t >  a,
const Vec1< uint16_t >  b 
)

◆ AverageRound() [4/9]

HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::AverageRound ( const Vec1< uint8_t >  a,
const Vec1< uint8_t >  b 
)

◆ AverageRound() [5/9]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::AverageRound ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ AverageRound() [6/9]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AverageRound ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ AverageRound() [7/9]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::AverageRound ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ AverageRound() [8/9]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AverageRound ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ AverageRound() [9/9]

template<typename T , size_t N, HWY_IF_UNSIGNED(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::AverageRound ( Vec128< T, N a,
const Vec128< T, N b 
)

◆ BitCast() [1/6]

template<class D , class FromV >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast ( d,
FromV  v 
)

◆ BitCast() [2/6]

template<typename T , typename FromT >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::BitCast ( Full256< T >  d,
Vec256< FromT >  v 
)

◆ BitCast() [3/6]

template<typename T , typename FromT >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::BitCast ( Full512< T >  d,
Vec512< FromT >  v 
)

◆ BitCast() [4/6]

template<typename T , size_t N, typename FromT >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::BitCast ( Simd< T, N, 0 >  d,
Vec128< FromT, N *sizeof(T)/sizeof(FromT)>  v 
)

References hwy::HWY_NAMESPACE::detail::BitCastFromByte(), hwy::HWY_NAMESPACE::detail::BitCastToByte(), d, and v.

Referenced by Abs(), AllFalse(), And(), AndNot(), BitCast(), hwy::HWY_NAMESPACE::detail::BitCastToUnsigned(), hwy::HWY_NAMESPACE::detail::BitsFromBool(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), BlendedStore(), BroadcastSignBit(), Combine(), CombineShiftRightBytes(), Compress(), hwy::HWY_NAMESPACE::detail::Compress(), CompressBlendedStore(), hwy::HWY_NAMESPACE::detail::CompressNot(), CompressStore(), hwy::HWY_NAMESPACE::Dot::Compute(), ConcatEven(), ConcatLowerLower(), ConcatOdd(), ConcatUpperLower(), ConcatUpperUpper(), ConvertTo(), CopySign(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosSignFromQuadrant(), hwy::HWY_NAMESPACE::detail::CountTrue(), DemoteTo(), hwy::HWY_NAMESPACE::detail::FirstNPerBlock(), hwy::HWY_NAMESPACE::detail::FixConversionOverflow(), hwy::HWY_NAMESPACE::detail::Idx16x8FromBits(), hwy::HWY_NAMESPACE::detail::Idx32x4FromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), IfNegativeThenElse(), IfVecThenElse(), IndicesFromVec(), Inf(), InterleaveLower(), InterleaveUpper(), IsFinite(), IsInf(), LoadInterleaved3(), LoadInterleaved4(), LoadMaskBits(), LoadU(), hwy::HWY_NAMESPACE::impl::Log(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::Log2p1NoSubnormal(), MaskFromVec(), Max(), MaxOfLanes(), hwy::HWY_NAMESPACE::detail::MaxOfLanes(), hwy::HWY_NAMESPACE::detail::MaxU(), Min(), MinOfLanes(), hwy::HWY_NAMESPACE::detail::MinOfLanes(), hwy::HWY_NAMESPACE::detail::MinU(), MulEven(), MulFixedPoint15(), MulOdd(), NaN(), hwy::HWY_NAMESPACE::detail::NibblesFromMask(), Not(), OddEven(), hwy::HWY_NAMESPACE::detail::OddEven(), operator<<(), operator>(), operator>>(), Or(), Or3(), OrAnd(), hwy::HWY_NAMESPACE::detail::PopulationCount(), PopulationCount(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::Pow2I(), PromoteTo(), hwy::HWY_NAMESPACE::detail::PromoteUpperTo(), RebindMask(), ReorderDemote2To(), ReorderWidenMulAccumulate(), Reverse(), Reverse2(), Reverse4(), Reverse8(), ReverseBlocks(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), hwy::HWY_NAMESPACE::detail::Set64(), ShiftLeft(), ShiftLeftBytes(), ShiftLeftLanes(), ShiftLeftSame(), ShiftRight(), ShiftRightBytes(), ShiftRightLanes(), ShiftRightSame(), Shuffle01(), Shuffle0321(), Shuffle1032(), hwy::HWY_NAMESPACE::detail::Shuffle1230(), Shuffle2103(), hwy::HWY_NAMESPACE::detail::Shuffle2301(), hwy::HWY_NAMESPACE::detail::Shuffle3012(), SignBit(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), StoreInterleaved3(), StoreInterleaved4(), StoreU(), SumsOf8(), TableLookupBytes(), TableLookupBytesOr0(), TableLookupLanes(), U8FromU32(), UpperHalf(), VecFromMask(), Xor(), ZipLower(), and ZipUpper().

◆ BitCast() [5/6]

template<typename T , size_t N, typename FromT , size_t FromN>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::BitCast ( Simd< T, N, 0 >  ,
Vec128< FromT, FromN >  v 
)

◆ BitCast() [6/6]

template<typename T , typename FromT >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::BitCast ( Sisd< T >  ,
Vec1< FromT >  v 
)

References v.

◆ BlendedStore() [1/12]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( const Vec1< T >  v,
Mask1< T >  m,
Sisd< T >  d,
T *HWY_RESTRICT  p 
)

◆ BlendedStore() [2/12]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec128< double, N v,
Mask128< double, N m,
Simd< double, N, 0 >  ,
double *HWY_RESTRICT  p 
)

◆ BlendedStore() [3/12]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec128< float, N v,
Mask128< float, N m,
Simd< float, N, 0 >  ,
float *HWY_RESTRICT  p 
)

◆ BlendedStore() [4/12]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec128< T, N v,
Mask128< T, N m,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  p 
)

◆ BlendedStore() [5/12]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec128< T, N v,
Mask128< T, N m,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  p 
)

◆ BlendedStore() [6/12]

HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec256< double >  v,
Mask256< double >  m,
Full256< double >  ,
double *HWY_RESTRICT  p 
)

◆ BlendedStore() [7/12]

HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec256< float >  v,
Mask256< float >  m,
Full256< float >  ,
float *HWY_RESTRICT  p 
)

◆ BlendedStore() [8/12]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec256< T >  v,
Mask256< T >  m,
Full256< T >  d,
T *HWY_RESTRICT  p 
)

References d, IfThenElse(), LoadU(), StoreU(), and v.

◆ BlendedStore() [9/12]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec256< T >  v,
Mask256< T >  m,
Full256< T >  ,
T *HWY_RESTRICT  p 
)

◆ BlendedStore() [10/12]

HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec512< double >  v,
Mask512< double >  m,
Full512< double >  ,
double *HWY_RESTRICT  p 
)

◆ BlendedStore() [11/12]

HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec512< float >  v,
Mask512< float >  m,
Full512< float >  ,
float *HWY_RESTRICT  p 
)

◆ BlendedStore() [12/12]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec512< T >  v,
Mask512< T >  m,
Full512< T >  ,
T *HWY_RESTRICT  p 
)

◆ Broadcast() [1/42]

template<int kLane, class V >
HWY_API V hwy::HWY_NAMESPACE::Broadcast ( const V  v)

◆ Broadcast() [2/42]

template<int kLane, size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< double, N v)

References N, and v.

◆ Broadcast() [3/42]

template<int kLane>
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< float >  v)

References v.

◆ Broadcast() [4/42]

template<int kLane, size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< float, N v)

References N, and v.

◆ Broadcast() [5/42]

template<int kLane, size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< float, N v)

References N, and v.

◆ Broadcast() [6/42]

template<int kLane>
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< int16_t >  v)

References v.

◆ Broadcast() [7/42]

template<int kLane, size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< int16_t, N v)

References N, and v.

◆ Broadcast() [8/42]

template<int kLane, size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< int16_t, N v)

References N, and v.

◆ Broadcast() [9/42]

template<int kLane>
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< int32_t >  v)

References v.

◆ Broadcast() [10/42]

template<int kLane, size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< int32_t, N v)

References N, and v.

◆ Broadcast() [11/42]

template<int kLane, size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< int32_t, N v)

References N, and v.

◆ Broadcast() [12/42]

template<int kLane>
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< int64_t >  v)

References v.

◆ Broadcast() [13/42]

template<int kLane, size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< int64_t, N v)

References N, and v.

◆ Broadcast() [14/42]

template<int kLane, typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< T, N v)

References N, and v.

◆ Broadcast() [15/42]

template<int kLane>
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< uint16_t >  v)

References v.

◆ Broadcast() [16/42]

template<int kLane, size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< uint16_t, N v)

References N, and v.

◆ Broadcast() [17/42]

template<int kLane, size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< uint16_t, N v)

References N, and v.

◆ Broadcast() [18/42]

template<int kLane>
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< uint32_t >  v)

References v.

◆ Broadcast() [19/42]

template<int kLane, size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< uint32_t, N v)

References N, and v.

◆ Broadcast() [20/42]

template<int kLane, size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< uint32_t, N v)

References N, and v.

◆ Broadcast() [21/42]

template<int kLane>
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< uint64_t >  v)

References v.

◆ Broadcast() [22/42]

template<int kLane, size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< uint64_t, N v)

References N, and v.

◆ Broadcast() [23/42]

template<int kLane, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Broadcast ( const Vec1< T >  v)

References v.

◆ Broadcast() [24/42]

template<int kLane>
HWY_API Vec256< double > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< double >  v)

References v.

◆ Broadcast() [25/42]

template<int kLane>
HWY_API Vec256< float > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< float >  v)

References N, and v.

◆ Broadcast() [26/42]

template<int kLane>
HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< int16_t >  v)

References N, and v.

◆ Broadcast() [27/42]

template<int kLane>
HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< int32_t >  v)

References N, and v.

◆ Broadcast() [28/42]

template<int kLane>
HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< int64_t >  v)

References v.

◆ Broadcast() [29/42]

template<int kLane>
HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< uint16_t >  v)

References N, and v.

◆ Broadcast() [30/42]

template<int kLane>
HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< uint32_t >  v)

References N, and v.

◆ Broadcast() [31/42]

template<int kLane>
HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< uint64_t >  v)

References v.

◆ Broadcast() [32/42]

template<int kLane>
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< double >  v)

References v.

◆ Broadcast() [33/42]

template<int kLane>
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< float >  v)

References v.

◆ Broadcast() [34/42]

template<int kLane>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< int16_t >  v)

References v.

◆ Broadcast() [35/42]

template<int kLane>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< int32_t >  v)

References v.

◆ Broadcast() [36/42]

template<int kLane>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< int64_t >  v)

References v.

◆ Broadcast() [37/42]

template<int kLane>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< uint16_t >  v)

References v.

◆ Broadcast() [38/42]

template<int kLane>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< uint32_t >  v)

References v.

◆ Broadcast() [39/42]

template<int kLane>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< uint64_t >  v)

References v.

◆ Broadcast() [40/42]

template<int kLane>
HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec64< int64_t >  v)

References v.

◆ Broadcast() [41/42]

template<int kLane>
HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::Broadcast ( const Vec64< uint64_t >  v)

References v.

◆ Broadcast() [42/42]

template<int kLane, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< T, N v)

References N, and v.

◆ BroadcastSignBit() [1/17]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::BroadcastSignBit ( const V  v)

References ShiftRight(), and v.

◆ BroadcastSignBit() [2/17]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< int16_t, N v)

References v.

◆ BroadcastSignBit() [3/17]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< int32_t, N v)

References v.

◆ BroadcastSignBit() [4/17]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< int64_t, N v)

References BitCast(), d, v, VecFromMask(), and Zero().

◆ BroadcastSignBit() [5/17]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< int8_t, N v)

References d, v, VecFromMask(), and Zero().

◆ BroadcastSignBit() [6/17]

template<typename T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< T, N v)

◆ BroadcastSignBit() [7/17]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec1< T >  v)

References v.

◆ BroadcastSignBit() [8/17]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< int16_t >  v)

References v.

◆ BroadcastSignBit() [9/17]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< int32_t >  v)

References v.

◆ BroadcastSignBit() [10/17]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< int64_t >  v)

References v, VecFromMask(), and Zero().

◆ BroadcastSignBit() [11/17]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< int8_t >  v)

References v, VecFromMask(), and Zero().

◆ BroadcastSignBit() [12/17]

template<typename T , HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< T >  v)

References ShiftRight(), and v.

◆ BroadcastSignBit() [13/17]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec512< int16_t >  v)

References v.

◆ BroadcastSignBit() [14/17]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec512< int32_t >  v)

References v.

◆ BroadcastSignBit() [15/17]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec512< int64_t >  v)

References v.

◆ BroadcastSignBit() [16/17]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec512< int8_t >  v)

References v, VecFromMask(), and Zero().

◆ BroadcastSignBit() [17/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( Vec128< T, N v)

References N, and v.

◆ CallAcos()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAcos ( const D  d,
VecArg< V >  x 
)

References Acos(), and d.

◆ CallAcosh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAcosh ( const D  d,
VecArg< V >  x 
)

References Acosh(), and d.

◆ CallAsin()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAsin ( const D  d,
VecArg< V >  x 
)

References Asin(), and d.

◆ CallAsinh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAsinh ( const D  d,
VecArg< V >  x 
)

References Asinh(), and d.

◆ CallAtan()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAtan ( const D  d,
VecArg< V >  x 
)

References Atan(), and d.

◆ CallAtanh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAtanh ( const D  d,
VecArg< V >  x 
)

References Atanh(), and d.

◆ CallCos()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallCos ( const D  d,
VecArg< V >  x 
)

References Cos(), and d.

◆ CallExp()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallExp ( const D  d,
VecArg< V >  x 
)

References d, and Exp().

◆ CallExpm1()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallExpm1 ( const D  d,
VecArg< V >  x 
)

References d, and Expm1().

◆ CallHeapSort()

template<class Order , typename KeyType , HWY_IF_NOT_LANE_SIZE(KeyType, 16) >
void hwy::HWY_NAMESPACE::CallHeapSort ( KeyType *HWY_RESTRICT  keys,
const size_t  num_keys 
)

◆ CallLog()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallLog ( const D  d,
VecArg< V >  x 
)

References d, and Log().

◆ CallLog10()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallLog10 ( const D  d,
VecArg< V >  x 
)

References d, and Log10().

◆ CallLog1p()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallLog1p ( const D  d,
VecArg< V >  x 
)

References d, and Log1p().

◆ CallLog2()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallLog2 ( const D  d,
VecArg< V >  x 
)

References d, and Log2().

◆ CallSin()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallSin ( const D  d,
VecArg< V >  x 
)

References d, and Sin().

◆ CallSinh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallSinh ( const D  d,
VecArg< V >  x 
)

References d, and Sinh().

◆ CallTanh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallTanh ( const D  d,
VecArg< V >  x 
)

References d, and Tanh().

◆ Ceil() [1/10]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Ceil ( const V  v)

References Round(), and v.

◆ Ceil() [2/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Ceil ( const Vec128< float, N v)

◆ Ceil() [3/10]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Ceil ( const Vec128< T, N v)

◆ Ceil() [4/10]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::Ceil ( const Vec1< double >  v)

References v.

◆ Ceil() [5/10]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::Ceil ( const Vec1< float >  v)

References v.

◆ Ceil() [6/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Ceil ( const Vec256< double >  v)

References v.

◆ Ceil() [7/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Ceil ( const Vec256< float >  v)

References v.

◆ Ceil() [8/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Ceil ( const Vec512< double >  v)

References v.

◆ Ceil() [9/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Ceil ( const Vec512< float >  v)

References v.

◆ Ceil() [10/10]

template<typename Float , size_t N>
Vec128< Float, N > hwy::HWY_NAMESPACE::Ceil ( Vec128< Float, N v)

References N, and v.

◆ Ceiling()

template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
V hwy::HWY_NAMESPACE::Ceiling ( const V  v)

References v.

◆ Clamp()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Clamp ( const V  v,
const V  lo,
const V  hi 
)

◆ CLMulLower() [1/2]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::CLMulLower ( Vec256< uint64_t >  a,
Vec256< uint64_t >  b 
)

◆ CLMulLower() [2/2]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CLMulLower ( Vec512< uint64_t >  va,
Vec512< uint64_t >  vb 
)

◆ CLMulUpper() [1/2]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::CLMulUpper ( Vec256< uint64_t >  a,
Vec256< uint64_t >  b 
)

◆ CLMulUpper() [2/2]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CLMulUpper ( Vec512< uint64_t >  va,
Vec512< uint64_t >  vb 
)

◆ Combine() [1/19]

template<class D , class V2 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Combine ( const D  d,
const V2  hi,
const V2  lo 
)

References ConcatLowerLower(), and d.

◆ Combine() [2/19]

template<class D2 , class V >
HWY_API VFromD< D2 > hwy::HWY_NAMESPACE::Combine ( D2  d2,
const V  hi,
const V  lo 
)

References Lanes().

◆ Combine() [3/19]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Combine ( Full128< float >  ,
Vec64< float >  hi,
Vec64< float >  lo 
)

◆ Combine() [4/19]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::Combine ( Full128< int16_t >  ,
Vec64< int16_t >  hi,
Vec64< int16_t >  lo 
)

◆ Combine() [5/19]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Combine ( Full128< int32_t >  ,
Vec64< int32_t >  hi,
Vec64< int32_t >  lo 
)

◆ Combine() [6/19]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Combine ( Full128< int64_t >  ,
Vec64< int64_t >  hi,
Vec64< int64_t >  lo 
)

◆ Combine() [7/19]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::Combine ( Full128< int8_t >  ,
Vec64< int8_t >  hi,
Vec64< int8_t >  lo 
)

◆ Combine() [8/19]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::Combine ( Full128< uint16_t >  ,
Vec64< uint16_t >  hi,
Vec64< uint16_t >  lo 
)

◆ Combine() [9/19]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Combine ( Full128< uint32_t >  ,
Vec64< uint32_t >  hi,
Vec64< uint32_t >  lo 
)

◆ Combine() [10/19]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::Combine ( Full128< uint64_t >  ,
Vec64< uint64_t >  hi,
Vec64< uint64_t >  lo 
)

◆ Combine() [11/19]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::Combine ( Full128< uint8_t >  ,
Vec64< uint8_t >  hi,
Vec64< uint8_t >  lo 
)

◆ Combine() [12/19]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Combine ( Full256< double >  d,
Vec128< double >  hi,
Vec128< double >  lo 
)

◆ Combine() [13/19]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Combine ( Full256< float >  d,
Vec128< float >  hi,
Vec128< float >  lo 
)

◆ Combine() [14/19]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Combine ( Full256< T >  d,
Vec128< T >  hi_half,
Vec128< T >  lo_half 
)

References BitCast(), d, InterleaveLower(), and N.

◆ Combine() [15/19]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Combine ( Full512< double >  d,
Vec256< double >  hi,
Vec256< double >  lo 
)

◆ Combine() [16/19]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Combine ( Full512< float >  d,
Vec256< float >  hi,
Vec256< float >  lo 
)

◆ Combine() [17/19]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Combine ( Full512< T >  d,
Vec256< T >  hi,
Vec256< T >  lo 
)

◆ Combine() [18/19]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Combine ( Simd< T, N, 0 >  d,
Vec128< T, N/2 >  hi,
Vec128< T, N/2 >  lo 
)

◆ Combine() [19/19]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Combine ( Simd< T, N, 0 >  d,
Vec128< T, N/2 >  hi_half,
Vec128< T, N/2 >  lo_half 
)

◆ CombineShiftRightBytes() [1/9]

template<size_t kBytes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightBytes ( const D  d,
const V  hi,
const V  lo 
)

◆ CombineShiftRightBytes() [2/9]

template<int kBytes, typename T , class V128 = Vec128<T>>
HWY_API V128 hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Full128< T >  d,
V128  hi,
V128  lo 
)

◆ CombineShiftRightBytes() [3/9]

template<int kBytes, typename T , class V = Vec128<T>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Full128< T >  d,
hi,
lo 
)

◆ CombineShiftRightBytes() [4/9]

template<int kBytes, typename T , class V = Vec256<T>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Full256< T >  d,
hi,
lo 
)

◆ CombineShiftRightBytes() [5/9]

template<int kBytes, typename T , class V = Vec512<T>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Full512< T >  d,
hi,
lo 
)

References BitCast(), and d.

◆ CombineShiftRightBytes() [6/9]

template<int kBytes, typename T >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Full64< T >  d,
Vec64< T >  hi,
Vec64< T >  lo 
)

References BitCast(), and d.

◆ CombineShiftRightBytes() [7/9]

template<int kBytes, typename T , size_t N, HWY_IF_LE64(T, N) , class V = Vec128<T, N>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Simd< T, N, 0 >  d,
hi,
lo 
)

◆ CombineShiftRightBytes() [8/9]

template<int kBytes, typename T , size_t N, HWY_IF_LE32(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Simd< T, N, 0 >  d,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ CombineShiftRightBytes() [9/9]

template<int kBytes, typename T , size_t N, class V = Vec128<T, N>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Simd< T, N, 0 >  ,
hi,
lo 
)

References hwy::CopyBytes(), HWY_RESTRICT, and N.

◆ CombineShiftRightLanes()

template<size_t kLanes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightLanes ( const D  d,
const V  hi,
lo 
)

References d, and IfThenElse().

◆ Compress() [1/13]

HWY_API svfloat16_t hwy::HWY_NAMESPACE::Compress ( svfloat16_t  v,
svbool_t  mask16 
)

References BitCast(), Compress(), and v.

◆ Compress() [2/13]

template<class V , HWY_IF_LANE_SIZE_V(V, 8) >
HWY_API V hwy::HWY_NAMESPACE::Compress ( v,
svbool_t  mask 
)

◆ Compress() [3/13]

template<size_t N, HWY_IF_GE64(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Compress ( Vec128< float, N v,
Mask128< float, N mask 
)

◆ Compress() [4/13]

template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Compress ( Vec128< T >  v,
Mask128< T >  mask 
)

◆ Compress() [5/13]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Compress ( Vec128< T, 1 >  v,
Mask128< T, 1 >   
)

◆ Compress() [6/13]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Compress ( Vec128< T, N v,
const Mask128< T, N mask 
)

◆ Compress() [7/13]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Compress ( Vec128< T, N v,
const Mask128< T, N mask 
)

◆ Compress() [8/13]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Compress ( Vec1< T >  v,
const Mask1< T >   
)

References v.

◆ Compress() [9/13]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Compress ( Vec256< float >  v,
Mask256< float >  mask 
)

◆ Compress() [10/13]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Compress ( Vec256< T >  v,
const Mask256< T >  mask 
)

◆ Compress() [11/13]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Compress ( Vec256< T >  v,
Mask256< T >  mask 
)

◆ Compress() [12/13]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Compress ( Vec512< float >  v,
Mask512< float >  mask 
)

◆ Compress() [13/13]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Compress ( Vec512< T >  v,
Mask512< T >  mask 
)

◆ CompressBits() [1/6]

template<class V >
HWY_INLINE V hwy::HWY_NAMESPACE::CompressBits ( v,
const uint8_t *HWY_RESTRICT  bits 
)

References Compress(), LoadMaskBits(), and v.

◆ CompressBits() [2/6]

template<typename T , size_t N>
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::CompressBits ( Vec128< T, N v,
const uint8_t *HWY_RESTRICT  bits 
)

◆ CompressBits() [3/6]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CompressBits ( Vec128< T, N v,
const uint8_t *HWY_RESTRICT  bits 
)

References Compress(), LoadMaskBits(), and v.

◆ CompressBits() [4/6]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CompressBits ( Vec1< T >  v,
const uint8_t *  HWY_RESTRICT 
)

References v.

◆ CompressBits() [5/6]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CompressBits ( Vec256< T >  v,
const uint8_t *HWY_RESTRICT  bits 
)

◆ CompressBits() [6/6]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CompressBits ( Vec512< T >  v,
const uint8_t *HWY_RESTRICT  bits 
)

References Compress(), LoadMaskBits(), and v.

◆ CompressBitsStore() [1/5]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( Vec128< T, N v,
const uint8_t *HWY_RESTRICT  bits,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressBitsStore() [2/5]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( Vec1< T >  v,
const uint8_t *HWY_RESTRICT  bits,
Sisd< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressBitsStore() [3/5]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( Vec256< T >  v,
const uint8_t *HWY_RESTRICT  bits,
Full256< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressBitsStore() [4/5]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( Vec512< T >  v,
const uint8_t *HWY_RESTRICT  bits,
Full512< T >  d,
T *HWY_RESTRICT  unaligned 
)

References CompressStore(), d, LoadMaskBits(), and v.

◆ CompressBitsStore() [5/5]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( VFromD< D >  v,
const uint8_t *HWY_RESTRICT  bits,
d,
TFromD< D > *HWY_RESTRICT  unaligned 
)

References CompressStore(), d, LoadMaskBits(), and v.

◆ CompressBlendedStore() [1/7]

template<class V , class M , class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( const V  v,
const M  mask,
const D  d,
TFromD< D > *HWY_RESTRICT  unaligned 
)

References Compress(), CountTrue(), d, and v.

◆ CompressBlendedStore() [2/7]

template<class V , class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( const V  v,
const svbool_t  mask,
const D  d,
TFromD< D > *HWY_RESTRICT  unaligned 
)

◆ CompressBlendedStore() [3/7]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( Vec128< T, N v,
Mask128< T, N m,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressBlendedStore() [4/7]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( Vec1< T >  v,
const Mask1< T >  mask,
Sisd< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressBlendedStore() [5/7]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( Vec256< T >  v,
Mask256< T >  m,
Full256< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressBlendedStore() [6/7]

template<typename T , HWY_IF_NOT_LANE_SIZE(T, 2) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( Vec256< T >  v,
Mask256< T >  m,
Full256< T >  d,
T *HWY_RESTRICT  unaligned 
)

References CompressStore(), d, and v.

◆ CompressBlendedStore() [7/7]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( Vec512< T >  v,
Mask512< T >  m,
Full512< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressBlocksNot() [1/5]

HWY_API svuint64_t hwy::HWY_NAMESPACE::CompressBlocksNot ( svuint64_t  v,
svbool_t  mask 
)

References CompressNot(), and v.

◆ CompressBlocksNot() [2/5]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::CompressBlocksNot ( v,
const M  mask 
)

References CompressNot(), and v.

◆ CompressBlocksNot() [3/5]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::CompressBlocksNot ( Vec128< uint64_t >  v,
Mask128< uint64_t >   
)

References v.

◆ CompressBlocksNot() [4/5]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::CompressBlocksNot ( Vec256< uint64_t >  v,
Mask256< uint64_t >  mask 
)

References HWY_ASSERT.

◆ CompressBlocksNot() [5/5]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CompressBlocksNot ( Vec512< uint64_t >  v,
Mask512< uint64_t >  mask 
)

References CompressNot(), and v.

◆ CompressNot() [1/9]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::CompressNot ( v,
const M  mask 
)

References Compress(), Not(), and v.

◆ CompressNot() [2/9]

template<class V , HWY_IF_NOT_LANE_SIZE_V(V, 8) >
HWY_API V hwy::HWY_NAMESPACE::CompressNot ( v,
const svbool_t  mask 
)

References Compress(), Not(), and v.

◆ CompressNot() [3/9]

template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::CompressNot ( Vec128< T >  v,
Mask128< T >  mask 
)

◆ CompressNot() [4/9]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::CompressNot ( Vec128< T, 1 >  v,
Mask128< T, 1 >   
)

References v.

Referenced by CompressBlocksNot().

◆ CompressNot() [5/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CompressNot ( Vec128< T, N v,
const Mask128< T, N mask 
)

◆ CompressNot() [6/9]

template<typename T , size_t N, HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CompressNot ( Vec128< T, N v,
Mask128< T, N mask 
)

◆ CompressNot() [7/9]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CompressNot ( Vec1< T >  v,
const Mask1< T >   
)

References v.

◆ CompressNot() [8/9]

template<typename T , HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CompressNot ( Vec256< T >  v,
const Mask256< T >  mask 
)

References Compress(), Not(), and v.

◆ CompressNot() [9/9]

template<typename T , HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CompressNot ( Vec512< T >  v,
const Mask512< T >  mask 
)

References Compress(), Not(), and v.

◆ CompressStore() [1/14]

template<class V , class M , class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( const V  v,
const M  mask,
const D  d,
TFromD< D > *HWY_RESTRICT  unaligned 
)

References Compress(), CountTrue(), d, StoreU(), and v.

◆ CompressStore() [2/14]

template<class V , class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( const V  v,
const svbool_t  mask,
const D  d,
TFromD< D > *HWY_RESTRICT  unaligned 
)

References Compress(), CountTrue(), d, StoreU(), and v.

◆ CompressStore() [3/14]

template<size_t N, HWY_IF_LE128(double, N) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec128< double, N v,
Mask128< double, N mask,
Simd< double, N, 0 >  ,
double *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [4/14]

template<size_t N, HWY_IF_LE128(float, N) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec128< float, N v,
Mask128< float, N mask,
Simd< float, N, 0 >  ,
float *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [5/14]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec128< T, N v,
const Mask128< T, N mask,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [6/14]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec128< T, N v,
Mask128< T, N mask,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [7/14]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec1< T >  v,
const Mask1< T >  mask,
Sisd< T >  d,
T *HWY_RESTRICT  unaligned 
)

References Compress(), CountTrue(), d, StoreU(), and v.

◆ CompressStore() [8/14]

HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec256< double >  v,
Mask256< double >  mask,
Full256< double >  ,
double *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [9/14]

HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec256< float >  v,
Mask256< float >  mask,
Full256< float >  ,
float *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [10/14]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec256< T >  v,
const Mask256< T >  mask,
Full256< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [11/14]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec256< T >  v,
Mask256< T >  mask,
Full256< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [12/14]

HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec512< double >  v,
Mask512< double >  mask,
Full512< double >  ,
double *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [13/14]

HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec512< float >  v,
Mask512< float >  mask,
Full512< float >  ,
float *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [14/14]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec512< T >  v,
Mask512< T >  mask,
Full512< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ ConcatEven() [1/18]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatEven ( d,
const V  hi,
const V  lo 
)

◆ ConcatEven() [2/18]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatEven ( d,
VFromD< D >  hi,
VFromD< D >  lo 
)

References ConcatEven(), d, FirstN(), and Lanes().

Referenced by ConcatEven(), DemoteTo(), and InterleaveLower().

◆ ConcatEven() [3/18]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConcatEven ( Full128< float >  ,
Vec128< float >  hi,
Vec128< float >  lo 
)

◆ ConcatEven() [4/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatEven ( Full128< T >  d,
Vec128< T >  hi,
Vec128< T >  lo 
)

◆ ConcatEven() [5/18]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatEven ( Full256< double >  d,
Vec256< double >  hi,
Vec256< double >  lo 
)

◆ ConcatEven() [6/18]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatEven ( Full256< float >  d,
Vec256< float >  hi,
Vec256< float >  lo 
)

◆ ConcatEven() [7/18]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatEven ( Full256< T >  d,
Vec256< T >  hi,
Vec256< T >  lo 
)

◆ ConcatEven() [8/18]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatEven ( Full512< double >  d,
Vec512< double >  hi,
Vec512< double >  lo 
)

◆ ConcatEven() [9/18]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatEven ( Full512< float >  d,
Vec512< float >  hi,
Vec512< float >  lo 
)

◆ ConcatEven() [10/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatEven ( Full512< T >  d,
Vec512< T >  hi,
Vec512< T >  lo 
)

◆ ConcatEven() [11/18]

template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::ConcatEven ( Simd< T, 2, 0 >  d,
Vec128< T, 2 >  hi,
Vec128< T, 2 >  lo 
)

References d, and InterleaveLower().

Referenced by ConcatEven().

◆ ConcatEven() [12/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::ConcatEven ( Simd< T, 4, 0 >  d,
Vec128< T, 4 >  hi,
Vec128< T, 4 >  lo 
)

◆ ConcatEven() [13/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec32< T > hwy::HWY_NAMESPACE::ConcatEven ( Simd< T, 4, 0 >  d,
Vec32< T >  hi,
Vec32< T >  lo 
)

◆ ConcatEven() [14/18]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatEven ( Simd< T, 4, 0 >  d,
Vec64< T >  hi,
Vec64< T >  lo 
)

◆ ConcatEven() [15/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatEven ( Simd< T, 8, 0 >  d,
Vec64< T >  hi,
Vec64< T >  lo 
)

◆ ConcatEven() [16/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 8 > hwy::HWY_NAMESPACE::ConcatEven ( Simd< T, 8, 0 >  ,
Vec128< T, 8 >  hi,
Vec128< T, 8 >  lo 
)

◆ ConcatEven() [17/18]

template<typename T , size_t N, hwy::EnableIf< N !=2 &&sizeof(T) *N > = 8>
N hwy::HWY_NAMESPACE::ConcatEven ( Simd< T, N, 0 >  ,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConcatEven() [18/18]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatEven ( Simd< T, N, 0 >  ,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConcatLowerLower() [1/10]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatLowerLower ( const D  d,
const V  hi,
const V  lo 
)

◆ ConcatLowerLower() [2/10]

template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatLowerLower ( const Simd< T, N, 0 >  d,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConcatLowerLower() [3/10]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatLowerLower ( Full128< T >  d,
const Vec128< T >  hi,
const Vec128< T >  lo 
)

◆ ConcatLowerLower() [4/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatLowerLower ( Full256< double >  d,
const Vec256< double >  hi,
const Vec256< double >  lo 
)

◆ ConcatLowerLower() [5/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatLowerLower ( Full256< float >  d,
const Vec256< float >  hi,
const Vec256< float >  lo 
)

◆ ConcatLowerLower() [6/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatLowerLower ( Full256< T >  d,
const Vec256< T >  hi,
const Vec256< T >  lo 
)

◆ ConcatLowerLower() [7/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatLowerLower ( Full512< double >  ,
const Vec512< double >  hi,
const Vec512< double >  lo 
)

◆ ConcatLowerLower() [8/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatLowerLower ( Full512< float >  ,
const Vec512< float >  hi,
const Vec512< float >  lo 
)

◆ ConcatLowerLower() [9/10]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatLowerLower ( Full512< T >  ,
const Vec512< T >  hi,
const Vec512< T >  lo 
)

◆ ConcatLowerLower() [10/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatLowerLower ( Simd< T, N, 0 >  ,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConcatLowerUpper() [1/10]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatLowerUpper ( const D  d,
const V  hi,
const V  lo 
)

◆ ConcatLowerUpper() [2/10]

template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatLowerUpper ( const Simd< T, N, 0 >  d,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConcatLowerUpper() [3/10]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatLowerUpper ( Full128< T >  d,
const Vec128< T >  hi,
const Vec128< T >  lo 
)

References d.

◆ ConcatLowerUpper() [4/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatLowerUpper ( Full256< double >  ,
const Vec256< double >  hi,
const Vec256< double >  lo 
)

◆ ConcatLowerUpper() [5/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatLowerUpper ( Full256< float >  ,
const Vec256< float >  hi,
const Vec256< float >  lo 
)

◆ ConcatLowerUpper() [6/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatLowerUpper ( Full256< T >  d,
const Vec256< T >  hi,
const Vec256< T >  lo 
)

References d.

◆ ConcatLowerUpper() [7/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatLowerUpper ( Full512< double >  ,
const Vec512< double >  hi,
const Vec512< double >  lo 
)

◆ ConcatLowerUpper() [8/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatLowerUpper ( Full512< float >  ,
const Vec512< float >  hi,
const Vec512< float >  lo 
)

◆ ConcatLowerUpper() [9/10]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatLowerUpper ( Full512< T >  ,
const Vec512< T >  hi,
const Vec512< T >  lo 
)

◆ ConcatLowerUpper() [10/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatLowerUpper ( Simd< T, N, 0 >  ,
const Vec128< T, N hi,
const Vec128< T, N lo 
)

◆ ConcatOdd() [1/18]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatOdd ( d,
const V  hi,
const V  lo 
)

◆ ConcatOdd() [2/18]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatOdd ( d,
VFromD< D >  hi,
VFromD< D >  lo 
)

References ConcatOdd(), d, FirstN(), and Lanes().

Referenced by ConcatOdd(), DemoteTo(), and InterleaveUpper().

◆ ConcatOdd() [3/18]

template<size_t N>
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConcatOdd ( Full128< float >  ,
Vec128< float >  hi,
Vec128< float >  lo 
)

◆ ConcatOdd() [4/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatOdd ( Full128< T >  d,
Vec128< T >  hi,
Vec128< T >  lo 
)

◆ ConcatOdd() [5/18]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatOdd ( Full256< double >  d,
Vec256< double >  hi,
Vec256< double >  lo 
)

◆ ConcatOdd() [6/18]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatOdd ( Full256< float >  d,
Vec256< float >  hi,
Vec256< float >  lo 
)

◆ ConcatOdd() [7/18]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatOdd ( Full256< T >  d,
Vec256< T >  hi,
Vec256< T >  lo 
)

◆ ConcatOdd() [8/18]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatOdd ( Full512< double >  d,
Vec512< double >  hi,
Vec512< double >  lo 
)

◆ ConcatOdd() [9/18]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatOdd ( Full512< float >  d,
Vec512< float >  hi,
Vec512< float >  lo 
)

◆ ConcatOdd() [10/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatOdd ( Full512< T >  d,
Vec512< T >  hi,
Vec512< T >  lo 
)

◆ ConcatOdd() [11/18]

template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::ConcatOdd ( Simd< T, 2, 0 >  d,
Vec128< T, 2 >  hi,
Vec128< T, 2 >  lo 
)

◆ ConcatOdd() [12/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::ConcatOdd ( Simd< T, 4, 0 >  d,
Vec128< T, 4 >  hi,
Vec128< T, 4 >  lo 
)

◆ ConcatOdd() [13/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec32< T > hwy::HWY_NAMESPACE::ConcatOdd ( Simd< T, 4, 0 >  d,
Vec32< T >  hi,
Vec32< T >  lo 
)

◆ ConcatOdd() [14/18]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatOdd ( Simd< T, 4, 0 >  d,
Vec64< T >  hi,
Vec64< T >  lo 
)

◆ ConcatOdd() [15/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatOdd ( Simd< T, 8, 0 >  d,
Vec64< T >  hi,
Vec64< T >  lo 
)

◆ ConcatOdd() [16/18]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 8 > hwy::HWY_NAMESPACE::ConcatOdd ( Simd< T, 8, 0 >  ,
Vec128< T, 8 >  hi,
Vec128< T, 8 >  lo 
)

◆ ConcatOdd() [17/18]

template<typename T , size_t N, hwy::EnableIf< N !=2 &&sizeof(T) *N > = 8>
N hwy::HWY_NAMESPACE::ConcatOdd ( Simd< T, N, 0 >  ,
Vec128< T, N hi,
Vec128< T, N lo 
)

References ConcatOdd().

Referenced by ConcatOdd(), and LoadInterleaved2().

◆ ConcatOdd() [18/18]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatOdd ( Simd< T, N, 0 >  ,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConcatUpperLower() [1/12]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatUpperLower ( const D  d,
const V  hi,
const V  lo 
)

◆ ConcatUpperLower() [2/12]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full128< double >  ,
Vec128< double >  hi,
Vec128< double >  lo 
)

◆ ConcatUpperLower() [3/12]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full128< float >  d,
Vec128< float >  hi,
Vec128< float >  lo 
)

◆ ConcatUpperLower() [4/12]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full128< T >  d,
Vec128< T >  hi,
Vec128< T >  lo 
)

References BitCast(), and d.

◆ ConcatUpperLower() [5/12]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full256< double >  ,
const Vec256< double >  hi,
const Vec256< double >  lo 
)

◆ ConcatUpperLower() [6/12]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full256< float >  ,
const Vec256< float >  hi,
const Vec256< float >  lo 
)

◆ ConcatUpperLower() [7/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full256< T >  d,
const Vec256< T >  hi,
const Vec256< T >  lo 
)

References d, FirstN(), IfThenElse(), and Lanes().

◆ ConcatUpperLower() [8/12]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full512< double >  ,
const Vec512< double >  hi,
const Vec512< double >  lo 
)

◆ ConcatUpperLower() [9/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full512< float >  ,
const Vec512< float >  hi,
const Vec512< float >  lo 
)

◆ ConcatUpperLower() [10/12]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatUpperLower ( Full512< T >  ,
const Vec512< T >  hi,
const Vec512< T >  lo 
)

◆ ConcatUpperLower() [11/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatUpperLower ( Simd< T, N, 0 >  d,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConcatUpperLower() [12/12]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatUpperLower ( Simd< T, N, 0 >  d,
Vec128< T, N hi,
Vec128< T, N lo 
)

References Combine(), d, LowerHalf(), and UpperHalf().

◆ ConcatUpperUpper() [1/10]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatUpperUpper ( const D  d,
const V  hi,
const V  lo 
)

◆ ConcatUpperUpper() [2/10]

template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatUpperUpper ( const Simd< T, N, 0 >  d,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConcatUpperUpper() [3/10]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatUpperUpper ( Full128< T >  d,
const Vec128< T >  hi,
const Vec128< T >  lo 
)

◆ ConcatUpperUpper() [4/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatUpperUpper ( Full256< double >  ,
const Vec256< double >  hi,
const Vec256< double >  lo 
)

◆ ConcatUpperUpper() [5/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatUpperUpper ( Full256< float >  ,
const Vec256< float >  hi,
const Vec256< float >  lo 
)

◆ ConcatUpperUpper() [6/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatUpperUpper ( Full256< T >  ,
const Vec256< T >  hi,
const Vec256< T >  lo 
)

◆ ConcatUpperUpper() [7/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatUpperUpper ( Full512< double >  ,
const Vec512< double >  hi,
const Vec512< double >  lo 
)

◆ ConcatUpperUpper() [8/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatUpperUpper ( Full512< float >  ,
const Vec512< float >  hi,
const Vec512< float >  lo 
)

◆ ConcatUpperUpper() [9/10]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatUpperUpper ( Full512< T >  ,
const Vec512< T >  hi,
const Vec512< T >  lo 
)

◆ ConcatUpperUpper() [10/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ConcatUpperUpper ( Simd< T, N, 0 >  ,
Vec128< T, N hi,
Vec128< T, N lo 
)

◆ ConvertTo() [1/19]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConvertTo ( Full128< float >  ,
const Vec128< int32_t >  v 
)

◆ ConvertTo() [2/19]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::ConvertTo ( Full128< int32_t >  ,
const Vec128< float >  v 
)

References v.

◆ ConvertTo() [3/19]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::ConvertTo ( Full128< int64_t >  di,
const Vec128< double >  v 
)

◆ ConvertTo() [4/19]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConvertTo ( Full256< double >  dd,
const Vec256< int64_t >  v 
)

References BitCast(), OddEven(), Set(), and v.

◆ ConvertTo() [5/19]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConvertTo ( Full256< float >  ,
const Vec256< int32_t >  v 
)

References v.

◆ ConvertTo() [6/19]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ConvertTo ( Full256< int32_t >  d,
const Vec256< float >  v 
)

References v.

◆ ConvertTo() [7/19]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ConvertTo ( Full256< int64_t >  di,
const Vec256< double >  v 
)

◆ ConvertTo() [8/19]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConvertTo ( Full512< double >  ,
const Vec512< int64_t >  v 
)

References v.

◆ ConvertTo() [9/19]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConvertTo ( Full512< float >  ,
const Vec512< int32_t >  v 
)

References v.

◆ ConvertTo() [10/19]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ConvertTo ( Full512< int32_t >  d,
const Vec512< float >  v 
)

◆ ConvertTo() [11/19]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ConvertTo ( Full512< int64_t >  di,
const Vec512< double >  v 
)

◆ ConvertTo() [12/19]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::ConvertTo ( Full64< int64_t >  di,
const Vec64< double >  v 
)

◆ ConvertTo() [13/19]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::ConvertTo ( Simd< double, N, 0 >  dd,
const Vec128< int64_t, N v 
)

References BitCast(), OddEven(), Set(), and v.

◆ ConvertTo() [14/19]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::ConvertTo ( Simd< float, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ ConvertTo() [15/19]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::ConvertTo ( Simd< float, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ ConvertTo() [16/19]

template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ConvertTo ( Simd< int32_t, N, 0 >  ,
const Vec128< float, N v 
)

References v.

◆ ConvertTo() [17/19]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ConvertTo ( Simd< int32_t, N, 0 >  di,
const Vec128< float, N v 
)

References v.

◆ ConvertTo() [18/19]

template<typename FromT , typename ToT , size_t N, HWY_IF_FLOAT(FromT) >
HWY_API Vec128< ToT, N > hwy::HWY_NAMESPACE::ConvertTo ( Simd< ToT, N, 0 >  ,
Vec128< FromT, N from 
)

◆ ConvertTo() [19/19]

template<typename FromT , typename ToT , HWY_IF_FLOAT(FromT) >
HWY_API Vec1< ToT > hwy::HWY_NAMESPACE::ConvertTo ( Sisd< ToT >  ,
Vec1< FromT >  from 
)

◆ Copy()

template<class D , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Copy ( d,
const T *HWY_RESTRICT  from,
size_t  count,
T *HWY_RESTRICT  to 
)

◆ CopyIf()

template<class D , class Func , typename T = TFromD<D>>
T * hwy::HWY_NAMESPACE::CopyIf ( d,
const T *HWY_RESTRICT  from,
size_t  count,
T *HWY_RESTRICT  to,
const Func func 
)

◆ CopySign() [1/5]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::CopySign ( const V  magn,
const V  sign 
)

References And(), AndNot(), Or(), and SignBit().

◆ CopySign() [2/5]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CopySign ( const Vec128< T, N magn,
const Vec128< T, N sign 
)

References And(), AndNot(), Or(), and SignBit().

Referenced by CopySignToAbs(), Round(), and Trunc().

◆ CopySign() [3/5]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CopySign ( const Vec1< T >  magn,
const Vec1< T >  sign 
)

References And(), AndNot(), Or(), and SignBit().

◆ CopySign() [4/5]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CopySign ( const Vec256< T >  magn,
const Vec256< T >  sign 
)

References And(), AndNot(), Or(), and SignBit().

◆ CopySign() [5/5]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CopySign ( const Vec512< T >  magn,
const Vec512< T >  sign 
)

References BitCast(), d, SignBit(), and Zero().

◆ CopySignToAbs() [1/5]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::CopySignToAbs ( const V  abs,
const V  sign 
)

References And(), Or(), and SignBit().

◆ CopySignToAbs() [2/5]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CopySignToAbs ( const Vec128< T, N abs,
const Vec128< T, N sign 
)

References And(), Or(), and SignBit().

Referenced by Round(), and Trunc().

◆ CopySignToAbs() [3/5]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CopySignToAbs ( const Vec1< T >  abs,
const Vec1< T >  sign 
)

References And(), Or(), and SignBit().

◆ CopySignToAbs() [4/5]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CopySignToAbs ( const Vec256< T >  abs,
const Vec256< T >  sign 
)

References And(), Or(), and SignBit().

◆ CopySignToAbs() [5/5]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CopySignToAbs ( const Vec512< T >  abs,
const Vec512< T >  sign 
)

References CopySign().

◆ Cos()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Cos ( const D  d,
x 
)

Highway SIMD version of std::cos(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: [-39000, +39000]

Returns
cosine of 'x'

References Abs(), Add(), d, Mul(), Set(), Xor(), and Zero().

Referenced by CallCos().

◆ CountTrue() [1/8]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( const Full256< T >  ,
const Mask128< T >  m 
)

◆ CountTrue() [2/8]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( const Full256< T >  ,
const Mask256< T >  mask 
)

◆ CountTrue() [3/8]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( const Full512< T >  ,
const Mask512< T >  mask 
)

◆ CountTrue() [4/8]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( const Simd< T, N, 0 >  ,
const Mask128< T >  m 
)

◆ CountTrue() [5/8]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( Full128< T >  ,
const Mask128< T >  mask 
)

◆ CountTrue() [6/8]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( Simd< T, N, 0 >  d,
const Mask128< T, N mask 
)

◆ CountTrue() [7/8]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( Simd< T, N, 0 >  ,
const Mask128< T, N mask 
)

◆ CountTrue() [8/8]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( Sisd< T >  ,
const Mask1< T >  mask 
)

◆ DemoteTo() [1/77]

HWY_API Vec128< bfloat16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< bfloat16_t dbf16,
const Vec256< float >  v 
)

References BitCast(), DemoteTo(), and v.

◆ DemoteTo() [2/77]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::DemoteTo ( Full128< float >  ,
const Vec256< double >  v 
)

References v.

◆ DemoteTo() [3/77]

HWY_API Vec128< float16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< float16_t df16,
const Vec256< float >  v 
)

◆ DemoteTo() [4/77]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< int16_t >  ,
const Vec256< int32_t >  v 
)

References v.

◆ DemoteTo() [5/77]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< int32_t >  ,
const Vec256< double >  v 
)

References v.

◆ DemoteTo() [6/77]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< int8_t >  ,
const Vec256< int16_t >  v 
)

References v.

◆ DemoteTo() [7/77]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< int8_t >  ,
const Vec256< int32_t >  v 
)

References v.

◆ DemoteTo() [8/77]

HWY_API Vec128< int8_t, 16 > hwy::HWY_NAMESPACE::DemoteTo ( Full128< int8_t >  ,
const Vec512< int32_t >  v 
)

References LoadDup128(), LowerHalf(), and v.

◆ DemoteTo() [9/77]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< uint16_t >  ,
const Vec256< int32_t >  v 
)

References v.

◆ DemoteTo() [10/77]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< uint8_t >  ,
const Vec256< int16_t >  v 
)

References v.

◆ DemoteTo() [11/77]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full128< uint8_t >  ,
const Vec256< int32_t >  v 
)

References v.

◆ DemoteTo() [12/77]

HWY_API Vec128< uint8_t, 16 > hwy::HWY_NAMESPACE::DemoteTo ( Full128< uint8_t >  ,
const Vec512< int32_t >  v 
)

References LoadDup128(), LowerHalf(), and v.

◆ DemoteTo() [13/77]

HWY_API Vec256< bfloat16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full256< bfloat16_t dbf16,
const Vec512< float >  v 
)

References BitCast(), DemoteTo(), and v.

◆ DemoteTo() [14/77]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::DemoteTo ( Full256< float >  ,
const Vec512< double >  v 
)

References v.

◆ DemoteTo() [15/77]

HWY_API Vec256< float16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full256< float16_t ,
const Vec512< float >  v 
)

◆ DemoteTo() [16/77]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full256< int16_t >  ,
const Vec512< int32_t >  v 
)

References Load(), LowerHalf(), and v.

◆ DemoteTo() [17/77]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::DemoteTo ( Full256< int32_t >  ,
const Vec512< double >  v 
)

◆ DemoteTo() [18/77]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full256< int8_t >  ,
const Vec512< int16_t >  v 
)

References Load(), LowerHalf(), and v.

◆ DemoteTo() [19/77]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full256< uint16_t >  ,
const Vec512< int32_t >  v 
)

References Load(), LowerHalf(), and v.

◆ DemoteTo() [20/77]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full256< uint8_t >  ,
const Vec512< int16_t >  v 
)

References Load(), LowerHalf(), and v.

◆ DemoteTo() [21/77]

HWY_API Vec32< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full32< int8_t >  ,
const Vec128< int32_t >  v 
)

References v.

◆ DemoteTo() [22/77]

HWY_API Vec32< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full32< uint8_t >  ,
const Vec128< int32_t >  v 
)

References v.

◆ DemoteTo() [23/77]

HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full64< int16_t >  ,
const Vec128< int32_t >  v 
)

References v.

◆ DemoteTo() [24/77]

HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full64< int8_t >  ,
const Vec128< int16_t >  v 
)

References v.

◆ DemoteTo() [25/77]

HWY_API Vec128< int8_t, 8 > hwy::HWY_NAMESPACE::DemoteTo ( Full64< int8_t >  ,
const Vec256< int32_t >  v 
)

References v.

◆ DemoteTo() [26/77]

HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::DemoteTo ( Full64< uint16_t >  ,
const Vec128< int32_t >  v 
)

References v.

Referenced by CompressStore(), DemoteTo(), and U8FromU32().

◆ DemoteTo() [27/77]

HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( Full64< uint8_t >  ,
const Vec128< int16_t >  v 
)

References v.

◆ DemoteTo() [28/77]

HWY_API Vec128< uint8_t, 8 > hwy::HWY_NAMESPACE::DemoteTo ( Full64< uint8_t >  ,
const Vec256< int32_t >  v 
)

References v.

◆ DemoteTo() [29/77]

template<size_t N>
HWY_API Vec128< bfloat16_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< bfloat16_t, N, 0 >  dbf16,
const Vec128< float, N v 
)

References BitCast(), DemoteTo(), and v.

◆ DemoteTo() [30/77]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > hwy::HWY_NAMESPACE::DemoteTo ( Simd< bfloat16_t, N, kPow2 >  d,
VFromD< Simd< float, N, kPow2+1 > >  v 
)

References BitCast(), d, and v.

◆ DemoteTo() [31/77]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< bfloat16_t, N, kPow2 >  ,
svfloat32_t  v 
)

References BitCast(), ConcatOdd(), and v.

◆ DemoteTo() [32/77]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, 0 >  ,
Vec128< double, N from 
)

◆ DemoteTo() [33/77]

template<size_t N>
HWY_API Vec128< float16_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< float16_t, N, 0 >  df16,
const Vec128< float, N v 
)

◆ DemoteTo() [34/77]

template<size_t N, int kPow2>
HWY_API svfloat16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float16_t, N, kPow2 >  d,
const svfloat32_t  v 
)

References ConcatEven(), d, and v.

◆ DemoteTo() [35/77]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float32_t, N, kPow2 >  d,
const svfloat64_t  v 
)

References ConcatEven(), d, and v.

◆ DemoteTo() [36/77]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int16_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ DemoteTo() [37/77]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int16_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ DemoteTo() [38/77]

template<size_t N, int kPow2>
HWY_API svint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int16_t, N, kPow2 >  dn,
const svint32_t  v 
)

References BitCast(), and v.

◆ DemoteTo() [39/77]

template<size_t N>
HWY_API vint32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, -1 >  d,
const vfloat64m1_t  v 
)

References d, Lanes(), and v.

◆ DemoteTo() [40/77]

template<size_t N>
HWY_API vint32m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, 0 >  d,
const vfloat64m2_t  v 
)

References d, Lanes(), and v.

◆ DemoteTo() [41/77]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, 0 >  ,
Vec128< double, N from 
)

◆ DemoteTo() [42/77]

template<size_t N>
HWY_API vint32m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, 1 >  d,
const vfloat64m4_t  v 
)

References d, Lanes(), and v.

◆ DemoteTo() [43/77]

template<size_t N>
HWY_API vint32m4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, 2 >  d,
const vfloat64m8_t  v 
)

References d, Lanes(), and v.

◆ DemoteTo() [44/77]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, kPow2 >  d,
const svfloat64_t  v 
)

References ConcatEven(), d, and v.

◆ DemoteTo() [45/77]

template<size_t N>
HWY_API vint8mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, -1 >  d,
const vint32m2_t  v 
)

References d, DemoteTo(), and v.

◆ DemoteTo() [46/77]

template<size_t N>
HWY_API vint8mf4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, -2 >  d,
const vint32m1_t  v 
)

References d, DemoteTo(), and v.

◆ DemoteTo() [47/77]

template<size_t N>
HWY_API vint8mf8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, -3 >  d,
const vint32mf2_t  v 
)

References d, DemoteTo(), and v.

◆ DemoteTo() [48/77]

template<size_t N>
HWY_API vint8m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 0 >  d,
const vint32m4_t  v 
)

References d, DemoteTo(), and v.

◆ DemoteTo() [49/77]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 0 >  ,
const Vec128< int16_t, N v 
)

References v.

◆ DemoteTo() [50/77]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 0 >  ,
const Vec128< int16_t, N v 
)

References v.

◆ DemoteTo() [51/77]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 0 >  ,
const Vec128< int32_t >  v 
)

◆ DemoteTo() [52/77]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ DemoteTo() [53/77]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ DemoteTo() [54/77]

template<size_t N>
HWY_API vint8m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 1 >  d,
const vint32m8_t  v 
)

References d, DemoteTo(), and v.

◆ DemoteTo() [55/77]

template<size_t N, int kPow2>
HWY_API svint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, kPow2 >  dn,
const svint16_t  v 
)

References BitCast(), and v.

◆ DemoteTo() [56/77]

template<size_t N, int kPow2>
HWY_API svint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, kPow2 >  dn,
const svint32_t  v 
)

References BitCast(), and v.

◆ DemoteTo() [57/77]

template<typename FromT , typename ToT , size_t N>
HWY_API Vec128< ToT, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< ToT, N, 0 >  ,
Vec128< FromT, N from 
)

◆ DemoteTo() [58/77]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ DemoteTo() [59/77]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ DemoteTo() [60/77]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, kPow2 >  dn,
const svint32_t  v 
)

References BitCast(), and v.

◆ DemoteTo() [61/77]

template<size_t N>
HWY_API vuint8mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -1 >  d,
const vint32m2_t  v 
)

References d, DemoteTo(), Lanes(), and v.

◆ DemoteTo() [62/77]

template<size_t N>
HWY_API vuint8mf4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -2 >  d,
const vint32m1_t  v 
)

References d, DemoteTo(), Lanes(), and v.

◆ DemoteTo() [63/77]

template<size_t N>
HWY_API vuint8mf8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -3 >  d,
const vint32mf2_t  v 
)

References d, DemoteTo(), Lanes(), and v.

◆ DemoteTo() [64/77]

template<size_t N>
HWY_API vuint8m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 0 >  d,
const vint32m4_t  v 
)

References d, DemoteTo(), Lanes(), and v.

◆ DemoteTo() [65/77]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 0 >  ,
const Vec128< int16_t, N v 
)

References v.

◆ DemoteTo() [66/77]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 0 >  ,
const Vec128< int16_t, N v 
)

References v.

◆ DemoteTo() [67/77]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 0 >  ,
const Vec128< int32_t >  v 
)

◆ DemoteTo() [68/77]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ DemoteTo() [69/77]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ DemoteTo() [70/77]

template<size_t N>
HWY_API vuint8m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 1 >  d,
const vint32m8_t  v 
)

References d, DemoteTo(), Lanes(), and v.

◆ DemoteTo() [71/77]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 >  dn,
const svint16_t  v 
)

References BitCast(), and v.

◆ DemoteTo() [72/77]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 >  dn,
const svint32_t  v 
)

References BitCast(), and v.

◆ DemoteTo() [73/77]

HWY_API Vec1< bfloat16_t > hwy::HWY_NAMESPACE::DemoteTo ( Sisd< bfloat16_t d,
const Vec1< float >  v 
)

References hwy::BF16FromF32(), d, Set(), and v.

◆ DemoteTo() [74/77]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::DemoteTo ( Sisd< float >  ,
Vec1< double >  from 
)

◆ DemoteTo() [75/77]

HWY_API Vec1< float16_t > hwy::HWY_NAMESPACE::DemoteTo ( Sisd< float16_t ,
const Vec1< float >  v 
)

◆ DemoteTo() [76/77]

HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::DemoteTo ( Sisd< int32_t >  ,
Vec1< double >  from 
)

◆ DemoteTo() [77/77]

template<typename FromT , typename ToT >
HWY_API Vec1< ToT > hwy::HWY_NAMESPACE::DemoteTo ( Sisd< ToT >  ,
Vec1< FromT >  from 
)

◆ Div()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Div ( a,
b 
)

◆ DupEven() [1/10]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::DupEven ( const V  v)

References v.

◆ DupEven() [2/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::DupEven ( Vec128< float, N v)

References v.

◆ DupEven() [3/10]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupEven ( Vec128< T, N v)

◆ DupEven() [4/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupEven ( Vec128< T, N v)

References N, and v.

◆ DupEven() [5/10]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::DupEven ( Vec1< T >  v)

References v.

◆ DupEven() [6/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::DupEven ( Vec256< float >  v)

References v.

◆ DupEven() [7/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::DupEven ( Vec256< T >  v)

References HWY_ASSERT.

◆ DupEven() [8/10]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::DupEven ( Vec256< T >  v)

References v.

◆ DupEven() [9/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::DupEven ( Vec512< float >  v)

References v.

◆ DupEven() [10/10]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::DupEven ( Vec512< T >  v)

References v.

◆ DupOdd() [1/9]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::DupOdd ( const V  v)

References v.

◆ DupOdd() [2/9]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::DupOdd ( Vec128< float, N v)

References v.

◆ DupOdd() [3/9]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupOdd ( Vec128< T, N v)

◆ DupOdd() [4/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupOdd ( Vec128< T, N v)

References N, and v.

◆ DupOdd() [5/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::DupOdd ( Vec256< float >  v)

References v.

◆ DupOdd() [6/9]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::DupOdd ( Vec256< T >  v)

References HWY_ASSERT.

◆ DupOdd() [7/9]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::DupOdd ( Vec256< T >  v)

References v.

◆ DupOdd() [8/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::DupOdd ( Vec512< float >  v)

References v.

◆ DupOdd() [9/9]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::DupOdd ( Vec512< T >  v)

References v.

◆ Eq()

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Eq ( a,
b 
) -> decltype(a == b)

◆ Exp()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Exp ( const D  d,
x 
)

Highway SIMD version of std::exp(x).

Valid Lane Types: float32, float64 Max Error: ULP = 1 Valid Range: float32[-FLT_MAX, +104], float64[-DBL_MAX, +706]

Returns
e^x

References Add(), And(), d, Ge(), IfThenElseZero(), MulAdd(), Or(), and Set().

Referenced by CallExp().

◆ Expm1()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Expm1 ( const D  d,
x 
)

Highway SIMD version of std::expm1(x).

Valid Lane Types: float32, float64 Max Error: ULP = 4 Valid Range: float32[-FLT_MAX, +104], float64[-DBL_MAX, +706]

Returns
e^x - 1

References Abs(), Add(), And(), d, IfThenElse(), Lt(), MulAdd(), Or(), Set(), and Sub().

Referenced by CallExpm1(), Sinh(), and Tanh().

◆ ExtractLane() [1/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 1 >  v,
size_t  i 
)

References HWY_DASSERT, and v.

◆ ExtractLane() [2/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 16 >  v,
size_t  i 
)

References Store(), and v.

◆ ExtractLane() [3/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 2 >  v,
size_t  i 
)

References Store(), and v.

◆ ExtractLane() [4/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 4 >  v,
size_t  i 
)

References Store(), and v.

◆ ExtractLane() [5/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 8 >  v,
size_t  i 
)

References Store(), and v.

◆ ExtractLane() [6/10]

template<typename T , size_t N>
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, N v,
size_t  i 
)

References v.

◆ ExtractLane() [7/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec1< T >  v,
size_t  i 
)

References HWY_DASSERT, and v.

◆ ExtractLane() [8/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec256< T >  v,
size_t  i 
)

References d, HWY_DASSERT, Lanes(), Store(), and v.

◆ ExtractLane() [9/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec512< T >  v,
size_t  i 
)

References d, HWY_DASSERT, Lanes(), Store(), and v.

◆ ExtractLane() [10/10]

template<class V >
HWY_API TFromV< V > hwy::HWY_NAMESPACE::ExtractLane ( v,
size_t  i 
)

References FirstN(), GetLane(), and v.

◆ Fill()

template<class D , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Fill ( d,
value,
size_t  count,
T *HWY_RESTRICT  to 
)

◆ Find()

template<class D , typename T = TFromD<D>>
size_t hwy::HWY_NAMESPACE::Find ( d,
value,
const T *HWY_RESTRICT  in,
size_t  count 
)

◆ FindFirstTrue() [1/5]

template<typename T >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( const Full256< T >  ,
const Mask256< T >  mask 
)

◆ FindFirstTrue() [2/5]

template<typename T , HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( const Full512< T >  ,
const Mask512< T >  mask 
)

◆ FindFirstTrue() [3/5]

template<typename T , size_t N>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( const Simd< T, N, 0 >  d,
const Mask128< T, N mask 
)

◆ FindFirstTrue() [4/5]

template<class D >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( d,
svbool_t  m 
)

◆ FindFirstTrue() [5/5]

template<typename T >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( Sisd< T >  ,
const Mask1< T >  mask 
)

◆ FindIf()

template<class D , class Func , typename T = TFromD<D>>
size_t hwy::HWY_NAMESPACE::FindIf ( d,
const T *HWY_RESTRICT  in,
size_t  count,
const Func func 
)

◆ FirstN() [1/5]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::FirstN ( const Full256< T >  d,
size_t  num 
)

References d, Iota(), RebindMask(), and Set().

◆ FirstN() [2/5]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::FirstN ( const Full512< T >  ,
size_t  n 
)

◆ FirstN() [3/5]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::FirstN ( const Simd< T, N, 0 >  d,
size_t  num 
)

◆ FirstN() [4/5]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::FirstN ( const Simd< T, N, 0 >  d,
size_t  num 
)

◆ FirstN() [5/5]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::FirstN ( Sisd< T >  ,
size_t  n 
)

◆ Floor() [1/11]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Floor ( const V  v)

References Round(), and v.

◆ Floor() [2/11]

template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
V hwy::HWY_NAMESPACE::Floor ( const V  v)

References v.

◆ Floor() [3/11]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Floor ( const Vec128< float, N v)

◆ Floor() [4/11]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Floor ( const Vec128< T, N v)

◆ Floor() [5/11]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::Floor ( const Vec1< double >  v)

References v.

◆ Floor() [6/11]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::Floor ( const Vec1< float >  v)

References v.

◆ Floor() [7/11]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Floor ( const Vec256< double >  v)

References v.

◆ Floor() [8/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Floor ( const Vec256< float >  v)

References v.

◆ Floor() [9/11]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Floor ( const Vec512< double >  v)

References v.

◆ Floor() [10/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Floor ( const Vec512< float >  v)

References v.

◆ Floor() [11/11]

template<typename Float , size_t N>
Vec128< Float, N > hwy::HWY_NAMESPACE::Floor ( Vec128< Float, N v)

References N, and v.

◆ ForAllTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForAllTypes ( const Func func)

◆ ForFloatTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForFloatTypes ( const Func func)

Referenced by ForAllTypes().

◆ ForIntegerTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForIntegerTypes ( const Func func)

References ForSignedTypes(), and ForUnsignedTypes().

Referenced by ForAllTypes().

◆ ForSignedTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForSignedTypes ( const Func func)

Referenced by ForIntegerTypes().

◆ ForUI16()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI16 ( const Func func)

Referenced by ForUI163264(), and ForUIF16().

◆ ForUI163264()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI163264 ( const Func func)

References ForUI16(), and ForUI3264().

◆ ForUI32()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI32 ( const Func func)

Referenced by ForUI3264(), and ForUIF32().

◆ ForUI3264()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI3264 ( const Func func)

References ForUI32(), and ForUI64().

Referenced by ForUI163264().

◆ ForUI64()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI64 ( const Func func)

Referenced by ForUI3264(), and ForUIF64().

◆ ForUI8()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI8 ( const Func func)

◆ ForUIF16()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF16 ( const Func func)

References ForUI16().

Referenced by ForUIF163264().

◆ ForUIF163264()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF163264 ( const Func func)

References ForUIF16(), and ForUIF3264().

◆ ForUIF32()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF32 ( const Func func)

References ForUI32().

Referenced by ForUIF3264().

◆ ForUIF3264()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF3264 ( const Func func)

References ForUIF32(), and ForUIF64().

Referenced by ForUIF163264().

◆ ForUIF64()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF64 ( const Func func)

References ForUI64().

Referenced by ForUIF3264().

◆ ForUnsignedTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForUnsignedTypes ( const Func func)

Referenced by ForIntegerTypes().

◆ GatherIndex() [1/9]

template<typename T , typename Index >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::GatherIndex ( const Full256< T >  d,
const T *HWY_RESTRICT  base,
const Vec256< Index >  index 
)

References d, Load(), N, and Store().

◆ GatherIndex() [2/9]

template<typename T , size_t N, typename Index >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::GatherIndex ( const Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  base,
const Vec128< Index, N index 
)

References d, Load(), N, and Store().

◆ GatherIndex() [3/9]

template<class D , HWY_IF_LANE_SIZE_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherIndex ( d,
const TFromD< D > *HWY_RESTRICT  base,
const VFromD< RebindToSigned< D > >  index 
)

References d, and GatherOffset().

◆ GatherIndex() [4/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::GatherIndex ( Full256< double >  ,
const double *HWY_RESTRICT  base,
const Vec256< int64_t >  index 
)

◆ GatherIndex() [5/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::GatherIndex ( Full256< float >  ,
const float *HWY_RESTRICT  base,
const Vec256< int32_t >  index 
)

◆ GatherIndex() [6/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::GatherIndex ( Full512< double >  ,
const double *HWY_RESTRICT  base,
const Vec512< int64_t >  index 
)

◆ GatherIndex() [7/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::GatherIndex ( Full512< float >  ,
const float *HWY_RESTRICT  base,
const Vec512< int32_t >  index 
)

◆ GatherIndex() [8/9]

template<typename T , typename Index >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::GatherIndex ( Full512< T >  d,
const T *HWY_RESTRICT  base,
const Vec512< Index >  index 
)

◆ GatherIndex() [9/9]

template<typename T , typename Index >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::GatherIndex ( Sisd< T >  d,
const T *HWY_RESTRICT  base,
const Vec1< Index >  index 
)

◆ GatherOffset() [1/9]

template<typename T , typename Offset >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::GatherOffset ( const Full256< T >  d,
const T *HWY_RESTRICT  base,
const Vec256< Offset >  offset 
)

References d, Load(), N, and Store().

◆ GatherOffset() [2/9]

template<typename T , size_t N, typename Offset >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::GatherOffset ( const Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  base,
const Vec128< Offset, N offset 
)

References d, Load(), N, and Store().

Referenced by GatherIndex().

◆ GatherOffset() [3/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::GatherOffset ( Full256< double >  ,
const double *HWY_RESTRICT  base,
const Vec256< int64_t >  offset 
)

◆ GatherOffset() [4/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::GatherOffset ( Full256< float >  ,
const float *HWY_RESTRICT  base,
const Vec256< int32_t >  offset 
)

◆ GatherOffset() [5/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::GatherOffset ( Full512< double >  ,
const double *HWY_RESTRICT  base,
const Vec512< int64_t >  offset 
)

◆ GatherOffset() [6/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::GatherOffset ( Full512< float >  ,
const float *HWY_RESTRICT  base,
const Vec512< int32_t >  offset 
)

◆ GatherOffset() [7/9]

template<typename T , typename Offset >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::GatherOffset ( Full512< T >  d,
const T *HWY_RESTRICT  base,
const Vec512< Offset >  offset 
)

◆ GatherOffset() [8/9]

template<typename T , size_t N, typename Offset >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::GatherOffset ( Simd< T, N, 0 >  ,
const T *  base,
const Vec128< Offset, N offset 
)

◆ GatherOffset() [9/9]

template<typename T , typename Offset >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::GatherOffset ( Sisd< T >  d,
const T *  base,
const Vec1< Offset >  offset 
)

◆ Ge() [1/2]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::Ge ( const V  a,
const V  b 
)

References Le().

◆ Ge() [2/2]

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Ge ( a,
b 
) -> decltype(a == b)

Referenced by Acos(), and Exp().

◆ Generate()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Generate ( d,
T *HWY_RESTRICT  out,
size_t  count,
const Func func 
)

◆ GenerateInput()

template<typename T >
InputStats< T > hwy::HWY_NAMESPACE::GenerateInput ( const Dist  dist,
T *  v,
size_t  num 
)

◆ GetLane() [1/19]

template<class V >
HWY_API TFromV< V > hwy::HWY_NAMESPACE::GetLane ( const V  v)

◆ GetLane() [2/19]

template<size_t N>
HWY_API double hwy::HWY_NAMESPACE::GetLane ( const Vec128< double, N v)

References v.

◆ GetLane() [3/19]

template<size_t N>
HWY_API float hwy::HWY_NAMESPACE::GetLane ( const Vec128< float, N v)

References v.

◆ GetLane() [4/19]

template<size_t N>
HWY_API int64_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< int64_t, N v)

References Store(), and v.

◆ GetLane() [5/19]

template<typename T , size_t N>
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec128< T, N v)

References v.

◆ GetLane() [6/19]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec128< T, N v)

References v.

◆ GetLane() [7/19]

template<size_t N>
HWY_API uint64_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< uint64_t, N v)

References Store(), and v.

◆ GetLane() [8/19]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec1< T >  v)

References v.

◆ GetLane() [9/19]

HWY_API float hwy::HWY_NAMESPACE::GetLane ( const Vec256< float >  v)

References v.

◆ GetLane() [10/19]

HWY_API int16_t hwy::HWY_NAMESPACE::GetLane ( const Vec256< int16_t >  v)

References v.

◆ GetLane() [11/19]

HWY_API int32_t hwy::HWY_NAMESPACE::GetLane ( const Vec256< int32_t >  v)

References v.

◆ GetLane() [12/19]

HWY_API int64_t hwy::HWY_NAMESPACE::GetLane ( const Vec256< int64_t >  v)

References v.

◆ GetLane() [13/19]

HWY_API int8_t hwy::HWY_NAMESPACE::GetLane ( const Vec256< int8_t >  v)

References v.

◆ GetLane() [14/19]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec256< T >  v)

References GetLane(), LowerHalf(), and v.

◆ GetLane() [15/19]

HWY_API uint16_t hwy::HWY_NAMESPACE::GetLane ( const Vec256< uint16_t >  v)

References v.

◆ GetLane() [16/19]

HWY_API uint32_t hwy::HWY_NAMESPACE::GetLane ( const Vec256< uint32_t >  v)

References v.

◆ GetLane() [17/19]

HWY_API uint64_t hwy::HWY_NAMESPACE::GetLane ( const Vec256< uint64_t >  v)

References v.

◆ GetLane() [18/19]

HWY_API uint8_t hwy::HWY_NAMESPACE::GetLane ( const Vec256< uint8_t >  v)

References v.

◆ GetLane() [19/19]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec512< T >  v)

References GetLane(), LowerHalf(), and v.

◆ Gt() [1/2]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::Gt ( const V  a,
const V  b 
)

References Lt().

◆ Gt() [2/2]

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Gt ( a,
b 
) -> decltype(a == b)

Referenced by Acosh(), Asinh(), Atan(), and Tanh().

◆ HWY_NEON_DEF_FUNCTION_INT_8_16_32()

hwy::HWY_NAMESPACE::HWY_NEON_DEF_FUNCTION_INT_8_16_32 ( Neg  ,
vneg  ,
,
 
) const

References v, and Zero().

◆ HWY_RVV_FOREACH_F64()

hwy::HWY_NAMESPACE::HWY_RVV_FOREACH_F64 ( HWY_RVV_DEMOTE_F  ,
DemoteTo  ,
vfncvt_rod_f_f_w_f  ,
_DEMOTE_VIRT   
)

◆ HWY_SVE_FOREACH_UI()

hwy::HWY_NAMESPACE::HWY_SVE_FOREACH_UI ( HWY_SVE_RETV_ARGPV  ,
Not  ,
not   
)

◆ IfNegativeThenElse() [1/8]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::IfNegativeThenElse ( const Vec128< int8_t, N v,
const Vec128< int8_t, N yes,
const Vec128< int8_t, N no 
)

References IfThenElse(), MaskFromVec(), and v.

◆ IfNegativeThenElse() [2/8]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::IfNegativeThenElse ( v,
yes,
no 
)

◆ IfNegativeThenElse() [3/8]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec128< T, N v,
Vec128< T, N yes,
Vec128< T, N no 
)

◆ IfNegativeThenElse() [4/8]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec128< T, N v,
Vec128< T, N yes,
Vec128< T, N no 
)

◆ IfNegativeThenElse() [5/8]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec1< T >  v,
Vec1< T >  yes,
Vec1< T >  no 
)

References v.

◆ IfNegativeThenElse() [6/8]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec256< int8_t >  v,
Vec256< int8_t >  yes,
Vec256< int8_t >  no 
)

References IfThenElse(), MaskFromVec(), and v.

◆ IfNegativeThenElse() [7/8]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec256< T >  v,
Vec256< T >  yes,
Vec256< T >  no 
)

◆ IfNegativeThenElse() [8/8]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec512< T >  v,
Vec512< T >  yes,
Vec512< T >  no 
)

References IfThenElse(), MaskFromVec(), and v.

◆ IfThenElse() [1/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenElse ( const Mask128< T, N mask,
const Vec128< T, N yes,
const Vec128< T, N no 
)

◆ IfThenElse() [2/10]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenElse ( const Mask1< T >  mask,
const Vec1< T >  yes,
const Vec1< T >  no 
)

◆ IfThenElse() [3/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenElse ( const Mask512< double >  mask,
const Vec512< double >  yes,
const Vec512< double >  no 
)

◆ IfThenElse() [4/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenElse ( const Mask512< float >  mask,
const Vec512< float >  yes,
const Vec512< float >  no 
)

◆ IfThenElse() [5/10]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenElse ( const Mask512< T >  mask,
const Vec512< T >  yes,
const Vec512< T >  no 
)

◆ IfThenElse() [6/10]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::IfThenElse ( Mask128< double, N mask,
Vec128< double, N yes,
Vec128< double, N no 
)

◆ IfThenElse() [7/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::IfThenElse ( Mask128< float, N mask,
Vec128< float, N yes,
Vec128< float, N no 
)

◆ IfThenElse() [8/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::IfThenElse ( Mask256< double >  mask,
Vec256< double >  yes,
Vec256< double >  no 
)

◆ IfThenElse() [9/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::IfThenElse ( Mask256< float >  mask,
Vec256< float >  yes,
Vec256< float >  no 
)

◆ IfThenElse() [10/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenElse ( Mask256< T >  mask,
Vec256< T >  yes,
Vec256< T >  no 
)

◆ IfThenElseZero() [1/12]

template<class M , class V >
HWY_API V hwy::HWY_NAMESPACE::IfThenElseZero ( const M  mask,
const V  yes 
)

References IfThenElse(), and Zero().

◆ IfThenElseZero() [2/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenElseZero ( const Mask128< T, N mask,
const Vec128< T, N yes 
)

◆ IfThenElseZero() [3/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenElseZero ( const Mask1< T >  mask,
const Vec1< T >  yes 
)

◆ IfThenElseZero() [4/12]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenElseZero ( const Mask512< double >  mask,
const Vec512< double >  yes 
)

◆ IfThenElseZero() [5/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenElseZero ( const Mask512< float >  mask,
const Vec512< float >  yes 
)

◆ IfThenElseZero() [6/12]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenElseZero ( const Mask512< T >  mask,
const Vec512< T >  yes 
)

◆ IfThenElseZero() [7/12]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::IfThenElseZero ( const svbool_t  mask,
const V  yes 
)

References IfThenElse(), and Zero().

◆ IfThenElseZero() [8/12]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask128< double, N mask,
Vec128< double, N yes 
)

◆ IfThenElseZero() [9/12]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask128< float, N mask,
Vec128< float, N yes 
)

◆ IfThenElseZero() [10/12]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< double >  mask,
Vec256< double >  yes 
)

◆ IfThenElseZero() [11/12]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< float >  mask,
Vec256< float >  yes 
)

◆ IfThenElseZero() [12/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< T >  mask,
Vec256< T >  yes 
)

References VecFromMask().

◆ IfThenZeroElse() [1/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenZeroElse ( const Mask128< T, N mask,
const Vec128< T, N no 
)

◆ IfThenZeroElse() [2/11]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenZeroElse ( const Mask1< T >  mask,
const Vec1< T >  no 
)

◆ IfThenZeroElse() [3/11]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenZeroElse ( const Mask512< double >  mask,
const Vec512< double >  no 
)

◆ IfThenZeroElse() [4/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenZeroElse ( const Mask512< float >  mask,
const Vec512< float >  no 
)

◆ IfThenZeroElse() [5/11]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenZeroElse ( const Mask512< T >  mask,
const Vec512< T >  no 
)

◆ IfThenZeroElse() [6/11]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::IfThenZeroElse ( const svbool_t  mask,
const V  no 
)

References IfThenElse(), and Zero().

◆ IfThenZeroElse() [7/11]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask128< double, N mask,
Vec128< double, N no 
)

◆ IfThenZeroElse() [8/11]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask128< float, N mask,
Vec128< float, N no 
)

◆ IfThenZeroElse() [9/11]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask256< double >  mask,
Vec256< double >  no 
)

◆ IfThenZeroElse() [10/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask256< float >  mask,
Vec256< float >  no 
)

◆ IfThenZeroElse() [11/11]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask256< T >  mask,
Vec256< T >  no 
)

References AndNot(), and VecFromMask().

◆ IfVecThenElse() [1/6]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::IfVecThenElse ( const V  mask,
const V  yes,
const V  no 
)

References BitCast(), d, and IfVecThenElse().

◆ IfVecThenElse() [2/6]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::IfVecThenElse ( const V  mask,
const V  yes,
const V  no 
)

References IfThenElse(), and MaskFromVec().

◆ IfVecThenElse() [3/6]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfVecThenElse ( Vec128< T, N mask,
Vec128< T, N yes,
Vec128< T, N no 
)

◆ IfVecThenElse() [4/6]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfVecThenElse ( Vec1< T >  mask,
Vec1< T >  yes,
Vec1< T >  no 
)

References IfThenElse(), and MaskFromVec().

◆ IfVecThenElse() [5/6]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfVecThenElse ( Vec256< T >  mask,
Vec256< T >  yes,
Vec256< T >  no 
)

References IfThenElse(), and MaskFromVec().

◆ IfVecThenElse() [6/6]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfVecThenElse ( Vec512< T >  mask,
Vec512< T >  yes,
Vec512< T >  no 
)

References BitCast(), and d.

◆ IndicesFromVec() [1/8]

template<class D , class VI >
HWY_API VFromD< RebindToUnsigned< D > > hwy::HWY_NAMESPACE::IndicesFromVec ( d,
VI  vec 
)

References AllTrue(), BitCast(), d, HWY_DASSERT, and Lanes().

◆ IndicesFromVec() [2/8]

template<typename T , typename TI >
HWY_API Indices256< T > hwy::HWY_NAMESPACE::IndicesFromVec ( Full256< T >  d,
Vec256< TI >  vec 
)

◆ IndicesFromVec() [3/8]

template<typename T , typename TI , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Indices256< T > hwy::HWY_NAMESPACE::IndicesFromVec ( Full256< T >  d,
Vec256< TI >  vec 
)

◆ IndicesFromVec() [4/8]

template<typename T , typename TI >
HWY_API Indices512< T > hwy::HWY_NAMESPACE::IndicesFromVec ( Full512< T >  ,
Vec512< TI >  vec 
)

◆ IndicesFromVec() [5/8]

template<typename T , size_t N, typename TI , HWY_IF_LE128(T, N) >
HWY_API Indices128< T, N > hwy::HWY_NAMESPACE::IndicesFromVec ( Simd< T, N, 0 >  d,
Vec128< TI, N vec 
)

◆ IndicesFromVec() [6/8]

template<typename T , size_t N, typename TI , HWY_IF_LE128(T, N) , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Indices128< T, N > hwy::HWY_NAMESPACE::IndicesFromVec ( Simd< T, N, 0 >  d,
Vec128< TI, N vec 
)

◆ IndicesFromVec() [7/8]

template<typename T , size_t N, typename TI >
HWY_API Indices128< T, N > hwy::HWY_NAMESPACE::IndicesFromVec ( Simd< T, N, 0 >  ,
Vec128< TI, N vec 
)

◆ IndicesFromVec() [8/8]

template<typename T , typename TI >
HWY_API Indices1< T > hwy::HWY_NAMESPACE::IndicesFromVec ( Sisd< T >  ,
Vec1< TI >  vec 
)

◆ Inf()

template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::Inf ( d)

References BitCast(), d, and Set().

◆ InsertLane() [1/11]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::InsertLane ( const V  v,
size_t  i,
TFromV< V >  t 
)

References d, IfThenElse(), Iota(), RebindMask(), Set(), and v.

◆ InsertLane() [2/11]

template<class V , HWY_IF_NOT_LANE_SIZE_V(V, 1) >
HWY_API V hwy::HWY_NAMESPACE::InsertLane ( const V  v,
size_t  i,
TFromV< V >  t 
)

◆ InsertLane() [3/11]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 1 >  v,
size_t  i,
t 
)

References HWY_DASSERT, Set(), and v.

◆ InsertLane() [4/11]

template<typename T >
HWY_API Vec128< T, 16 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 16 >  v,
size_t  i,
t 
)

References d, Load(), Store(), and v.

◆ InsertLane() [5/11]

template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 2 >  v,
size_t  i,
t 
)

References d, Load(), Store(), and v.

◆ InsertLane() [6/11]

template<typename T >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 4 >  v,
size_t  i,
t 
)

References d, Load(), Store(), and v.

◆ InsertLane() [7/11]

template<typename T >
HWY_API Vec128< T, 8 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 8 >  v,
size_t  i,
t 
)

References d, Load(), Store(), and v.

◆ InsertLane() [8/11]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::InsertLane ( const Vec256< T >  v,
size_t  i,
t 
)

References d, HWY_DASSERT, Lanes(), Load(), Store(), and v.

◆ InsertLane() [9/11]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::InsertLane ( const Vec512< T >  v,
size_t  i,
t 
)

References d, HWY_DASSERT, Lanes(), Load(), Store(), and v.

◆ InsertLane() [10/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::InsertLane ( Vec128< T, N v,
size_t  i,
t 
)

References v.

◆ InsertLane() [11/11]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::InsertLane ( Vec1< T >  v,
size_t  i,
t 
)

References HWY_DASSERT, and v.

◆ InterleaveLower() [1/50]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( const V  a,
const V  b 
)

References InterleaveLower().

◆ InterleaveLower() [2/50]

template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ InterleaveLower() [3/50]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< float >  a,
const Vec128< float >  b 
)

◆ InterleaveLower() [4/50]

template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ InterleaveLower() [5/50]

template<size_t N, HWY_IF_LE128(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ InterleaveLower() [6/50]

template<size_t N, HWY_IF_LE128(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ InterleaveLower() [7/50]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< int64_t >  a,
const Vec128< int64_t >  b 
)

References Shuffle01().

◆ InterleaveLower() [8/50]

template<size_t N, HWY_IF_LE128(int64_t, N) >
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< int64_t, N a,
const Vec128< int64_t, N b 
)

◆ InterleaveLower() [9/50]

template<size_t N, HWY_IF_LE128(int8_t, N) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< int8_t, N a,
const Vec128< int8_t, N b 
)

◆ InterleaveLower() [10/50]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ InterleaveLower() [11/50]

template<size_t N, HWY_IF_LE128(uint16_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ InterleaveLower() [12/50]

template<size_t N, HWY_IF_LE128(uint32_t, N) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ InterleaveLower() [13/50]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< uint64_t >  a,
const Vec128< uint64_t >  b 
)

◆ InterleaveLower() [14/50]

template<size_t N, HWY_IF_LE128(uint64_t, N) >
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< uint64_t, N a,
const Vec128< uint64_t, N b 
)

◆ InterleaveLower() [15/50]

template<size_t N, HWY_IF_LE128(uint8_t, N) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ InterleaveLower() [16/50]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ InterleaveLower() [17/50]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ InterleaveLower() [18/50]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ InterleaveLower() [19/50]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ InterleaveLower() [20/50]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ InterleaveLower() [21/50]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ InterleaveLower() [22/50]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ InterleaveLower() [23/50]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ InterleaveLower() [24/50]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ InterleaveLower() [25/50]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ InterleaveLower() [26/50]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ InterleaveLower() [27/50]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( d,
const V  a,
const V  b 
)

References BitCast(), ConcatEven(), d, and ZipLower().

◆ InterleaveLower() [28/50]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( DFromV< V >  ,
a,
b 
)

References InterleaveLower().

◆ InterleaveLower() [29/50]

template<typename T , class V = Vec256<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( Full256< T >  ,
a,
b 
)

References InterleaveLower().

◆ InterleaveLower() [30/50]

template<typename T , size_t N, class V = Vec128<T, N>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( Simd< T, N, 0 >  ,
a,
b 
)

References InterleaveLower().

◆ InterleaveLower() [31/50]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< double, N a,
Vec128< double, N b 
)

◆ InterleaveLower() [32/50]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< float, N a,
Vec128< float, N b 
)

◆ InterleaveLower() [33/50]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< int16_t, N a,
Vec128< int16_t, N b 
)

◆ InterleaveLower() [34/50]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< int32_t, N a,
Vec128< int32_t, N b 
)

◆ InterleaveLower() [35/50]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< int64_t, N a,
Vec128< int64_t, N b 
)

◆ InterleaveLower() [36/50]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< int8_t, N a,
Vec128< int8_t, N b 
)

◆ InterleaveLower() [37/50]

template<typename T , size_t N, HWY_IF_LE32(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< T, N a,
Vec128< T, N b 
)

◆ InterleaveLower() [38/50]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< uint16_t, N a,
Vec128< uint16_t, N b 
)

◆ InterleaveLower() [39/50]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< uint32_t, N a,
Vec128< uint32_t, N b 
)

◆ InterleaveLower() [40/50]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< uint64_t, N a,
Vec128< uint64_t, N b 
)

◆ InterleaveLower() [41/50]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< uint8_t, N a,
Vec128< uint8_t, N b 
)

◆ InterleaveLower() [42/50]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< float >  a,
Vec256< float >  b 
)

◆ InterleaveLower() [43/50]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< int16_t >  a,
Vec256< int16_t >  b 
)

◆ InterleaveLower() [44/50]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< int32_t >  a,
Vec256< int32_t >  b 
)

◆ InterleaveLower() [45/50]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< int64_t >  a,
Vec256< int64_t >  b 
)

◆ InterleaveLower() [46/50]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< int8_t >  a,
Vec256< int8_t >  b 
)

◆ InterleaveLower() [47/50]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< uint16_t >  a,
Vec256< uint16_t >  b 
)

◆ InterleaveLower() [48/50]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< uint32_t >  a,
Vec256< uint32_t >  b 
)

◆ InterleaveLower() [49/50]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< uint64_t >  a,
Vec256< uint64_t >  b 
)

◆ InterleaveLower() [50/50]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< uint8_t >  a,
Vec256< uint8_t >  b 
)

◆ InterleaveUpper() [1/7]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( const D  d,
const V  a,
const V  b 
)

◆ InterleaveUpper() [2/7]

template<class D , class V = VFromD<D>, hwy::EnableIf< detail::IsFull(D())> * = nullptr>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( d,
const V  a,
const V  b 
)

◆ InterleaveUpper() [3/7]

template<typename T , class V = Vec128<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( Full128< T >  ,
a,
b 
)

◆ InterleaveUpper() [4/7]

template<typename T , class V = Vec256<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( Full256< T >  ,
a,
b 
)

◆ InterleaveUpper() [5/7]

template<typename T , class V = Vec512<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( Full512< T >  ,
a,
b 
)

◆ InterleaveUpper() [6/7]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::InterleaveUpper ( Simd< T, N, 0 >  ,
const Vec128< T, N a,
const Vec128< T, N b 
)

◆ InterleaveUpper() [7/7]

template<typename T , size_t N, HWY_IF_GE64(T, N) , class V = Vec128<T, N>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( Simd< T, N, 0 >  d,
a,
b 
)

◆ Iota() [1/8]

template<class D , HWY_IF_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Iota ( const D  d,
TFromD< D >  first 
)

References ConvertTo(), d, and Iota().

◆ Iota() [2/8]

template<typename T , typename T2 >
Vec256< T > hwy::HWY_NAMESPACE::Iota ( const Full256< T >  d,
const T2  first 
)

References d, HWY_ALIGN, and Load().

◆ Iota() [3/8]

template<typename T , typename T2 >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Iota ( const Full256< T >  d,
const T2  first 
)

References d, HWY_ALIGN, and Load().

◆ Iota() [4/8]

template<typename T , typename T2 >
Vec512< T > hwy::HWY_NAMESPACE::Iota ( const Full512< T >  d,
const T2  first 
)

References d, HWY_ALIGN, and Load().

◆ Iota() [5/8]

template<typename T , size_t N, typename T2 >
Vec128< T, N > hwy::HWY_NAMESPACE::Iota ( const Simd< T, N, 0 >  d,
const T2  first 
)

◆ Iota() [6/8]

template<typename T , size_t N, typename T2 , HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Iota ( const Simd< T, N, 0 >  d,
const T2  first 
)

References d, HWY_ALIGN, and Load().

◆ Iota() [7/8]

template<typename T , size_t N, typename T2 >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Iota ( const Simd< T, N, 0 >  ,
T2  first 
)

◆ Iota() [8/8]

template<typename T , typename T2 >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Iota ( const Sisd< T >  ,
const T2  first 
)

◆ IsFinite() [1/12]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::IsFinite ( const V  v)

References Add(), BitCast(), d, RebindMask(), ShiftRight(), and v.

◆ IsFinite() [2/12]

template<class V , class D = DFromV<V>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::IsFinite ( const V  v)

References Add(), BitCast(), d, RebindMask(), ShiftRight(), and v.

◆ IsFinite() [3/12]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::IsFinite ( const Vec128< double, N v)

References Not(), and v.

◆ IsFinite() [4/12]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::IsFinite ( const Vec128< float, N v)

References Not(), and v.

◆ IsFinite() [5/12]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::IsFinite ( const Vec128< T, N v)

◆ IsFinite() [6/12]

HWY_API Mask1< double > hwy::HWY_NAMESPACE::IsFinite ( const Vec1< double >  v)

◆ IsFinite() [7/12]

HWY_API Mask1< float > hwy::HWY_NAMESPACE::IsFinite ( const Vec1< float >  v)

◆ IsFinite() [8/12]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::IsFinite ( const Vec256< double >  v)

References Not(), and v.

◆ IsFinite() [9/12]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::IsFinite ( const Vec256< float >  v)

References Not(), and v.

◆ IsFinite() [10/12]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::IsFinite ( const Vec256< T >  v)

◆ IsFinite() [11/12]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsFinite ( const Vec512< double >  v)

References Not(), and v.

◆ IsFinite() [12/12]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsFinite ( const Vec512< float >  v)

References Not(), and v.

◆ IsInf() [1/12]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::IsInf ( const V  v)

References Add(), BitCast(), d, RebindMask(), and v.

◆ IsInf() [2/12]

template<class V , class D = DFromV<V>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::IsInf ( const V  v)

References Add(), BitCast(), d, RebindMask(), and v.

◆ IsInf() [3/12]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::IsInf ( const Vec128< double, N v)

References v.

◆ IsInf() [4/12]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::IsInf ( const Vec128< float, N v)

References v.

◆ IsInf() [5/12]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::IsInf ( const Vec128< T, N v)

References Add(), BitCast(), d, Eq(), RebindMask(), Set(), and v.

◆ IsInf() [6/12]

HWY_API Mask1< double > hwy::HWY_NAMESPACE::IsInf ( const Vec1< double >  v)

References BitCast(), d, RebindMask(), Set(), and v.

◆ IsInf() [7/12]

HWY_API Mask1< float > hwy::HWY_NAMESPACE::IsInf ( const Vec1< float >  v)

References BitCast(), d, RebindMask(), Set(), and v.

◆ IsInf() [8/12]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::IsInf ( const Vec256< double >  v)

References v.

◆ IsInf() [9/12]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::IsInf ( const Vec256< float >  v)

References v.

◆ IsInf() [10/12]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::IsInf ( const Vec256< T >  v)

References Add(), BitCast(), d, Eq(), RebindMask(), Set(), and v.

◆ IsInf() [11/12]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsInf ( const Vec512< double >  v)

References v.

◆ IsInf() [12/12]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsInf ( const Vec512< float >  v)

References v.

◆ IsNaN() [1/11]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::IsNaN ( const V  v)

References Ne(), and v.

◆ IsNaN() [2/11]

template<class V >
HWY_API MFromD< DFromV< V > > hwy::HWY_NAMESPACE::IsNaN ( const V  v)

References Ne(), and v.

◆ IsNaN() [3/11]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::IsNaN ( const Vec128< double, N v)

References v.

◆ IsNaN() [4/11]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::IsNaN ( const Vec128< float, N v)

References v.

◆ IsNaN() [5/11]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::IsNaN ( const Vec128< T, N v)

References v.

◆ IsNaN() [6/11]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::IsNaN ( const Vec1< T >  v)

◆ IsNaN() [7/11]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::IsNaN ( const Vec256< double >  v)

References v.

◆ IsNaN() [8/11]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::IsNaN ( const Vec256< float >  v)

References v.

◆ IsNaN() [9/11]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::IsNaN ( const Vec256< T >  v)

References v.

◆ IsNaN() [10/11]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsNaN ( const Vec512< double >  v)

References v.

◆ IsNaN() [11/11]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsNaN ( const Vec512< float >  v)

References v.

◆ Lanes() [1/3]

template<size_t N, int kPow2>
HWY_API size_t hwy::HWY_NAMESPACE::Lanes ( Simd< bfloat16_t, N, kPow2 >  )

References Lanes().

◆ Lanes() [2/3]

template<typename T , size_t N, int kPow2>
HWY_API constexpr size_t hwy::HWY_NAMESPACE::Lanes ( Simd< T, N, kPow2 >  )
constexpr

References HWY_MIN, N, and hwy::HWY_NAMESPACE::detail::ScaleByPower().

Referenced by AllTrue(), AssertMaskEqual(), AssertVecEqual(), Combine(), hwy::HWY_NAMESPACE::Dot::Compute(), ConcatEven(), ConcatLowerUpper(), ConcatOdd(), ConcatUpperLower(), Copy(), CopyIf(), DemoteTo(), hwy::HWY_NAMESPACE::detail::ForeachCappedR< T, kMul, kMinArg, Test >::Do(), ExtractLane(), Fill(), Find(), FindIf(), Generate(), GenerateInput(), hwy::HWY_NAMESPACE::Xorshift128Plus::GenerateSeeds(), grk::HWY_NAMESPACE::hwy_decompress_v_final_memcpy_53(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_even_mcols_53(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_odd_mcols_53(), grk::HWY_NAMESPACE::hwy_num_lanes(), IndicesFromVec(), InsertLane(), Lanes(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), hwy::HWY_NAMESPACE::detail::MakeMask(), hwy::HWY_NAMESPACE::detail::MaskLowerHalf(), MaskTrue(), skeleton::HWY_NAMESPACE::MulAddLoop(), hwy::HWY_NAMESPACE::ForExtendableVectors< Test, kPow2 >::operator()(), hwy::HWY_NAMESPACE::ForPromoteVectors< Test, kPow2 >::operator()(), Print(), Replace(), ReplaceIf(), Reverse(), Sort(), StoreMaskBits(), TableLookupBytes(), Transform(), grk::HWY_NAMESPACE::DecompressDcShiftIrrev::transform(), grk::HWY_NAMESPACE::DecompressDcShiftRev::transform(), grk::HWY_NAMESPACE::DecompressRev::transform(), grk::HWY_NAMESPACE::DecompressIrrev::transform(), grk::HWY_NAMESPACE::CompressRev::transform(), grk::HWY_NAMESPACE::CompressIrrev::transform(), Transform1(), Transform2(), U8FromU32(), and UpperHalf().

◆ Lanes() [3/3]

template<typename T , size_t N, int kPow2>
HWY_INLINE HWY_MAYBE_UNUSED size_t hwy::HWY_NAMESPACE::Lanes ( Simd< T, N, kPow2 >  )

References N.

◆ Le()

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Le ( a,
b 
) -> decltype(a == b)

Referenced by Ge().

◆ Load() [1/18]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::Load ( Full128< double >  ,
const double *HWY_RESTRICT  aligned 
)

◆ Load() [2/18]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Load ( Full128< float >  ,
const float *HWY_RESTRICT  aligned 
)

◆ Load() [3/18]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Load ( Full128< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ Load() [4/18]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Load ( Full256< double >  ,
const double *HWY_RESTRICT  aligned 
)

◆ Load() [5/18]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Load ( Full256< float >  ,
const float *HWY_RESTRICT  aligned 
)

◆ Load() [6/18]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Load ( Full256< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ Load() [7/18]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::Load ( Full32< float >  ,
const float *HWY_RESTRICT  p 
)

References v.

◆ Load() [8/18]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Load ( Full512< double >  ,
const double *HWY_RESTRICT  aligned 
)

◆ Load() [9/18]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Load ( Full512< float >  ,
const float *HWY_RESTRICT  aligned 
)

◆ Load() [10/18]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Load ( Full512< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ Load() [11/18]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::Load ( Full64< double >  ,
const double *HWY_RESTRICT  p 
)

References v.

◆ Load() [12/18]

HWY_API Vec128< float, 2 > hwy::HWY_NAMESPACE::Load ( Full64< float >  ,
const float *HWY_RESTRICT  p 
)

References v.

◆ Load() [13/18]

template<typename T >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::Load ( Full64< T >  ,
const T *HWY_RESTRICT  p 
)

References v.

◆ Load() [14/18]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::Load ( Simd< bfloat16_t, N, kPow2 >  d,
const bfloat16_t *HWY_RESTRICT  p 
)

References d, HWY_RESTRICT, and Load().

◆ Load() [15/18]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > hwy::HWY_NAMESPACE::Load ( Simd< bfloat16_t, N, kPow2 >  d,
const bfloat16_t *HWY_RESTRICT  p 
)

References d, HWY_RESTRICT, and Load().

◆ Load() [16/18]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Load ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  p 
)

◆ Load() [17/18]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Load ( Simd< T, N, 0 >  ,
const T *HWY_RESTRICT  p 
)

References v.

◆ Load() [18/18]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Load ( Sisd< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ LoadDup128() [1/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::LoadDup128 ( Full256< double >  ,
const double *const HWY_RESTRICT  p 
)

References LoadU().

◆ LoadDup128() [2/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::LoadDup128 ( Full256< float >  ,
const float *const HWY_RESTRICT  p 
)

References LoadU().

◆ LoadDup128() [3/9]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::LoadDup128 ( Full256< T >  d,
const T *HWY_RESTRICT  p 
)

References d, and Load().

◆ LoadDup128() [4/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::LoadDup128 ( Full512< double >  ,
const double *const HWY_RESTRICT  p 
)

◆ LoadDup128() [5/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::LoadDup128 ( Full512< float >  ,
const float *const HWY_RESTRICT  p 
)

◆ LoadDup128() [6/9]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::LoadDup128 ( Full512< T >  ,
const T *const HWY_RESTRICT  p 
)

References LoadU().

◆ LoadDup128() [7/9]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::LoadDup128 ( Simd< T, N, 0 >  d,
const T *const HWY_RESTRICT  p 
)

◆ LoadDup128() [8/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::LoadDup128 ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  aligned 
)

References d, and Load().

◆ LoadDup128() [9/9]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LoadDup128 ( Sisd< T >  d,
const T *HWY_RESTRICT  aligned 
)

References d, and Load().

◆ LoadInterleaved2() [1/5]

template<typename T , class V >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( Simd< T, 1, 0 >  d,
const T *HWY_RESTRICT  unaligned,
V &  v0,
V &  v1 
)

References d, and LoadU().

◆ LoadInterleaved2() [2/5]

template<typename T , size_t N, class V >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  unaligned,
V &  v0,
V &  v1 
)

References ConcatEven(), ConcatOdd(), d, LoadU(), and N.

◆ LoadInterleaved2() [3/5]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  unaligned,
Vec128< T, N > &  v0,
Vec128< T, N > &  v1 
)

References d, Load(), and N.

◆ LoadInterleaved2() [4/5]

template<typename T , size_t N, HWY_IF_LOAD_INT(T, N) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( Simd< T, N, 0 >  ,
const T *HWY_RESTRICT  unaligned,
Vec128< T, N > &  v0,
Vec128< T, N > &  v1 
)

References LoadInterleaved2().

Referenced by LoadInterleaved2().

◆ LoadInterleaved2() [5/5]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( Sisd< T >  d,
const T *HWY_RESTRICT  unaligned,
Vec1< T > &  v0,
Vec1< T > &  v1 
)

References d, and LoadU().

◆ LoadInterleaved3() [1/6]

template<typename T , class V >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( Simd< T, 1, 0 >  d,
const T *HWY_RESTRICT  unaligned,
V &  v0,
V &  v1,
V &  v2 
)

References d, and LoadU().

◆ LoadInterleaved3() [2/6]

template<typename T , size_t N, class V , HWY_IF_LANES_PER_BLOCK(T, N, 16) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  unaligned,
V &  v0,
V &  v1,
V &  v2 
)

◆ LoadInterleaved3() [3/6]

template<typename T , size_t N, class V , HWY_IF_LANE_SIZE(T, 1) , HWY_IF_LANES_PER_BLOCK(T, N, 8) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  unaligned,
V &  v0,
V &  v1,
V &  v2 
)

◆ LoadInterleaved3() [4/6]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  unaligned,
Vec128< T, N > &  v0,
Vec128< T, N > &  v1,
Vec128< T, N > &  v2 
)

References d, Load(), and N.

◆ LoadInterleaved3() [5/6]

template<typename T , size_t N, HWY_IF_LOAD_INT(T, N) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( Simd< T, N, 0 >  ,
const T *HWY_RESTRICT  unaligned,
Vec128< T, N > &  v0,
Vec128< T, N > &  v1,
Vec128< T, N > &  v2 
)

References LoadInterleaved3().

Referenced by LoadInterleaved3().

◆ LoadInterleaved3() [6/6]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( Sisd< T >  d,
const T *HWY_RESTRICT  unaligned,
Vec1< T > &  v0,
Vec1< T > &  v1,
Vec1< T > &  v2 
)

References d, and LoadU().

◆ LoadInterleaved4() [1/5]

template<typename T , class V >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( Simd< T, 1, 0 >  d,
const T *HWY_RESTRICT  unaligned,
V &  v0,
V &  v1,
V &  v2,
V &  v3 
)

References d, and LoadU().

◆ LoadInterleaved4() [2/5]

template<typename T , size_t N, class V , HWY_IF_LANES_PER_BLOCK(T, N, 16) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  unaligned,
V &  v0,
V &  v1,
V &  v2,
V &  v3 
)

◆ LoadInterleaved4() [3/5]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  unaligned,
Vec128< T, N > &  v0,
Vec128< T, N > &  v1,
Vec128< T, N > &  v2,
Vec128< T, N > &  v3 
)

References d, Load(), and N.

◆ LoadInterleaved4() [4/5]

template<typename T , size_t N, HWY_IF_LOAD_INT(T, N) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( Simd< T, N, 0 >  ,
const T *HWY_RESTRICT  unaligned,
Vec128< T, N > &  v0,
Vec128< T, N > &  v1,
Vec128< T, N > &  v2,
Vec128< T, N > &  v3 
)

References LoadInterleaved4().

Referenced by LoadInterleaved4().

◆ LoadInterleaved4() [5/5]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( Sisd< T >  d,
const T *HWY_RESTRICT  unaligned,
Vec1< T > &  v0,
Vec1< T > &  v1,
Vec1< T > &  v2,
Vec1< T > &  v3 
)

References d, and LoadU().

◆ LoadMaskBits() [1/6]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::LoadMaskBits ( const Full512< T >  ,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadMaskBits() [2/6]

template<class D , HWY_IF_LANE_SIZE_D(D, 1) >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::LoadMaskBits ( d,
const uint8_t *HWY_RESTRICT  bits 
)

References BitCast(), d, Iota(), and TestBit().

◆ LoadMaskBits() [3/6]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::LoadMaskBits ( Full256< T >  d,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadMaskBits() [4/6]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::LoadMaskBits ( Simd< T, N, 0 >  d,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadMaskBits() [5/6]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::LoadMaskBits ( Simd< T, N, 0 >  ,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadMaskBits() [6/6]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::LoadMaskBits ( Sisd< T >  ,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadU() [1/41]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( d,
const TFromD< D > *HWY_RESTRICT  p 
)

References d, and Load().

◆ LoadU() [2/41]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::LoadU ( Full128< double >  ,
const double *HWY_RESTRICT  p 
)

◆ LoadU() [3/41]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::LoadU ( Full128< float >  ,
const float *HWY_RESTRICT  unaligned 
)

◆ LoadU() [4/41]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::LoadU ( Full128< int16_t >  ,
const int16_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [5/41]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::LoadU ( Full128< int32_t >  ,
const int32_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [6/41]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::LoadU ( Full128< int64_t >  ,
const int64_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [7/41]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::LoadU ( Full128< int8_t >  ,
const int8_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [8/41]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::LoadU ( Full128< T >  ,
const T *HWY_RESTRICT  p 
)

◆ LoadU() [9/41]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::LoadU ( Full128< uint16_t >  ,
const uint16_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [10/41]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::LoadU ( Full128< uint32_t >  ,
const uint32_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [11/41]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::LoadU ( Full128< uint64_t >  ,
const uint64_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [12/41]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::LoadU ( Full128< uint8_t >  ,
const uint8_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [13/41]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::LoadU ( Full256< double >  ,
const double *HWY_RESTRICT  p 
)

◆ LoadU() [14/41]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::LoadU ( Full256< float >  ,
const float *HWY_RESTRICT  p 
)

◆ LoadU() [15/41]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::LoadU ( Full256< T >  d,
const T *HWY_RESTRICT  p 
)

References d, and Load().

◆ LoadU() [16/41]

HWY_API Vec32< float > hwy::HWY_NAMESPACE::LoadU ( Full32< float >  ,
const float *HWY_RESTRICT  p 
)

◆ LoadU() [17/41]

HWY_API Vec32< int32_t > hwy::HWY_NAMESPACE::LoadU ( Full32< int32_t >  ,
const int32_t *HWY_RESTRICT  p 
)

◆ LoadU() [18/41]

template<typename T , HWY_IF_LANE_SIZE_LT(T, 4) >
HWY_API Vec32< T > hwy::HWY_NAMESPACE::LoadU ( Full32< T >  d,
const T *HWY_RESTRICT  p 
)

References BitCast(), d, and LoadU().

◆ LoadU() [19/41]

HWY_API Vec32< uint32_t > hwy::HWY_NAMESPACE::LoadU ( Full32< uint32_t >  ,
const uint32_t *HWY_RESTRICT  p 
)

◆ LoadU() [20/41]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::LoadU ( Full512< double >  ,
const double *HWY_RESTRICT  p 
)

◆ LoadU() [21/41]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::LoadU ( Full512< float >  ,
const float *HWY_RESTRICT  p 
)

◆ LoadU() [22/41]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::LoadU ( Full512< T >  ,
const T *HWY_RESTRICT  p 
)

◆ LoadU() [23/41]

HWY_API Vec64< float > hwy::HWY_NAMESPACE::LoadU ( Full64< float >  ,
const float *HWY_RESTRICT  p 
)

◆ LoadU() [24/41]

HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::LoadU ( Full64< int16_t >  ,
const int16_t *HWY_RESTRICT  p 
)

◆ LoadU() [25/41]

HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::LoadU ( Full64< int32_t >  ,
const int32_t *HWY_RESTRICT  p 
)

◆ LoadU() [26/41]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::LoadU ( Full64< int64_t >  ,
const int64_t *HWY_RESTRICT  p 
)

◆ LoadU() [27/41]

HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::LoadU ( Full64< int8_t >  ,
const int8_t *HWY_RESTRICT  p 
)

◆ LoadU() [28/41]

HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::LoadU ( Full64< uint16_t >  ,
const uint16_t *HWY_RESTRICT  p 
)

◆ LoadU() [29/41]

HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::LoadU ( Full64< uint32_t >  ,
const uint32_t *HWY_RESTRICT  p 
)

◆ LoadU() [30/41]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::LoadU ( Full64< uint64_t >  ,
const uint64_t *HWY_RESTRICT  p 
)

◆ LoadU() [31/41]

HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::LoadU ( Full64< uint8_t >  ,
const uint8_t *HWY_RESTRICT  p 
)

◆ LoadU() [32/41]

template<size_t N>
HWY_API Vec128< bfloat16_t, N > hwy::HWY_NAMESPACE::LoadU ( Simd< bfloat16_t, N, 0 >  d,
const bfloat16_t *HWY_RESTRICT  p 
)

References d, and LoadU().

◆ LoadU() [33/41]

template<size_t N>
HWY_API Vec128< float16_t, N > hwy::HWY_NAMESPACE::LoadU ( Simd< float16_t, N, 0 >  d,
const float16_t *HWY_RESTRICT  p 
)

References d, and LoadU().

◆ LoadU() [34/41]

HWY_API Vec128< int16_t, 1 > hwy::HWY_NAMESPACE::LoadU ( Simd< int16_t, 1, 0 >  ,
const int16_t *HWY_RESTRICT  p 
)

◆ LoadU() [35/41]

HWY_API Vec128< int8_t, 1 > hwy::HWY_NAMESPACE::LoadU ( Simd< int8_t, 1, 0 >  ,
const int8_t *HWY_RESTRICT  p 
)

◆ LoadU() [36/41]

template<typename T , HWY_IF_LANE_SIZE_LT(T, 2) >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::LoadU ( Simd< T, 2, 0 >  d,
const T *HWY_RESTRICT  p 
)

References BitCast(), d, and LoadU().

◆ LoadU() [37/41]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::LoadU ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  p 
)

References d, and Load().

◆ LoadU() [38/41]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::LoadU ( Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  p 
)

References d, and Load().

◆ LoadU() [39/41]

HWY_API Vec128< uint16_t, 1 > hwy::HWY_NAMESPACE::LoadU ( Simd< uint16_t, 1, 0 >  ,
const uint16_t *HWY_RESTRICT  p 
)

◆ LoadU() [40/41]

HWY_API Vec128< uint8_t, 1 > hwy::HWY_NAMESPACE::LoadU ( Simd< uint8_t, 1, 0 >  ,
const uint8_t *HWY_RESTRICT  p 
)

◆ LoadU() [41/41]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LoadU ( Sisd< T >  d,
const T *HWY_RESTRICT  p 
)

References d, and Load().

◆ Log()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Log ( const D  d,
x 
)

Highway SIMD version of std::log(x).

Valid Lane Types: float32, float64 Max Error: ULP = 4 Valid Range: float32(0, +FLT_MAX], float64(0, +DBL_MAX]

Returns
natural logarithm of 'x'

References d, and hwy::HWY_NAMESPACE::impl::Log().

Referenced by CallLog(), Log10(), and Log2().

◆ Log10()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Log10 ( const D  d,
x 
)

Highway SIMD version of std::log10(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: float32(0, +FLT_MAX], float64(0, +DBL_MAX]

Returns
base 10 logarithm of 'x'

References d, Log(), Mul(), and Set().

Referenced by CallLog10().

◆ Log1p()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Log1p ( const D  d,
x 
)

Highway SIMD version of std::log1p(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: float32[0, +FLT_MAX], float64[0, +DBL_MAX]

Returns
log(1 + x)

References Add(), d, Div(), Eq(), IfThenElse(), IfThenZeroElse(), Mul(), Set(), and Sub().

Referenced by Atanh(), and CallLog1p().

◆ Log2()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Log2 ( const D  d,
x 
)

Highway SIMD version of std::log2(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: float32(0, +FLT_MAX], float64(0, +DBL_MAX]

Returns
base 2 logarithm of 'x'

References d, Log(), Mul(), and Set().

Referenced by CallLog2().

◆ LowerHalf() [1/27]

template<class DH , class V , hwy::EnableIf<!detail::IsSupportedLMUL(DH())> * = nullptr>
HWY_API V hwy::HWY_NAMESPACE::LowerHalf ( const  DH,
const V  v 
)

References v.

◆ LowerHalf() [2/27]

template<class DH , hwy::EnableIf< detail::IsSupportedLMUL(DH())> * = nullptr>
HWY_API VFromD< DH > hwy::HWY_NAMESPACE::LowerHalf ( const  DH,
const VFromD< Twice< DH > >  v 
)

References Trunc(), and v.

◆ LowerHalf() [3/27]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::LowerHalf ( const V  v)

References v.

◆ LowerHalf() [4/27]

template<class V >
HWY_API VFromD< Half< DFromV< V > > > hwy::HWY_NAMESPACE::LowerHalf ( const V  v)

References LowerHalf(), and v.

◆ LowerHalf() [5/27]

HWY_API Vec64< float > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< float >  v)

References v.

◆ LowerHalf() [6/27]

HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< int16_t >  v)

References v.

◆ LowerHalf() [7/27]

HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< int32_t >  v)

References v.

◆ LowerHalf() [8/27]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< int64_t >  v)

References v.

◆ LowerHalf() [9/27]

HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< int8_t >  v)

References v.

◆ LowerHalf() [10/27]

template<typename T , size_t N, HWY_IF_LE64(uint8_t, N) >
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< T, N v)

◆ LowerHalf() [11/27]

HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< uint16_t >  v)

References v.

◆ LowerHalf() [12/27]

HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< uint32_t >  v)

References v.

◆ LowerHalf() [13/27]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< uint64_t >  v)

References v.

◆ LowerHalf() [14/27]

HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< uint8_t >  v)

References v.

◆ LowerHalf() [15/27]

template<class D2 , class V >
HWY_API V hwy::HWY_NAMESPACE::LowerHalf ( D2  ,
const V  v 
)

References v.

◆ LowerHalf() [16/27]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::LowerHalf ( Full128< double >  ,
Vec256< double >  v 
)

References v.

◆ LowerHalf() [17/27]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::LowerHalf ( Full128< float >  ,
Vec256< float >  v 
)

References v.

◆ LowerHalf() [18/27]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::LowerHalf ( Full128< T >  ,
Vec256< T >  v 
)

References v.

◆ LowerHalf() [19/27]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::LowerHalf ( Full256< double >  ,
Vec512< double >  v 
)

References v.

◆ LowerHalf() [20/27]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::LowerHalf ( Full256< float >  ,
Vec512< float >  v 
)

References v.

◆ LowerHalf() [21/27]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::LowerHalf ( Full256< T >  ,
Vec512< T >  v 
)

References v.

◆ LowerHalf() [22/27]

template<typename T , size_t N>
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::LowerHalf ( Simd< T, N/2, 0 >  ,
Vec128< T, N v 
)

References LowerHalf(), and v.

◆ LowerHalf() [23/27]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LowerHalf ( Sisd< T >  ,
Vec1< T >  v 
)

References v.

◆ LowerHalf() [24/27]

template<typename T , size_t N>
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< T, N v)

References hwy::CopyBytes(), N, and v.

◆ LowerHalf() [25/27]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LowerHalf ( Vec1< T >  v)

References v.

◆ LowerHalf() [26/27]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::LowerHalf ( Vec256< T >  v)

References LowerHalf(), and v.

◆ LowerHalf() [27/27]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::LowerHalf ( Vec512< T >  v)

References LowerHalf(), and v.

◆ Lt()

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Lt ( a,
b 
) -> decltype(a == b)

◆ Lt128() [1/6]

template<class D >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::Lt128 ( d,
const svuint64_t  a,
const svuint64_t  b 
)

◆ Lt128() [2/6]

template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128 ( d,
const V  a,
const V  b 
)

◆ Lt128() [3/6]

template<class D >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Lt128 ( d,
const VFromD< D >  a,
const VFromD< D >  b 
)

◆ Lt128() [4/6]

template<typename T >
HWY_INLINE Mask256< T > hwy::HWY_NAMESPACE::Lt128 ( Full256< T >  d,
Vec256< T >  a,
Vec256< T >  b 
)

◆ Lt128() [5/6]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_INLINE Mask128< T, N > hwy::HWY_NAMESPACE::Lt128 ( Simd< T, N, 0 >  d,
Vec128< T, N a,
Vec128< T, N b 
)

◆ Lt128() [6/6]

HWY_API Mask128< uint64_t > hwy::HWY_NAMESPACE::Lt128 ( Simd< uint64_t, 2, 0 >  ,
Vec128< uint64_t >  a,
const Vec128< uint64_t >  b 
)

◆ Lt128Upper() [1/6]

template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128Upper ( d,
const V  a,
const V  b 
)

◆ Lt128Upper() [2/6]

template<class D >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Lt128Upper ( d,
const VFromD< D >  a,
const VFromD< D >  b 
)

◆ Lt128Upper() [3/6]

template<class D >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::Lt128Upper ( d,
svuint64_t  a,
svuint64_t  b 
)

◆ Lt128Upper() [4/6]

template<typename T >
HWY_INLINE Mask256< T > hwy::HWY_NAMESPACE::Lt128Upper ( Full256< T >  d,
Vec256< T >  a,
Vec256< T >  b 
)

◆ Lt128Upper() [5/6]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_INLINE Mask128< T, N > hwy::HWY_NAMESPACE::Lt128Upper ( Simd< T, N, 0 >  d,
Vec128< T, N a,
Vec128< T, N b 
)

◆ Lt128Upper() [6/6]

HWY_API Mask128< uint64_t > hwy::HWY_NAMESPACE::Lt128Upper ( Simd< uint64_t, 2, 0 >  ,
Vec128< uint64_t >  a,
const Vec128< uint64_t >  b 
)

◆ MaskedLoad() [1/12]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::MaskedLoad ( Mask128< double, N m,
Simd< double, N, 0 >  ,
const double *HWY_RESTRICT  p 
)

◆ MaskedLoad() [2/12]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::MaskedLoad ( Mask128< float, N m,
Simd< float, N, 0 >  ,
const float *HWY_RESTRICT  p 
)

◆ MaskedLoad() [3/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedLoad ( Mask128< T, N m,
Simd< T, N, 0 >  d,
const T *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [4/12]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedLoad ( Mask128< T, N m,
Simd< T, N, 0 >  ,
const T *HWY_RESTRICT  p 
)

◆ MaskedLoad() [5/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MaskedLoad ( Mask1< T >  m,
Sisd< T >  d,
const T *HWY_RESTRICT  aligned 
)

References d, IfThenElseZero(), and Load().

◆ MaskedLoad() [6/12]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< double >  m,
Full256< double >  ,
const double *HWY_RESTRICT  p 
)

◆ MaskedLoad() [7/12]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< float >  m,
Full256< float >  ,
const float *HWY_RESTRICT  p 
)

◆ MaskedLoad() [8/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< T >  m,
Full256< T >  d,
const T *HWY_RESTRICT  aligned 
)

References d, IfThenElseZero(), and Load().

◆ MaskedLoad() [9/12]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< T >  m,
Full256< T >  ,
const T *HWY_RESTRICT  p 
)

◆ MaskedLoad() [10/12]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaskedLoad ( Mask512< double >  m,
Full512< double >  ,
const double *HWY_RESTRICT  p 
)

◆ MaskedLoad() [11/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaskedLoad ( Mask512< float >  m,
Full512< float >  ,
const float *HWY_RESTRICT  p 
)

◆ MaskedLoad() [12/12]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedLoad ( Mask512< T >  m,
Full512< T >  ,
const T *HWY_RESTRICT  p 
)

◆ MaskFalse()

template<class D >
HWY_INLINE Mask< D > hwy::HWY_NAMESPACE::MaskFalse ( const D  d)

References d, Lt(), RebindMask(), and Zero().

◆ MaskForDist()

template<class DU64 >
Vec< DU64 > hwy::HWY_NAMESPACE::MaskForDist ( DU64  du64,
const Dist  dist,
size_t  sizeof_t 
)

◆ MaskFromVec() [1/12]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::MaskFromVec ( const V  v)

References v.

◆ MaskFromVec() [2/12]

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::MaskFromVec ( const V  v) -> decltype(Eq(v, v))

References v.

◆ MaskFromVec() [3/12]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec128< double, N v)

References BitCast(), MaskFromVec(), and v.

◆ MaskFromVec() [4/12]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec128< float, N v)

References BitCast(), MaskFromVec(), and v.

◆ MaskFromVec() [5/12]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec128< T, N v)

◆ MaskFromVec() [6/12]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec1< T >  v)

◆ MaskFromVec() [7/12]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec256< double >  v)

References BitCast(), MaskFromVec(), and v.

◆ MaskFromVec() [8/12]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec256< float >  v)

References BitCast(), MaskFromVec(), and v.

◆ MaskFromVec() [9/12]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec256< T >  v)

References v.

◆ MaskFromVec() [10/12]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec512< double >  v)

References BitCast(), MaskFromVec(), and v.

◆ MaskFromVec() [11/12]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec512< float >  v)

References BitCast(), MaskFromVec(), and v.

◆ MaskFromVec() [12/12]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec512< T >  v)

◆ MaskTrue()

template<class D >
HWY_INLINE Mask< D > hwy::HWY_NAMESPACE::MaskTrue ( const D  d)

References d, FirstN(), and Lanes().

◆ Max() [1/32]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Max ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ Max() [2/32]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Max ( const Vec128< int64_t, N a,
const Vec128< int64_t, N b 
)

◆ Max() [3/32]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::Max ( const Vec128< uint64_t, N a,
const Vec128< uint64_t, N b 
)

◆ Max() [4/32]

template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Max ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ Max() [5/32]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Max ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ Max() [6/32]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Max ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ Max() [7/32]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Max ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ Max() [8/32]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Max ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ Max() [9/32]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Max ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

References HWY_MAX.

◆ Max() [10/32]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::Max ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ Max() [11/32]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::Max ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ Max() [12/32]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Max ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ Max() [13/32]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::Max ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

References HWY_MAX.

◆ Max() [14/32]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::Max ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ Max() [15/32]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Max ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ Max() [16/32]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Max ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ Max() [17/32]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Max ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ Max() [18/32]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Max ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ Max() [19/32]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Max ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ Max() [20/32]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Max ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ Max() [21/32]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Max ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ Max() [22/32]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Max ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ Max() [23/32]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Max ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ Max() [24/32]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Max ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ Max() [25/32]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Max ( Vec128< float, N a,
Vec128< float, N b 
)

◆ Max() [26/32]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< int16_t, N a,
Vec128< int16_t, N b 
)

◆ Max() [27/32]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< int32_t, N a,
Vec128< int32_t, N b 
)

◆ Max() [28/32]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< int8_t, N a,
Vec128< int8_t, N b 
)

◆ Max() [29/32]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Max ( Vec128< T, N a,
const Vec128< T, N b 
)

◆ Max() [30/32]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< uint16_t, N a,
Vec128< uint16_t, N b 
)

◆ Max() [31/32]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< uint32_t, N a,
Vec128< uint32_t, N b 
)

◆ Max() [32/32]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< uint8_t, N a,
Vec128< uint8_t, N b 
)

◆ Max128() [1/4]

template<class D >
HWY_INLINE svuint64_t hwy::HWY_NAMESPACE::Max128 ( d,
const svuint64_t  a,
const svuint64_t  b 
)

◆ Max128() [2/4]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::Max128 ( d,
const V  a,
const V  b 
)

References d, IfThenElse(), and Lt128().

◆ Max128() [3/4]

template<class D >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::Max128 ( d,
const VFromD< D >  a,
const VFromD< D >  b 
)

◆ Max128() [4/4]

template<typename T >
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::Max128 ( Full256< T >  d,
Vec256< T >  a,
Vec256< T >  b 
)

◆ Max128Upper() [1/4]

template<class D >
HWY_INLINE svuint64_t hwy::HWY_NAMESPACE::Max128Upper ( d,
const svuint64_t  a,
const svuint64_t  b 
)

References d, IfThenElse(), and Lt128Upper().

◆ Max128Upper() [2/4]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::Max128Upper ( d,
const V  a,
const V  b 
)

References d, IfThenElse(), and Lt128Upper().

◆ Max128Upper() [3/4]

template<class D >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::Max128Upper ( d,
const VFromD< D >  a,
const VFromD< D >  b 
)

◆ Max128Upper() [4/4]

template<typename T >
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::Max128Upper ( Full256< T >  d,
Vec256< T >  a,
Vec256< T >  b 
)

◆ MaxLanes()

template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t hwy::HWY_NAMESPACE::MaxLanes ( )
constexpr

Referenced by TableLookupBytes().

◆ MaxOfLanes() [1/12]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaxOfLanes ( d,
const VFromD< D >  v 
)

References d, Set(), and v.

◆ MaxOfLanes() [2/12]

template<class D , class V >
V hwy::HWY_NAMESPACE::MaxOfLanes ( d,
v 
)

◆ MaxOfLanes() [3/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaxOfLanes ( Full256< T >  d,
const Vec256< T >  v 
)

◆ MaxOfLanes() [4/12]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< double >  d,
Vec512< double >  v 
)

References d, Set(), and v.

◆ MaxOfLanes() [5/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< float >  d,
Vec512< float >  v 
)

References d, Set(), and v.

◆ MaxOfLanes() [6/12]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< int32_t >  d,
Vec512< int32_t >  v 
)

References d, Set(), and v.

◆ MaxOfLanes() [7/12]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< int64_t >  d,
Vec512< int64_t >  v 
)

References d, Set(), and v.

◆ MaxOfLanes() [8/12]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< T >  d,
Vec512< T >  v 
)

References And(), BitCast(), d, Max(), MaxOfLanes(), Or(), Set(), and v.

◆ MaxOfLanes() [9/12]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< uint32_t >  d,
Vec512< uint32_t >  v 
)

References d, Set(), and v.

◆ MaxOfLanes() [10/12]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< uint64_t >  d,
Vec512< uint64_t >  v 
)

References d, Set(), and v.

◆ MaxOfLanes() [11/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaxOfLanes ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References hwy::HWY_NAMESPACE::detail::MaxOfLanes(), and v.

Referenced by MaxOfLanes().

◆ MaxOfLanes() [12/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MaxOfLanes ( Sisd< T >  ,
const Vec1< T >  v 
)

References v.

◆ Min() [1/32]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Min ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ Min() [2/32]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Min ( const Vec128< int64_t, N a,
const Vec128< int64_t, N b 
)

◆ Min() [3/32]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::Min ( const Vec128< uint64_t, N a,
const Vec128< uint64_t, N b 
)

◆ Min() [4/32]

template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Min ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ Min() [5/32]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Min ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ Min() [6/32]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Min ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ Min() [7/32]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Min ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ Min() [8/32]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Min ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ Min() [9/32]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Min ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

References HWY_MIN.

◆ Min() [10/32]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::Min ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ Min() [11/32]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::Min ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ Min() [12/32]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Min ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ Min() [13/32]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::Min ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

References HWY_MIN.

◆ Min() [14/32]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::Min ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ Min() [15/32]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Min ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ Min() [16/32]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Min ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ Min() [17/32]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Min ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ Min() [18/32]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Min ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ Min() [19/32]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Min ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ Min() [20/32]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Min ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ Min() [21/32]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Min ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ Min() [22/32]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Min ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ Min() [23/32]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Min ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ Min() [24/32]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Min ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ Min() [25/32]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Min ( Vec128< float, N a,
Vec128< float, N b 
)

◆ Min() [26/32]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< int16_t, N a,
Vec128< int16_t, N b 
)

◆ Min() [27/32]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< int32_t, N a,
Vec128< int32_t, N b 
)

◆ Min() [28/32]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< int8_t, N a,
Vec128< int8_t, N b 
)

◆ Min() [29/32]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Min ( Vec128< T, N a,
const Vec128< T, N b 
)

◆ Min() [30/32]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< uint16_t, N a,
Vec128< uint16_t, N b 
)

◆ Min() [31/32]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< uint32_t, N a,
Vec128< uint32_t, N b 
)

◆ Min() [32/32]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< uint8_t, N a,
Vec128< uint8_t, N b 
)

◆ Min128() [1/4]

template<class D >
HWY_INLINE svuint64_t hwy::HWY_NAMESPACE::Min128 ( d,
const svuint64_t  a,
const svuint64_t  b 
)

◆ Min128() [2/4]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::Min128 ( d,
const V  a,
const V  b 
)

References d, IfThenElse(), and Lt128().

◆ Min128() [3/4]

template<class D >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::Min128 ( d,
const VFromD< D >  a,
const VFromD< D >  b 
)

◆ Min128() [4/4]

template<typename T >
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::Min128 ( Full256< T >  d,
Vec256< T >  a,
Vec256< T >  b 
)

◆ Min128Upper() [1/4]

template<class D >
HWY_INLINE svuint64_t hwy::HWY_NAMESPACE::Min128Upper ( d,
const svuint64_t  a,
const svuint64_t  b 
)

References d, IfThenElse(), and Lt128Upper().

◆ Min128Upper() [2/4]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::Min128Upper ( d,
const V  a,
const V  b 
)

References d, IfThenElse(), and Lt128Upper().

◆ Min128Upper() [3/4]

template<class D >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::Min128Upper ( d,
const VFromD< D >  a,
const VFromD< D >  b 
)

◆ Min128Upper() [4/4]

template<typename T >
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::Min128Upper ( Full256< T >  d,
Vec256< T >  a,
Vec256< T >  b 
)

◆ MinOfLanes() [1/12]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MinOfLanes ( d,
const VFromD< D >  v 
)

References d, Set(), and v.

◆ MinOfLanes() [2/12]

template<class D , class V >
V hwy::HWY_NAMESPACE::MinOfLanes ( d,
v 
)

◆ MinOfLanes() [3/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MinOfLanes ( Full256< T >  d,
const Vec256< T >  v 
)

◆ MinOfLanes() [4/12]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MinOfLanes ( Full512< double >  d,
Vec512< double >  v 
)

References d, Set(), and v.

◆ MinOfLanes() [5/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MinOfLanes ( Full512< float >  d,
Vec512< float >  v 
)

References d, Set(), and v.

◆ MinOfLanes() [6/12]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::MinOfLanes ( Full512< int32_t >  d,
Vec512< int32_t >  v 
)

References d, Set(), and v.

◆ MinOfLanes() [7/12]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::MinOfLanes ( Full512< int64_t >  d,
Vec512< int64_t >  v 
)

References d, Set(), and v.

◆ MinOfLanes() [8/12]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MinOfLanes ( Full512< T >  d,
Vec512< T >  v 
)

References And(), BitCast(), d, Min(), MinOfLanes(), Or(), Set(), and v.

◆ MinOfLanes() [9/12]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::MinOfLanes ( Full512< uint32_t >  d,
Vec512< uint32_t >  v 
)

References d, Set(), and v.

◆ MinOfLanes() [10/12]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::MinOfLanes ( Full512< uint64_t >  d,
Vec512< uint64_t >  v 
)

References d, Set(), and v.

◆ MinOfLanes() [11/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MinOfLanes ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References hwy::HWY_NAMESPACE::detail::MinOfLanes(), and v.

Referenced by MinOfLanes().

◆ MinOfLanes() [12/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MinOfLanes ( Sisd< T >  ,
const Vec1< T >  v 
)

References v.

◆ MLenFromD()

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

◆ Mul()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Mul ( a,
b 
)

◆ MulAdd() [1/8]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::MulAdd ( const Vec128< double, N mul,
const Vec128< double, N x,
const Vec128< double, N add 
)

◆ MulAdd() [2/8]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::MulAdd ( const Vec128< float, N mul,
const Vec128< float, N x,
const Vec128< float, N add 
)

◆ MulAdd() [3/8]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MulAdd ( const Vec1< T >  mul,
const Vec1< T >  x,
const Vec1< T >  add 
)

◆ MulAdd() [4/8]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::MulAdd ( const Vec256< double >  mul,
const Vec256< double >  x,
const Vec256< double >  add 
)

◆ MulAdd() [5/8]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::MulAdd ( const Vec256< float >  mul,
const Vec256< float >  x,
const Vec256< float >  add 
)

◆ MulAdd() [6/8]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulAdd ( const Vec512< double >  mul,
const Vec512< double >  x,
const Vec512< double >  add 
)

◆ MulAdd() [7/8]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulAdd ( const Vec512< float >  mul,
const Vec512< float >  x,
const Vec512< float >  add 
)

◆ MulAdd() [8/8]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MulAdd ( Vec128< T, N mul,
const Vec128< T, N x,
const Vec128< T, N add 
)

◆ MulEven() [1/18]

HWY_API svuint64_t hwy::HWY_NAMESPACE::MulEven ( const svuint64_t  a,
const svuint64_t  b 
)

References Mul(), and MulHigh().

Referenced by MulEven().

◆ MulEven() [2/18]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::MulEven ( const V  a,
const V  b 
)

References BitCast(), Mul(), MulEven(), and MulHigh().

◆ MulEven() [3/18]

template<class V , HWY_IF_LANE_SIZE_V(V, 4) , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::MulEven ( const V  a,
const V  b 
)

References BitCast(), Mul(), MulHigh(), and OddEven().

◆ MulEven() [4/18]

template<class V , HWY_IF_LANE_SIZE_V(V, 8) >
HWY_INLINE V hwy::HWY_NAMESPACE::MulEven ( const V  a,
const V  b 
)

References Mul(), MulHigh(), and OddEven().

◆ MulEven() [5/18]

template<size_t N>
HWY_API Vec128< int64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

References ConcatEven(), d, and N.

◆ MulEven() [6/18]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

References GetLane(), N, and Set().

◆ MulEven() [7/18]

template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

References ConcatEven(), d, and N.

◆ MulEven() [8/18]

HWY_API Vec1< int64_t > hwy::HWY_NAMESPACE::MulEven ( const Vec1< int32_t >  a,
const Vec1< int32_t >  b 
)

◆ MulEven() [9/18]

HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::MulEven ( const Vec1< uint32_t >  a,
const Vec1< uint32_t >  b 
)

◆ MulEven() [10/18]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::MulEven ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ MulEven() [11/18]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::MulEven ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ MulEven() [12/18]

HWY_INLINE Vec256< uint64_t > hwy::HWY_NAMESPACE::MulEven ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ MulEven() [13/18]

HWY_INLINE Vec512< uint64_t > hwy::HWY_NAMESPACE::MulEven ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ MulEven() [14/18]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< int32_t >  a,
Vec128< int32_t >  b 
)

References ConcatEven(), and d.

Referenced by MulEven(), MulOdd(), and operator>>().

◆ MulEven() [15/18]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint32_t >  a,
Vec128< uint32_t >  b 
)

References ConcatEven(), and d.

◆ MulEven() [16/18]

HWY_INLINE Vec128< uint64_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint64_t >  a,
Vec128< uint64_t >  b 
)

◆ MulEven() [17/18]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::MulEven ( Vec512< int32_t >  a,
Vec512< int32_t >  b 
)

◆ MulEven() [18/18]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::MulEven ( Vec512< uint32_t >  a,
Vec512< uint32_t >  b 
)

◆ MulFixedPoint15() [1/7]

HWY_API svint16_t hwy::HWY_NAMESPACE::MulFixedPoint15 ( svint16_t  a,
svint16_t  b 
)

References Add(), BitCast(), d, Mul(), and MulHigh().

◆ MulFixedPoint15() [2/7]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec128< int16_t >  a,
Vec128< int16_t >  b 
)

◆ MulFixedPoint15() [3/7]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec128< int16_t, N a,
Vec128< int16_t, N b 
)

◆ MulFixedPoint15() [4/7]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec128< int16_t, N a,
Vec128< int16_t, N b 
)

◆ MulFixedPoint15() [5/7]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec1< int16_t >  a,
Vec1< int16_t >  b 
)

◆ MulFixedPoint15() [6/7]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec256< int16_t >  a,
Vec256< int16_t >  b 
)

References HWY_ASSERT.

◆ MulFixedPoint15() [7/7]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec512< int16_t >  a,
Vec512< int16_t >  b 
)

◆ MulHigh() [1/12]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< int16_t >  a,
const Vec128< int16_t >  b 
)

◆ MulHigh() [2/12]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ MulHigh() [3/12]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< uint16_t >  a,
const Vec128< uint16_t >  b 
)

◆ MulHigh() [4/12]

template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ MulHigh() [5/12]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::MulHigh ( const Vec1< int16_t >  a,
const Vec1< int16_t >  b 
)

◆ MulHigh() [6/12]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::MulHigh ( const Vec1< uint16_t >  a,
const Vec1< uint16_t >  b 
)

◆ MulHigh() [7/12]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::MulHigh ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ MulHigh() [8/12]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::MulHigh ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ MulHigh() [9/12]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ MulHigh() [10/12]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ MulHigh() [11/12]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::MulHigh ( Vec512< int16_t >  a,
Vec512< int16_t >  b 
)

◆ MulHigh() [12/12]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::MulHigh ( Vec512< uint16_t >  a,
Vec512< uint16_t >  b 
)

◆ MulOdd() [1/7]

HWY_API svuint64_t hwy::HWY_NAMESPACE::MulOdd ( const svuint64_t  a,
const svuint64_t  b 
)

References Mul(), and MulHigh().

◆ MulOdd() [2/7]

template<class V , HWY_IF_LANE_SIZE_V(V, 8) >
HWY_INLINE V hwy::HWY_NAMESPACE::MulOdd ( const V  a,
const V  b 
)

References Mul(), MulHigh(), and OddEven().

◆ MulOdd() [3/7]

template<size_t N>
HWY_API Vec128< int64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ MulOdd() [4/7]

HWY_INLINE Vec256< uint64_t > hwy::HWY_NAMESPACE::MulOdd ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ MulOdd() [5/7]

HWY_INLINE Vec512< uint64_t > hwy::HWY_NAMESPACE::MulOdd ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ MulOdd() [6/7]

template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ MulOdd() [7/7]

HWY_INLINE Vec128< uint64_t > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint64_t >  a,
Vec128< uint64_t >  b 
)

◆ MulSub() [1/8]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::MulSub ( const Vec128< double, N mul,
const Vec128< double, N x,
const Vec128< double, N sub 
)

◆ MulSub() [2/8]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::MulSub ( const Vec128< float, N mul,
const Vec128< float, N x,
const Vec128< float, N sub 
)

References MulAdd(), and Neg().

Referenced by Acosh(), and hwy::HWY_NAMESPACE::impl::Log().

◆ MulSub() [3/8]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MulSub ( const Vec1< T >  mul,
const Vec1< T >  x,
const Vec1< T >  sub 
)

◆ MulSub() [4/8]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::MulSub ( const Vec256< double >  mul,
const Vec256< double >  x,
const Vec256< double >  sub 
)

◆ MulSub() [5/8]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::MulSub ( const Vec256< float >  mul,
const Vec256< float >  x,
const Vec256< float >  sub 
)

◆ MulSub() [6/8]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulSub ( const Vec512< double >  mul,
const Vec512< double >  x,
const Vec512< double >  sub 
)

◆ MulSub() [7/8]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulSub ( const Vec512< float >  mul,
const Vec512< float >  x,
const Vec512< float >  sub 
)

◆ MulSub() [8/8]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MulSub ( Vec128< T, N mul,
const Vec128< T, N x,
const Vec128< T, N sub 
)

◆ NaN()

template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::NaN ( d)

References BitCast(), d, hwy::LimitsMax(), and Set().

◆ Ne()

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Ne ( a,
b 
) -> decltype(a == b)

Referenced by IsNaN().

◆ NearestInt() [1/5]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::NearestInt ( const Vec128< float, N v)

◆ NearestInt() [2/5]

HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::NearestInt ( const Vec1< float >  v)

References Abs(), and v.

◆ NearestInt() [3/5]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::NearestInt ( const Vec256< float >  v)

References ConvertTo(), Round(), and v.

◆ NearestInt() [4/5]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::NearestInt ( const Vec512< float >  v)

◆ NearestInt() [5/5]

template<class VF , class DI = RebindToSigned<DFromV<VF>>>
HWY_API VFromD< DI > hwy::HWY_NAMESPACE::NearestInt ( VF  v)

References ConvertTo(), Round(), and v.

◆ Neg() [1/13]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< int16_t, N v)

References v.

◆ Neg() [2/13]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< int32_t, N v)

References v.

◆ Neg() [3/13]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Neg ( const Vec128< int64_t >  v)

References v, and Zero().

Referenced by MulSub(), NegMulSub(), and operator>>().

◆ Neg() [4/13]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< int64_t, N v)

References v.

◆ Neg() [5/13]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< int8_t, N v)

References v.

◆ Neg() [6/13]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Neg ( const Vec1< T >  v)

References SignBit(), v, and Xor().

◆ Neg() [7/13]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Neg ( const Vec256< int16_t >  v)

References v.

◆ Neg() [8/13]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Neg ( const Vec256< int32_t >  v)

References v.

◆ Neg() [9/13]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Neg ( const Vec256< int64_t >  v)

References v.

◆ Neg() [10/13]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::Neg ( const Vec256< int8_t >  v)

References v.

◆ Neg() [11/13]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Neg ( const Vec256< T >  v)

References SignBit(), v, and Xor().

◆ Neg() [12/13]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Neg ( const Vec512< T >  v)

References SignBit(), v, and Xor().

◆ Neg() [13/13]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Neg ( Vec128< T, N v)

References SignBit(), v, and Xor().

◆ NegMulAdd() [1/8]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::NegMulAdd ( const Vec128< double, N mul,
const Vec128< double, N x,
const Vec128< double, N add 
)

◆ NegMulAdd() [2/8]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::NegMulAdd ( const Vec128< float, N mul,
const Vec128< float, N x,
const Vec128< float, N add 
)

Referenced by Acos(), and Asin().

◆ NegMulAdd() [3/8]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::NegMulAdd ( const Vec1< T >  mul,
const Vec1< T >  x,
const Vec1< T >  add 
)

◆ NegMulAdd() [4/8]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::NegMulAdd ( const Vec256< double >  mul,
const Vec256< double >  x,
const Vec256< double >  add 
)

◆ NegMulAdd() [5/8]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::NegMulAdd ( const Vec256< float >  mul,
const Vec256< float >  x,
const Vec256< float >  add 
)

◆ NegMulAdd() [6/8]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::NegMulAdd ( const Vec512< double >  mul,
const Vec512< double >  x,
const Vec512< double >  add 
)

◆ NegMulAdd() [7/8]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::NegMulAdd ( const Vec512< float >  mul,
const Vec512< float >  x,
const Vec512< float >  add 
)

◆ NegMulAdd() [8/8]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::NegMulAdd ( Vec128< T, N mul,
const Vec128< T, N x,
const Vec128< T, N add 
)

◆ NegMulSub() [1/8]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::NegMulSub ( const Vec128< double, N mul,
const Vec128< double, N x,
const Vec128< double, N sub 
)

◆ NegMulSub() [2/8]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::NegMulSub ( const Vec128< float, N mul,
const Vec128< float, N x,
const Vec128< float, N sub 
)

References MulAdd(), and Neg().

◆ NegMulSub() [3/8]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::NegMulSub ( const Vec1< T >  mul,
const Vec1< T >  x,
const Vec1< T >  sub 
)

References Neg().

◆ NegMulSub() [4/8]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::NegMulSub ( const Vec256< double >  mul,
const Vec256< double >  x,
const Vec256< double >  sub 
)

◆ NegMulSub() [5/8]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::NegMulSub ( const Vec256< float >  mul,
const Vec256< float >  x,
const Vec256< float >  sub 
)

References Neg().

◆ NegMulSub() [6/8]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::NegMulSub ( const Vec512< double >  mul,
const Vec512< double >  x,
const Vec512< double >  sub 
)

◆ NegMulSub() [7/8]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::NegMulSub ( const Vec512< float >  mul,
const Vec512< float >  x,
const Vec512< float >  sub 
)

◆ NegMulSub() [8/8]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::NegMulSub ( Vec128< T, N mul,
const Vec128< T, N x,
const Vec128< T, N sub 
)

References Neg().

◆ Not() [1/12]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::Not ( const Mask128< T, N m)

References MaskFromVec(), Not(), and VecFromMask().

◆ Not() [2/12]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Not ( const Mask1< T >  m)

References MaskFromVec(), Not(), and VecFromMask().

◆ Not() [3/12]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::Not ( const Mask256< T >  m)

References N, and Xor().

◆ Not() [4/12]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Not ( const Mask512< T >  m)

◆ Not() [5/12]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Not ( const V  v)

References BitCast(), Not(), and v.

◆ Not() [6/12]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Not ( const Vec128< T >  v)

References BitCast(), d, and v.

Referenced by AndNot(), CompressNot(), CopyIf(), IsFinite(), and Not().

◆ Not() [7/12]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Not ( const Vec128< T, N v)

References BitCast(), d, v, and Zero().

◆ Not() [8/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Not ( const Vec128< T, N v)

References BitCast(), d, N, and v.

◆ Not() [9/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Not ( const Vec1< T >  v)

References BitCast(), and v.

◆ Not() [10/12]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Not ( const Vec512< T >  v)

References BitCast(), and v.

◆ Not() [11/12]

HWY_API svbool_t hwy::HWY_NAMESPACE::Not ( svbool_t  m)

References HWY_SVE_PTRUE.

◆ Not() [12/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Not ( Vec256< T >  v)

References v.

◆ OddEven() [1/10]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::OddEven ( const V  a,
const V  b 
)

◆ OddEven() [2/10]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::OddEven ( const V  odd,
const V  even 
)

References BitCast(), d, and OddEven().

◆ OddEven() [3/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::OddEven ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ OddEven() [4/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::OddEven ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ OddEven() [5/10]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::OddEven ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ OddEven() [6/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::OddEven ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ OddEven() [7/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::OddEven ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ OddEven() [8/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::OddEven ( const Vec256< T >  a,
const Vec256< T >  b 
)

◆ OddEven() [9/10]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OddEven ( const Vec512< T >  a,
const Vec512< T >  b 
)

References IfThenElse(), and grk::shift.

◆ OddEven() [10/10]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OddEven ( Vec1< T >  ,
Vec1< T >  even 
)

◆ OddEvenBlocks() [1/10]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::OddEvenBlocks ( const V  odd,
const V  even 
)

◆ OddEvenBlocks() [2/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec128< T, N ,
Vec128< T, N even 
)

◆ OddEvenBlocks() [3/10]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec1< T >  ,
Vec1< T >  even 
)

◆ OddEvenBlocks() [4/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec256< double >  odd,
Vec256< double >  even 
)

◆ OddEvenBlocks() [5/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec256< float >  odd,
Vec256< float >  even 
)

◆ OddEvenBlocks() [6/10]

template<typename T >
Vec256< T > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec256< T >  odd,
Vec256< T >  even 
)

◆ OddEvenBlocks() [7/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec256< T >  ,
Vec256< T >  even 
)

◆ OddEvenBlocks() [8/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec512< double >  odd,
Vec512< double >  even 
)

◆ OddEvenBlocks() [9/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec512< float >  odd,
Vec512< float >  even 
)

◆ OddEvenBlocks() [10/10]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec512< T >  odd,
Vec512< T >  even 
)

◆ operator!=() [1/25]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ operator!=() [2/25]

template<size_t N>
HWY_API Mask128< int16_t, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ operator!=() [3/25]

template<size_t N>
HWY_API Mask128< int32_t, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ operator!=() [4/25]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< int64_t, N a,
const Vec128< int64_t, N b 
)

◆ operator!=() [5/25]

template<size_t N>
HWY_API Mask128< int8_t, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< int8_t, N a,
const Vec128< int8_t, N b 
)

◆ operator!=() [6/25]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ operator!=() [7/25]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ operator!=() [8/25]

template<size_t N>
HWY_API Mask128< uint16_t, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ operator!=() [9/25]

template<size_t N>
HWY_API Mask128< uint32_t, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ operator!=() [10/25]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< uint64_t, N a,
const Vec128< uint64_t, N b 
)

◆ operator!=() [11/25]

template<size_t N>
HWY_API Mask128< uint8_t, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ operator!=() [12/25]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator!= ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator!=() [13/25]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator!= ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ operator!=() [14/25]

HWY_API Mask256< int32_t > hwy::HWY_NAMESPACE::operator!= ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator!=() [15/25]

HWY_API Mask256< int8_t > hwy::HWY_NAMESPACE::operator!= ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ operator!=() [16/25]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator!= ( const Vec256< T >  a,
const Vec256< T >  b 
)

◆ operator!=() [17/25]

HWY_API Mask256< uint16_t > hwy::HWY_NAMESPACE::operator!= ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ operator!=() [18/25]

HWY_API Mask256< uint32_t > hwy::HWY_NAMESPACE::operator!= ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator!=() [19/25]

HWY_API Mask256< uint8_t > hwy::HWY_NAMESPACE::operator!= ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ operator!=() [20/25]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< double, N a,
Vec128< double, N b 
)

◆ operator!=() [21/25]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::operator!= ( Vec256< double >  a,
Vec256< double >  b 
)

◆ operator!=() [22/25]

HWY_API Mask256< int16_t > hwy::HWY_NAMESPACE::operator!= ( Vec256< int16_t >  a,
Vec256< int16_t >  b 
)

◆ operator!=() [23/25]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator!= ( Vec512< double >  a,
Vec512< double >  b 
)

◆ operator!=() [24/25]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator!= ( Vec512< float >  a,
Vec512< float >  b 
)

◆ operator!=() [25/25]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator!= ( Vec512< T >  a,
Vec512< T >  b 
)

◆ operator&() [1/4]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator& ( const Vec128< T, N a,
const Vec128< T, N b 
)

References And().

◆ operator&() [2/4]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator& ( const Vec1< T >  a,
const Vec1< T >  b 
)

References And().

◆ operator&() [3/4]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator& ( const Vec256< T >  a,
const Vec256< T >  b 
)

References And().

◆ operator&() [4/4]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator& ( const Vec512< T >  a,
const Vec512< T >  b 
)

References And().

◆ operator*() [1/30]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ operator*() [2/30]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::operator* ( const Vec128< float, 1 >  a,
const Vec128< float, 1 >  b 
)

◆ operator*() [3/30]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::operator* ( const Vec128< int16_t >  a,
const Vec128< int16_t >  b 
)

◆ operator*() [4/30]

template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ operator*() [5/30]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ operator*() [6/30]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::operator* ( const Vec128< int32_t >  a,
const Vec128< int32_t >  b 
)

◆ operator*() [7/30]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ operator*() [8/30]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ operator*() [9/30]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::operator* ( const Vec128< uint16_t >  a,
const Vec128< uint16_t >  b 
)

◆ operator*() [10/30]

template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ operator*() [11/30]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ operator*() [12/30]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::operator* ( const Vec128< uint32_t >  a,
const Vec128< uint32_t >  b 
)

◆ operator*() [13/30]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ operator*() [14/30]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ operator*() [15/30]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator* ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator*() [16/30]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::operator* ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ operator*() [17/30]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::operator* ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ operator*() [18/30]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::operator* ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator*() [19/30]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator* ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ operator*() [20/30]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator* ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator*() [21/30]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator* ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ operator*() [22/30]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator* ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ operator*() [23/30]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::operator* ( const Vec64< double >  a,
const Vec64< double >  b 
)

◆ operator*() [24/30]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::operator* ( Vec128< float, N a,
Vec128< float, N b 
)

◆ operator*() [25/30]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator* ( Vec128< T, N a,
const Vec128< T, N b 
)

◆ operator*() [26/30]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::operator* ( Vec256< float >  a,
Vec256< float >  b 
)

◆ operator*() [27/30]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator* ( Vec512< int16_t >  a,
Vec512< int16_t >  b 
)

◆ operator*() [28/30]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator* ( Vec512< int32_t >  a,
Vec512< int32_t >  b 
)

◆ operator*() [29/30]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator* ( Vec512< uint16_t >  a,
Vec512< uint16_t >  b 
)

◆ operator*() [30/30]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator* ( Vec512< uint32_t >  a,
Vec512< uint32_t >  b 
)

◆ operator+() [1/34]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ operator+() [2/34]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ operator+() [3/34]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ operator+() [4/34]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ operator+() [5/34]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< int64_t, N a,
const Vec128< int64_t, N b 
)

◆ operator+() [6/34]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< int8_t, N a,
const Vec128< int8_t, N b 
)

◆ operator+() [7/34]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ operator+() [8/34]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ operator+() [9/34]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< uint64_t, N a,
const Vec128< uint64_t, N b 
)

◆ operator+() [10/34]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ operator+() [11/34]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::operator+ ( const Vec1< double >  a,
const Vec1< double >  b 
)

◆ operator+() [12/34]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::operator+ ( const Vec1< float >  a,
const Vec1< float >  b 
)

◆ operator+() [13/34]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::operator+ ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ operator+() [14/34]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::operator+ ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ operator+() [15/34]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::operator+ ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ operator+() [16/34]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::operator+ ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator+() [17/34]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::operator+ ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

◆ operator+() [18/34]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::operator+ ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ operator+() [19/34]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator+ ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ operator+() [20/34]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator+ ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator+() [21/34]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator+ ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ operator+() [22/34]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::operator+ ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ operator+() [23/34]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator+ ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ operator+() [24/34]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator+ ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ operator+() [25/34]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator+ ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ operator+() [26/34]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator+ ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ operator+() [27/34]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator+ ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ operator+() [28/34]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator+ ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ operator+() [29/34]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator+ ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ operator+() [30/34]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator+ ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ operator+() [31/34]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator+ ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ operator+() [32/34]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator+ ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ operator+() [33/34]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator+ ( Vec128< T, N a,
Vec128< T, N b 
)

◆ operator+() [34/34]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator+ ( Vec1< T >  a,
Vec1< T >  b 
)

◆ operator-() [1/34]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ operator-() [2/34]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ operator-() [3/34]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ operator-() [4/34]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ operator-() [5/34]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< int64_t, N a,
const Vec128< int64_t, N b 
)

◆ operator-() [6/34]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< int8_t, N a,
const Vec128< int8_t, N b 
)

◆ operator-() [7/34]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ operator-() [8/34]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< uint64_t, N a,
const Vec128< uint64_t, N b 
)

◆ operator-() [9/34]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ operator-() [10/34]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::operator- ( const Vec1< double >  a,
const Vec1< double >  b 
)

◆ operator-() [11/34]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::operator- ( const Vec1< float >  a,
const Vec1< float >  b 
)

◆ operator-() [12/34]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::operator- ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ operator-() [13/34]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::operator- ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ operator-() [14/34]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::operator- ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ operator-() [15/34]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::operator- ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator-() [16/34]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::operator- ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

◆ operator-() [17/34]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::operator- ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ operator-() [18/34]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator- ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator-() [19/34]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator- ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ operator-() [20/34]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::operator- ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ operator-() [21/34]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator- ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ operator-() [22/34]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator- ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ operator-() [23/34]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator- ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ operator-() [24/34]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator- ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ operator-() [25/34]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator- ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ operator-() [26/34]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator- ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ operator-() [27/34]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator- ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ operator-() [28/34]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator- ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ operator-() [29/34]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator- ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ operator-() [30/34]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator- ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ operator-() [31/34]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator- ( Vec128< T, N a,
Vec128< T, N b 
)

◆ operator-() [32/34]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator- ( Vec128< uint16_t, N a,
Vec128< uint16_t, N b 
)

◆ operator-() [33/34]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator- ( Vec1< T >  a,
Vec1< T >  b 
)

◆ operator-() [34/34]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator- ( Vec256< uint16_t >  a,
Vec256< uint16_t >  b 
)

◆ operator/() [1/10]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::operator/ ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ operator/() [2/10]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::operator/ ( const Vec128< float, 1 >  a,
const Vec128< float, 1 >  b 
)

◆ operator/() [3/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::operator/ ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ operator/() [4/10]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator/ ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator/() [5/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::operator/ ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ operator/() [6/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::operator/ ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ operator/() [7/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator/ ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ operator/() [8/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator/ ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ operator/() [9/10]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::operator/ ( const Vec64< double >  a,
const Vec64< double >  b 
)

◆ operator/() [10/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator/ ( Vec128< T, N a,
const Vec128< T, N b 
)

◆ operator<() [1/4]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator< ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ operator<() [2/4]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator< ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator<() [3/4]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator< ( const Vec256< T >  a,
const Vec256< T >  b 
)

References operator>().

◆ operator<() [4/4]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator< ( Vec512< T >  a,
Vec512< T >  b 
)

◆ operator<<() [1/31]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< int16_t >  v,
const Vec128< int16_t >  bits 
)

◆ operator<<() [2/31]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator<< ( const Vec128< int16_t, N v,
const Vec128< int16_t, N bits 
)

◆ operator<<() [3/31]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< int32_t >  v,
const Vec128< int32_t >  bits 
)

◆ operator<<() [4/31]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator<< ( const Vec128< int32_t, N v,
const Vec128< int32_t, N bits 
)

◆ operator<<() [5/31]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< int64_t >  v,
const Vec128< int64_t >  bits 
)

◆ operator<<() [6/31]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< int8_t >  v,
const Vec128< int8_t >  bits 
)

◆ operator<<() [7/31]

template<size_t N, HWY_IF_LE64(int8_t, N) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator<< ( const Vec128< int8_t, N v,
const Vec128< int8_t, N bits 
)

◆ operator<<() [8/31]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint16_t >  v,
const Vec128< uint16_t >  bits 
)

◆ operator<<() [9/31]

HWY_API Vec128< uint16_t, 1 > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint16_t, 1 >  v,
const Vec128< uint16_t, 1 >  bits 
)

◆ operator<<() [10/31]

template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint16_t, N v,
const Vec128< uint16_t, N bits 
)

◆ operator<<() [11/31]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint16_t, N v,
const Vec128< uint16_t, N bits 
)

◆ operator<<() [12/31]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint32_t >  v,
const Vec128< uint32_t >  bits 
)

◆ operator<<() [13/31]

HWY_API Vec128< uint32_t, 1 > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint32_t, 1 >  v,
const Vec128< uint32_t, 1 >  bits 
)

◆ operator<<() [14/31]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint32_t, N v,
const Vec128< uint32_t, N bits 
)

◆ operator<<() [15/31]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint32_t, N v,
const Vec128< uint32_t, N bits 
)

◆ operator<<() [16/31]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint64_t >  v,
const Vec128< uint64_t >  bits 
)

◆ operator<<() [17/31]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint8_t >  v,
const Vec128< uint8_t >  bits 
)

◆ operator<<() [18/31]

template<size_t N, HWY_IF_LE64(uint8_t, N) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint8_t, N v,
const Vec128< uint8_t, N bits 
)

◆ operator<<() [19/31]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator<< ( const Vec1< T >  v,
const Vec1< T >  bits 
)

◆ operator<<() [20/31]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator<< ( const Vec256< uint16_t >  v,
const Vec256< uint16_t >  bits 
)

◆ operator<<() [21/31]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator<< ( const Vec256< uint32_t >  v,
const Vec256< uint32_t >  bits 
)

◆ operator<<() [22/31]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator<< ( const Vec256< uint64_t >  v,
const Vec256< uint64_t >  bits 
)

◆ operator<<() [23/31]

template<typename T , HWY_IF_SIGNED(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator<< ( const Vec512< T >  v,
const Vec512< T >  bits 
)

References BitCast(), and v.

◆ operator<<() [24/31]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator<< ( const Vec512< uint16_t >  v,
const Vec512< uint16_t >  bits 
)

◆ operator<<() [25/31]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator<< ( const Vec512< uint32_t >  v,
const Vec512< uint32_t >  bits 
)

◆ operator<<() [26/31]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator<< ( const Vec512< uint64_t >  v,
const Vec512< uint64_t >  bits 
)

◆ operator<<() [27/31]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::operator<< ( const Vec64< int64_t >  v,
const Vec64< int64_t >  bits 
)

◆ operator<<() [28/31]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::operator<< ( const Vec64< uint64_t >  v,
const Vec64< uint64_t >  bits 
)

◆ operator<<() [29/31]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< T, N v,
const Vec128< T, N bits 
)

◆ operator<<() [30/31]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< T, N v,
const Vec128< T, N bits 
)

◆ operator<<() [31/31]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator<< ( Vec256< T >  v,
const Vec256< T >  bits 
)

◆ operator<=() [1/6]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator<= ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ operator<=() [2/6]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator<= ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ operator<=() [3/6]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator<= ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator<=() [4/6]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator<= ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ operator<=() [5/6]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator<= ( const Vec256< T >  a,
const Vec256< T >  b 
)

◆ operator<=() [6/6]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator<= ( Vec512< T >  a,
Vec512< T >  b 
)

◆ operator==() [1/25]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ operator==() [2/25]

template<size_t N>
HWY_API Mask128< int32_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ operator==() [3/25]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< int64_t, N a,
const Vec128< int64_t, N b 
)

◆ operator==() [4/25]

template<size_t N>
HWY_API Mask128< int8_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< int8_t, N a,
const Vec128< int8_t, N b 
)

◆ operator==() [5/25]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ operator==() [6/25]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ operator==() [7/25]

template<size_t N>
HWY_API Mask128< uint16_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ operator==() [8/25]

template<size_t N>
HWY_API Mask128< uint32_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ operator==() [9/25]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< uint64_t, N a,
const Vec128< uint64_t, N b 
)

◆ operator==() [10/25]

template<size_t N>
HWY_API Mask128< uint8_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ operator==() [11/25]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator== ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator==() [12/25]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator== ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ operator==() [13/25]

HWY_API Mask256< int32_t > hwy::HWY_NAMESPACE::operator== ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator==() [14/25]

HWY_API Mask256< int8_t > hwy::HWY_NAMESPACE::operator== ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ operator==() [15/25]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator== ( const Vec256< T >  a,
const Vec256< T >  b 
)

◆ operator==() [16/25]

HWY_API Mask256< uint16_t > hwy::HWY_NAMESPACE::operator== ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ operator==() [17/25]

HWY_API Mask256< uint32_t > hwy::HWY_NAMESPACE::operator== ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator==() [18/25]

HWY_API Mask256< uint8_t > hwy::HWY_NAMESPACE::operator== ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ operator==() [19/25]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::operator== ( Vec128< double, N a,
Vec128< double, N b 
)

◆ operator==() [20/25]

template<size_t N>
HWY_API Mask128< int16_t, N > hwy::HWY_NAMESPACE::operator== ( Vec128< int16_t, N a,
Vec128< int16_t, N b 
)

◆ operator==() [21/25]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::operator== ( Vec256< double >  a,
Vec256< double >  b 
)

◆ operator==() [22/25]

HWY_API Mask256< int16_t > hwy::HWY_NAMESPACE::operator== ( Vec256< int16_t >  a,
Vec256< int16_t >  b 
)

◆ operator==() [23/25]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator== ( Vec512< double >  a,
Vec512< double >  b 
)

◆ operator==() [24/25]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator== ( Vec512< float >  a,
Vec512< float >  b 
)

◆ operator==() [25/25]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator== ( Vec512< T >  a,
Vec512< T >  b 
)

◆ operator>() [1/33]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ operator>() [2/33]

template<size_t N>
HWY_API Mask128< int16_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ operator>() [3/33]

template<size_t N>
HWY_API Mask128< int32_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< int32_t, N a,
const Vec128< int32_t, N b 
)

◆ operator>() [4/33]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< int64_t, N a,
const Vec128< int64_t, N b 
)

◆ operator>() [5/33]

template<size_t N>
HWY_API Mask128< int8_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< int8_t, N a,
const Vec128< int8_t, N b 
)

◆ operator>() [6/33]

template<size_t N>
HWY_API Mask128< uint16_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ operator>() [7/33]

template<size_t N>
HWY_API Mask128< uint32_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< uint32_t, N a,
const Vec128< uint32_t, N b 
)

◆ operator>() [8/33]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< uint64_t, N a,
const Vec128< uint64_t, N b 
)

References And(), BitCast(), d, MaskFromVec(), and Or().

◆ operator>() [9/33]

template<size_t N>
HWY_API Mask128< uint8_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ operator>() [10/33]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator> ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator>() [11/33]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator> ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ operator>() [12/33]

HWY_API Mask256< int16_t > hwy::HWY_NAMESPACE::operator> ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ operator>() [13/33]

HWY_API Mask256< int32_t > hwy::HWY_NAMESPACE::operator> ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator>() [14/33]

HWY_API Mask256< int64_t > hwy::HWY_NAMESPACE::operator> ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

References And(), BitCast(), and Or().

◆ operator>() [15/33]

HWY_API Mask256< int8_t > hwy::HWY_NAMESPACE::operator> ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ operator>() [16/33]

HWY_API Mask256< uint16_t > hwy::HWY_NAMESPACE::operator> ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ operator>() [17/33]

HWY_API Mask256< uint32_t > hwy::HWY_NAMESPACE::operator> ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator>() [18/33]

HWY_API Mask256< uint64_t > hwy::HWY_NAMESPACE::operator> ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ operator>() [19/33]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::operator> ( Vec128< double, N a,
Vec128< double, N b 
)

◆ operator>() [20/33]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator> ( Vec128< T, N a,
Vec128< T, N b 
)

References operator<().

Referenced by operator<().

◆ operator>() [21/33]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::operator> ( Vec256< double >  a,
Vec256< double >  b 
)

◆ operator>() [22/33]

template<typename T , HWY_IF_UNSIGNED(T) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator> ( Vec256< T >  a,
Vec256< T >  b 
)

References BitCast(), RebindMask(), Set(), and Xor().

◆ operator>() [23/33]

HWY_API Mask256< uint8_t > hwy::HWY_NAMESPACE::operator> ( Vec256< uint8_t >  a,
Vec256< uint8_t >  b 
)

◆ operator>() [24/33]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator> ( Vec512< double >  a,
Vec512< double >  b 
)

◆ operator>() [25/33]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator> ( Vec512< float >  a,
Vec512< float >  b 
)

◆ operator>() [26/33]

HWY_API Mask512< int16_t > hwy::HWY_NAMESPACE::operator> ( Vec512< int16_t >  a,
Vec512< int16_t >  b 
)

◆ operator>() [27/33]

HWY_API Mask512< int32_t > hwy::HWY_NAMESPACE::operator> ( Vec512< int32_t >  a,
Vec512< int32_t >  b 
)

◆ operator>() [28/33]

HWY_API Mask512< int64_t > hwy::HWY_NAMESPACE::operator> ( Vec512< int64_t >  a,
Vec512< int64_t >  b 
)

◆ operator>() [29/33]

HWY_API Mask512< int8_t > hwy::HWY_NAMESPACE::operator> ( Vec512< int8_t >  a,
Vec512< int8_t >  b 
)

◆ operator>() [30/33]

HWY_API Mask512< uint16_t > hwy::HWY_NAMESPACE::operator> ( Vec512< uint16_t >  a,
Vec512< uint16_t >  b 
)

◆ operator>() [31/33]

HWY_API Mask512< uint32_t > hwy::HWY_NAMESPACE::operator> ( Vec512< uint32_t >  a,
Vec512< uint32_t >  b 
)

◆ operator>() [32/33]

HWY_API Mask512< uint64_t > hwy::HWY_NAMESPACE::operator> ( Vec512< uint64_t >  a,
Vec512< uint64_t >  b 
)

◆ operator>() [33/33]

HWY_API Mask512< uint8_t > hwy::HWY_NAMESPACE::operator> ( Vec512< uint8_t >  a,
Vec512< uint8_t >  b 
)

◆ operator>=() [1/8]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ operator>=() [2/8]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator>= ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator>=() [3/8]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator>= ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ operator>=() [4/8]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::operator>= ( Vec128< double, N a,
Vec128< double, N b 
)

◆ operator>=() [5/8]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator>= ( Vec128< T, N a,
Vec128< T, N b 
)

References operator<=().

◆ operator>=() [6/8]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::operator>= ( Vec256< double >  a,
Vec256< double >  b 
)

◆ operator>=() [7/8]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator>= ( Vec512< double >  a,
Vec512< double >  b 
)

◆ operator>=() [8/8]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator>= ( Vec512< float >  a,
Vec512< float >  b 
)

◆ operator>>() [1/41]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int16_t >  v,
const Vec128< int16_t >  bits 
)

References Neg(), and v.

◆ operator>>() [2/41]

HWY_API Vec128< int16_t, 1 > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int16_t, 1 >  v,
const Vec128< int16_t, 1 >  bits 
)

◆ operator>>() [3/41]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int16_t, N v,
const Vec128< int16_t, N bits 
)

References Neg(), and v.

◆ operator>>() [4/41]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int16_t, N v,
const Vec128< int16_t, N bits 
)

◆ operator>>() [5/41]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int32_t >  v,
const Vec128< int32_t >  bits 
)

References Neg(), and v.

◆ operator>>() [6/41]

HWY_API Vec128< int32_t, 1 > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int32_t, 1 >  v,
const Vec128< int32_t, 1 >  bits 
)

◆ operator>>() [7/41]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int32_t, N v,
const Vec128< int32_t, N bits 
)

References Neg(), and v.

◆ operator>>() [8/41]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int32_t, N v,
const Vec128< int32_t, N bits 
)

◆ operator>>() [9/41]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int64_t >  v,
const Vec128< int64_t >  bits 
)

References Neg(), and v.

◆ operator>>() [10/41]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int64_t, N v,
const Vec128< int64_t, N bits 
)

◆ operator>>() [11/41]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int8_t >  v,
const Vec128< int8_t >  bits 
)

References Neg(), and v.

◆ operator>>() [12/41]

template<size_t N, HWY_IF_LE64(int8_t, N) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< int8_t, N v,
const Vec128< int8_t, N bits 
)

References Neg(), and v.

◆ operator>>() [13/41]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint16_t >  v,
const Vec128< uint16_t >  bits 
)

References BitCast(), Neg(), and v.

◆ operator>>() [14/41]

HWY_API Vec128< uint16_t, 1 > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint16_t, 1 >  in,
const Vec128< uint16_t, 1 >  bits 
)

◆ operator>>() [15/41]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint16_t, N in,
const Vec128< uint16_t, N bits 
)

◆ operator>>() [16/41]

template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint16_t, N v,
const Vec128< uint16_t, N bits 
)

References BitCast(), Neg(), and v.

◆ operator>>() [17/41]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint32_t >  v,
const Vec128< uint32_t >  bits 
)

References BitCast(), Neg(), and v.

◆ operator>>() [18/41]

HWY_API Vec128< uint32_t, 1 > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint32_t, 1 >  in,
const Vec128< uint32_t, 1 >  bits 
)

◆ operator>>() [19/41]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint32_t, N in,
const Vec128< uint32_t, N bits 
)

◆ operator>>() [20/41]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint32_t, N v,
const Vec128< uint32_t, N bits 
)

References BitCast(), Neg(), and v.

◆ operator>>() [21/41]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint64_t >  v,
const Vec128< uint64_t >  bits 
)

References BitCast(), Neg(), and v.

◆ operator>>() [22/41]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint8_t >  v,
const Vec128< uint8_t >  bits 
)

References BitCast(), Neg(), and v.

◆ operator>>() [23/41]

template<size_t N, HWY_IF_LE64(uint8_t, N) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint8_t, N v,
const Vec128< uint8_t, N bits 
)

References BitCast(), Neg(), and v.

◆ operator>>() [24/41]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator>> ( const Vec1< T >  v,
const Vec1< T >  bits 
)

◆ operator>>() [25/41]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::operator>> ( const Vec256< int16_t >  v,
const Vec256< int16_t >  bits 
)

◆ operator>>() [26/41]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::operator>> ( const Vec256< int32_t >  v,
const Vec256< int32_t >  bits 
)

◆ operator>>() [27/41]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec256< int64_t >  v,
const Vec256< int64_t >  bits 
)

◆ operator>>() [28/41]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator>> ( const Vec256< uint16_t >  v,
const Vec256< uint16_t >  bits 
)

◆ operator>>() [29/41]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator>> ( const Vec256< uint32_t >  v,
const Vec256< uint32_t >  bits 
)

◆ operator>>() [30/41]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec256< uint64_t >  v,
const Vec256< uint64_t >  bits 
)

◆ operator>>() [31/41]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< int16_t >  v,
const Vec512< int16_t >  bits 
)

◆ operator>>() [32/41]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< int32_t >  v,
const Vec512< int32_t >  bits 
)

◆ operator>>() [33/41]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< int64_t >  v,
const Vec512< int64_t >  bits 
)

◆ operator>>() [34/41]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint16_t >  v,
const Vec512< uint16_t >  bits 
)

◆ operator>>() [35/41]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint32_t >  v,
const Vec512< uint32_t >  bits 
)

◆ operator>>() [36/41]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint64_t >  v,
const Vec512< uint64_t >  bits 
)

◆ operator>>() [37/41]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec64< int64_t >  v,
const Vec64< int64_t >  bits 
)

References Neg(), and v.

◆ operator>>() [38/41]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec64< uint64_t >  v,
const Vec64< uint64_t >  bits 
)

References BitCast(), Neg(), and v.

◆ operator>>() [39/41]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< T, N v,
const Vec128< T, N bits 
)

◆ operator>>() [40/41]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< T, N v,
const Vec128< T, N bits 
)

◆ operator>>() [41/41]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator>> ( Vec256< T >  v,
const Vec256< T >  bits 
)

◆ operator^() [1/4]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator^ ( const Vec128< T, N a,
const Vec128< T, N b 
)

References Xor().

◆ operator^() [2/4]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator^ ( const Vec1< T >  a,
const Vec1< T >  b 
)

References Xor().

◆ operator^() [3/4]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator^ ( const Vec256< T >  a,
const Vec256< T >  b 
)

References Xor().

◆ operator^() [4/4]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator^ ( const Vec512< T >  a,
const Vec512< T >  b 
)

References Xor().

◆ operator|() [1/4]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator| ( const Vec128< T, N a,
const Vec128< T, N b 
)

References Or().

◆ operator|() [2/4]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator| ( const Vec1< T >  a,
const Vec1< T >  b 
)

References Or().

◆ operator|() [3/4]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator| ( const Vec256< T >  a,
const Vec256< T >  b 
)

References Or().

◆ operator|() [4/4]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator| ( const Vec512< T >  a,
const Vec512< T >  b 
)

References Or().

◆ Or() [1/17]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::Or ( const Mask128< T, N a,
Mask128< T, N b 
)

References d, MaskFromVec(), Or(), and VecFromMask().

◆ Or() [2/17]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Or ( const Mask1< T >  a,
Mask1< T >  b 
)

References d, MaskFromVec(), Or(), and VecFromMask().

◆ Or() [3/17]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::Or ( const Mask256< T >  a,
Mask256< T >  b 
)

References d, MaskFromVec(), Or(), and VecFromMask().

◆ Or() [4/17]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Or ( const Mask512< T >  a,
Mask512< T >  b 
)

◆ Or() [5/17]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Or ( const V  a,
const V  b 
)

References BitCast(), and Or().

◆ Or() [6/17]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Or ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ Or() [7/17]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Or ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ Or() [8/17]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Or ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ Or() [9/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Or ( const Vec128< T, N a,
const Vec128< T, N b 
)

References BitCast(), d, and N.

◆ Or() [10/17]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Or ( const Vec1< T >  a,
const Vec1< T >  b 
)

References BitCast().

◆ Or() [11/17]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Or ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ Or() [12/17]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Or ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ Or() [13/17]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Or ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ Or() [14/17]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Or ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ Or() [15/17]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Or ( const Vec512< T >  a,
const Vec512< T >  b 
)

◆ Or() [16/17]

HWY_API svbool_t hwy::HWY_NAMESPACE::Or ( svbool_t  a,
svbool_t  b 
)

◆ Or() [17/17]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Or ( Vec256< T >  a,
Vec256< T >  b 
)

◆ Or3() [1/5]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Or3 ( o1,
o2,
o3 
)

References Or().

◆ Or3() [2/5]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Or3 ( Vec128< T, N o1,
Vec128< T, N o2,
Vec128< T, N o3 
)

References Or().

Referenced by LoadInterleaved3().

◆ Or3() [3/5]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Or3 ( Vec1< T >  o1,
Vec1< T >  o2,
Vec1< T >  o3 
)

References Or().

◆ Or3() [4/5]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Or3 ( Vec256< T >  o1,
Vec256< T >  o2,
Vec256< T >  o3 
)

References Or().

◆ Or3() [5/5]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Or3 ( Vec512< T >  o1,
Vec512< T >  o2,
Vec512< T >  o3 
)

References BitCast(), and d.

◆ OrAnd() [1/5]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::OrAnd ( const V  o,
const V  a1,
const V  a2 
)

References And(), and Or().

◆ OrAnd() [2/5]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OrAnd ( const Vec1< T >  o,
const Vec1< T >  a1,
const Vec1< T >  a2 
)

References And(), and Or().

◆ OrAnd() [3/5]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::OrAnd ( Vec128< T, N o,
Vec128< T, N a1,
Vec128< T, N a2 
)

References And(), and Or().

Referenced by Lt128().

◆ OrAnd() [4/5]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::OrAnd ( Vec256< T >  o,
Vec256< T >  a1,
Vec256< T >  a2 
)

References And(), and Or().

◆ OrAnd() [5/5]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OrAnd ( Vec512< T >  o,
Vec512< T >  a1,
Vec512< T >  a2 
)

References BitCast(), and d.

◆ PopulationCount() [1/7]

template<typename V , class D = DFromV<V>, HWY_IF_LANE_SIZE_D(D, 1) , HWY_IF_GE128_D(D) , HWY_IF_POW2_GE(D, HWY_MIN_POW2_FOR_128) >
HWY_API V hwy::HWY_NAMESPACE::PopulationCount ( v)

◆ PopulationCount() [2/7]

template<typename V , class D = DFromV<V>, HWY_IF_LANE_SIZE_D(D, 2) >
HWY_API V hwy::HWY_NAMESPACE::PopulationCount ( v)

References Add(), And(), BitCast(), d, PopulationCount(), Set(), and v.

◆ PopulationCount() [3/7]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::PopulationCount ( Vec128< T, N v)

◆ PopulationCount() [4/7]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::PopulationCount ( Vec128< T, N v)

◆ PopulationCount() [5/7]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::PopulationCount ( Vec1< T >  v)

References hwy::PopCount(), and v.

◆ PopulationCount() [6/7]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::PopulationCount ( Vec256< T >  v)

◆ PopulationCount() [7/7]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::PopulationCount ( Vec512< T >  v)

◆ Pow2()

template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr int hwy::HWY_NAMESPACE::Pow2 ( )
constexpr

◆ Print()

template<class D , class V = Vec<D>>
void hwy::HWY_NAMESPACE::Print ( const D  d,
const char *  caption,
VecArg< V >  v,
size_t  lane_u = 0,
size_t  max_lanes = 7 
)

References d, Lanes(), N, hwy::detail::PrintArray(), Store(), and v.

Referenced by AssertMaskEqual().

◆ PromoteTo() [1/84]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< int16_t >  d,
const Vec64< uint8_t >  v 
)

References BitCast(), d, and v.

◆ PromoteTo() [2/84]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< int16_t >  ,
const Vec64< int8_t >  v 
)

References v.

◆ PromoteTo() [3/84]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< int32_t >  d,
const Vec32< uint8_t >  v 
)

References BitCast(), d, and v.

◆ PromoteTo() [4/84]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< int32_t >  d,
const Vec64< uint16_t >  v 
)

References BitCast(), d, and v.

◆ PromoteTo() [5/84]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< int32_t >  ,
const Vec32< int8_t >  v 
)

References v.

◆ PromoteTo() [6/84]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< int32_t >  ,
const Vec64< int16_t >  v 
)

References v.

◆ PromoteTo() [7/84]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< int64_t >  ,
const Vec64< int32_t >  v 
)

References v.

◆ PromoteTo() [8/84]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< uint16_t >  ,
const Vec64< uint8_t >  v 
)

References v.

Referenced by CompressStore(), and PromoteTo().

◆ PromoteTo() [9/84]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< uint32_t >  ,
const Vec32< uint8_t >  v 
)

References v.

◆ PromoteTo() [10/84]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< uint32_t >  ,
const Vec64< uint16_t >  v 
)

References v.

◆ PromoteTo() [11/84]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::PromoteTo ( Full128< uint64_t >  ,
const Vec64< uint32_t >  v 
)

References v.

◆ PromoteTo() [12/84]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::PromoteTo ( Full256< double >  ,
const Vec128< float, 4 >  v 
)

References v.

◆ PromoteTo() [13/84]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::PromoteTo ( Full256< double >  ,
const Vec128< int32_t >  v 
)

References v.

◆ PromoteTo() [14/84]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::PromoteTo ( Full256< double >  ,
const Vec128< int32_t, 4 >  v 
)

References v.

◆ PromoteTo() [15/84]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::PromoteTo ( Full256< float >  df32,
const Vec128< bfloat16_t v 
)

References BitCast(), PromoteTo(), and v.

◆ PromoteTo() [16/84]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::PromoteTo ( Full256< float >  df32,
const Vec128< float16_t v 
)

◆ PromoteTo() [17/84]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int16_t >  ,
const Vec128< int8_t >  v 
)

References v.

◆ PromoteTo() [18/84]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int16_t >  ,
const Vec128< uint8_t >  v 
)

References v.

◆ PromoteTo() [19/84]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
const Vec128< int16_t >  v 
)

References v.

◆ PromoteTo() [20/84]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
const Vec128< int8_t >  v 
)

References v.

◆ PromoteTo() [21/84]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
const Vec128< uint16_t >  v 
)

References v.

◆ PromoteTo() [22/84]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
const Vec128< uint8_t >  v 
)

References v.

◆ PromoteTo() [23/84]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
Vec128< int8_t, 8 >  v 
)

References v.

◆ PromoteTo() [24/84]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
Vec128< uint8_t, 8 >  v 
)

References v.

◆ PromoteTo() [25/84]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< int64_t >  ,
Vec128< int32_t >  v 
)

References v.

◆ PromoteTo() [26/84]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint16_t >  ,
const Vec128< uint8_t >  v 
)

References v.

◆ PromoteTo() [27/84]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint32_t >  ,
const Vec128< uint16_t >  v 
)

References v.

◆ PromoteTo() [28/84]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint32_t >  ,
const Vec128< uint8_t >  v 
)

References v.

◆ PromoteTo() [29/84]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint32_t >  ,
Vec128< uint8_t, 8 >  v 
)

References v.

◆ PromoteTo() [30/84]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint64_t >  ,
Vec128< uint32_t >  v 
)

References v.

◆ PromoteTo() [31/84]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::PromoteTo ( Full512< double >  ,
Vec256< float >  v 
)

References v.

◆ PromoteTo() [32/84]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::PromoteTo ( Full512< double >  ,
Vec256< int32_t >  v 
)

References v.

◆ PromoteTo() [33/84]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::PromoteTo ( Full512< float >  df32,
const Vec256< bfloat16_t v 
)

References BitCast(), PromoteTo(), and v.

◆ PromoteTo() [34/84]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::PromoteTo ( Full512< float >  ,
const Vec256< float16_t v 
)

References v.

◆ PromoteTo() [35/84]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< int16_t >  ,
Vec256< int8_t >  v 
)

References v.

◆ PromoteTo() [36/84]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< int16_t >  ,
Vec256< uint8_t >  v 
)

References v.

◆ PromoteTo() [37/84]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< int32_t >  ,
Vec128< int8_t >  v 
)

References v.

◆ PromoteTo() [38/84]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< int32_t >  ,
Vec128< uint8_t >  v 
)

References v.

◆ PromoteTo() [39/84]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< int32_t >  ,
Vec256< int16_t >  v 
)

References v.

◆ PromoteTo() [40/84]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< int32_t >  ,
Vec256< uint16_t >  v 
)

References v.

◆ PromoteTo() [41/84]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< int64_t >  ,
Vec256< int32_t >  v 
)

References v.

◆ PromoteTo() [42/84]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< uint16_t >  ,
Vec256< uint8_t >  v 
)

References v.

◆ PromoteTo() [43/84]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< uint32_t >  ,
Vec128< uint8_t >  v 
)

References v.

◆ PromoteTo() [44/84]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< uint32_t >  ,
Vec256< uint16_t >  v 
)

References v.

◆ PromoteTo() [45/84]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::PromoteTo ( Full512< uint64_t >  ,
Vec256< uint32_t >  v 
)

References v.

◆ PromoteTo() [46/84]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< double, N, 0 >  ,
const Vec128< float, N v 
)

References v.

◆ PromoteTo() [47/84]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< double, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ PromoteTo() [48/84]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< float, N, 0 >  df32,
const Vec128< bfloat16_t, N v 
)

References BitCast(), PromoteTo(), and v.

◆ PromoteTo() [49/84]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< float, N, 0 >  df32,
const Vec128< float16_t, N v 
)

◆ PromoteTo() [50/84]

template<size_t N>
HWY_INLINE_F16 Vec128< float, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< float, N, 0 >  df32,
const Vec128< float16_t, N v 
)

◆ PromoteTo() [51/84]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N, kPow2 >  d,
VFromD< Rebind< bfloat16_t, decltype(d)> >  v 
) -> VFromD<decltype(d)>

References BitCast(), d, PromoteTo(), and v.

◆ PromoteTo() [52/84]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N, kPow2 >  df32,
const svuint16_t  v 
)

References BitCast(), v, and ZipLower().

◆ PromoteTo() [53/84]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N, kPow2 >  ,
const svfloat16_t  v 
)

References v, and ZipLower().

◆ PromoteTo() [54/84]

template<size_t N, int kPow2>
HWY_API svfloat64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float64_t, N, kPow2 >  ,
const svfloat32_t  v 
)

References v, and ZipLower().

◆ PromoteTo() [55/84]

template<size_t N, int kPow2>
HWY_API svfloat64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float64_t, N, kPow2 >  ,
const svint32_t  v 
)

References v, and ZipLower().

◆ PromoteTo() [56/84]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int16_t, N, 0 >  d,
const Vec128< uint8_t, N v 
)

References BitCast(), d, and v.

◆ PromoteTo() [57/84]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int16_t, N, 0 >  ,
const Vec128< int8_t, N v 
)

References v.

◆ PromoteTo() [58/84]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int16_t, N, 0 >  di,
const Vec128< uint8_t, N v 
)

References v.

◆ PromoteTo() [59/84]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int16_t, N, kPow2 >  d,
VFromD< Rebind< uint8_t, decltype(d)> >  v 
) -> VFromD<decltype(d)>

References BitCast(), d, PromoteTo(), and v.

◆ PromoteTo() [60/84]

template<size_t N, int kPow2>
HWY_API svint16_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int16_t, N, kPow2 >  dto,
svuint8_t  vfrom 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [61/84]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, 0 >  ,
const Vec128< int16_t, N v 
)

References v.

◆ PromoteTo() [62/84]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, 0 >  ,
const Vec128< int8_t, N v 
)

References v.

◆ PromoteTo() [63/84]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, 0 >  ,
const Vec128< uint16_t, N v 
)

References v.

◆ PromoteTo() [64/84]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, 0 >  di,
const Vec128< uint16_t, N v 
)

References v.

◆ PromoteTo() [65/84]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, 0 >  ,
const Vec128< uint8_t, N v 
)

References v.

◆ PromoteTo() [66/84]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, 0 >  di,
const Vec128< uint8_t, N v 
)

References v.

◆ PromoteTo() [67/84]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, kPow2 >  d,
VFromD< Rebind< uint16_t, decltype(d)> >  v 
) -> VFromD<decltype(d)>

References BitCast(), d, PromoteTo(), and v.

◆ PromoteTo() [68/84]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, kPow2 >  d,
VFromD< Rebind< uint8_t, decltype(d)> >  v 
) -> VFromD<decltype(d)>

References BitCast(), d, PromoteTo(), and v.

◆ PromoteTo() [69/84]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, kPow2 >  dto,
svint8_t  vfrom 
)

References PromoteTo().

◆ PromoteTo() [70/84]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, kPow2 >  dto,
svuint16_t  vfrom 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [71/84]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, kPow2 >  dto,
svuint8_t  vfrom 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [72/84]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< int64_t, N, 0 >  ,
const Vec128< int32_t, N v 
)

References v.

◆ PromoteTo() [73/84]

template<typename FromT , typename ToT , size_t N>
HWY_API Vec128< ToT, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< ToT, N, 0 >  ,
Vec128< FromT, N from 
)

◆ PromoteTo() [74/84]

template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint16_t, N, 0 >  ,
const Vec128< uint8_t, N v 
)

References v.

◆ PromoteTo() [75/84]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint16_t, N, 0 >  ,
const Vec128< uint8_t, N v 
)

References v.

◆ PromoteTo() [76/84]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N, 0 >  ,
const Vec128< uint16_t, N v 
)

References v.

◆ PromoteTo() [77/84]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N, 0 >  ,
const Vec128< uint8_t, N v 
)

References v.

◆ PromoteTo() [78/84]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N, 0 >  ,
const Vec128< uint8_t, N v 
)

References v.

◆ PromoteTo() [79/84]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N, kPow2 >  dto,
svuint8_t  vfrom 
)

References PromoteTo().

◆ PromoteTo() [80/84]

template<size_t N, HWY_IF_LE64(uint64_t, N) >
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint64_t, N, 0 >  ,
const Vec128< uint32_t, N v 
)

References v.

◆ PromoteTo() [81/84]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint64_t, N, 0 >  ,
const Vec128< uint32_t, N v 
)

References v.

◆ PromoteTo() [82/84]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::PromoteTo ( Sisd< float >  d,
const Vec1< bfloat16_t v 
)

References d, hwy::F32FromBF16(), Set(), and v.

◆ PromoteTo() [83/84]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::PromoteTo ( Sisd< float >  ,
const Vec1< float16_t v 
)

References v.

◆ PromoteTo() [84/84]

template<typename FromT , typename ToT >
HWY_API Vec1< ToT > hwy::HWY_NAMESPACE::PromoteTo ( Sisd< ToT >  ,
Vec1< FromT >  from 
)

◆ RandomValues()

template<typename T , class DU64 , HWY_IF_NOT_FLOAT(T) >
Vec< DU64 > hwy::HWY_NAMESPACE::RandomValues ( DU64  du64,
Vec< DU64 > &  s0,
Vec< DU64 > &  s1,
const Vec< DU64 >  mask 
)

◆ RebindMask() [1/7]

template<class D , typename MFrom >
HWY_API svbool_t hwy::HWY_NAMESPACE::RebindMask ( const  D,
const MFrom  mask 
)

◆ RebindMask() [2/7]

template<class D , typename MFrom >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::RebindMask ( const  D,
const MFrom  mask 
)

◆ RebindMask() [3/7]

template<typename TFrom , typename TTo >
HWY_API Mask256< TTo > hwy::HWY_NAMESPACE::RebindMask ( Full256< TTo >  ,
Mask256< TFrom >  m 
)

◆ RebindMask() [4/7]

template<typename TFrom , typename TTo >
HWY_API Mask512< TTo > hwy::HWY_NAMESPACE::RebindMask ( Full512< TTo >  ,
Mask512< TFrom >  m 
)

◆ RebindMask() [5/7]

template<typename TFrom , typename TTo , size_t N>
HWY_API Mask128< TTo, N > hwy::HWY_NAMESPACE::RebindMask ( Simd< TTo, N, 0 >  dto,
Mask128< TFrom, N m 
)

◆ RebindMask() [6/7]

template<typename TFrom , size_t NFrom, typename TTo , size_t NTo>
HWY_API Mask128< TTo, NTo > hwy::HWY_NAMESPACE::RebindMask ( Simd< TTo, NTo, 0 >  ,
Mask128< TFrom, NFrom >  m 
)

◆ RebindMask() [7/7]

template<typename TFrom , typename TTo >
HWY_API Mask1< TTo > hwy::HWY_NAMESPACE::RebindMask ( Sisd< TTo >  ,
Mask1< TFrom >  m 
)

◆ ReorderDemote2To() [1/6]

HWY_API Vec128< bfloat16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( Full128< bfloat16_t dbf16,
Vec256< float >  a,
Vec256< float >  b 
)

References BitCast(), and OddEven().

◆ ReorderDemote2To() [2/6]

HWY_API Vec256< bfloat16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( Full256< bfloat16_t dbf16,
Vec256< float >  a,
Vec256< float >  b 
)

References BitCast(), and OddEven().

◆ ReorderDemote2To() [3/6]

HWY_API Vec512< bfloat16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( Full512< bfloat16_t dbf16,
Vec512< float >  a,
Vec512< float >  b 
)

References BitCast(), and OddEven().

◆ ReorderDemote2To() [4/6]

template<size_t N>
HWY_API Vec128< bfloat16_t, 2 *N > hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< bfloat16_t, 2 *N, 0 >  dbf16,
Vec128< float, N a,
Vec128< float, N b 
)

◆ ReorderDemote2To() [5/6]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< bfloat16_t, N, kPow2 >  dbf16,
svfloat32_t  a,
svfloat32_t  b 
)

References BitCast(), and OddEven().

◆ ReorderDemote2To() [6/6]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< bfloat16_t, N, kPow2 >  dbf16,
VFromD< RepartitionToWide< decltype(dbf16)> >  a,
VFromD< RepartitionToWide< decltype(dbf16)> >  b 
)

References BitCast(), and OddEven().

◆ ReorderWidenMulAccumulate() [1/6]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Full256< float >  df32,
Vec256< bfloat16_t a,
Vec256< bfloat16_t b,
const Vec256< float >  sum0,
Vec256< float > &  sum1 
)

◆ ReorderWidenMulAccumulate() [2/6]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Full512< float >  df32,
Vec512< bfloat16_t a,
Vec512< bfloat16_t b,
const Vec512< float >  sum0,
Vec512< float > &  sum1 
)

◆ ReorderWidenMulAccumulate() [3/6]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< float, N, 0 >  df32,
Vec128< bfloat16_t, 2 *N a,
Vec128< bfloat16_t, 2 *N b,
const Vec128< float, N sum0,
Vec128< float, N > &  sum1 
)

◆ ReorderWidenMulAccumulate() [4/6]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< float, N, kPow2 >  df32,
svuint16_t  a,
svuint16_t  b,
const svfloat32_t  sum0,
svfloat32_t &  sum1 
)

◆ ReorderWidenMulAccumulate() [5/6]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< float, N, kPow2 >  df32,
VFromD< DU16FromDF< decltype(df32)> >  a,
VFromD< DU16FromDF< decltype(df32)> >  b,
const VFromD< decltype(df32)>  sum0,
VFromD< decltype(df32)> &  sum1 
) -> VFromD<decltype(df32)>

◆ ReorderWidenMulAccumulate() [6/6]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Sisd< float >  ,
Vec1< bfloat16_t a,
Vec1< bfloat16_t b,
const Vec1< float >  sum0,
Vec1< float > &   
)

◆ Replace()

template<class D , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Replace ( d,
T *HWY_RESTRICT  inout,
size_t  count,
new_t,
old_t 
)

◆ ReplaceIf()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::ReplaceIf ( d,
T *HWY_RESTRICT  inout,
size_t  count,
new_t,
const Func func 
)

◆ Reverse() [1/11]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::Reverse ( d,
v 
)

◆ Reverse() [2/11]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse ( ,
VFromD< D >  v 
)

◆ Reverse() [3/11]

template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse ( Full128< T >  ,
const Vec128< T >  v 
)

References Shuffle01(), and v.

◆ Reverse() [4/11]

template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse ( Full256< T >  d,
const Vec256< T >  v 
)

References Shuffle01(), and v.

◆ Reverse() [5/11]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Reverse ( Full512< T >  d,
const Vec512< T >  v 
)

◆ Reverse() [6/11]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::Reverse ( Full64< T >  ,
const Vec128< T, 2 >  v 
)

References Shuffle2301(), and v.

◆ Reverse() [7/11]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Reverse ( Simd< T, 1, 0 >  ,
const Vec128< T, 1 >  v 
)

References v.

Referenced by Reverse(), Reverse8(), and ReverseBlocks().

◆ Reverse() [8/11]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::Reverse ( Simd< T, 2, 0 >  ,
const Vec128< T, 2 >  v 
)

References Shuffle2301(), and v.

◆ Reverse() [9/11]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References BitCast(), d, Reverse(), and v.

◆ Reverse() [10/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse ( Simd< T, N, 0 >  ,
const Vec128< T, N v 
)

◆ Reverse() [11/11]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse ( Sisd< T >  ,
const Vec1< T >  v 
)

References v.

◆ Reverse2() [1/11]

template<class D , HWY_IF_LANE_SIZE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse2 ( d,
const VFromD< D >  v 
)

References BitCast(), d, and v.

◆ Reverse2() [2/11]

template<class D , HWY_IF_LANE_SIZE_D(D, 2) , HWY_RVV_IF_POW2_IN(D, -1, 3) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse2 ( d,
const VFromD< D >  v 
)

References BitCast(), d, and v.

◆ Reverse2() [3/11]

template<class D , class V = VFromD<D>, HWY_IF_LANE_SIZE_D(D, 8) >
HWY_API V hwy::HWY_NAMESPACE::Reverse2 ( ,
const V  v 
)

References OddEven(), and v.

◆ Reverse2() [4/11]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse2 ( Full128< T >  d,
const Vec128< T >  v 
)

References BitCast(), d, and v.

◆ Reverse2() [5/11]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse2 ( Full256< T >  d,
const Vec256< T >  v 
)

References HWY_ASSERT.

◆ Reverse2() [6/11]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse2 ( Full256< T >  d,
const Vec256< T >  v 
)

References BitCast(), d, and v.

◆ Reverse2() [7/11]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Reverse2 ( Full512< T >  d,
const Vec512< T >  v 
)

References BitCast(), d, and v.

◆ Reverse2() [8/11]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) , HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse2 ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References BitCast(), d, and v.

Referenced by Reverse4(), Reverse8(), Shuffle01(), and Shuffle2301().

◆ Reverse2() [9/11]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse2 ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References Shuffle01(), and v.

◆ Reverse2() [10/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse2 ( Simd< T, N, 0 >  ,
const Vec128< T, N v 
)

◆ Reverse2() [11/11]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse2 ( Sisd< T >  ,
const Vec1< T >  v 
)

References v.

◆ Reverse4() [1/10]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse4 ( d,
const VFromD< D >  v 
)

◆ Reverse4() [2/10]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse4 ( Full128< T >  d,
const Vec128< T >  v 
)

References BitCast(), d, and v.

◆ Reverse4() [3/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse4 ( Full256< T >  d,
const Vec256< T >  v 
)

References HWY_ASSERT.

◆ Reverse4() [4/10]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse4 ( Full256< T >  d,
const Vec256< T >  v 
)

◆ Reverse4() [5/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Reverse4 ( Full512< double >  ,
Vec512< double >  v 
)

References v.

◆ Reverse4() [6/10]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Reverse4 ( Full512< T >  d,
const Vec512< T >  v 
)

◆ Reverse4() [7/10]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) , HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse4 ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References BitCast(), d, and v.

◆ Reverse4() [8/10]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse4 ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References Shuffle0123(), and v.

◆ Reverse4() [9/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse4 ( Simd< T, N, 0 >  ,
const Vec128< T, N v 
)

◆ Reverse4() [10/10]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse4 ( Sisd< T >  ,
const Vec1< T >  v 
)

References v.

◆ Reverse8() [1/7]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse8 ( d,
const VFromD< D >  v 
)

References d, Iota(), TableLookupLanes(), and v.

◆ Reverse8() [2/7]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse8 ( Full256< T >  d,
const Vec256< T >  v 
)

References HWY_ASSERT.

◆ Reverse8() [3/7]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse8 ( Full256< T >  d,
const Vec256< T >  v 
)

◆ Reverse8() [4/7]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Reverse8 ( Full512< T >  d,
const Vec512< T >  v 
)

◆ Reverse8() [5/7]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse8 ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References d, Reverse(), and v.

◆ Reverse8() [6/7]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Reverse8 ( Simd< T, N, 0 >  ,
const Vec128< T, N v 
)

◆ Reverse8() [7/7]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse8 ( Sisd< T >  ,
const Vec1< T >  v 
)

References v.

◆ ReverseBlocks() [1/8]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ReverseBlocks ( d,
v 
)

◆ ReverseBlocks() [2/8]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ReverseBlocks ( Full128< T >  ,
const Vec128< T >  v 
)

References v.

◆ ReverseBlocks() [3/8]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ReverseBlocks ( Full256< T >  d,
const Vec256< T >  v 
)

References v.

◆ ReverseBlocks() [4/8]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ReverseBlocks ( Full512< double >  ,
Vec512< double >  v 
)

References v.

◆ ReverseBlocks() [5/8]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ReverseBlocks ( Full512< float >  ,
Vec512< float >  v 
)

References v.

◆ ReverseBlocks() [6/8]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ReverseBlocks ( Full512< T >  ,
Vec512< T >  v 
)

References v.

◆ ReverseBlocks() [7/8]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ReverseBlocks ( Simd< T, N, 0 >  ,
const Vec128< T, N v 
)

References v.

◆ ReverseBlocks() [8/8]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ReverseBlocks ( Sisd< T >  ,
const Vec1< T >  v 
)

References v.

◆ RotateRight() [1/10]

template<int kBits, class V >
HWY_API V hwy::HWY_NAMESPACE::RotateRight ( const V  v)

References Or(), and v.

◆ RotateRight() [2/10]

template<int kBits, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::RotateRight ( const Vec128< T, N v)

References v.

◆ RotateRight() [3/10]

template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::RotateRight ( const Vec128< uint32_t, N v)

References HWY_MIN, Or(), ShiftLeft(), and v.

◆ RotateRight() [4/10]

template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::RotateRight ( const Vec128< uint64_t, N v)

References HWY_MIN, Or(), ShiftLeft(), and v.

◆ RotateRight() [5/10]

template<int kBits, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::RotateRight ( const Vec1< T >  v)

References v.

◆ RotateRight() [6/10]

template<int kBits, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::RotateRight ( const Vec256< T >  v)

References Or(), and v.

◆ RotateRight() [7/10]

template<int kBits>
HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec256< uint32_t >  v)

References HWY_MIN, Or(), ShiftLeft(), and v.

◆ RotateRight() [8/10]

template<int kBits>
HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec256< uint64_t >  v)

References HWY_MIN, Or(), ShiftLeft(), and v.

◆ RotateRight() [9/10]

template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec512< uint32_t >  v)

References v.

◆ RotateRight() [10/10]

template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec512< uint64_t >  v)

References v.

◆ Round() [1/9]

template<class V >
decltype(MaskFromVec(v)) HWY_API V hwy::HWY_NAMESPACE::Round ( const V  v)

◆ Round() [2/9]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Round ( const Vec128< float, N v)

◆ Round() [3/9]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Round ( const Vec128< T, N v)

References Abs(), CopySignToAbs(), IfThenElse(), Set(), and v.

◆ Round() [4/9]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Round ( const Vec1< T >  v)

References Abs(), CopySignToAbs(), and v.

◆ Round() [5/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Round ( const Vec256< double >  v)

References v.

◆ Round() [6/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Round ( const Vec256< float >  v)

References v.

◆ Round() [7/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Round ( const Vec512< double >  v)

References v.

◆ Round() [8/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Round ( const Vec512< float >  v)

References v.

◆ Round() [9/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Round ( Vec128< T, N v)

◆ Run()

template<class Order , typename KeyType >
void hwy::HWY_NAMESPACE::Run ( Algo  algo,
KeyType *HWY_RESTRICT  inout,
size_t  num,
SharedState shared,
size_t  thread 
)

◆ SafeCopyN()

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::SafeCopyN ( const size_t  num,
d,
const T *HWY_RESTRICT  from,
T *HWY_RESTRICT  to 
)

References BlendedStore(), d, FirstN(), and MaskedLoad().

Referenced by Copy().

◆ SafeFillN()

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::SafeFillN ( const size_t  num,
const T  value,
d,
T *HWY_RESTRICT  to 
)

References BlendedStore(), d, FirstN(), and Set().

Referenced by Fill().

◆ SaturatedAdd() [1/17]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ SaturatedAdd() [2/17]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec128< int8_t, N a,
const Vec128< int8_t, N b 
)

◆ SaturatedAdd() [3/17]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ SaturatedAdd() [4/17]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ SaturatedAdd() [5/17]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< int16_t >  a,
const Vec1< int16_t >  b 
)

◆ SaturatedAdd() [6/17]

HWY_API Vec1< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< int8_t >  a,
const Vec1< int8_t >  b 
)

◆ SaturatedAdd() [7/17]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< uint16_t >  a,
const Vec1< uint16_t >  b 
)

◆ SaturatedAdd() [8/17]

HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< uint8_t >  a,
const Vec1< uint8_t >  b 
)

◆ SaturatedAdd() [9/17]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ SaturatedAdd() [10/17]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ SaturatedAdd() [11/17]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ SaturatedAdd() [12/17]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ SaturatedAdd() [13/17]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ SaturatedAdd() [14/17]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ SaturatedAdd() [15/17]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ SaturatedAdd() [16/17]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ SaturatedAdd() [17/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec128< T, N a,
const Vec128< T, N b 
)

◆ SaturatedSub() [1/17]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec128< int16_t, N a,
const Vec128< int16_t, N b 
)

◆ SaturatedSub() [2/17]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec128< int8_t, N a,
const Vec128< int8_t, N b 
)

◆ SaturatedSub() [3/17]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec128< uint16_t, N a,
const Vec128< uint16_t, N b 
)

◆ SaturatedSub() [4/17]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec128< uint8_t, N a,
const Vec128< uint8_t, N b 
)

◆ SaturatedSub() [5/17]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< int16_t >  a,
const Vec1< int16_t >  b 
)

◆ SaturatedSub() [6/17]

HWY_API Vec1< int8_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< int8_t >  a,
const Vec1< int8_t >  b 
)

◆ SaturatedSub() [7/17]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< uint16_t >  a,
const Vec1< uint16_t >  b 
)

◆ SaturatedSub() [8/17]

HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< uint8_t >  a,
const Vec1< uint8_t >  b 
)

◆ SaturatedSub() [9/17]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ SaturatedSub() [10/17]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ SaturatedSub() [11/17]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ SaturatedSub() [12/17]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ SaturatedSub() [13/17]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ SaturatedSub() [14/17]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ SaturatedSub() [15/17]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ SaturatedSub() [16/17]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ SaturatedSub() [17/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::SaturatedSub ( Vec128< T, N a,
const Vec128< T, N b 
)

References HWY_MAX, HWY_MIN, N, and hwy::HWY_NAMESPACE::Vec128< T, N >::raw.

Referenced by Max(), and Min().

◆ ScatterIndex() [1/12]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec128< double, N v,
Simd< double, N, 0 >  ,
double *HWY_RESTRICT  base,
const Vec128< int64_t, N index 
)

◆ ScatterIndex() [2/12]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec128< float, N v,
Simd< float, N, 0 >  ,
float *HWY_RESTRICT  base,
const Vec128< int32_t, N index 
)

◆ ScatterIndex() [3/12]

template<typename T , size_t N, typename Index , HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec128< T, N v,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  base,
const Vec128< Index, N index 
)

References d, N, Store(), and v.

◆ ScatterIndex() [4/12]

template<typename T , size_t N, typename Index >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec128< T, N v,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  base,
const Vec128< Index, N index 
)

◆ ScatterIndex() [5/12]

template<typename T , typename Index >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec1< T >  v,
Sisd< T >  d,
T *HWY_RESTRICT  base,
const Vec1< Index >  index 
)

◆ ScatterIndex() [6/12]

HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec256< double >  v,
Full256< double >  ,
double *HWY_RESTRICT  base,
const Vec256< int64_t >  index 
)

◆ ScatterIndex() [7/12]

HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec256< float >  v,
Full256< float >  ,
float *HWY_RESTRICT  base,
const Vec256< int32_t >  index 
)

◆ ScatterIndex() [8/12]

template<typename T , typename Index >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec256< T >  v,
Full256< T >  d,
T *HWY_RESTRICT  base,
const Vec256< Index >  index 
)

References d, N, Store(), and v.

◆ ScatterIndex() [9/12]

HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec512< double >  v,
Full512< double >  ,
double *HWY_RESTRICT  base,
const Vec512< int64_t >  index 
)

◆ ScatterIndex() [10/12]

HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec512< float >  v,
Full512< float >  ,
float *HWY_RESTRICT  base,
const Vec512< int32_t >  index 
)

◆ ScatterIndex() [11/12]

template<typename T , typename Index >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec512< T >  v,
Full512< T >  d,
T *HWY_RESTRICT  base,
const Vec512< Index >  index 
)

◆ ScatterIndex() [12/12]

template<class D , HWY_IF_LANE_SIZE_D(D, 4) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D >  v,
d,
TFromD< D > *HWY_RESTRICT  base,
const VFromD< RebindToSigned< D > >  index 
)

References d, ScatterOffset(), and v.

◆ ScatterOffset() [1/12]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec128< double, N v,
Simd< double, N, 0 >  ,
double *HWY_RESTRICT  base,
const Vec128< int64_t, N offset 
)

◆ ScatterOffset() [2/12]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec128< float, N v,
Simd< float, N, 0 >  ,
float *HWY_RESTRICT  base,
const Vec128< int32_t, N offset 
)

◆ ScatterOffset() [3/12]

template<typename T , size_t N, typename Offset , HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec128< T, N v,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  base,
const Vec128< Offset, N offset 
)

References d, N, Store(), and v.

Referenced by ScatterIndex().

◆ ScatterOffset() [4/12]

template<typename T , size_t N, typename Offset >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec128< T, N v,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  base,
const Vec128< Offset, N offset 
)

◆ ScatterOffset() [5/12]

template<typename T , size_t N, typename Offset >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec128< T, N v,
Simd< T, N, 0 >  ,
T *  base,
const Vec128< Offset, N offset 
)

◆ ScatterOffset() [6/12]

template<typename T , typename Offset >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec1< T >  v,
Sisd< T >  d,
T *  base,
const Vec1< Offset >  offset 
)

◆ ScatterOffset() [7/12]

HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec256< double >  v,
Full256< double >  ,
double *HWY_RESTRICT  base,
const Vec256< int64_t >  offset 
)

◆ ScatterOffset() [8/12]

HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec256< float >  v,
Full256< float >  ,
float *HWY_RESTRICT  base,
const Vec256< int32_t >  offset 
)

◆ ScatterOffset() [9/12]

template<typename T , typename Offset >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec256< T >  v,
Full256< T >  d,
T *HWY_RESTRICT  base,
const Vec256< Offset >  offset 
)

References d, N, Store(), and v.

◆ ScatterOffset() [10/12]

HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec512< double >  v,
Full512< double >  ,
double *HWY_RESTRICT  base,
const Vec512< int64_t >  offset 
)

◆ ScatterOffset() [11/12]

HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec512< float >  v,
Full512< float >  ,
float *HWY_RESTRICT  base,
const Vec512< int32_t >  offset 
)

◆ ScatterOffset() [12/12]

template<typename T , typename Offset >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec512< T >  v,
Full512< T >  d,
T *HWY_RESTRICT  base,
const Vec512< Offset >  offset 
)

◆ Set() [1/34]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Set ( Full256< double >  ,
const double  t 
)

◆ Set() [2/34]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Set ( Full256< float >  ,
const float  t 
)

◆ Set() [3/34]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Set ( Full256< int16_t >  ,
const int16_t  t 
)

◆ Set() [4/34]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Set ( Full256< int32_t >  ,
const int32_t  t 
)

◆ Set() [5/34]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Set ( Full256< int64_t >  ,
const int64_t  t 
)

◆ Set() [6/34]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::Set ( Full256< int8_t >  ,
const int8_t  t 
)

◆ Set() [7/34]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::Set ( Full256< uint16_t >  ,
const uint16_t  t 
)

◆ Set() [8/34]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Set ( Full256< uint32_t >  ,
const uint32_t  t 
)

◆ Set() [9/34]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::Set ( Full256< uint64_t >  ,
const uint64_t  t 
)

◆ Set() [10/34]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::Set ( Full256< uint8_t >  ,
const uint8_t  t 
)

◆ Set() [11/34]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Set ( Full512< double >  ,
const double  t 
)

◆ Set() [12/34]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Set ( Full512< float >  ,
const float  t 
)

◆ Set() [13/34]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Set ( Full512< int16_t >  ,
const int16_t  t 
)

◆ Set() [14/34]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Set ( Full512< int32_t >  ,
const int32_t  t 
)

◆ Set() [15/34]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Set ( Full512< int64_t >  ,
const int64_t  t 
)

◆ Set() [16/34]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Set ( Full512< int8_t >  ,
const int8_t  t 
)

◆ Set() [17/34]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Set ( Full512< uint16_t >  ,
const uint16_t  t 
)

◆ Set() [18/34]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Set ( Full512< uint32_t >  ,
const uint32_t  t 
)

◆ Set() [19/34]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Set ( Full512< uint64_t >  ,
const uint64_t  t 
)

◆ Set() [20/34]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Set ( Full512< uint8_t >  ,
const uint8_t  t 
)

◆ Set() [21/34]

template<size_t N, int kPow2>
svuint16_t hwy::HWY_NAMESPACE::Set ( Simd< bfloat16_t, N, kPow2 >  d,
bfloat16_t  arg 
)

References hwy::bfloat16_t::bits, d, and Set().

Referenced by Acos(), Acosh(), Asin(), Asinh(), hwy::HWY_NAMESPACE::impl::AsinImpl< float >::AsinPoly(), Atan(), Atanh(), hwy::HWY_NAMESPACE::impl::AtanImpl< float >::AtanPoly(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::ClampF64ToI32Max(), Compress(), ConcatEven(), ConvertTo(), Cos(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosSignFromQuadrant(), DemoteTo(), Exp(), Expm1(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpPoly(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpReduce(), Fill(), Find(), FirstN(), Generate(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_even_mcols_53(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_odd_mcols_53(), hwy::HWY_NAMESPACE::detail::Idx16x8FromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), IndicesFromVec(), Inf(), hwy::HWY_NAMESPACE::detail::InsertLane(), InsertLane(), IsFinite(), IsInf(), hwy::HWY_NAMESPACE::impl::Log(), Log10(), Log1p(), Log2(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::Log2p1NoSubnormal(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::LogPoly(), MaskForDist(), MaxOfLanes(), hwy::HWY_NAMESPACE::detail::MaxOfLanes(), hwy::HWY_NAMESPACE::detail::MaxU(), MinOfLanes(), hwy::HWY_NAMESPACE::detail::MinOfLanes(), hwy::HWY_NAMESPACE::detail::MinU(), MulEven(), MulOdd(), NaN(), operator>(), operator>>(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::Poly(), PopulationCount(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::Pow2I(), PromoteTo(), Replace(), ReplaceIf(), Round(), SafeFillN(), Set(), hwy::HWY_NAMESPACE::detail::TraitsLane< Order >::SetKey(), ShiftLeft(), ShiftLeftSame(), ShiftRight(), ShiftRightSame(), SignBit(), Sin(), Sinh(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), StoreInterleaved3(), SumOfLanes(), SumsOf8(), TableLookupLanes(), Tanh(), grk::HWY_NAMESPACE::DecompressDcShiftIrrev::transform(), grk::HWY_NAMESPACE::DecompressDcShiftRev::transform(), grk::HWY_NAMESPACE::DecompressRev::transform(), grk::HWY_NAMESPACE::DecompressIrrev::transform(), grk::HWY_NAMESPACE::CompressRev::transform(), grk::HWY_NAMESPACE::CompressIrrev::transform(), hwy::HWY_NAMESPACE::detail::UseInt(), VecFromMask(), and Zero().

◆ Set() [22/34]

template<size_t N, int kPow2>
decltype(Set(Simd< uint16_t, N, kPow2 >(), 0)) hwy::HWY_NAMESPACE::Set ( Simd< bfloat16_t, N, kPow2 >  d,
bfloat16_t  arg 
)

References hwy::bfloat16_t::bits, d, and Set().

◆ Set() [23/34]

template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Set ( Simd< double, N, 0 >  ,
const double  t 
)

◆ Set() [24/34]

template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Set ( Simd< float, N, 0 >  ,
const float  t 
)

◆ Set() [25/34]

template<size_t N, HWY_IF_LE128(int16_t, N) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Set ( Simd< int16_t, N, 0 >  ,
const int16_t  t 
)

◆ Set() [26/34]

template<size_t N, HWY_IF_LE128(int32_t, N) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Set ( Simd< int32_t, N, 0 >  ,
const int32_t  t 
)

◆ Set() [27/34]

template<size_t N, HWY_IF_LE128(int64_t, N) >
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Set ( Simd< int64_t, N, 0 >  ,
const int64_t  t 
)

◆ Set() [28/34]

template<size_t N, HWY_IF_LE128(int8_t, N) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Set ( Simd< int8_t, N, 0 >  ,
const int8_t  t 
)

◆ Set() [29/34]

template<typename T , size_t N, typename T2 >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Set ( Simd< T, N, 0 >  ,
const T2  t 
)

References N, and v.

◆ Set() [30/34]

template<size_t N, HWY_IF_LE128(uint16_t, N) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::Set ( Simd< uint16_t, N, 0 >  ,
const uint16_t  t 
)

◆ Set() [31/34]

template<size_t N, HWY_IF_LE128(uint32_t, N) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::Set ( Simd< uint32_t, N, 0 >  ,
const uint32_t  t 
)

◆ Set() [32/34]

template<size_t N, HWY_IF_LE128(uint64_t, N) >
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::Set ( Simd< uint64_t, N, 0 >  ,
const uint64_t  t 
)

◆ Set() [33/34]

template<size_t N, HWY_IF_LE128(uint8_t, N) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::Set ( Simd< uint8_t, N, 0 >  ,
const uint8_t  t 
)

◆ Set() [34/34]

template<typename T , typename T2 >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Set ( Sisd< T >  ,
const T2  t 
)

◆ SetTableIndices() [1/6]

template<typename T , typename TI >
HWY_API Indices512< T > hwy::HWY_NAMESPACE::SetTableIndices ( const Full512< T >  d,
const TI *  idx 
)

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [2/6]

template<class D , typename TI >
HWY_API VFromD< RebindToUnsigned< D > > hwy::HWY_NAMESPACE::SetTableIndices ( d,
const TI *  idx 
)

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [3/6]

template<typename T , typename TI >
HWY_API Indices256< T > hwy::HWY_NAMESPACE::SetTableIndices ( Full256< T >  d,
const TI *  idx 
)

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [4/6]

template<typename T , size_t N, typename TI , HWY_IF_LE128(T, N) >
HWY_API Indices128< T, N > hwy::HWY_NAMESPACE::SetTableIndices ( Simd< T, N, 0 >  d,
const TI *  idx 
)

References d, IndicesFromVec(), and LoadU().

Referenced by Compress(), ConcatEven(), and ConcatOdd().

◆ SetTableIndices() [5/6]

template<typename T , size_t N, typename TI >
HWY_API Indices128< T, N > hwy::HWY_NAMESPACE::SetTableIndices ( Simd< T, N, 0 >  d,
const TI *  idx 
)

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [6/6]

template<typename T , typename TI >
HWY_API Indices1< T > hwy::HWY_NAMESPACE::SetTableIndices ( Sisd< T >  d,
const TI *  idx 
)

References d, IndicesFromVec(), and LoadU().

◆ ShiftLeft() [1/23]

template<int kBits, size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< int16_t, N v)

References v.

◆ ShiftLeft() [2/23]

template<int kBits, size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< int32_t, N v)

References v.

◆ ShiftLeft() [3/23]

template<int kBits, size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< int64_t, N v)

References v.

◆ ShiftLeft() [4/23]

template<int kBits, typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< T, N v)

References Set(), and v.

◆ ShiftLeft() [5/23]

template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< uint16_t, N v)

References v.

◆ ShiftLeft() [6/23]

template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< uint32_t, N v)

References v.

◆ ShiftLeft() [7/23]

template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< uint64_t, N v)

References v.

◆ ShiftLeft() [8/23]

template<int kBits, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec1< T >  v)

References v.

◆ ShiftLeft() [9/23]

template<int kBits>
HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< int16_t >  v)

References v.

◆ ShiftLeft() [10/23]

template<int kBits>
HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< int32_t >  v)

References v.

◆ ShiftLeft() [11/23]

template<int kBits>
HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< int64_t >  v)

References v.

◆ ShiftLeft() [12/23]

template<int kBits, typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< T >  v)

References Set(), and v.

◆ ShiftLeft() [13/23]

template<int kBits>
HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< uint16_t >  v)

References v.

◆ ShiftLeft() [14/23]

template<int kBits>
HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< uint32_t >  v)

References v.

◆ ShiftLeft() [15/23]

template<int kBits>
HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< uint64_t >  v)

References v.

◆ ShiftLeft() [16/23]

template<int kBits>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int16_t >  v)

References v.

◆ ShiftLeft() [17/23]

template<int kBits>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int32_t >  v)

References v.

◆ ShiftLeft() [18/23]

template<int kBits>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int64_t >  v)

References v.

◆ ShiftLeft() [19/23]

template<int kBits, typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< T >  v)

References BitCast(), Set(), and v.

◆ ShiftLeft() [20/23]

template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint16_t >  v)

References v.

◆ ShiftLeft() [21/23]

template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint32_t >  v)

References v.

◆ ShiftLeft() [22/23]

template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint64_t >  v)

References v.

◆ ShiftLeft() [23/23]

template<int kBits, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeft ( Vec128< T, N v)

◆ ShiftLeftBytes() [1/9]

template<int kBytes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftBytes ( const D  d,
const V  v 
)

References BitCast(), d, and v.

◆ ShiftLeftBytes() [2/9]

template<int kBytes, class V >
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftBytes ( const V  v)

References v.

◆ ShiftLeftBytes() [3/9]

template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftBytes ( const Vec128< T, N v)

References v.

◆ ShiftLeftBytes() [4/9]

template<int kBytes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftBytes ( const Vec512< T >  v)

References v.

◆ ShiftLeftBytes() [5/9]

template<int kBytes, class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftLeftBytes ( d,
const VFromD< D >  v 
)

References BitCast(), d, and v.

◆ ShiftLeftBytes() [6/9]

template<int kBytes, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftBytes ( Full256< T >  ,
Vec256< T >  v 
)

References v.

◆ ShiftLeftBytes() [7/9]

template<int kBytes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftBytes ( Full512< T >  ,
const Vec512< T >  v 
)

References v.

◆ ShiftLeftBytes() [8/9]

template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftBytes ( Simd< T, N, 0 >  ,
Vec128< T, N v 
)

References N, and v.

Referenced by CombineShiftRightBytes(), and ShiftLeftLanes().

◆ ShiftLeftBytes() [9/9]

template<int kBytes, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftBytes ( Vec256< T >  v)

References v.

◆ ShiftLeftLanes() [1/8]

template<size_t kLanes, class V >
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftLanes ( const V  v)

References v.

◆ ShiftLeftLanes() [2/8]

template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftLanes ( const Vec128< T, N v)

References v.

◆ ShiftLeftLanes() [3/8]

template<int kLanes, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftLanes ( const Vec256< T >  v)

References v.

◆ ShiftLeftLanes() [4/8]

template<int kLanes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftLanes ( const Vec512< T >  v)

References v.

◆ ShiftLeftLanes() [5/8]

template<size_t kLanes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftLanes ( d,
const V  v 
)

References d, FirstN(), IfThenElse(), v, and Zero().

◆ ShiftLeftLanes() [6/8]

template<int kLanes, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftLanes ( Full256< T >  d,
const Vec256< T >  v 
)

References BitCast(), d, ShiftLeftBytes(), and v.

◆ ShiftLeftLanes() [7/8]

template<int kLanes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftLanes ( Full512< T >  d,
const Vec512< T >  v 
)

References BitCast(), d, ShiftLeftBytes(), and v.

◆ ShiftLeftLanes() [8/8]

template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftLanes ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References BitCast(), d, ShiftLeftBytes(), and v.

◆ ShiftLeftSame() [1/23]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< int16_t, N v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [2/23]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< int32_t, N v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [3/23]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< int64_t, N v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [4/23]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< T, N v,
const int  bits 
)

References Set(), ShiftLeftSame(), and v.

◆ ShiftLeftSame() [5/23]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< T, N v,
int  bits 
)

◆ ShiftLeftSame() [6/23]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< uint16_t, N v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [7/23]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< uint32_t, N v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [8/23]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< uint64_t, N v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [9/23]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec1< T >  v,
int  bits 
)

References v.

◆ ShiftLeftSame() [10/23]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int16_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [11/23]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int32_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [12/23]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int64_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [13/23]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< T >  v,
const int  bits 
)

References Set(), ShiftLeftSame(), and v.

◆ ShiftLeftSame() [14/23]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint16_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [15/23]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint32_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [16/23]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint64_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [17/23]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int16_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [18/23]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int32_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [19/23]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int64_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [20/23]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< T >  v,
const int  bits 
)

References BitCast(), Set(), ShiftLeftSame(), and v.

◆ ShiftLeftSame() [21/23]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint16_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [22/23]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint32_t >  v,
const int  bits 
)

References v.

◆ ShiftLeftSame() [23/23]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint64_t >  v,
const int  bits 
)

References v.

◆ ShiftRight() [1/26]

template<int kBits, size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< int16_t, N v)

References v.

◆ ShiftRight() [2/26]

template<int kBits, size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< int32_t, N v)

References v.

◆ ShiftRight() [3/26]

template<int kBits, size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< int64_t, N v)

References v.

◆ ShiftRight() [4/26]

template<int kBits, size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< int8_t, N v)

References BitCast(), Set(), and v.

◆ ShiftRight() [5/26]

template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint16_t, N v)

References v.

◆ ShiftRight() [6/26]

template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint32_t, N v)

References v.

◆ ShiftRight() [7/26]

template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint64_t, N v)

References v.

◆ ShiftRight() [8/26]

template<int kBits, size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint8_t, N v)

References Set(), and v.

◆ ShiftRight() [9/26]

template<int kBits, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftRight ( const Vec1< T >  v)

References BitCast(), BroadcastSignBit(), and v.

◆ ShiftRight() [10/26]

template<int kBits>
HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int16_t >  v)

References v.

◆ ShiftRight() [11/26]

template<int kBits>
HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int32_t >  v)

References v.

◆ ShiftRight() [12/26]

template<int kBits>
HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int64_t >  v)

◆ ShiftRight() [13/26]

template<int kBits>
HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int8_t >  v)

References BitCast(), Set(), and v.

◆ ShiftRight() [14/26]

template<int kBits>
HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< uint16_t >  v)

References v.

◆ ShiftRight() [15/26]

template<int kBits>
HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< uint32_t >  v)

References v.

◆ ShiftRight() [16/26]

template<int kBits>
HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< uint64_t >  v)

References v.

◆ ShiftRight() [17/26]

template<int kBits>
HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< uint8_t >  v)

References Set(), and v.

◆ ShiftRight() [18/26]

template<int kBits>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int16_t >  v)

References v.

◆ ShiftRight() [19/26]

template<int kBits>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int32_t >  v)

References v.

◆ ShiftRight() [20/26]

template<int kBits>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int64_t >  v)

References v.

◆ ShiftRight() [21/26]

template<int kBits>
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int8_t >  v)

References BitCast(), Set(), and v.

◆ ShiftRight() [22/26]

template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint16_t >  v)

References v.

◆ ShiftRight() [23/26]

template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint32_t >  v)

References v.

◆ ShiftRight() [24/26]

template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint64_t >  v)

References v.

◆ ShiftRight() [25/26]

template<int kBits>
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint8_t >  v)

References Set(), and v.

◆ ShiftRight() [26/26]

template<int kBits, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRight ( Vec128< T, N v)

References N, and v.

Referenced by BroadcastSignBit(), and IsFinite().

◆ ShiftRightBytes() [1/4]

template<int kBytes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftRightBytes ( const D  d,
const V  v 
)

References BitCast(), d, and v.

◆ ShiftRightBytes() [2/4]

template<int kBytes, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftRightBytes ( Full256< T >  ,
Vec256< T >  v 
)

References v.

◆ ShiftRightBytes() [3/4]

template<int kBytes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftRightBytes ( Full512< T >  ,
const Vec512< T >  v 
)

References v.

◆ ShiftRightBytes() [4/4]

template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRightBytes ( Simd< T, N, 0 >  ,
Vec128< T, N v 
)

References N, and v.

Referenced by ShiftRightLanes(), and UpperHalf().

◆ ShiftRightLanes() [1/5]

template<size_t kLanes, typename T , size_t N, int kPow2, class V = VFromD<Simd<T, N, kPow2>>>
HWY_API V hwy::HWY_NAMESPACE::ShiftRightLanes ( const Simd< T, N, kPow2 >  d,
v 
)

◆ ShiftRightLanes() [2/5]

template<size_t kLanes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftRightLanes ( d,
v 
)

◆ ShiftRightLanes() [3/5]

template<int kLanes, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftRightLanes ( Full256< T >  d,
const Vec256< T >  v 
)

References BitCast(), d, ShiftRightBytes(), and v.

◆ ShiftRightLanes() [4/5]

template<int kLanes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftRightLanes ( Full512< T >  d,
const Vec512< T >  v 
)

References BitCast(), d, ShiftRightBytes(), and v.

◆ ShiftRightLanes() [5/5]

template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRightLanes ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

References BitCast(), d, ShiftRightBytes(), and v.

◆ ShiftRightSame() [1/26]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< int16_t, N v,
const int  bits 
)

References v.

◆ ShiftRightSame() [2/26]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< int32_t, N v,
const int  bits 
)

References v.

◆ ShiftRightSame() [3/26]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< int64_t, N v,
const int  bits 
)

References v.

◆ ShiftRightSame() [4/26]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< T, N v,
int  bits 
)

References Set(), and v.

Referenced by operator>>(), and ShiftRightSame().

◆ ShiftRightSame() [5/26]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< uint16_t, N v,
const int  bits 
)

References v.

◆ ShiftRightSame() [6/26]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< uint32_t, N v,
const int  bits 
)

References v.

◆ ShiftRightSame() [7/26]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< uint64_t, N v,
const int  bits 
)

References v.

◆ ShiftRightSame() [8/26]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec1< T >  v,
int  bits 
)

References BitCast(), BroadcastSignBit(), and v.

◆ ShiftRightSame() [9/26]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< int16_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [10/26]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< int32_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [11/26]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< int64_t >  v,
const int  bits 
)

◆ ShiftRightSame() [12/26]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< uint16_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [13/26]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< uint32_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [14/26]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< uint64_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [15/26]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int16_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [16/26]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int32_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [17/26]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int64_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [18/26]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint16_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [19/26]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint32_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [20/26]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint64_t >  v,
const int  bits 
)

References v.

◆ ShiftRightSame() [21/26]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec128< int8_t, N v,
const int  bits 
)

References BitCast(), Set(), ShiftRightSame(), and v.

◆ ShiftRightSame() [22/26]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec128< uint8_t, N v,
const int  bits 
)

References Set(), ShiftRightSame(), and v.

◆ ShiftRightSame() [23/26]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec256< int8_t >  v,
const int  bits 
)

References BitCast(), Set(), ShiftRightSame(), and v.

◆ ShiftRightSame() [24/26]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec256< uint8_t >  v,
const int  bits 
)

References Set(), ShiftRightSame(), and v.

◆ ShiftRightSame() [25/26]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec512< int8_t >  v,
const int  bits 
)

References BitCast(), Set(), ShiftRightSame(), and v.

◆ ShiftRightSame() [26/26]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec512< uint8_t >  v,
const int  bits 
)

References BitCast(), Set(), ShiftRightSame(), and v.

◆ Shl()

template<class V >
V hwy::HWY_NAMESPACE::Shl ( a,
b 
)

Referenced by Compress().

◆ Shr()

template<class V >
V hwy::HWY_NAMESPACE::Shr ( a,
b 
)

◆ Shuffle01() [1/12]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle01 ( const V  v)

References BitCast(), d, and v.

◆ Shuffle01() [2/12]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< double >  v)

References v.

◆ Shuffle01() [3/12]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< int64_t >  v)

References v.

◆ Shuffle01() [4/12]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< T >  v)

◆ Shuffle01() [5/12]

template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< T >  v)

References Reverse2(), and v.

◆ Shuffle01() [6/12]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< uint64_t >  v)

References v.

◆ Shuffle01() [7/12]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec256< double >  v)

References v.

◆ Shuffle01() [8/12]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec256< int64_t >  v)

References v.

◆ Shuffle01() [9/12]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec256< uint64_t >  v)

References v.

◆ Shuffle01() [10/12]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec512< double >  v)

References v.

◆ Shuffle01() [11/12]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec512< int64_t >  v)

References v.

◆ Shuffle01() [12/12]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec512< uint64_t >  v)

References v.

◆ Shuffle0123() [1/11]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle0123 ( const V  v)

References Shuffle1032(), Shuffle2301(), and v.

◆ Shuffle0123() [2/11]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< float >  v)

References v.

◆ Shuffle0123() [3/11]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< int32_t >  v)

References v.

◆ Shuffle0123() [4/11]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< T >  v)

References Shuffle1032(), Shuffle2301(), and v.

Referenced by Reverse4(), and Reverse8().

◆ Shuffle0123() [5/11]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< uint32_t >  v)

References v.

◆ Shuffle0123() [6/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec256< float >  v)

References v.

◆ Shuffle0123() [7/11]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec256< int32_t >  v)

References v.

◆ Shuffle0123() [8/11]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec256< uint32_t >  v)

References v.

◆ Shuffle0123() [9/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec512< float >  v)

References v.

◆ Shuffle0123() [10/11]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec512< int32_t >  v)

References v.

◆ Shuffle0123() [11/11]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec512< uint32_t >  v)

References v.

◆ Shuffle0321() [1/11]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle0321 ( const V  v)

References BitCast(), d, and v.

◆ Shuffle0321() [2/11]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec128< float >  v)

References v.

◆ Shuffle0321() [3/11]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec128< int32_t >  v)

References v.

◆ Shuffle0321() [4/11]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec128< T >  v)

◆ Shuffle0321() [5/11]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec128< uint32_t >  v)

References v.

◆ Shuffle0321() [6/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec256< float >  v)

References v.

◆ Shuffle0321() [7/11]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec256< int32_t >  v)

References v.

◆ Shuffle0321() [8/11]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec256< uint32_t >  v)

References v.

◆ Shuffle0321() [9/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec512< float >  v)

References v.

◆ Shuffle0321() [10/11]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec512< int32_t >  v)

References v.

◆ Shuffle0321() [11/11]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec512< uint32_t >  v)

References v.

◆ Shuffle1032() [1/12]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle1032 ( const V  v)

References BitCast(), d, and v.

◆ Shuffle1032() [2/12]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< float >  v)

References v.

◆ Shuffle1032() [3/12]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< int32_t >  v)

References v.

◆ Shuffle1032() [4/12]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< T >  v)

◆ Shuffle1032() [5/12]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< T >  v)

◆ Shuffle1032() [6/12]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< uint32_t >  v)

References v.

◆ Shuffle1032() [7/12]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec256< float >  v)

References v.

◆ Shuffle1032() [8/12]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec256< int32_t >  v)

References v.

◆ Shuffle1032() [9/12]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec256< uint32_t >  v)

References v.

◆ Shuffle1032() [10/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec512< float >  v)

References v.

◆ Shuffle1032() [11/12]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec512< int32_t >  v)

References v.

◆ Shuffle1032() [12/12]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec512< uint32_t >  v)

References v.

◆ Shuffle2103() [1/11]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle2103 ( const V  v)

References BitCast(), d, and v.

◆ Shuffle2103() [2/11]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< float >  v)

References v.

◆ Shuffle2103() [3/11]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< int32_t >  v)

References v.

◆ Shuffle2103() [4/11]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< T >  v)

References v.

◆ Shuffle2103() [5/11]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< uint32_t >  v)

References v.

◆ Shuffle2103() [6/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec256< float >  v)

References v.

◆ Shuffle2103() [7/11]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec256< int32_t >  v)

References v.

◆ Shuffle2103() [8/11]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec256< uint32_t >  v)

References v.

◆ Shuffle2103() [9/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec512< float >  v)

References v.

◆ Shuffle2103() [10/11]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec512< int32_t >  v)

References v.

◆ Shuffle2103() [11/11]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec512< uint32_t >  v)

References v.

◆ Shuffle2301() [1/14]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle2301 ( const V  v)

References d, Reverse2(), and v.

◆ Shuffle2301() [2/14]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< float >  v)

References v.

◆ Shuffle2301() [3/14]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< float, N v)

References N, and v.

◆ Shuffle2301() [4/14]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< int32_t >  v)

References v.

◆ Shuffle2301() [5/14]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< T, N v)

References N, Reverse2(), and v.

◆ Shuffle2301() [6/14]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< T, N v)

References N, and v.

◆ Shuffle2301() [7/14]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< uint32_t >  v)

References v.

◆ Shuffle2301() [8/14]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec256< float >  v)

References v.

◆ Shuffle2301() [9/14]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec256< T >  v)

References v.

◆ Shuffle2301() [10/14]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec512< float >  v)

References v.

◆ Shuffle2301() [11/14]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec512< T >  v)

References v.

◆ Shuffle2301() [12/14]

HWY_API Vec64< float > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec64< float >  v)

References v.

◆ Shuffle2301() [13/14]

HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec64< int32_t >  v)

References v.

◆ Shuffle2301() [14/14]

HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec64< uint32_t >  v)

References v.

Referenced by MulEven(), MulOdd(), Reverse(), Reverse4(), and Shuffle0123().

◆ SignBit()

template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::SignBit ( d)

◆ Sin()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Sin ( const D  d,
x 
)

Highway SIMD version of std::sin(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: [-39000, +39000]

Returns
sine of 'x'

References Abs(), d, MulAdd(), Set(), Xor(), and Zero().

Referenced by CallSin().

◆ Sinh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Sinh ( const D  d,
x 
)

Highway SIMD version of std::sinh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 4 Valid Range: float32[-88.7228, +88.7228], float64[-709, +709]

Returns
hyperbolic sine of 'x'

References Add(), And(), d, Div(), Expm1(), Mul(), Set(), SignBit(), and Xor().

Referenced by CallSinh().

◆ Sort()

template<class D , class Traits , typename T >
void hwy::HWY_NAMESPACE::Sort ( d,
Traits  st,
T *HWY_RESTRICT  keys,
size_t  num,
T *HWY_RESTRICT  buf 
)

◆ Sqrt() [1/11]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Sqrt ( const Vec128< double, N v)

References v.

◆ Sqrt() [2/11]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::Sqrt ( const Vec128< float, 1 >  v)

References v.

◆ Sqrt() [3/11]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Sqrt ( const Vec128< float, N v)

◆ Sqrt() [4/11]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::Sqrt ( const Vec1< double >  v)

References v.

◆ Sqrt() [5/11]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::Sqrt ( const Vec1< float >  v)

References v.

◆ Sqrt() [6/11]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Sqrt ( const Vec256< double >  v)

References v.

◆ Sqrt() [7/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Sqrt ( const Vec256< float >  v)

References v.

◆ Sqrt() [8/11]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Sqrt ( const Vec512< double >  v)

References v.

◆ Sqrt() [9/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Sqrt ( const Vec512< float >  v)

References v.

◆ Sqrt() [10/11]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::Sqrt ( const Vec64< double >  v)

References v.

◆ Sqrt() [11/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Sqrt ( Vec128< T, N v)

References N, and v.

◆ Store() [1/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< double >  v,
Full128< double >  ,
double *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [2/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< float >  v,
Full128< float >  ,
float *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [3/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< float, 1 >  v,
Full32< float >  ,
float *HWY_RESTRICT  p 
)

References v.

◆ Store() [4/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< float, 1 >  v,
Simd< float, 1, 0 >  ,
float *HWY_RESTRICT  p 
)

References v.

◆ Store() [5/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< float, 2 >  v,
Full64< float >  ,
float *HWY_RESTRICT  p 
)

References v.

◆ Store() [6/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec1< T >  v,
Sisd< T >  ,
T *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [7/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec256< double >  v,
Full256< double >  ,
double *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [8/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec256< float >  v,
Full256< float >  ,
float *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [9/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec512< double >  v,
Full512< double >  ,
double *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [10/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec512< float >  v,
Full512< float >  ,
float *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [11/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [12/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec64< double >  v,
Full64< double >  ,
double *HWY_RESTRICT  p 
)

References v.

◆ Store() [13/19]

template<size_t N, int kPow2>
HWY_API void hwy::HWY_NAMESPACE::Store ( svuint16_t  v,
Simd< bfloat16_t, N, kPow2 >  d,
bfloat16_t *HWY_RESTRICT  p 
)

References d, HWY_RESTRICT, Store(), and v.

◆ Store() [14/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< T >  v,
Full128< T >  ,
T *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [15/19]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< T, N v,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  aligned 
)

◆ Store() [16/19]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< T, N v,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  p 
)

References v.

◆ Store() [17/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  aligned 
)

References v.

◆ Store() [18/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec64< T >  v,
Full64< T >  ,
T *HWY_RESTRICT  p 
)

References v.

◆ Store() [19/19]

template<size_t N, int kPow2>
HWY_API void hwy::HWY_NAMESPACE::Store ( VFromD< Simd< uint16_t, N, kPow2 > >  v,
Simd< bfloat16_t, N, kPow2 >  d,
bfloat16_t *HWY_RESTRICT  p 
)

References d, HWY_RESTRICT, Store(), and v.

◆ StoreInterleaved2() [1/5]

template<typename T , size_t N, class V , HWY_IF_GE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( const V  v0,
const V  v1,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved2() [2/5]

template<typename T , size_t N, HWY_IF_STORE_INT(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( const Vec128< T, N v0,
const Vec128< T, N v1,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved2() [3/5]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( const Vec128< T, N v0,
const Vec128< T, N v1,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved2() [4/5]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( const Vec1< T >  v0,
const Vec1< T >  v1,
Sisd< T >  d,
T *HWY_RESTRICT  unaligned 
)

References d, and StoreU().

◆ StoreInterleaved2() [5/5]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( const Vec64< T >  part0,
const Vec64< T >  part1,
Full64< T >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [1/8]

template<typename T , size_t N, class V , HWY_IF_LANE_SIZE(T, 1) , HWY_IF_GE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const V  v0,
const V  v1,
const V  v2,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [2/8]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec128< T, 1 >  v0,
const Vec128< T, 1 >  v1,
const Vec128< T, 1 >  v2,
Simd< T, 1, 0 >  d,
T *HWY_RESTRICT  unaligned 
)

References d, and StoreU().

◆ StoreInterleaved3() [3/8]

template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec128< T, 2 >  part0,
const Vec128< T, 2 >  part1,
const Vec128< T, 2 >  part2,
Simd< T, 2, 0 >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [4/8]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) , HWY_IF_LE32(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec128< T, N part0,
const Vec128< T, N part1,
const Vec128< T, N part2,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [5/8]

template<typename T , size_t N, HWY_IF_STORE_INT(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec128< T, N v0,
const Vec128< T, N v1,
const Vec128< T, N v2,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [6/8]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec128< T, N v0,
const Vec128< T, N v1,
const Vec128< T, N v2,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [7/8]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec1< T >  v0,
const Vec1< T >  v1,
const Vec1< T >  v2,
Sisd< T >  d,
T *HWY_RESTRICT  unaligned 
)

References d, and StoreU().

◆ StoreInterleaved3() [8/8]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec64< T >  part0,
const Vec64< T >  part1,
const Vec64< T >  part2,
Full64< T >  d,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [1/5]

template<typename T , size_t N, class V , HWY_IF_NOT_LANE_SIZE(T, 8) , HWY_IF_GE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const V  v0,
const V  v1,
const V  v2,
const V  v3,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [2/5]

template<typename T , size_t N, HWY_IF_STORE_INT(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec128< T, N v0,
const Vec128< T, N v1,
const Vec128< T, N v2,
const Vec128< T, N v3,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [3/5]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec128< T, N v0,
const Vec128< T, N v1,
const Vec128< T, N v2,
const Vec128< T, N v3,
Simd< T, N, 0 >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [4/5]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec1< T >  v0,
const Vec1< T >  v1,
const Vec1< T >  v2,
const Vec1< T >  v3,
Sisd< T >  d,
T *HWY_RESTRICT  unaligned 
)

References d, and StoreU().

◆ StoreInterleaved4() [5/5]

template<typename T , HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec64< T >  part0,
const Vec64< T >  part1,
const Vec64< T >  part2,
const Vec64< T >  part3,
Full64< T >  ,
T *HWY_RESTRICT  unaligned 
)

◆ StoreMaskBits() [1/5]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( const Full256< T >  ,
const Mask256< T >  mask,
uint8_t *  bits 
)

◆ StoreMaskBits() [2/5]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( const Full512< T >  ,
const Mask512< T >  mask,
uint8_t *  bits 
)

◆ StoreMaskBits() [3/5]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( d,
svbool_t  m,
uint8_t *  bits 
)

◆ StoreMaskBits() [4/5]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( Simd< T, N, 0 >  ,
const Mask128< T, N mask,
uint8_t *  bits 
)

◆ StoreMaskBits() [5/5]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( Sisd< T >  d,
const Mask1< T >  mask,
uint8_t *  bits 
)

References AllTrue(), and d.

◆ StoreU() [1/41]

template<class V , class D >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const V  v,
d,
TFromD< D > *HWY_RESTRICT  p 
)

References d, Store(), and v.

◆ StoreU() [2/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< double >  v,
Full128< double >  ,
double *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [3/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< float >  v,
Full128< float >  ,
float *HWY_RESTRICT  unaligned 
)

References v.

◆ StoreU() [4/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int16_t >  v,
Full128< int16_t >  ,
int16_t *HWY_RESTRICT  unaligned 
)

References v.

◆ StoreU() [5/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int16_t, 1 >  v,
Simd< int16_t, 1, 0 >  ,
int16_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [6/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int32_t >  v,
Full128< int32_t >  ,
int32_t *HWY_RESTRICT  unaligned 
)

References v.

◆ StoreU() [7/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int64_t >  v,
Full128< int64_t >  ,
int64_t *HWY_RESTRICT  unaligned 
)

References v.

◆ StoreU() [8/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int8_t >  v,
Full128< int8_t >  ,
int8_t *HWY_RESTRICT  unaligned 
)

References v.

◆ StoreU() [9/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int8_t, 1 >  v,
Simd< int8_t, 1, 0 >  ,
int8_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [10/41]

template<typename T , HWY_IF_LANE_SIZE_LT(T, 2) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< T, 2 >  v,
Simd< T, 2, 0 >  d,
T *HWY_RESTRICT  p 
)

References BitCast(), d, GetLane(), and v.

◆ StoreU() [11/41]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< T, N v,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  p 
)

References d, Store(), and v.

◆ StoreU() [12/41]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< T, N v,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  p 
)

References d, Store(), and v.

◆ StoreU() [13/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint16_t >  v,
Full128< uint16_t >  ,
uint16_t *HWY_RESTRICT  unaligned 
)

References v.

◆ StoreU() [14/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint16_t, 1 >  v,
Simd< uint16_t, 1, 0 >  ,
uint16_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [15/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint32_t >  v,
Full128< uint32_t >  ,
uint32_t *HWY_RESTRICT  unaligned 
)

References v.

◆ StoreU() [16/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint64_t >  v,
Full128< uint64_t >  ,
uint64_t *HWY_RESTRICT  unaligned 
)

References v.

◆ StoreU() [17/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint8_t >  v,
Full128< uint8_t >  ,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [18/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint8_t, 1 >  v,
Simd< uint8_t, 1, 0 >  ,
uint8_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [19/41]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec1< T >  v,
Sisd< T >  d,
T *HWY_RESTRICT  p 
)

References d, Store(), and v.

◆ StoreU() [20/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec256< double >  v,
Full256< double >  ,
double *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [21/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec256< float >  v,
Full256< float >  ,
float *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [22/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec32< float >  v,
Full32< float >  ,
float *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [23/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec32< int32_t >  v,
Full32< int32_t >  ,
int32_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [24/41]

template<typename T , HWY_IF_LANE_SIZE_LT(T, 4) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec32< T >  v,
Full32< T >  d,
T *HWY_RESTRICT  p 
)

References BitCast(), d, GetLane(), and v.

◆ StoreU() [25/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec32< uint32_t >  v,
Full32< uint32_t >  ,
uint32_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [26/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec512< double >  v,
Full512< double >  ,
double *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [27/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec512< float >  v,
Full512< float >  ,
float *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [28/41]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [29/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< float >  v,
Full64< float >  ,
float *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [30/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< int16_t >  v,
Full64< int16_t >  ,
int16_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [31/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< int32_t >  v,
Full64< int32_t >  ,
int32_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [32/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< int64_t >  v,
Full64< int64_t >  ,
int64_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [33/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< int8_t >  v,
Full64< int8_t >  ,
int8_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [34/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< uint16_t >  v,
Full64< uint16_t >  ,
uint16_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [35/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< uint32_t >  v,
Full64< uint32_t >  ,
uint32_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [36/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< uint64_t >  v,
Full64< uint64_t >  ,
uint64_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [37/41]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec64< uint8_t >  v,
Full64< uint8_t >  ,
uint8_t *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [38/41]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< bfloat16_t, N v,
Simd< bfloat16_t, N, 0 >  d,
bfloat16_t *HWY_RESTRICT  p 
)

References d, StoreU(), and v.

◆ StoreU() [39/41]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< float16_t, N v,
Simd< float16_t, N, 0 >  d,
float16_t *HWY_RESTRICT  p 
)

References d, StoreU(), and v.

◆ StoreU() [40/41]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< T >  v,
Full128< T >  ,
T *HWY_RESTRICT  p 
)

References v.

◆ StoreU() [41/41]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec256< T >  v,
Full256< T >  d,
T *HWY_RESTRICT  p 
)

References d, Store(), and v.

◆ Stream() [1/11]

template<class V , class D , typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream ( const V  v,
d,
T *HWY_RESTRICT  aligned 
)

References d, Store(), and v.

◆ Stream() [2/11]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec128< double, N v,
Simd< double, N, 0 >  ,
double *HWY_RESTRICT  aligned 
)

References v.

◆ Stream() [3/11]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec128< float, N v,
Simd< float, N, 0 >  ,
float *HWY_RESTRICT  aligned 
)

References v.

◆ Stream() [4/11]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec128< T, N v,
Simd< T, N, 0 >  d,
T *HWY_RESTRICT  aligned 
)

References d, Store(), and v.

◆ Stream() [5/11]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec1< T >  v,
Sisd< T >  d,
T *HWY_RESTRICT  aligned 
)

References d, Store(), and v.

◆ Stream() [6/11]

HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec256< double >  v,
Full256< double >  ,
double *HWY_RESTRICT  aligned 
)

References v.

◆ Stream() [7/11]

HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec256< float >  v,
Full256< float >  ,
float *HWY_RESTRICT  aligned 
)

References v.

◆ Stream() [8/11]

HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec512< double >  v,
Full512< double >  ,
double *HWY_RESTRICT  aligned 
)

References v.

◆ Stream() [9/11]

HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec512< float >  v,
Full512< float >  ,
float *HWY_RESTRICT  aligned 
)

References v.

◆ Stream() [10/11]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  aligned 
)

References v.

◆ Stream() [11/11]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream ( Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  aligned 
)

References v.

◆ Sub()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Sub ( a,
b 
)

◆ SumOfLanes() [1/11]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SumOfLanes ( d,
const VFromD< D >  v 
)

References d, v, and Zero().

◆ SumOfLanes() [2/11]

template<class D , class V >
V hwy::HWY_NAMESPACE::SumOfLanes ( d,
v 
)

◆ SumOfLanes() [3/11]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::SumOfLanes ( Full256< T >  d,
const Vec256< T >  v 
)

◆ SumOfLanes() [4/11]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::SumOfLanes ( Full512< double >  d,
Vec512< double >  v 
)

References d, Set(), and v.

◆ SumOfLanes() [5/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::SumOfLanes ( Full512< float >  d,
Vec512< float >  v 
)

References d, Set(), and v.

◆ SumOfLanes() [6/11]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::SumOfLanes ( Full512< int32_t >  d,
Vec512< int32_t >  v 
)

References d, Set(), and v.

◆ SumOfLanes() [7/11]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::SumOfLanes ( Full512< int64_t >  d,
Vec512< int64_t >  v 
)

References d, Set(), and v.

◆ SumOfLanes() [8/11]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::SumOfLanes ( Full512< uint32_t >  d,
Vec512< uint32_t >  v 
)

References d, Set(), and v.

◆ SumOfLanes() [9/11]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::SumOfLanes ( Full512< uint64_t >  d,
Vec512< uint64_t >  v 
)

References d, Set(), and v.

◆ SumOfLanes() [10/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::SumOfLanes ( Simd< T, N, 0 >  d,
const Vec128< T, N v 
)

◆ SumOfLanes() [11/11]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::SumOfLanes ( Sisd< T >  ,
const Vec1< T >  v 
)

References v.

◆ SumsOf8() [1/9]

HWY_API svuint64_t hwy::HWY_NAMESPACE::SumsOf8 ( const svuint8_t  v)

References Add(), BitCast(), v, and Zero().

◆ SumsOf8() [2/9]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec128< uint8_t >  v)

References v.

◆ SumsOf8() [3/9]

template<size_t N>
HWY_API Vec128< uint64_t,(N+7)/8 > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec128< uint8_t, N v)

◆ SumsOf8() [4/9]

template<size_t N>
HWY_API Vec128< uint64_t, N/8 > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec128< uint8_t, N v)

References Add(), And(), BitCast(), Set(), and v.

◆ SumsOf8() [5/9]

HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec1< uint8_t >  v)

References v.

◆ SumsOf8() [6/9]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec256< uint8_t >  v)

References HWY_ABORT.

◆ SumsOf8() [7/9]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec512< uint8_t >  v)

References v.

◆ SumsOf8() [8/9]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec64< uint8_t >  v)

References v.

◆ SumsOf8() [9/9]

template<class VU8 >
HWY_API VFromD< Repartition< uint64_t, DFromV< VU8 > > > hwy::HWY_NAMESPACE::SumsOf8 ( const VU8  v)

References Add(), BitCast(), and v.

◆ SwapAdjacentBlocks() [1/9]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( const V  v)

◆ SwapAdjacentBlocks() [2/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec128< T, N v)

References v.

Referenced by ReverseBlocks().

◆ SwapAdjacentBlocks() [3/9]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec1< T >  v)

References v.

◆ SwapAdjacentBlocks() [4/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec256< double >  v)

References v.

◆ SwapAdjacentBlocks() [5/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec256< float >  v)

References v.

◆ SwapAdjacentBlocks() [6/9]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec256< T >  v)

References v.

◆ SwapAdjacentBlocks() [7/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec512< double >  v)

References v.

◆ SwapAdjacentBlocks() [8/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec512< float >  v)

References v.

◆ SwapAdjacentBlocks() [9/9]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec512< T >  v)

References v.

◆ TableLookupBytes() [1/16]

template<class V , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytes ( const V  v,
const VI  idx 
)

◆ TableLookupBytes() [2/16]

template<typename T , typename TI >
HWY_API Vec128< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec128< T >  bytes,
const Vec128< TI >  from 
)

◆ TableLookupBytes() [3/16]

template<typename T , typename TI , size_t NI, HWY_IF_LE64(TI, NI) >
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec128< T >  bytes,
const Vec128< TI, NI >  from 
)

◆ TableLookupBytes() [4/16]

template<typename T , size_t N, typename TI , HWY_IF_LE64(T, N) >
HWY_API Vec128< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec128< T, N bytes,
const Vec128< TI >  from 
)

References Combine(), and TableLookupBytes().

◆ TableLookupBytes() [5/16]

template<typename T , size_t N, typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec128< T, N bytes,
const Vec256< TI >  from 
)

◆ TableLookupBytes() [6/16]

template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec128< T, N v,
const Vec128< TI, NI >  indices 
)

◆ TableLookupBytes() [7/16]

template<typename T , typename TI >
HWY_API Vec1< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec1< T >  in,
const Vec1< TI >  indices 
)

◆ TableLookupBytes() [8/16]

template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec256< T >  bytes,
const Vec128< TI, NI >  from 
)

◆ TableLookupBytes() [9/16]

template<typename T , typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec256< T >  bytes,
const Vec256< TI >  from 
)

◆ TableLookupBytes() [10/16]

template<class VT , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytes ( const VT  vt,
const VI  vi 
)

◆ TableLookupBytes() [11/16]

template<typename T , size_t N, typename TI , size_t NI, HWY_IF_LE64(T, N) , HWY_IF_LE64(TI, NI) >
HWY_API VFromD< Repartition< T, Simd< TI, NI, 0 > > > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N bytes,
Vec128< TI, NI >  from 
)

References BitCast(), and d.

◆ TableLookupBytes() [12/16]

template<typename T , size_t N, typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N bytes,
Vec512< TI >  from 
)

◆ TableLookupBytes() [13/16]

template<typename T , typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec256< T >  bytes,
Vec512< TI >  from 
)

◆ TableLookupBytes() [14/16]

template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec512< T >  bytes,
Vec128< TI, NI >  from 
)

◆ TableLookupBytes() [15/16]

template<typename T , typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec512< T >  bytes,
Vec256< TI >  from 
)

◆ TableLookupBytes() [16/16]

template<typename T , typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec512< T >  bytes,
Vec512< TI >  indices 
)

◆ TableLookupBytesOr0() [1/5]

template<class V , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const V  bytes,
const VI  from 
)

◆ TableLookupBytesOr0() [2/5]

template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const Vec128< T, N v,
const Vec128< TI, NI >  indices 
)

References TableLookupBytes(), and v.

◆ TableLookupBytesOr0() [3/5]

template<typename T , typename TI >
HWY_API Vec1< TI > hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const Vec1< T >  in,
const Vec1< TI >  indices 
)

◆ TableLookupBytesOr0() [4/5]

template<typename T , typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const Vec256< T >  bytes,
const Vec256< TI >  from 
)

◆ TableLookupBytesOr0() [5/5]

template<class VT , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const VT  vt,
const VI  idx 
)

◆ TableLookupLanes() [1/14]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec1< T >  v,
const Indices1< T >   
)

References v.

◆ TableLookupLanes() [2/14]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec256< double >  v,
const Indices256< double >  idx 
)

◆ TableLookupLanes() [3/14]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec256< float >  v,
const Indices256< float >  idx 
)

◆ TableLookupLanes() [4/14]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< double >  v,
Indices128< double >  idx 
)

◆ TableLookupLanes() [5/14]

template<size_t N, HWY_IF_GE64(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< float, N v,
Indices128< float, N idx 
)

◆ TableLookupLanes() [6/14]

template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< T >  v,
Indices128< T >  idx 
)

◆ TableLookupLanes() [7/14]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< T, 1 >  v,
Indices128< T, 1 >   
)

References v.

◆ TableLookupLanes() [8/14]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< T, N v,
Indices128< T, N idx 
)

◆ TableLookupLanes() [9/14]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< T, N v,
Indices128< T, N idx 
)

◆ TableLookupLanes() [10/14]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec256< T >  v,
Indices256< T >  idx 
)

◆ TableLookupLanes() [11/14]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec256< T >  v,
Indices256< T >  idx 
)

◆ TableLookupLanes() [12/14]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec512< double >  v,
Indices512< double >  idx 
)

◆ TableLookupLanes() [13/14]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec512< float >  v,
Indices512< float >  idx 
)

◆ TableLookupLanes() [14/14]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec512< T >  v,
Indices512< T >  idx 
)

◆ Tanh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Tanh ( const D  d,
x 
)

Highway SIMD version of std::tanh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 4 Valid Range: float32[-FLT_MAX, +FLT_MAX], float64[-DBL_MAX, +DBL_MAX]

Returns
hyperbolic tangent of 'x'

References Add(), And(), d, Div(), Expm1(), Gt(), IfThenElse(), Mul(), Set(), SignBit(), and Xor().

Referenced by CallTanh().

◆ TestBit() [1/8]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::TestBit ( const V  a,
const V  bit 
)

References And().

◆ TestBit() [2/8]

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::TestBit ( const V  a,
const V  bit 
) -> decltype(Eq(a, bit))

References And().

◆ TestBit() [3/8]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::TestBit ( const Vec128< T, N v,
const Vec128< T, N bit 
)

References v.

◆ TestBit() [4/8]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::TestBit ( const Vec1< T >  v,
const Vec1< T >  bit 
)

References v.

◆ TestBit() [5/8]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::TestBit ( const Vec512< T >  v,
const Vec512< T >  bit 
)

◆ TestBit() [6/8]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::TestBit ( Vec128< int64_t, N v,
Vec128< int64_t, N bit 
)

References v.

◆ TestBit() [7/8]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::TestBit ( Vec128< uint64_t, N v,
Vec128< uint64_t, N bit 
)

References v.

Referenced by LoadMaskBits().

◆ TestBit() [8/8]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::TestBit ( Vec256< T >  v,
Vec256< T >  bit 
)

References v.

◆ Transform()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Transform ( d,
T *HWY_RESTRICT  inout,
size_t  count,
const Func func 
)

◆ Transform1()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Transform1 ( d,
T *HWY_RESTRICT  inout,
size_t  count,
const T *HWY_RESTRICT  in1,
const Func func 
)

◆ Transform2()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Transform2 ( d,
T *HWY_RESTRICT  inout,
size_t  count,
const T *HWY_RESTRICT  in1,
const T *HWY_RESTRICT  in2,
const Func func 
)

◆ Trunc() [1/9]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Trunc ( const V  v)

◆ Trunc() [2/9]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Trunc ( const Vec128< float, N v)

◆ Trunc() [3/9]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Trunc ( const Vec128< T, N v)

◆ Trunc() [4/9]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Trunc ( const Vec1< T >  v)

References Abs(), CopySignToAbs(), and v.

◆ Trunc() [5/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Trunc ( const Vec256< double >  v)

References v.

◆ Trunc() [6/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Trunc ( const Vec256< float >  v)

References v.

◆ Trunc() [7/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Trunc ( const Vec512< double >  v)

References v.

◆ Trunc() [8/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Trunc ( const Vec512< float >  v)

References v.

◆ Trunc() [9/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Trunc ( Vec128< T, N v)

◆ U8FromU32() [1/12]

HWY_API svuint8_t hwy::HWY_NAMESPACE::U8FromU32 ( const svuint32_t  v)

References BitCast(), and v.

◆ U8FromU32() [2/12]

HWY_API Vec32< uint8_t > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec128< uint32_t >  v)

◆ U8FromU32() [3/12]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec128< uint32_t, N v)

◆ U8FromU32() [4/12]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec128< uint32_t, N v)

References DemoteTo(), and v.

◆ U8FromU32() [5/12]

HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec1< uint32_t >  v)

References DemoteTo(), and v.

◆ U8FromU32() [6/12]

HWY_API Vec128< uint8_t, 8 > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec256< uint32_t >  v)

References v.

◆ U8FromU32() [7/12]

HWY_API Vec128< uint8_t, 16 > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec512< uint32_t >  v)

◆ U8FromU32() [8/12]

HWY_API vuint8mf4_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32m1_t  v)

References Lanes(), and v.

◆ U8FromU32() [9/12]

HWY_API vuint8mf2_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32m2_t  v)

References Lanes(), and v.

◆ U8FromU32() [10/12]

HWY_API vuint8m1_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32m4_t  v)

References Lanes(), and v.

◆ U8FromU32() [11/12]

HWY_API vuint8m2_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32m8_t  v)

References Lanes(), and v.

◆ U8FromU32() [12/12]

HWY_API vuint8mf8_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32mf2_t  v)

References Lanes(), and v.

◆ Undefined() [1/12]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Undefined ( d)

References d, and Zero().

◆ Undefined() [2/12]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Undefined ( Full256< double >  )

◆ Undefined() [3/12]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Undefined ( Full256< float >  )

◆ Undefined() [4/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Undefined ( Full256< T >  d)

References d, and Zero().

◆ Undefined() [5/12]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Undefined ( Full512< double >  )

◆ Undefined() [6/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Undefined ( Full512< float >  )

◆ Undefined() [7/12]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Undefined ( Full512< T >  )

◆ Undefined() [8/12]

template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Undefined ( Simd< double, N, 0 >  )

◆ Undefined() [9/12]

template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Undefined ( Simd< float, N, 0 >  )

◆ Undefined() [10/12]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Undefined ( Simd< T, N, 0 >  d)

References d, and Zero().

◆ Undefined() [11/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Undefined ( Simd< T, N, 0 >  d)

◆ Undefined() [12/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Undefined ( Sisd< T >  d)

References d, and Zero().

◆ UpperHalf() [1/24]

template<class D2 , class V >
HWY_API V hwy::HWY_NAMESPACE::UpperHalf ( const D2  d2,
const V  v 
)

◆ UpperHalf() [2/24]

template<class DH >
HWY_API VFromD< DH > hwy::HWY_NAMESPACE::UpperHalf ( const DH  d2,
const VFromD< Twice< DH > >  v 
)

References Lanes(), LowerHalf(), and v.

◆ UpperHalf() [3/24]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::UpperHalf ( Full128< double >  ,
Vec256< double >  v 
)

References v.

◆ UpperHalf() [4/24]

HWY_API Vec128< float, 2 > hwy::HWY_NAMESPACE::UpperHalf ( Full128< float >  ,
const Vec128< float >  v 
)

References v.

◆ UpperHalf() [5/24]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::UpperHalf ( Full128< float >  ,
Vec256< float >  v 
)

References v.

◆ UpperHalf() [6/24]

template<typename T >
HWY_API Vec128< T, 8/sizeof(T)> hwy::HWY_NAMESPACE::UpperHalf ( Full128< T >  ,
const Vec256< T >  v 
)

References v.

◆ UpperHalf() [7/24]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::UpperHalf ( Full128< T >  ,
Vec256< T >  v 
)

References v.

◆ UpperHalf() [8/24]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::UpperHalf ( Full256< double >  ,
Vec512< double >  v 
)

References v.

◆ UpperHalf() [9/24]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::UpperHalf ( Full256< float >  ,
Vec512< float >  v 
)

References v.

◆ UpperHalf() [10/24]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::UpperHalf ( Full256< T >  ,
Vec512< T >  v 
)

References v.

◆ UpperHalf() [11/24]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::UpperHalf ( Full64< double >  ,
Vec128< double >  v 
)

References v.

◆ UpperHalf() [12/24]

HWY_API Vec128< float, 2 > hwy::HWY_NAMESPACE::UpperHalf ( Full64< float >  ,
const Vec128< float >  v 
)

References v.

◆ UpperHalf() [13/24]

HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::UpperHalf ( Full64< int16_t >  ,
const Vec128< int16_t >  v 
)

References v.

◆ UpperHalf() [14/24]

HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::UpperHalf ( Full64< int32_t >  ,
const Vec128< int32_t >  v 
)

References v.

◆ UpperHalf() [15/24]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::UpperHalf ( Full64< int64_t >  ,
const Vec128< int64_t >  v 
)

References v.

◆ UpperHalf() [16/24]

HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::UpperHalf ( Full64< int8_t >  ,
const Vec128< int8_t >  v 
)

References v.

◆ UpperHalf() [17/24]

template<typename T >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::UpperHalf ( Full64< T >  ,
const Vec128< T >  v 
)

References v.

◆ UpperHalf() [18/24]

HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::UpperHalf ( Full64< uint16_t >  ,
const Vec128< uint16_t >  v 
)

References v.

◆ UpperHalf() [19/24]

HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::UpperHalf ( Full64< uint32_t >  ,
const Vec128< uint32_t >  v 
)

References v.

◆ UpperHalf() [20/24]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::UpperHalf ( Full64< uint64_t >  ,
const Vec128< uint64_t >  v 
)

References v.

◆ UpperHalf() [21/24]

HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::UpperHalf ( Full64< uint8_t >  ,
const Vec128< uint8_t >  v 
)

◆ UpperHalf() [22/24]

template<typename T >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::UpperHalf ( Half< Full128< T > >  ,
Vec128< T >  v 
)

References v.

◆ UpperHalf() [23/24]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T,(N+1)/2 > hwy::HWY_NAMESPACE::UpperHalf ( Half< Simd< T, N, 0 > >  ,
Vec128< T, N v 
)

References BitCast(), d, N, ShiftRightBytes(), and v.

◆ UpperHalf() [24/24]

template<typename T , size_t N>
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::UpperHalf ( Simd< T, N/2, 0 >  ,
Vec128< T, N v 
)

References hwy::CopyBytes(), N, and v.

◆ VecFromMask() [1/25]

template<class D , HWY_IF_NOT_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::VecFromMask ( const D  d,
MFromD< D >  mask 
)

References d, and Zero().

◆ VecFromMask() [2/25]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::VecFromMask ( const D  d,
svbool_t  mask 
)

References BitCast(), d, IfThenElseZero(), and Set().

◆ VecFromMask() [3/25]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::VecFromMask ( const Mask128< double, N v)

References v.

◆ VecFromMask() [4/25]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::VecFromMask ( const Mask128< float, N v)

References v.

◆ VecFromMask() [5/25]

template<typename T , size_t N>
Vec128< T, N > hwy::HWY_NAMESPACE::VecFromMask ( const Mask128< T, N mask)

◆ VecFromMask() [6/25]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::VecFromMask ( const Mask128< T, N v)

References v.

◆ VecFromMask() [7/25]

template<typename T >
Vec1< T > hwy::HWY_NAMESPACE::VecFromMask ( const Mask1< T >  mask)

◆ VecFromMask() [8/25]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::VecFromMask ( const Mask256< double >  v)

References v.

◆ VecFromMask() [9/25]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::VecFromMask ( const Mask256< float >  v)

References v.

◆ VecFromMask() [10/25]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::VecFromMask ( const Mask256< T >  v)

References v.

◆ VecFromMask() [11/25]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< double >  v)

References v.

◆ VecFromMask() [12/25]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< float >  v)

References v.

◆ VecFromMask() [13/25]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< int16_t >  v)

References v.

◆ VecFromMask() [14/25]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< int32_t >  v)

References v.

◆ VecFromMask() [15/25]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< int64_t >  v)

References v.

◆ VecFromMask() [16/25]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< int8_t >  v)

References v.

◆ VecFromMask() [17/25]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< uint16_t >  v)

References v.

◆ VecFromMask() [18/25]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< uint32_t >  v)

References v.

◆ VecFromMask() [19/25]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< uint64_t >  v)

References v.

◆ VecFromMask() [20/25]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< uint8_t >  v)

References v.

◆ VecFromMask() [21/25]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::VecFromMask ( Full256< T >  ,
Mask256< T >  v 
)

References v.

◆ VecFromMask() [22/25]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::VecFromMask ( Full512< T >  ,
const Mask512< T >  v 
)

References v, and VecFromMask().

◆ VecFromMask() [23/25]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::VecFromMask ( Simd< T, N, 0 >  d,
const Mask128< T, N v 
)

◆ VecFromMask() [24/25]

template<typename T , size_t N>
Vec128< T, N > hwy::HWY_NAMESPACE::VecFromMask ( Simd< T, N, 0 >  ,
const Mask128< T, N mask 
)

References VecFromMask().

◆ VecFromMask() [25/25]

template<typename T >
Vec1< T > hwy::HWY_NAMESPACE::VecFromMask ( Sisd< T >  ,
const Mask1< T >  mask 
)

◆ VerifySort()

template<class Traits , typename LaneType >
bool hwy::HWY_NAMESPACE::VerifySort ( Traits  st,
const InputStats< LaneType > &  input_stats,
const LaneType out,
size_t  num_lanes,
const char *  caller 
)

◆ Xor() [1/17]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::Xor ( const Mask128< T, N a,
Mask128< T, N b 
)

References d, MaskFromVec(), VecFromMask(), and Xor().

◆ Xor() [2/17]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Xor ( const Mask1< T >  a,
Mask1< T >  b 
)

References d, MaskFromVec(), VecFromMask(), and Xor().

◆ Xor() [3/17]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::Xor ( const Mask256< T >  a,
Mask256< T >  b 
)

References d, MaskFromVec(), VecFromMask(), and Xor().

◆ Xor() [4/17]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Xor ( const Mask512< T >  a,
Mask512< T >  b 
)

◆ Xor() [5/17]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Xor ( const V  a,
const V  b 
)

References BitCast(), and Xor().

◆ Xor() [6/17]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Xor ( const Vec128< double, N a,
const Vec128< double, N b 
)

◆ Xor() [7/17]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Xor ( const Vec128< float, N a,
const Vec128< float, N b 
)

◆ Xor() [8/17]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Xor ( const Vec128< T, N a,
const Vec128< T, N b 
)

◆ Xor() [9/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Xor ( const Vec128< T, N a,
const Vec128< T, N b 
)

References BitCast(), d, and N.

◆ Xor() [10/17]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Xor ( const Vec1< T >  a,
const Vec1< T >  b 
)

References BitCast().

◆ Xor() [11/17]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Xor ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ Xor() [12/17]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Xor ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ Xor() [13/17]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Xor ( const Vec512< double >  a,
const Vec512< double >  b 
)

◆ Xor() [14/17]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Xor ( const Vec512< float >  a,
const Vec512< float >  b 
)

◆ Xor() [15/17]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Xor ( const Vec512< T >  a,
const Vec512< T >  b 
)

◆ Xor() [16/17]

HWY_API svbool_t hwy::HWY_NAMESPACE::Xor ( svbool_t  a,
svbool_t  b 
)

◆ Xor() [17/17]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Xor ( Vec256< T >  a,
Vec256< T >  b 
)

◆ Zero() [1/14]

template<class D >
VFromD< D > hwy::HWY_NAMESPACE::Zero ( d)

References d, and Set().

◆ Zero() [2/14]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Zero ( Full256< double >  )

◆ Zero() [3/14]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Zero ( Full256< float >  )

◆ Zero() [4/14]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Zero ( Full256< T >  )

◆ Zero() [5/14]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Zero ( Full512< double >  )

◆ Zero() [6/14]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Zero ( Full512< float >  )

◆ Zero() [7/14]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Zero ( Full512< T >  )

◆ Zero() [8/14]

template<size_t N>
HWY_API Vec128< bfloat16_t, N > hwy::HWY_NAMESPACE::Zero ( Simd< bfloat16_t, N, 0 >  )

References Zero().

◆ Zero() [9/14]

template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Zero ( Simd< double, N, 0 >  )

◆ Zero() [10/14]

template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Zero ( Simd< float, N, 0 >  )

◆ Zero() [11/14]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Zero ( Simd< T, N, 0 >  d)

◆ Zero() [12/14]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Zero ( Simd< T, N, 0 >  )

◆ Zero() [13/14]

template<typename T , size_t N, int kPow2>
HWY_API VFromD< Simd< T, N, kPow2 > > hwy::HWY_NAMESPACE::Zero ( Simd< T, N, kPow2 >  d)

References d, and Set().

◆ Zero() [14/14]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Zero ( Sisd< T >  )

◆ ZeroExtendVector() [1/11]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ZeroExtendVector ( const D  d,
const V  lo 
)

References Combine(), d, and Zero().

◆ ZeroExtendVector() [2/11]

template<class D2 , class V >
HWY_API VFromD< D2 > hwy::HWY_NAMESPACE::ZeroExtendVector ( D2  d2,
const V  lo 
)

References Combine(), and Xor().

◆ ZeroExtendVector() [3/11]

template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ZeroExtendVector ( Full128< T >  d,
Vec64< T >  lo 
)

◆ ZeroExtendVector() [4/11]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ZeroExtendVector ( Full256< double >  ,
Vec128< double >  lo 
)

◆ ZeroExtendVector() [5/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ZeroExtendVector ( Full256< float >  ,
Vec128< float >  lo 
)

◆ ZeroExtendVector() [6/11]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ZeroExtendVector ( Full256< T >  d,
Vec128< T >  lo 
)

◆ ZeroExtendVector() [7/11]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ZeroExtendVector ( Full512< double >  ,
Vec256< double >  lo 
)

◆ ZeroExtendVector() [8/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ZeroExtendVector ( Full512< float >  ,
Vec256< float >  lo 
)

◆ ZeroExtendVector() [9/11]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ZeroExtendVector ( Full512< T >  ,
Vec256< T >  lo 
)

◆ ZeroExtendVector() [10/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ZeroExtendVector ( Simd< T, N, 0 >  d,
Vec128< T, N/2 >  lo 
)

◆ ZeroExtendVector() [11/11]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ZeroExtendVector ( Simd< T, N, 0 >  d,
Vec128< T, N/2 >  lo 
)

◆ ZeroIfNegative() [1/6]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::ZeroIfNegative ( const V  v)

References IfThenZeroElse(), and v.

◆ ZeroIfNegative() [2/6]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ZeroIfNegative ( const Vec1< T >  v)

References v.

◆ ZeroIfNegative() [3/6]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ZeroIfNegative ( const Vec256< T >  v)

References IfThenZeroElse(), MaskFromVec(), and v.

◆ ZeroIfNegative() [4/6]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ZeroIfNegative ( const Vec512< T >  v)

References IfThenZeroElse(), MaskFromVec(), and v.

◆ ZeroIfNegative() [5/6]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ZeroIfNegative ( Vec128< T, N v)

References Max(), v, and Zero().

◆ ZeroIfNegative() [6/6]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ZeroIfNegative ( Vec128< T, N v)

References d, IfThenElse(), v, and Zero().

◆ ZipLower() [1/17]

template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( const V  a,
const V  b 
)

◆ ZipLower() [2/17]

HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::ZipLower ( const Vec1< int16_t >  a,
const Vec1< int16_t >  b 
)

◆ ZipLower() [3/17]

HWY_API Vec1< int64_t > hwy::HWY_NAMESPACE::ZipLower ( const Vec1< int32_t >  a,
const Vec1< int32_t >  b 
)

◆ ZipLower() [4/17]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::ZipLower ( const Vec1< int8_t >  a,
const Vec1< int8_t >  b 
)

◆ ZipLower() [5/17]

HWY_API Vec1< uint32_t > hwy::HWY_NAMESPACE::ZipLower ( const Vec1< uint16_t >  a,
const Vec1< uint16_t >  b 
)

◆ ZipLower() [6/17]

HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::ZipLower ( const Vec1< uint32_t >  a,
const Vec1< uint32_t >  b 
)

◆ ZipLower() [7/17]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::ZipLower ( const Vec1< uint8_t >  a,
const Vec1< uint8_t >  b 
)

◆ ZipLower() [8/17]

template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( DW  dw,
a,
b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [9/17]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( DW  dw,
a,
b 
)

◆ ZipLower() [10/17]

template<typename T , class D = Full256<T>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( DW  dw,
Vec256< T >  a,
Vec256< T >  b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [11/17]

template<typename T , typename TW = MakeWide<T>>
HWY_API Vec256< TW > hwy::HWY_NAMESPACE::ZipLower ( Full256< TW >  dw,
Vec256< T >  a,
Vec256< T >  b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [12/17]

template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > hwy::HWY_NAMESPACE::ZipLower ( Full512< TW >  ,
Vec512< T >  a,
Vec512< T >  b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [13/17]

template<typename T , typename TW = MakeWide<T>, class VW = Vec1<TW>>
HWY_API VW hwy::HWY_NAMESPACE::ZipLower ( Sisd< TW >  ,
Vec1< T >  a,
Vec1< T >  b 
)

◆ ZipLower() [14/17]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( a,
b 
)

◆ ZipLower() [15/17]

template<typename T , class DW = RepartitionToWide<Full256<T>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( Vec256< T >  a,
Vec256< T >  b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [16/17]

template<typename T , typename TW = MakeWide<T>>
HWY_API Vec256< TW > hwy::HWY_NAMESPACE::ZipLower ( Vec256< T >  a,
Vec256< T >  b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [17/17]

template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > hwy::HWY_NAMESPACE::ZipLower ( Vec512< T >  a,
Vec512< T >  b 
)

References BitCast(), and InterleaveLower().

◆ ZipUpper() [1/5]

template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipUpper ( DW  dw,
a,
b 
)

◆ ZipUpper() [2/5]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipUpper ( DW  dw,
a,
b 
)

References BitCast(), InterleaveUpper(), and hwy::IsSame().

Referenced by InterleaveUpper().

◆ ZipUpper() [3/5]

template<typename T , class D = Full256<T>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipUpper ( DW  dw,
Vec256< T >  a,
Vec256< T >  b 
)

References BitCast(), and InterleaveUpper().

◆ ZipUpper() [4/5]

template<typename T , typename TW = MakeWide<T>>
HWY_API Vec256< TW > hwy::HWY_NAMESPACE::ZipUpper ( Full256< TW >  dw,
Vec256< T >  a,
Vec256< T >  b 
)

References BitCast(), and InterleaveUpper().

◆ ZipUpper() [5/5]

template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > hwy::HWY_NAMESPACE::ZipUpper ( Full512< TW >  d,
Vec512< T >  a,
Vec512< T >  b 
)

References BitCast(), d, and InterleaveUpper().

Variable Documentation

◆ d

hwy::HWY_NAMESPACE::d

Referenced by Acos(), Acosh(), AESLastRound(), AESRound(), AllFalse(), AllTrue(), And(), AndNot(), Asin(), Asinh(), hwy::HWY_NAMESPACE::impl::AsinImpl< float >::AsinPoly(), AssertMaskEqual(), AssertVecEqual(), Atan(), Atanh(), hwy::HWY_NAMESPACE::impl::AtanImpl< float >::AtanPoly(), BitCast(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), BlendedStore(), Broadcast(), BroadcastSignBit(), CallAcos(), CallAcosh(), CallAsin(), CallAsinh(), CallAtan(), CallAtanh(), CallCos(), CallExp(), CallExpm1(), CallLog(), CallLog10(), CallLog1p(), CallLog2(), CallSin(), CallSinh(), CallTanh(), hwy::HWY_NAMESPACE::detail::ChangeLMUL(), hwy::HWY_NAMESPACE::detail::ClampF64ToI32Max(), CLMulLower(), CLMulUpper(), Combine(), CombineShiftRightBytes(), CombineShiftRightLanes(), Compress(), CompressBitsStore(), CompressBlendedStore(), CompressNot(), CompressStore(), hwy::HWY_NAMESPACE::Dot::Compute(), ConcatEven(), ConcatLowerLower(), ConcatLowerUpper(), ConcatOdd(), ConcatUpperLower(), ConcatUpperUpper(), ConvertTo(), Copy(), CopyIf(), CopySign(), Cos(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosSignFromQuadrant(), CountTrue(), DemoteTo(), hwy::HWY_NAMESPACE::detail::ForeachCappedR< T, kMul, kMinArg, Test >::Do(), Exp(), Expm1(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpPoly(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpReduce(), ExtractLane(), Fill(), Find(), FindFirstTrue(), FindIf(), FirstN(), ojph::local::frwd_init(), GatherIndex(), GatherOffset(), Generate(), GenerateInput(), hwy::HWY_NAMESPACE::detail::Idx16x8FromBits(), hwy::HWY_NAMESPACE::detail::Idx32x4FromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), IfNegativeThenElse(), IfVecThenElse(), IndicesFromVec(), Inf(), hwy::HWY_NAMESPACE::detail::InsertLane(), InsertLane(), InterleaveLower(), InterleaveUpper(), Iota(), IsFinite(), IsInf(), hwy::HWY_NAMESPACE::detail::IsSupportedLMUL(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), Load(), hwy::HWY_NAMESPACE::detail::Load8Bytes(), LoadDup128(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::LoadExpShortRange(), LoadInterleaved2(), LoadInterleaved3(), LoadInterleaved4(), LoadMaskBits(), hwy::HWY_NAMESPACE::detail::LoadMaskBits(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), LoadU(), hwy::HWY_NAMESPACE::impl::Log(), Log(), Log10(), Log1p(), Log2(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::LogPoly(), Lt128(), Lt128Upper(), hwy::HWY_NAMESPACE::detail::Lt128UpperVec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), hwy::HWY_NAMESPACE::detail::MakeMask(), MaskedLoad(), MaskFalse(), hwy::HWY_NAMESPACE::detail::MaskLowerHalf(), MaskTrue(), hwy::HWY_NAMESPACE::detail::MaskUpperHalf(), Max128(), Max128Upper(), MaxOfLanes(), hwy::HWY_NAMESPACE::detail::MaxU(), ojph::local::mel_init(), Min128(), Min128Upper(), MinOfLanes(), hwy::HWY_NAMESPACE::detail::MinU(), grk::mqc_encode(), skeleton::HWY_NAMESPACE::MulAddLoop(), MulEven(), MulFixedPoint15(), NaN(), grk::nextCXD(), hwy::HWY_NAMESPACE::detail::NibblesFromMask(), Not(), OddEven(), hwy::HWY_NAMESPACE::detail::OddEven(), OddEvenBlocks(), hwy::HWY_NAMESPACE::detail::OffsetsOf128BitBlocks(), hwy::HWY_NAMESPACE::detail::ShiftLeftBytesT< kBytes >::operator()(), hwy::HWY_NAMESPACE::detail::ShiftRightBytesT< kBytes >::operator()(), operator<<(), operator>(), operator>>(), Or(), Or3(), OrAnd(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::Poly(), PopulationCount(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::Pow2I(), Print(), PromoteTo(), Replace(), ReplaceIf(), ojph::local::rev_init(), ojph::local::rev_init_mrp(), Reverse(), Reverse2(), Reverse4(), Reverse8(), ReverseBlocks(), SafeCopyN(), SafeFillN(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), ScatterIndex(), ScatterOffset(), Set(), hwy::HWY_NAMESPACE::detail::Set64(), ojph::QuantizerOJPH::set_irrev_quant(), openhtj2k::QuantizerOpenHTJ2K::set_irrev_quant(), ojph::QuantizerOJPH::set_rev_quant(), openhtj2k::QuantizerOpenHTJ2K::set_rev_quant(), hwy::HWY_NAMESPACE::detail::TraitsLane< Order >::SetKey(), SetTableIndices(), ShiftLeftBytes(), ShiftLeftLanes(), ShiftRightBytes(), ShiftRightLanes(), Shuffle01(), Shuffle0321(), Shuffle1032(), hwy::HWY_NAMESPACE::detail::Shuffle1230(), Shuffle2103(), Shuffle2301(), hwy::HWY_NAMESPACE::detail::Shuffle2301(), hwy::HWY_NAMESPACE::detail::Shuffle3012(), hwy::HWY_NAMESPACE::detail::SiftDown(), SignBit(), Sin(), Sinh(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), Sort(), Store(), StoreInterleaved2(), StoreInterleaved3(), StoreInterleaved4(), StoreMaskBits(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), StoreU(), Stream(), SumOfLanes(), SwapAdjacentBlocks(), t1_init_ctxno_zc(), TableLookupBytes(), TableLookupBytesOr0(), TableLookupLanes(), Tanh(), Transform(), Transform1(), Transform2(), Undefined(), UpperHalf(), ojph::local::uvlc_init_tables(), VecFromMask(), Xor(), Zero(), ZeroExtendVector(), ZeroIfNegative(), and ZipUpper().

◆ N

hwy::HWY_NAMESPACE::N

Referenced by Abs(), ojph::align_ptr(), AllTrue(), And(), AssertMaskEqual(), AssertVecEqual(), AverageRound(), hwy::SortConstants::BaseCaseNum(), BitCast(), hwy::HWY_NAMESPACE::detail::BitCastToByte(), Broadcast(), BroadcastSignBit(), hwy::SortConstants::BufNum(), hwy::HWY_NAMESPACE::detail::BytesAbove(), ojph::calc_aligned_size(), Ceil(), hwy::HWY_NAMESPACE::detail::ChangeLMUL(), Combine(), CombineShiftRightBytes(), Compress(), CompressBits(), CompressBitsStore(), CompressNot(), CompressStore(), hwy::HWY_NAMESPACE::Dot::Compute(), ConcatEven(), ConcatLowerLower(), ConcatLowerUpper(), ConcatOdd(), ConcatUpperUpper(), ConvertTo(), Copy(), CopyIf(), CountTrue(), ojph::local::decode_one_quad32(), DemoteTo(), DupEven(), DupOdd(), Fill(), Find(), FindIf(), FirstN(), Floor(), GatherIndex(), GatherOffset(), Generate(), GenerateInput(), IndicesFromVec(), hwy::HWY_NAMESPACE::detail::InsertLane(), InterleaveLower(), InterleaveUpper(), Iota(), hwy::HWY_NAMESPACE::detail::IsFull(), Lanes(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), hwy::SortConstants::LanesPerChunk(), LoadInterleaved2(), LoadInterleaved3(), LoadInterleaved4(), LoadMaskBits(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), LowerHalf(), MaskFromVec(), Max(), Min(), MulEven(), MulFixedPoint15(), MulHigh(), MulOdd(), hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >::NewN(), hwy::HWY_NAMESPACE::detail::NibblesFromMask(), Not(), hwy::HWY_NAMESPACE::detail::OnlyActive(), operator!=(), hwy::HWY_NAMESPACE::detail::ShiftRightBytesT< kBytes >::operator()(), operator*(), grk::vec< T, N >::operator+(), operator+(), grk::vec< T, N >::operator+=(), grk::vec< T, N >::operator-(), operator-(), grk::vec< T, N >::operator-=(), operator/(), operator<(), operator<<(), operator<=(), operator==(), operator>>(), Or(), hwy::SortConstants::PartitionBufNum(), hwy::SortConstants::PivotBufNum(), ojph::mem_fixed_allocator::post_alloc_local(), ojph::mem_fixed_allocator::pre_alloc_local(), Print(), PromoteTo(), Replace(), ReplaceIf(), Reverse(), Reverse2(), Reverse4(), Reverse8(), Round(), SaturatedAdd(), SaturatedSub(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), hwy::HWY_NAMESPACE::detail::ScaleByPower(), hwy::HWY_NAMESPACE::detail::ScatterIndex(), ScatterIndex(), hwy::HWY_NAMESPACE::detail::ScatterOffset(), ScatterOffset(), Set(), ShiftLeft(), ShiftLeftBytes(), ShiftRight(), ShiftRightBytes(), ShiftRightLanes(), hwy::HWY_NAMESPACE::detail::Shuffle1230(), hwy::HWY_NAMESPACE::detail::Shuffle2301(), Shuffle2301(), hwy::HWY_NAMESPACE::detail::Shuffle3012(), Sqrt(), StoreInterleaved2(), StoreInterleaved3(), StoreInterleaved4(), StoreMaskBits(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), SumsOf8(), TableLookupBytes(), Transform(), Transform1(), Transform2(), Trunc(), hwy::TypeName(), UpperHalf(), grk::vec< T, N >::vec(), VecFromMask(), Xor(), and ZeroExtendVector().

◆ v

const vfloat64m1_t hwy::HWY_NAMESPACE::v
Initial value:
{
return vfncvt_rtz_x_f_w_i32mf2(v, Lanes(d))
d
Definition: rvv-inl.h:1742
HWY_API size_t Lanes(Simd< bfloat16_t, N, kPow2 >)
Definition: rvv-inl.h:428
const vfloat64m1_t v
Definition: rvv-inl.h:1742

Referenced by Abs(), grk::T1::alloc(), ApproximateReciprocal(), ApproximateReciprocalSqrt(), BitCast(), hwy::HWY_NAMESPACE::detail::BitCastFromByte(), hwy::HWY_NAMESPACE::detail::BitCastToByte(), hwy::HWY_NAMESPACE::detail::BitCastToInteger(), hwy::HWY_NAMESPACE::detail::BitCastToUnsigned(), BlendedStore(), Broadcast(), BroadcastSignBit(), Ceil(), Ceiling(), hwy::HWY_NAMESPACE::detail::ChangeLMUL(), Clamp(), hwy::HWY_NAMESPACE::detail::ClampF64ToI32Max(), grk::PLMarkerMgr::clearMarkers(), Compress(), hwy::HWY_NAMESPACE::detail::Compress(), CompressBits(), CompressBitsStore(), CompressBlendedStore(), CompressBlocksNot(), CompressNot(), hwy::HWY_NAMESPACE::detail::CompressNot(), CompressStore(), ConvertTo(), Copy(), CopyIf(), grk::T1::dec_clnpass_check_segsym(), grk::T1::dec_refpass_step_raw(), grk::T1::dec_sigpass_step_raw(), DemoteTo(), DupEven(), DupOdd(), grk::T1::enc_clnpass(), ExtractLane(), hwy::HWY_NAMESPACE::detail::ExtractLane(), Fill(), Find(), FindIf(), Floor(), ojph::local::frwd_read(), GatherOffset(), GenerateInput(), GetLane(), ht_cleanup_decode(), HWY_NEON_DEF_FUNCTION_INT_8_16_32(), IfNegativeThenElse(), InsertLane(), hwy::HWY_NAMESPACE::detail::InsertLane(), Iota(), IsFinite(), IsInf(), IsNaN(), Load(), LowerHalf(), main(), MaskFromVec(), hwy::HWY_NAMESPACE::detail::MaskFromVec(), hwy::HWY_NAMESPACE::detail::MaxOfLanes(), MaxOfLanes(), ojph::local::mel_emit_bit(), ojph::local::mel_read(), hwy::HWY_NAMESPACE::detail::MinOfLanes(), MinOfLanes(), grk::minpf_register_object(), NearestInt(), Neg(), Not(), ojph::local::ojph_decode_codeblock_ssse3(), ojph::local::ojph_decode_codeblock_wasm(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger128< double >::operator()(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger256< T >::operator()(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger256< float >::operator()(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger256< double >::operator()(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< T >::operator()(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< float >::operator()(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< double >::operator()(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger128< T >::operator()(), hwy::HWY_NAMESPACE::detail::BitCastFromInteger128< float >::operator()(), hwy::HWY_NAMESPACE::detail::ShiftLeftBytesT< kBytes >::operator()(), hwy::HWY_NAMESPACE::detail::ShiftLeftBytesT< 0 >::operator()(), hwy::HWY_NAMESPACE::detail::ShiftRightBytesT< 0 >::operator()(), hwy::HWY_NAMESPACE::detail::RotateRight< kBits >::operator()(), hwy::HWY_NAMESPACE::detail::RotateRight< 0 >::operator()(), hwy::HWY_NAMESPACE::detail::ShiftRightBytesT< kBytes >::operator()(), operator<<(), operator>>(), hwy::HWY_NAMESPACE::detail::PopulationCount(), PopulationCount(), Print(), PromoteTo(), hwy::HWY_NAMESPACE::detail::PromoteUpperTo(), Replace(), ReplaceIf(), ojph::local::rev_read(), ojph::local::rev_read_mrp(), Reverse(), Reverse2(), Reverse4(), Reverse8(), ReverseBlocks(), RotateRight(), Round(), hwy::HWY_NAMESPACE::detail::SaturateI(), hwy::HWY_NAMESPACE::detail::SaturateU(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), hwy::HWY_NAMESPACE::detail::ScatterIndex(), ScatterIndex(), hwy::HWY_NAMESPACE::detail::ScatterOffset(), ScatterOffset(), Set(), ShiftLeft(), ShiftLeftBytes(), ShiftLeftLanes(), ShiftLeftSame(), ShiftRight(), ShiftRightBytes(), ShiftRightLanes(), ShiftRightSame(), hwy::HWY_NAMESPACE::detail::ShrBytes(), Shuffle01(), Shuffle0123(), Shuffle0321(), Shuffle1032(), Shuffle2103(), Shuffle2301(), Sqrt(), Store(), StoreU(), Stream(), hwy::HWY_NAMESPACE::detail::SumOfLanes(), SumOfLanes(), SumsOf8(), SwapAdjacentBlocks(), t1_init_ctxno_zc(), TableLookupBytes(), TableLookupBytesOr0(), TableLookupLanes(), hwy::HWY_NAMESPACE::detail::TestBit(), TestBit(), Transform(), grk::HWY_NAMESPACE::DecompressRev::transform(), grk::HWY_NAMESPACE::CompressRev::transform(), grk::HWY_NAMESPACE::CompressIrrev::transform(), Transform1(), Transform2(), Trunc(), U8FromU32(), UpperHalf(), hwy::HWY_NAMESPACE::detail::UseInt(), VecFromMask(), grk::BitIO::write(), grk::PLMarkerMgr::write(), and ZeroIfNegative().