Grok  9.5.0
Namespaces | Classes | Typedefs | Functions
hwy::HWY_NAMESPACE Namespace Reference

Namespaces

 detail
 
 impl
 
 internal
 

Classes

struct  Dot
 
class  Vec128
 
struct  Mask128
 
struct  Indices128
 
struct  DFromV_t
 
struct  Vec1
 
class  Mask1
 
struct  Indices1
 
struct  Simd
 
class  Vec256
 
class  Vec512
 
struct  Mask256
 
struct  Indices256
 
struct  Mask512
 
struct  Indices512
 
struct  ForeachSizeR
 
struct  ForeachSizeR< T, 0, kMinLanes, Test, kPromote >
 
struct  ForExtendableVectors
 
struct  ForShrinkableVectors
 
struct  ForGE128Vectors
 
struct  ForGE64Vectors
 
struct  ForPromoteVectors
 
struct  ForDemoteVectors
 
struct  ForPartialVectors
 

Typedefs

template<typename T >
using Full128 = Simd< T, 16/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 , int kShift = 0>
using Full = Simd< T,(kShift<=0) ?(HWY_LANES(T) > >(-kShift)) :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<typename T >
using Sisd = Simd< T, 1 >
 
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<class V >
using VecArg = V
 
using GatherIndex64 = long long int
 
template<typename T >
using Full256 = Simd< T, 32/sizeof(T)>
 
template<typename T >
using Full512 = Simd< T, 64/sizeof(T)>
 

Functions

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 , size_t N, typename FromT >
HWY_API Vec128< T, N > BitCast (Simd< T, N > d, Vec128< FromT, N *sizeof(T)/sizeof(FromT)> v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Zero (Simd< T, N > d)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, N > Zero (Simd< bfloat16_t, N > d)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Undefined (Simd< T, N >)
 
template<typename T , size_t N, typename T2 >
Vec128< T, N > Iota (const Simd< T, N > d, const T2 first)
 
HWY_API uint8_t GetLane (const Vec128< uint8_t, 16 > v)
 
template<size_t N>
HWY_API uint8_t GetLane (const Vec128< uint8_t, N > v)
 
HWY_API int8_t GetLane (const Vec128< int8_t, 16 > v)
 
template<size_t N>
HWY_API int8_t GetLane (const Vec128< int8_t, N > v)
 
HWY_API uint16_t GetLane (const Vec128< uint16_t, 8 > v)
 
template<size_t N>
HWY_API uint16_t GetLane (const Vec128< uint16_t, N > v)
 
HWY_API int16_t GetLane (const Vec128< int16_t, 8 > v)
 
template<size_t N>
HWY_API int16_t GetLane (const Vec128< int16_t, N > v)
 
HWY_API uint32_t GetLane (const Vec128< uint32_t, 4 > v)
 
template<size_t N>
HWY_API uint32_t GetLane (const Vec128< uint32_t, N > v)
 
HWY_API int32_t GetLane (const Vec128< int32_t, 4 > v)
 
template<size_t N>
HWY_API int32_t GetLane (const Vec128< int32_t, N > v)
 
HWY_API uint64_t GetLane (const Vec128< uint64_t, 2 > v)
 
HWY_API uint64_t GetLane (const Vec128< uint64_t, 1 > v)
 
HWY_API int64_t GetLane (const Vec128< int64_t, 2 > v)
 
HWY_API int64_t GetLane (const Vec128< int64_t, 1 > v)
 
HWY_API float GetLane (const Vec128< float, 4 > v)
 
HWY_API float GetLane (const Vec128< float, 2 > v)
 
HWY_API float GetLane (const Vec128< float, 1 > v)
 
 HWY_NEON_DEF_FUNCTION_INT_8_16_32 (Neg, vneg, _, 1) HWY_API Vec128< int64_t
 
 Neg (const Vec128< int64_t, 1 > v)
 
HWY_API Vec128< int64_t > Neg (const Vec128< int64_t > 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, N > operator<< (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, N > operator<< (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, N > operator<< (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 Vec128< uint64_t, 1 > operator<< (const Vec128< uint64_t, 1 > v, const Vec128< uint64_t, 1 > 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, N > operator<< (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, N > operator<< (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, N > operator<< (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 Vec128< int64_t, 1 > operator<< (const Vec128< int64_t, 1 > v, const Vec128< int64_t, 1 > 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, N > operator>> (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, N > operator>> (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, N > operator>> (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 Vec128< uint64_t, 1 > operator>> (const Vec128< uint64_t, 1 > v, const Vec128< uint64_t, 1 > 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, N > operator>> (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, N > operator>> (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, N > operator>> (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 Vec128< int64_t, 1 > operator>> (const Vec128< int64_t, 1 > v, const Vec128< int64_t, 1 > bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeftSame (const Vec128< T, N > v, int bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ShiftRightSame (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, N > operator* (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, N > operator* (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, N > operator* (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, N > operator* (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, N > MulHigh (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, N > MulHigh (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
HWY_API Vec128< float > ApproximateReciprocal (const Vec128< float > v)
 
template<size_t N>
HWY_API Vec128< float, N > ApproximateReciprocal (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > operator/ (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, N > AbsDiff (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > MulAdd (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > add)
 
template<size_t N>
HWY_API Vec128< float, N > NegMulAdd (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > add)
 
template<size_t N>
HWY_API Vec128< float, N > MulSub (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > sub)
 
template<size_t N>
HWY_API Vec128< float, N > NegMulSub (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, N > ApproximateReciprocalSqrt (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Sqrt (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, N > Not (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > And (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, N > AndNot (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, N > Or (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Xor (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator& (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator| (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator^ (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, N > PopulationCount (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, N > Abs (const Vec128< int8_t, N > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > Abs (const Vec128< int16_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > Abs (const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, N > Abs (const Vec128< float, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > CopySign (const Vec128< T, N > magn, const Vec128< T, N > sign)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > CopySignToAbs (const Vec128< T, N > abs, const Vec128< T, N > sign)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > BroadcastSignBit (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > MaskFromVec (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > VecFromMask (const Mask128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > VecFromMask (Simd< T, N > d, const Mask128< T, N > v)
 
template<typename TFrom , typename TTo , size_t N>
HWY_API Mask128< TTo, N > RebindMask (Simd< TTo, N > dto, Mask128< TFrom, N > m)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > IfThenElseZero (const Mask128< T, N > mask, const Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > IfThenZeroElse (const Mask128< T, N > mask, const Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ZeroIfNegative (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > Not (const Mask128< T, N > m)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > And (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > AndNot (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > Or (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > Xor (const Mask128< T, N > a, Mask128< T, N > b)
 
HWY_API Vec128< uint32_t, 2 > Shuffle2301 (const Vec128< uint32_t, 2 > v)
 
HWY_API Vec128< int32_t, 2 > Shuffle2301 (const Vec128< int32_t, 2 > v)
 
HWY_API Vec128< float, 2 > Shuffle2301 (const Vec128< float, 2 > 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, N > operator!= (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator> (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator>= (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > FirstN (const Simd< T, N > d, size_t num)
 
template<size_t N>
HWY_API Mask128< uint64_t, N > TestBit (Vec128< uint64_t, N > v, Vec128< uint64_t, N > bit)
 
template<size_t N>
HWY_API Mask128< int64_t, N > TestBit (Vec128< int64_t, N > v, Vec128< int64_t, N > bit)
 
HWY_API Vec128< int64_t > Abs (const Vec128< int64_t > v)
 
HWY_API Vec128< int64_t, 1 > Abs (const Vec128< int64_t, 1 > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > Min (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > Min (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > Max (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > Max (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 Vec128< uint8_t, 8 > LoadU (Simd< uint8_t, 8 >, const uint8_t *HWY_RESTRICT p)
 
HWY_API Vec128< uint16_t, 4 > LoadU (Simd< uint16_t, 4 >, const uint16_t *HWY_RESTRICT p)
 
HWY_API Vec128< uint32_t, 2 > LoadU (Simd< uint32_t, 2 >, const uint32_t *HWY_RESTRICT p)
 
HWY_API Vec128< uint64_t, 1 > LoadU (Simd< uint64_t, 1 >, const uint64_t *HWY_RESTRICT p)
 
HWY_API Vec128< int8_t, 8 > LoadU (Simd< int8_t, 8 >, const int8_t *HWY_RESTRICT p)
 
HWY_API Vec128< int16_t, 4 > LoadU (Simd< int16_t, 4 >, const int16_t *HWY_RESTRICT p)
 
HWY_API Vec128< int32_t, 2 > LoadU (Simd< int32_t, 2 >, const int32_t *HWY_RESTRICT p)
 
HWY_API Vec128< int64_t, 1 > LoadU (Simd< int64_t, 1 >, const int64_t *HWY_RESTRICT p)
 
HWY_API Vec128< float, 2 > LoadU (Simd< float, 2 >, const float *HWY_RESTRICT p)
 
HWY_API Vec128< uint8_t, 4 > LoadU (Simd< uint8_t, 4 >, const uint8_t *HWY_RESTRICT p)
 
HWY_API Vec128< uint16_t, 2 > LoadU (Simd< uint16_t, 2 >, const uint16_t *HWY_RESTRICT p)
 
HWY_API Vec128< uint32_t, 1 > LoadU (Simd< uint32_t, 1 >, const uint32_t *HWY_RESTRICT p)
 
HWY_API Vec128< int8_t, 4 > LoadU (Simd< int8_t, 4 >, const int8_t *HWY_RESTRICT p)
 
HWY_API Vec128< int16_t, 2 > LoadU (Simd< int16_t, 2 >, const int16_t *HWY_RESTRICT p)
 
HWY_API Vec128< int32_t, 1 > LoadU (Simd< int32_t, 1 >, const int32_t *HWY_RESTRICT p)
 
HWY_API Vec128< float, 1 > LoadU (Simd< float, 1 >, const float *HWY_RESTRICT p)
 
HWY_API Vec128< uint8_t, 2 > LoadU (Simd< uint8_t, 2 >, const uint8_t *HWY_RESTRICT p)
 
HWY_API Vec128< uint16_t, 1 > LoadU (Simd< uint16_t, 1 >, const uint16_t *HWY_RESTRICT p)
 
HWY_API Vec128< int8_t, 2 > LoadU (Simd< int8_t, 2 >, const int8_t *HWY_RESTRICT p)
 
HWY_API Vec128< int16_t, 1 > LoadU (Simd< int16_t, 1 >, const int16_t *HWY_RESTRICT p)
 
HWY_API Vec128< uint8_t, 1 > LoadU (Simd< uint8_t, 1 > d, const uint8_t *HWY_RESTRICT p)
 
HWY_API Vec128< int8_t, 1 > LoadU (Simd< int8_t, 1 > d, const int8_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< float16_t, N > LoadU (Simd< float16_t, N >, const float16_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, N > LoadU (Simd< bfloat16_t, N >, const bfloat16_t *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Load (Simd< T, N > d, const T *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > MaskedLoad (Mask128< T, N > m, Simd< T, N > d, const T *HWY_RESTRICT aligned)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > LoadDup128 (Simd< T, N > 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 Vec128< uint8_t, 8 > v, Simd< uint8_t, 8 >, uint8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint16_t, 4 > v, Simd< uint16_t, 4 >, uint16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint32_t, 2 > v, Simd< uint32_t, 2 >, uint32_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint64_t, 1 > v, Simd< uint64_t, 1 >, uint64_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int8_t, 8 > v, Simd< int8_t, 8 >, int8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int16_t, 4 > v, Simd< int16_t, 4 >, int16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int32_t, 2 > v, Simd< int32_t, 2 >, int32_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int64_t, 1 > v, Simd< int64_t, 1 >, int64_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< float, 2 > v, Simd< float, 2 >, float *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint8_t, 4 > v, Simd< uint8_t, 4 >, uint8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint16_t, 2 > v, Simd< uint16_t, 2 >, uint16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint32_t, 1 > v, Simd< uint32_t, 1 >, uint32_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int8_t, 4 > v, Simd< int8_t, 4 >, int8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int16_t, 2 > v, Simd< int16_t, 2 >, int16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int32_t, 1 > v, Simd< int32_t, 1 >, int32_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< float, 1 > v, Simd< float, 1 >, float *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint8_t, 2 > v, Simd< uint8_t, 2 >, uint8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint16_t, 1 > v, Simd< uint16_t, 1 >, uint16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int8_t, 2 > v, Simd< int8_t, 2 >, int8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int16_t, 1 > v, Simd< int16_t, 1 >, int16_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< uint8_t, 1 > v, Simd< uint8_t, 1 >, uint8_t *HWY_RESTRICT p)
 
HWY_API void StoreU (const Vec128< int8_t, 1 > v, Simd< int8_t, 1 >, int8_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void StoreU (Vec128< float16_t, N > v, Simd< float16_t, N >, float16_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void StoreU (Vec128< bfloat16_t, N > v, Simd< bfloat16_t, N >, bfloat16_t *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API void Store (Vec128< T, N > v, Simd< T, N > d, T *HWY_RESTRICT aligned)
 
template<typename T , size_t N>
HWY_API void Stream (const Vec128< T, N > v, Simd< T, N > d, T *HWY_RESTRICT aligned)
 
HWY_API Vec128< uint16_t > PromoteTo (Full128< uint16_t >, const Vec128< uint8_t, 8 > v)
 
HWY_API Vec128< uint32_t > PromoteTo (Full128< uint32_t >, const Vec128< uint8_t, 4 > v)
 
HWY_API Vec128< uint32_t > PromoteTo (Full128< uint32_t >, const Vec128< uint16_t, 4 > v)
 
HWY_API Vec128< uint64_t > PromoteTo (Full128< uint64_t >, const Vec128< uint32_t, 2 > v)
 
HWY_API Vec128< int16_t > PromoteTo (Full128< int16_t > d, const Vec128< uint8_t, 8 > v)
 
HWY_API Vec128< int32_t > PromoteTo (Full128< int32_t > d, const Vec128< uint8_t, 4 > v)
 
HWY_API Vec128< int32_t > PromoteTo (Full128< int32_t > d, const Vec128< uint16_t, 4 > v)
 
template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128< uint16_t, N > PromoteTo (Simd< uint16_t, N >, const Vec128< uint8_t, N > v)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, N > PromoteTo (Simd< uint32_t, N >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > PromoteTo (Simd< uint32_t, N >, const Vec128< uint16_t, N > v)
 
template<size_t N, HWY_IF_LE64(uint64_t, N) >
HWY_API Vec128< uint64_t, N > PromoteTo (Simd< uint64_t, N >, const Vec128< uint32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int16_t, N > PromoteTo (Simd< int16_t, N > d, const Vec128< uint8_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > PromoteTo (Simd< int32_t, N >, const Vec128< uint8_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > PromoteTo (Simd< int32_t, N >, const Vec128< uint16_t, N > v)
 
HWY_API Vec128< int16_t > PromoteTo (Full128< int16_t >, const Vec128< int8_t, 8 > v)
 
HWY_API Vec128< int32_t > PromoteTo (Full128< int32_t >, const Vec128< int8_t, 4 > v)
 
HWY_API Vec128< int32_t > PromoteTo (Full128< int32_t >, const Vec128< int16_t, 4 > v)
 
HWY_API Vec128< int64_t > PromoteTo (Full128< int64_t >, const Vec128< int32_t, 2 > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > PromoteTo (Simd< int16_t, N >, const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > PromoteTo (Simd< int32_t, N >, const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > PromoteTo (Simd< int32_t, N >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, N > PromoteTo (Simd< int64_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > PromoteTo (Simd< float, N >, const Vec128< float16_t, N > v)
 
HWY_API Vec128< uint16_t, 4 > DemoteTo (Simd< uint16_t, 4 >, const Vec128< int32_t > v)
 
HWY_API Vec128< int16_t, 4 > DemoteTo (Simd< int16_t, 4 >, const Vec128< int32_t > v)
 
HWY_API Vec128< uint8_t, 4 > DemoteTo (Simd< uint8_t, 4 >, const Vec128< int32_t > v)
 
HWY_API Vec128< uint8_t, 8 > DemoteTo (Simd< uint8_t, 8 >, const Vec128< int16_t > v)
 
HWY_API Vec128< int8_t, 4 > DemoteTo (Simd< int8_t, 4 >, const Vec128< int32_t > v)
 
HWY_API Vec128< int8_t, 8 > DemoteTo (Simd< int8_t, 8 >, const Vec128< int16_t > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< uint16_t, N > DemoteTo (Simd< uint16_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int16_t, N > DemoteTo (Simd< int16_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< uint8_t, N > DemoteTo (Simd< uint8_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< uint8_t, N > DemoteTo (Simd< uint8_t, N >, const Vec128< int16_t, N > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int8_t, N > DemoteTo (Simd< int8_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_API Vec128< int8_t, N > DemoteTo (Simd< int8_t, N >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< float16_t, N > DemoteTo (Simd< float16_t, N >, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, N > DemoteTo (Simd< bfloat16_t, N > dbf16, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, 2 *N > ReorderDemote2To (Simd< bfloat16_t, 2 *N > dbf16, Vec128< float, N > a, Vec128< float, N > b)
 
HWY_API Vec128< uint8_t, 4 > U8FromU32 (const Vec128< uint32_t > v)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint8_t, N > U8FromU32 (const Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > DemoteTo (Simd< uint8_t, N >, const Vec128< int32_t > v)
 
template<size_t N>
HWY_API Vec128< int8_t, N > DemoteTo (Simd< int8_t, N >, 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, N > ConvertTo (Simd< float, N >, 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, N > ConvertTo (Simd< int32_t, N >, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Trunc (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Round (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Ceil (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Floor (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > NearestInt (const Vec128< float, 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 Vec128< uint8_t, 8 > LowerHalf (const Vec128< uint8_t > v)
 
HWY_API Vec128< uint16_t, 4 > LowerHalf (const Vec128< uint16_t > v)
 
HWY_API Vec128< uint32_t, 2 > LowerHalf (const Vec128< uint32_t > v)
 
HWY_API Vec128< uint64_t, 1 > LowerHalf (const Vec128< uint64_t > v)
 
HWY_API Vec128< int8_t, 8 > LowerHalf (const Vec128< int8_t > v)
 
HWY_API Vec128< int16_t, 4 > LowerHalf (const Vec128< int16_t > v)
 
HWY_API Vec128< int32_t, 2 > LowerHalf (const Vec128< int32_t > v)
 
HWY_API Vec128< int64_t, 1 > LowerHalf (const Vec128< int64_t > v)
 
HWY_API Vec128< float, 2 > LowerHalf (const Vec128< float > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N/2 > LowerHalf (Simd< T, N/2 >, 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 , class V64 = Vec128<T, 8 / sizeof(T)>>
HWY_API V64 CombineShiftRightBytes (Simd< T, 8/sizeof(T)> d, V64 hi, V64 lo)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeftBytes (Simd< T, N >, Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeftBytes (const Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeftLanes (Simd< T, N > d, const Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeftLanes (const Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftRightBytes (Simd< T, N >, Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftRightLanes (Simd< T, N > d, const Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N, HWY_IF_LE32(T, N) >
HWY_API Vec128< T, N > CombineShiftRightBytes (Simd< T, N > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
HWY_API Vec128< uint8_t, 8 > UpperHalf (Simd< uint8_t, 8 >, const Vec128< uint8_t > v)
 
HWY_API Vec128< uint16_t, 4 > UpperHalf (Simd< uint16_t, 4 >, const Vec128< uint16_t > v)
 
HWY_API Vec128< uint32_t, 2 > UpperHalf (Simd< uint32_t, 2 >, const Vec128< uint32_t > v)
 
HWY_API Vec128< uint64_t, 1 > UpperHalf (Simd< uint64_t, 1 >, const Vec128< uint64_t > v)
 
HWY_API Vec128< int8_t, 8 > UpperHalf (Simd< int8_t, 8 >, const Vec128< int8_t > v)
 
HWY_API Vec128< int16_t, 4 > UpperHalf (Simd< int16_t, 4 >, const Vec128< int16_t > v)
 
HWY_API Vec128< int32_t, 2 > UpperHalf (Simd< int32_t, 2 >, const Vec128< int32_t > v)
 
HWY_API Vec128< int64_t, 1 > UpperHalf (Simd< int64_t, 1 >, const Vec128< int64_t > v)
 
HWY_API Vec128< float, 2 > UpperHalf (Simd< float, 2 >, 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 >>, 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, N > Broadcast (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, N > Broadcast (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, N > Broadcast (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, N > Broadcast (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, N > Broadcast (const Vec128< float, N > v)
 
template<int kLane>
HWY_API Vec128< uint64_t, 1 > Broadcast (const Vec128< uint64_t, 1 > v)
 
template<int kLane>
HWY_API Vec128< int64_t, 1 > Broadcast (const Vec128< int64_t, 1 > v)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Indices128< T, N > SetTableIndices (Simd< T, N > d, const int32_t *idx)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > TableLookupLanes (const Vec128< uint32_t, N > v, const Indices128< uint32_t, N > idx)
 
template<size_t N>
HWY_API Vec128< int32_t, N > TableLookupLanes (const Vec128< int32_t, N > v, const Indices128< int32_t, N > idx)
 
template<size_t N>
HWY_API Vec128< float, N > TableLookupLanes (const Vec128< float, N > v, const Indices128< float, N > idx)
 
template<typename T >
HWY_API Vec128< T > Reverse (Full128< T >, const Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T, 2 > Reverse (Simd< T, 2 >, const Vec128< T, 2 > v)
 
template<typename T >
HWY_API Vec128< T, 1 > Reverse (Simd< T, 1 >, const Vec128< T, 1 > 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, N > InterleaveLower (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, N > InterleaveLower (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, class V = Vec128<T, N>>
HWY_APIInterleaveLower (Simd< T, N >, 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 >, V a, V b)
 
template<typename T , size_t N, class DW = RepartitionToWide<Simd<T, N>>>
HWY_API VFromD< DW > ZipLower (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, class D = Simd<T, N>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipLower (DW dw, Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, class D = Simd<T, N>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipUpper (DW dw, Vec128< T, N > a, Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > ReorderWidenMulAccumulate (Simd< float, N > 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 >, Vec128< uint8_t, 8 > hi, Vec128< uint8_t, 8 > lo)
 
HWY_API Vec128< uint16_t > Combine (Full128< uint16_t >, Vec128< uint16_t, 4 > hi, Vec128< uint16_t, 4 > lo)
 
HWY_API Vec128< uint32_t > Combine (Full128< uint32_t >, Vec128< uint32_t, 2 > hi, Vec128< uint32_t, 2 > lo)
 
HWY_API Vec128< uint64_t > Combine (Full128< uint64_t >, Vec128< uint64_t, 1 > hi, Vec128< uint64_t, 1 > lo)
 
HWY_API Vec128< int8_t > Combine (Full128< int8_t >, Vec128< int8_t, 8 > hi, Vec128< int8_t, 8 > lo)
 
HWY_API Vec128< int16_t > Combine (Full128< int16_t >, Vec128< int16_t, 4 > hi, Vec128< int16_t, 4 > lo)
 
HWY_API Vec128< int32_t > Combine (Full128< int32_t >, Vec128< int32_t, 2 > hi, Vec128< int32_t, 2 > lo)
 
HWY_API Vec128< int64_t > Combine (Full128< int64_t >, Vec128< int64_t, 1 > hi, Vec128< int64_t, 1 > lo)
 
HWY_API Vec128< float > Combine (Full128< float >, Vec128< float, 2 > hi, Vec128< float, 2 > lo)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > Combine (Simd< T, N > d, Vec128< T, N/2 > hi, Vec128< T, N/2 > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ZeroExtendVector (Simd< T, N > d, Vec128< T, N/2 > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, N > ConcatLowerLower (const Simd< T, N > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, N > ConcatUpperUpper (const Simd< T, N > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, N > ConcatLowerUpper (const Simd< T, N > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ConcatUpperLower (Simd< T, N > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
HWY_API Vec128< uint32_t > ConcatOdd (Full128< uint32_t >, Vec128< uint32_t > hi, Vec128< uint32_t > lo)
 
HWY_API Vec128< int32_t > ConcatOdd (Full128< int32_t >, Vec128< int32_t > hi, Vec128< int32_t > lo)
 
HWY_API Vec128< float > ConcatOdd (Full128< float >, Vec128< float > hi, Vec128< float > lo)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, N > ConcatOdd (Simd< uint32_t, N >, Vec128< uint32_t, N > hi, Vec128< uint32_t, N > lo)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > ConcatOdd (Simd< int32_t, N >, Vec128< int32_t, N > hi, Vec128< int32_t, N > lo)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, N > ConcatOdd (Simd< float, N >, Vec128< float, N > hi, Vec128< float, N > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > ConcatOdd (Full128< T > d, Vec128< T > hi, Vec128< T > lo)
 
HWY_API Vec128< uint32_t > ConcatEven (Full128< uint32_t >, Vec128< uint32_t > hi, Vec128< uint32_t > lo)
 
HWY_API Vec128< int32_t > ConcatEven (Full128< int32_t >, Vec128< int32_t > hi, Vec128< int32_t > lo)
 
HWY_API Vec128< float > ConcatEven (Full128< float >, Vec128< float > hi, Vec128< float > lo)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128< uint32_t, N > ConcatEven (Simd< uint32_t, N >, Vec128< uint32_t, N > hi, Vec128< uint32_t, N > lo)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int32_t, N > ConcatEven (Simd< int32_t, N >, Vec128< int32_t, N > hi, Vec128< int32_t, N > lo)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, N > ConcatEven (Simd< float, N >, Vec128< float, N > hi, Vec128< float, N > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > ConcatEven (Full128< T > d, Vec128< T > hi, Vec128< T > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > OddEven (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > PromoteTo (Simd< float, N > 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 > > > 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 > 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 > d, T *HWY_RESTRICT base, const Vec128< Index, N > index)
 
template<typename T , size_t N, typename Offset >
HWY_API Vec128< T, N > GatherOffset (const Simd< T, N > d, const T *HWY_RESTRICT base, const Vec128< Offset, N > offset)
 
template<typename T , size_t N, typename Index >
HWY_API Vec128< T, N > GatherIndex (const Simd< T, N > d, const T *HWY_RESTRICT base, const Vec128< Index, N > index)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > SumOfLanes (Simd< T, N >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > MinOfLanes (Simd< T, N >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > MaxOfLanes (Simd< T, N >, const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, N > LoadMaskBits (Simd< T, N > 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 >, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API intptr_t FindFirstTrue (const Simd< T, N >, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API size_t StoreMaskBits (Simd< T, N >, const Mask128< T, N > mask, uint8_t *bits)
 
template<typename T >
HWY_API bool AllFalse (const Full128< T > d, const Mask128< T > m)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API bool AllFalse (const Simd< T, N >, const Mask128< T, N > m)
 
template<typename T , size_t N>
HWY_API bool AllTrue (const Simd< T, N > d, const Mask128< T, N > m)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Compress (Vec128< T, N > v, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > CompressBits (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 > 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 > d, T *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved3 (const Vec128< uint8_t > v0, const Vec128< uint8_t > v1, const Vec128< uint8_t > v2, Full128< uint8_t >, uint8_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved3 (const Vec128< uint8_t, 8 > v0, const Vec128< uint8_t, 8 > v1, const Vec128< uint8_t, 8 > v2, Simd< uint8_t, 8 >, uint8_t *HWY_RESTRICT unaligned)
 
template<size_t N, HWY_IF_LE32(uint8_t, N) >
HWY_API void StoreInterleaved3 (const Vec128< uint8_t, N > v0, const Vec128< uint8_t, N > v1, const Vec128< uint8_t, N > v2, Simd< uint8_t, N >, uint8_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved4 (const Vec128< uint8_t > v0, const Vec128< uint8_t > v1, const Vec128< uint8_t > v2, const Vec128< uint8_t > v3, Full128< uint8_t >, uint8_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved4 (const Vec128< uint8_t, 8 > v0, const Vec128< uint8_t, 8 > v1, const Vec128< uint8_t, 8 > v2, const Vec128< uint8_t, 8 > v3, Simd< uint8_t, 8 >, uint8_t *HWY_RESTRICT unaligned)
 
template<size_t N, HWY_IF_LE32(uint8_t, N) >
HWY_API void StoreInterleaved4 (const Vec128< uint8_t, N > v0, const Vec128< uint8_t, N > v1, const Vec128< uint8_t, N > v2, const Vec128< uint8_t, N > v3, Simd< uint8_t, N >, uint8_t *HWY_RESTRICT unaligned)
 
template<typename T , size_t N>
HWY_API size_t StoreMaskBits (const Mask128< T, N > mask, uint8_t *bits)
 
template<typename T , size_t N>
HWY_API bool AllTrue (const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API bool AllFalse (const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API size_t CountTrue (const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > SumOfLanes (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > MinOfLanes (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > MaxOfLanes (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T,(N+1)/2 > UpperHalf (Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftRightBytes (const Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftRightLanes (const Vec128< T, N > v)
 
template<size_t kBytes, typename T , size_t N>
HWY_API Vec128< T, N > CombineShiftRightBytes (Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > InterleaveUpper (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, class D = Simd<T, N>>
HWY_API VFromD< RepartitionToWide< D > > ZipUpper (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N2>
HWY_API Vec128< T, N2 *2 > Combine (Vec128< T, N2 > hi2, Vec128< T, N2 > lo2)
 
template<typename T , size_t N2, HWY_IF_LE64(T, N2) >
HWY_API Vec128< T, N2 *2 > ZeroExtendVector (Vec128< T, N2 > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ConcatLowerLower (Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ConcatUpperUpper (Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ConcatLowerUpper (const Vec128< T, N > hi, const Vec128< T, N > lo)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ConcatUpperLower (Vec128< T, N > hi, Vec128< T, N > lo)
 
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, HWY_IF_LE128(T, N) >
constexpr HWY_API size_t Lanes (Simd< T, N >)
 
template<typename T , size_t N, HWY_IF_GT128(T, N) >
HWY_API size_t Lanes (Simd< T, N >)
 
template<size_t N>
svuint16_t Set (Simd< bfloat16_t, N > 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)
 
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_APICopySign (const V magn, const V sign)
 
template<class V >
HWY_APICopySignToAbs (const V abs, const V sign)
 
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<typename T , size_t N>
HWY_API bool AllFalse (Simd< T, N > d, svbool_t m)
 
template<typename T , size_t N>
HWY_API bool AllTrue (Simd< T, N > d, svbool_t m)
 
template<typename T , size_t N>
HWY_API intptr_t FindFirstTrue (Simd< T, N > d, svbool_t m)
 
template<class M , class V >
HWY_APIIfThenElseZero (const M mask, const V yes)
 
template<class M , class V >
HWY_APIIfThenZeroElse (const M 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_IF_NOT_FLOAT_D(D) >
HWY_API VFromD< D > VecFromMask (const D d, svbool_t mask)
 
template<size_t N>
HWY_API svuint16_t Load (Simd< bfloat16_t, N > d, const bfloat16_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void Store (svuint16_t v, Simd< bfloat16_t, N > 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>
HWY_API svuint32_t PromoteTo (Simd< uint32_t, N > dto, svuint8_t vfrom)
 
template<size_t N>
HWY_API svint32_t PromoteTo (Simd< int32_t, N > dto, svint8_t vfrom)
 
template<size_t N>
HWY_API svuint32_t U32FromU8 (svuint8_t v)
 
template<size_t N>
HWY_API svint16_t PromoteTo (Simd< int16_t, N > dto, svuint8_t vfrom)
 
template<size_t N>
HWY_API svint32_t PromoteTo (Simd< int32_t, N > dto, svuint16_t vfrom)
 
template<size_t N>
HWY_API svint32_t PromoteTo (Simd< int32_t, N > dto, svuint8_t vfrom)
 
template<size_t N>
HWY_API svfloat32_t PromoteTo (Simd< float32_t, N >, const svfloat16_t v)
 
template<size_t N>
HWY_API svfloat64_t PromoteTo (Simd< float64_t, N >, const svfloat32_t v)
 
template<size_t N>
HWY_API svfloat64_t PromoteTo (Simd< float64_t, N >, const svint32_t v)
 
template<size_t N>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N > dn, const svint16_t v)
 
template<size_t N>
HWY_API svuint16_t DemoteTo (Simd< uint16_t, N > dn, const svint32_t v)
 
template<size_t N>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N > dn, const svint32_t v)
 
HWY_API svuint8_t U8FromU32 (const svuint32_t v)
 
template<size_t N>
HWY_API svint8_t DemoteTo (Simd< int8_t, N > dn, const svint16_t v)
 
template<size_t N>
HWY_API svint16_t DemoteTo (Simd< int16_t, N > dn, const svint32_t v)
 
template<size_t N>
HWY_API svint8_t DemoteTo (Simd< int8_t, N > 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>
HWY_API svfloat16_t DemoteTo (Simd< float16_t, N > d, const svfloat32_t v)
 
template<size_t N>
HWY_API svuint16_t DemoteTo (Simd< bfloat16_t, N > d, const svfloat32_t v)
 
template<size_t N>
HWY_API svfloat32_t DemoteTo (Simd< float32_t, N > d, const svfloat64_t v)
 
template<size_t N>
HWY_API svint32_t DemoteTo (Simd< int32_t, N > 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_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 V >
HWY_APIOddEven (const V odd, const V even)
 
template<class D , class DI = RebindToSigned<D>>
HWY_API VFromD< DI > SetTableIndices (D d, const TFromD< DI > *idx)
 
template<class V , HWY_IF_LANE_SIZE_V(V, 2) >
HWY_APICompress (V v, svbool_t mask16)
 
HWY_API svfloat16_t Compress (svfloat16_t v, svbool_t mask16)
 
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<size_t kBytes, class D , class V = VFromD<D>>
HWY_APICombineShiftRightBytes (const D d, const V hi, const V lo)
 
template<class V , HWY_IF_FLOAT_V(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 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, typename T , size_t N, class V = VFromD<Simd<T, N>>>
HWY_APIShiftRightLanes (Simd< T, N > 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 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<typename T , class V = VFromD<Full<T>>>
HWY_APIInterleaveUpper (Simd< T, HWY_LANES(T)> d, const V a, const V b)
 
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>
HWY_API svfloat32_t PromoteTo (Simd< float32_t, N > df32, const svuint16_t v)
 
template<size_t N>
HWY_API svuint16_t ReorderDemote2To (Simd< bfloat16_t, N > 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 D , HWY_IF_LANE_SIZE_D(D, 1) >
HWY_INLINE svbool_t LoadMaskBits (D d, const uint8_t *HWY_RESTRICT bits)
 
template<typename T , size_t N>
HWY_API size_t StoreMaskBits (Simd< T, N > 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>
HWY_API svfloat32_t ReorderWidenMulAccumulate (Simd< float, N > df32, svuint16_t a, svuint16_t b, const svfloat32_t sum0, svfloat32_t &sum1)
 
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<typename V , HWY_IF_LANES_ARE(uint8_t, V) >
HWY_APIPopulationCount (V v)
 
template<typename T , size_t N>
constexpr HWY_INLINE size_t MLenFromD (Simd< T, N >)
 
template<size_t N>
HWY_API size_t Lanes (Simd< bfloat16_t, N >)
 
template<size_t N>
decltype(Set(Simd< uint16_t, N >(), 0)) Set (Simd< bfloat16_t, N > d, bfloat16_t arg)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API VFromD< Simd< T, N > > Set (Simd< T, N >, T arg)
 
template<typename T , size_t N>
HWY_API VFromD< Simd< T, N > > Zero (Simd< T, N > d)
 
template<class D >
HWY_API VFromD< D > Undefined (D d)
 
template<typename T , size_t N, class FromV , HWY_IF_LE128(T, N) >
HWY_API VFromD< Simd< T, N > > BitCast (Simd< T, N >, FromV v)
 
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 V >
HWY_API auto TestBit (const V a, const V bit) -> decltype(Eq(a, bit))
 
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 D >
HWY_API bool AllFalse (D d, MFromD< D > m)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API VFromD< Simd< T, N > > Load (Simd< T, N > d, const T *HWY_RESTRICT p)
 
template<size_t N>
HWY_API VFromD< Simd< uint16_t, N > > Load (Simd< bfloat16_t, N > d, const bfloat16_t *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void Store (VFromD< Simd< uint16_t, N >> v, Simd< bfloat16_t, N > d, bfloat16_t *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API void Store (VFromD< Simd< T, N >> v, Simd< T, N >, 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<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API void ScatterOffset (VFromD< Simd< T, N >> v, Simd< T, N >, T *HWY_RESTRICT base, VFromD< Simd< MakeSigned< T >, N >> offset)
 
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<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API VFromD< Simd< T, N > > GatherOffset (Simd< T, N >, const T *HWY_RESTRICT base, VFromD< Simd< MakeSigned< T >, N >> offset)
 
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>
HWY_API auto PromoteTo (Simd< int16_t, N > d, VFromD< Simd< uint8_t, N >> v) -> VFromD< decltype(d)>
 
template<size_t N>
HWY_API auto PromoteTo (Simd< int32_t, N > d, VFromD< Simd< uint8_t, N >> v) -> VFromD< decltype(d)>
 
template<size_t N>
HWY_API auto PromoteTo (Simd< int32_t, N > d, VFromD< Simd< uint16_t, N >> v) -> VFromD< decltype(d)>
 
template<size_t N>
HWY_API auto PromoteTo (Simd< float32_t, N > d, VFromD< Simd< bfloat16_t, N >> v) -> VFromD< decltype(d)>
 
HWY_API Vu16m1 DemoteTo (Du16m1 d, const Vi32m2 v)
 
HWY_API Vu16m2 DemoteTo (Du16m2 d, const Vi32m4 v)
 
HWY_API Vu16m4 DemoteTo (Du16m4 d, const Vi32m8 v)
 
HWY_API Vu8m1 DemoteTo (Du8m1 d, const Vi32m4 v)
 
HWY_API Vu8m2 DemoteTo (Du8m2 d, const Vi32m8 v)
 
HWY_API Vu8m1 DemoteTo (Du8m1 d, const Vi16m2 v)
 
HWY_API Vu8m2 DemoteTo (Du8m2 d, const Vi16m4 v)
 
HWY_API Vu8m4 DemoteTo (Du8m4 d, const Vi16m8 v)
 
HWY_API Vu8m1 U8FromU32 (const Vu32m4 v)
 
HWY_API Vu8m2 U8FromU32 (const Vu32m8 v)
 
HWY_API Vi8m1 DemoteTo (Di8m1 d, const Vi16m2 v)
 
HWY_API Vi8m2 DemoteTo (Di8m2 d, const Vi16m4 v)
 
HWY_API Vi8m4 DemoteTo (Di8m4 d, const Vi16m8 v)
 
HWY_API Vi16m1 DemoteTo (Di16m1 d, const Vi32m2 v)
 
HWY_API Vi16m2 DemoteTo (Di16m2 d, const Vi32m4 v)
 
HWY_API Vi16m4 DemoteTo (Di16m4 d, const Vi32m8 v)
 
HWY_API Vi8m1 DemoteTo (Di8m1 d, const Vi32m4 v)
 
HWY_API Vi8m2 DemoteTo (Di8m2 d, const Vi32m8 v)
 
HWY_API Vf32m1 DemoteTo (Df32m1 d, const Vf64m2 v)
 
HWY_API Vf32m2 DemoteTo (Df32m2 d, const Vf64m4 v)
 
HWY_API Vf32m4 DemoteTo (Df32m4 d, const Vf64m8 v)
 
HWY_API Vi32m1 DemoteTo (Di32m1 d, const Vf64m2 v)
 
HWY_API Vi32m2 DemoteTo (Di32m2 d, const Vf64m4 v)
 
HWY_API Vi32m4 DemoteTo (Di32m4 d, const Vf64m8 v)
 
template<size_t N>
HWY_API VFromD< Simd< uint16_t, N > > DemoteTo (Simd< bfloat16_t, N > d, VFromD< Simd< float, N >> v)
 
template<typename T , size_t N, class FromV , HWY_IF_LE128(T, N) >
HWY_API VFromD< Simd< T, N > > ConvertTo (Simd< T, N >, FromV v)
 
template<class V >
HWY_APIConcatUpperLower (const V hi, const V lo)
 
template<class V >
HWY_APIConcatLowerLower (const V hi, const V lo)
 
template<class V >
HWY_APIConcatUpperUpper (const V hi, const V lo)
 
template<class V >
HWY_APIConcatLowerUpper (const V hi, const V lo)
 
template<class V >
HWY_APIZeroExtendVector (const V lo)
 
template<class D , HWY_IF_NOT_LANE_SIZE_D(D, 8) >
HWY_API VFromD< D > LowerHalf (const D, const VFromD< D > v)
 
template<class D , HWY_IF_NOT_LANE_SIZE_D(D, 8) >
HWY_API VFromD< D > UpperHalf (const D d, const VFromD< D > v)
 
template<class D , class DU = RebindToUnsigned<D>>
HWY_API VFromD< DU > SetTableIndices (D d, const TFromD< DU > *idx)
 
template<class D >
HWY_API VFromD< D > Reverse (D, VFromD< D > v)
 
template<size_t kLanes, class D , class V = VFromD<D>>
HWY_APICombineShiftRightLanes (const D d, const V hi, V lo)
 
template<class V >
HWY_APIShuffle2301 (const V v)
 
template<class V , class VI >
HWY_APITableLookupBytesOr0 (const VI v, const V idx)
 
template<int kBytes, class V >
HWY_APIShiftLeftBytes (DFromV< V > d, const V v)
 
template<class D , class V >
HWY_APIInterleaveUpper (const D d, const V a, const V b)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > ZipLower (V a, V b)
 
template<class D >
HWY_API VFromD< D > SumOfLanes (D, const VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > MinOfLanes (D, const VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > MaxOfLanes (D, const VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > LoadDup128 (D d, const TFromD< D > *const HWY_RESTRICT p)
 
template<class D , HWY_IF_NOT_LANE_SIZE_D(D, 1) >
HWY_API MFromD< D > FirstN (const D d, const size_t n)
 
template<class V , HWY_IF_SIGNED_V(V) >
HWY_APINeg (const V v)
 
template<class V , HWY_IF_SIGNED_V(V) >
HWY_APIAbs (const V v)
 
template<class V >
HWY_APIAbsDiff (const V a, const V b)
 
template<class 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_IF_LANE_SIZE_V(V, 4) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > 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, class DF = Simd<float, N / 2>>
HWY_API VFromD< Simd< uint16_t, N > > ReorderDemote2To (Simd< bfloat16_t, N > dbf16, VFromD< DF > a, VFromD< DF > b)
 
template<size_t N, class DU16 = Simd<uint16_t, N * 2>>
HWY_API auto ReorderWidenMulAccumulate (Simd< float, N > df32, VFromD< DU16 > a, VFromD< DU16 > b, const VFromD< decltype(df32)> sum0, VFromD< decltype(df32)> &sum1) -> VFromD< decltype(df32)>
 
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 > 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 > 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<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< 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< 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 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)
 
HWY_API void StoreInterleaved3 (const Vec1< uint8_t > v0, const Vec1< uint8_t > v1, const Vec1< uint8_t > v2, Sisd< uint8_t > d, uint8_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved4 (const Vec1< uint8_t > v0, const Vec1< uint8_t > v1, const Vec1< uint8_t > v2, const Vec1< uint8_t > v3, Sisd< uint8_t > d, uint8_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)
 
template<typename FromT , typename ToT , HWY_IF_FLOAT(FromT) >
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_API Indices1< T > SetTableIndices (Sisd< T >, const int32_t *idx)
 
template<typename T >
HWY_API Vec1< T > TableLookupLanes (const Vec1< T > v, const Indices1< T >)
 
template<typename T >
HWY_API Vec1< T > Reverse (Sisd< T >, const Vec1< T > v)
 
template<int kLane, typename T >
HWY_API Vec1< T > Broadcast (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > TableLookupBytes (const Vec1< T > in, const Vec1< T > from)
 
template<typename T >
HWY_API Vec1< T > TableLookupBytesOr0 (const Vec1< T > in, const Vec1< T > from)
 
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 > Compress (Vec1< T > v, const uint8_t *HWY_RESTRICT)
 
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 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<typename T >
HWY_API size_t StoreMaskBits (const Mask1< T > mask, uint8_t *bits)
 
template<typename T >
HWY_API bool AllTrue (const Mask1< T > mask)
 
template<typename T >
HWY_API bool AllFalse (const Mask1< T > mask)
 
template<typename T >
HWY_API size_t CountTrue (const Mask1< T > mask)
 
template<typename T >
HWY_API Vec1< T > SumOfLanes (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > MinOfLanes (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > MaxOfLanes (const Vec1< T > v)
 
template<typename T , size_t N>
HWY_INLINE constexpr HWY_MAYBE_UNUSED size_t MaxLanes (Simd< T, N >)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > Zero (Simd< T, N >)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, N > Zero (Simd< float, N >)
 
template<size_t N, HWY_IF_LE128(uint8_t, N) >
HWY_API Vec128< uint8_t, N > Set (Simd< uint8_t, N >, const uint8_t t)
 
template<size_t N, HWY_IF_LE128(uint16_t, N) >
HWY_API Vec128< uint16_t, N > Set (Simd< uint16_t, N >, const uint16_t t)
 
template<size_t N, HWY_IF_LE128(uint32_t, N) >
HWY_API Vec128< uint32_t, N > Set (Simd< uint32_t, N >, const uint32_t t)
 
template<size_t N, HWY_IF_LE128(uint64_t, N) >
HWY_API Vec128< uint64_t, N > Set (Simd< uint64_t, N >, const uint64_t t)
 
template<size_t N, HWY_IF_LE128(int8_t, N) >
HWY_API Vec128< int8_t, N > Set (Simd< int8_t, N >, const int8_t t)
 
template<size_t N, HWY_IF_LE128(int16_t, N) >
HWY_API Vec128< int16_t, N > Set (Simd< int16_t, N >, const int16_t t)
 
template<size_t N, HWY_IF_LE128(int32_t, N) >
HWY_API Vec128< int32_t, N > Set (Simd< int32_t, N >, const int32_t t)
 
template<size_t N, HWY_IF_LE128(int64_t, N) >
HWY_API Vec128< int64_t, N > Set (Simd< int64_t, N >, const int64_t t)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, N > Set (Simd< float, N >, const float t)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > Undefined (Simd< T, N > d)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > operator+ (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > operator+ (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > operator+ (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > operator+ (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > operator+ (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > operator+ (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > operator+ (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > operator- (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > operator- (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > operator- (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > operator- (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > operator- (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > operator- (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > operator- (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > SaturatedAdd (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > SaturatedAdd (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > SaturatedAdd (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > SaturatedAdd (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > SaturatedSub (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > SaturatedSub (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > SaturatedSub (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > SaturatedSub (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > AverageRound (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > AverageRound (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > Abs (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > Abs (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Abs (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, N > Abs (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Abs (const Vec128< float, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > ShiftLeft (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > ShiftRight (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > ShiftLeft (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > ShiftRight (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int16_t, N > ShiftLeft (const Vec128< int16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int16_t, N > ShiftRight (const Vec128< int16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int32_t, N > ShiftLeft (const Vec128< int32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int32_t, N > ShiftRight (const Vec128< int32_t, N > v)
 
template<int kBits, typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, N > ShiftLeft (const Vec128< T, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint8_t, N > ShiftRight (const Vec128< uint8_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int8_t, N > ShiftRight (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > ShiftLeftSame (const Vec128< uint16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > ShiftRightSame (const Vec128< uint16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > ShiftLeftSame (const Vec128< uint32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > ShiftRightSame (const Vec128< uint32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, N > ShiftLeftSame (const Vec128< int16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, N > ShiftRightSame (const Vec128< int16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int32_t, N > ShiftLeftSame (const Vec128< int32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int32_t, N > ShiftRightSame (const Vec128< int32_t, N > v, const int bits)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, N > ShiftLeftSame (const Vec128< T, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > ShiftRightSame (Vec128< uint8_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int8_t, N > ShiftRightSame (Vec128< int8_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > Min (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > Min (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > Min (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > Min (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > Min (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Min (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > Min (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > Max (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > Max (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > Max (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > Max (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > Max (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Max (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > Max (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > operator* (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > operator* (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > operator* (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > operator* (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > MulHigh (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > MulHigh (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Neg (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, N > Neg (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > Neg (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Neg (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, N > Neg (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > operator* (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > AbsDiff (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > TestBit (Vec128< T, N > v, Vec128< T, N > bit)
 
template<size_t N>
HWY_API Mask128< uint8_t, N > operator== (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, N > operator== (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, N > operator== (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, N > operator== (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, N > operator== (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, N > operator== (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator== (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< uint8_t, N > operator!= (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, N > operator!= (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, N > operator!= (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, N > operator!= (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, N > operator!= (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, N > operator!= (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator!= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, N > operator> (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, N > operator> (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, N > operator> (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, N > operator> (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator> (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator< (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator<= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator>= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Not (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > And (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > AndNot (Vec128< T, N > not_mask, Vec128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Or (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Xor (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API Vec128< T, N > BroadcastSignBit (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, N > BroadcastSignBit (const Vec128< int8_t, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > IfThenElse (Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > ZeroIfNegative (Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, N > operator<< (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, N > operator>> (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, N > Load (Simd< T, N >, const T *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > LoadU (Simd< T, N > d, 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 >, T *HWY_RESTRICT p)
 
HWY_API void Store (const Vec128< float, 1 > v, Simd< float, 1 >, float *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API void StoreU (Vec128< T, N > v, Simd< T, N > d, T *HWY_RESTRICT p)
 
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 float GetLane (const Vec128< float, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N/2 > LowerHalf (Vec128< T, N > v)
 
template<typename T >
HWY_API Vec128< T, 8/sizeof(T)> UpperHalf (Half< Full128< T >>, const Vec128< T > v)
 
HWY_API Vec128< float, 2 > UpperHalf (Half< Full128< float >>, const Vec128< float > 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 > d, V hi, V lo)
 
template<int kLane, size_t N>
HWY_API Vec128< uint16_t, N > Broadcast (const Vec128< uint16_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< uint32_t, N > Broadcast (const Vec128< uint32_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int16_t, N > Broadcast (const Vec128< int16_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int32_t, N > Broadcast (const Vec128< int32_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< float, N > Broadcast (const Vec128< float, N > v)
 
template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytes (const Vec128< T, N > bytes, const Vec128< TI, NI > from)
 
template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytesOr0 (const Vec128< T, N > bytes, const Vec128< TI, NI > 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<size_t N>
HWY_API Vec128< uint8_t, N > InterleaveLower (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > InterleaveLower (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > InterleaveLower (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > InterleaveLower (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > InterleaveLower (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > InterleaveLower (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > InterleaveLower (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > InterleaveLower (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > InterleaveLower (Vec128< float, N > a, Vec128< float, N > b)
 
template<typename T , class V = Vec128<T>>
HWY_APIInterleaveUpper (Full128< T >, V a, V b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Combine (Simd< T, N > d, Vec128< T, N/2 > hi_half, Vec128< T, N/2 > lo_half)
 
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, 4) >
HWY_API Vec128< T, 2 > ConcatOdd (Simd< T, 2 >, Vec128< T, 2 > hi, Vec128< T, 2 > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, 2 > ConcatEven (Simd< T, 2 >, Vec128< T, 2 > hi, Vec128< T, 2 > lo)
 
template<size_t N>
HWY_API Vec128< float, N > OddEven (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > PromoteTo (Simd< uint16_t, N >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > PromoteTo (Simd< uint32_t, N >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > PromoteTo (Simd< int16_t, N >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > PromoteTo (Simd< int32_t, N >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > PromoteTo (Simd< int32_t, N >, const Vec128< uint16_t, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > PromoteTo (Simd< double, N >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > DemoteTo (Simd< uint16_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > DemoteTo (Simd< int16_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > DemoteTo (Simd< uint8_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > DemoteTo (Simd< uint8_t, N >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, N > DemoteTo (Simd< int8_t, N >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, N > DemoteTo (Simd< int8_t, N >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > DemoteTo (Simd< int32_t, N >, const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > U8FromU32 (const Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > ConvertTo (Simd< float, N >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > ConvertTo (Simd< int32_t, N >, const Vec128< float, N > v)
 
template<typename T , size_t N>
HWY_API size_t CountTrue (const Simd< T, N >, const Mask128< T > m)
 
template<typename T , size_t N>
HWY_API bool AllTrue (const Simd< T, N >, const Mask128< T > m)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API bool AllTrue (const Simd< T, N > d, const Mask128< T, N > m)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > CompressBits (Vec128< T, N > v, const uint8_t *HWY_RESTRICT bits)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, N > Zero (Simd< double, N >)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, N > Set (Simd< double, N >, const double t)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, N > Undefined (Simd< float, N >)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, N > Undefined (Simd< double, N >)
 
template<size_t N>
HWY_API double GetLane (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > And (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > And (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > AndNot (const Vec128< float, N > not_mask, const Vec128< float, N > mask)
 
template<size_t N>
HWY_API Vec128< double, N > AndNot (const Vec128< double, N > not_mask, const Vec128< double, N > mask)
 
template<size_t N>
HWY_API Vec128< float, N > Or (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > Or (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > Xor (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > Xor (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > PopulationCount (Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > Abs (const Vec128< double, N > v)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, N > FirstN (const Simd< T, N >, size_t n)
 
template<size_t N>
HWY_API Vec128< float, N > IfThenElse (Mask128< float, N > mask, Vec128< float, N > yes, Vec128< float, N > no)
 
template<size_t N>
HWY_API Vec128< double, N > IfThenElse (Mask128< double, N > mask, Vec128< double, N > yes, Vec128< double, N > no)
 
template<size_t N>
HWY_API Vec128< float, N > IfThenElseZero (Mask128< float, N > mask, Vec128< float, N > yes)
 
template<size_t N>
HWY_API Vec128< double, N > IfThenElseZero (Mask128< double, N > mask, Vec128< double, N > yes)
 
template<size_t N>
HWY_API Vec128< float, N > IfThenZeroElse (Mask128< float, N > mask, Vec128< float, N > no)
 
template<size_t N>
HWY_API Vec128< double, N > IfThenZeroElse (Mask128< double, N > mask, Vec128< double, N > no)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > Shuffle2301 (const Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Shuffle2301 (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Shuffle2301 (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 >, Mask128< TFrom, NFrom > m)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask128< T, N > operator== (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > operator== (Vec128< double, N > a, Vec128< double, N > b)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask128< T, N > operator!= (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > operator!= (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > operator> (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > operator>= (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > MaskFromVec (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, N > MaskFromVec (const Vec128< double, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, N > VecFromMask (const Mask128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > VecFromMask (const Mask128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > VecFromMask (const Mask128< double, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator<= (Vec128< T, N > a, Vec128< T, N > b)
 
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 Vec128< T, 8/sizeof(T)> Load (Simd< T, 8/sizeof(T)>, const T *HWY_RESTRICT p)
 
HWY_API Vec128< float, 2 > Load (Simd< float, 2 >, const float *HWY_RESTRICT p)
 
HWY_API Vec128< double, 1 > Load (Simd< double, 1 >, const double *HWY_RESTRICT p)
 
HWY_API Vec128< float, 1 > Load (Simd< float, 1 >, const float *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > LoadU (Simd< T, N > d, const T *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) , HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > MaskedLoad (Mask128< T, N > m, Simd< T, N >, const T *HWY_RESTRICT aligned)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, N > MaskedLoad (Mask128< float, N > m, Simd< float, N >, const float *HWY_RESTRICT aligned)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, N > MaskedLoad (Mask128< double, N > m, Simd< double, N >, const double *HWY_RESTRICT aligned)
 
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 (Vec128< T, 8/sizeof(T)> v, Simd< T, 8/sizeof(T)>, T *HWY_RESTRICT p)
 
HWY_API void Store (const Vec128< float, 2 > v, Simd< float, 2 >, float *HWY_RESTRICT p)
 
HWY_API void Store (const Vec128< double, 1 > v, Simd< double, 1 >, double *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 > d, T *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > operator+ (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > operator+ (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > operator+ (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > operator- (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > operator- (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > operator- (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<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > ShiftLeft (const Vec128< uint64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int64_t, N > ShiftLeft (const Vec128< int64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > ShiftRight (const Vec128< uint64_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > BroadcastSignBit (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > BroadcastSignBit (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, N > BroadcastSignBit (const Vec128< int64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int64_t, N > ShiftRight (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > ShiftLeftSame (const Vec128< uint64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int64_t, N > ShiftLeftSame (const Vec128< int64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > ShiftRightSame (const Vec128< uint64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int64_t, N > ShiftRightSame (const Vec128< int64_t, N > v, const int bits)
 
HWY_API Vec128< float, 1 > operator* (const Vec128< float, 1 > a, const Vec128< float, 1 > b)
 
template<size_t N>
HWY_API Vec128< double, N > operator* (const Vec128< double, N > a, const Vec128< double, N > b)
 
HWY_API Vec128< double, 1 > operator* (const Vec128< double, 1 > a, const Vec128< double, 1 > 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, N > operator/ (const Vec128< double, N > a, const Vec128< double, N > b)
 
HWY_API Vec128< double, 1 > operator/ (const Vec128< double, 1 > a, const Vec128< double, 1 > b)
 
HWY_API Vec128< float, 1 > ApproximateReciprocal (const Vec128< float, 1 > v)
 
template<size_t N>
HWY_API Vec128< double, N > MulAdd (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > add)
 
template<size_t N>
HWY_API Vec128< double, N > NegMulAdd (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > add)
 
template<size_t N>
HWY_API Vec128< double, N > MulSub (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > sub)
 
template<size_t N>
HWY_API Vec128< double, N > NegMulSub (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, N > Sqrt (const Vec128< double, N > v)
 
HWY_API Vec128< double, 1 > Sqrt (const Vec128< double, 1 > v)
 
HWY_API Vec128< float, 1 > ApproximateReciprocalSqrt (const Vec128< float, 1 > v)
 
template<size_t N>
HWY_API Vec128< double, N > Min (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > Max (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 >, float *HWY_RESTRICT aligned)
 
template<size_t N>
HWY_API void Stream (const Vec128< double, N > v, Simd< double, N >, double *HWY_RESTRICT aligned)
 
template<typename T , size_t N, typename Offset >
HWY_API void ScatterOffset (Vec128< T, N > v, Simd< T, N > d, T *HWY_RESTRICT 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 > d, T *HWY_RESTRICT base, const Vec128< Index, N > index)
 
template<size_t N>
HWY_API void ScatterOffset (Vec128< float, N > v, Simd< float, N >, 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 >, 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 >, 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 >, double *HWY_RESTRICT base, const Vec128< int64_t, N > index)
 
HWY_API Vec128< double, 1 > UpperHalf (Simd< double, 1 >, Vec128< double > v)
 
template<int kLane, size_t N>
HWY_API Vec128< uint64_t, N > Broadcast (const Vec128< uint64_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int64_t, N > Broadcast (const Vec128< int64_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< double, N > Broadcast (const Vec128< double, N > v)
 
template<size_t N, HWY_IF_LE128(uint8_t, N) >
HWY_API Vec128< uint8_t, N > InterleaveLower (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, N > InterleaveLower (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, N > InterleaveLower (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, N > InterleaveLower (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, N > InterleaveLower (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, N > InterleaveLower (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, N > InterleaveLower (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, N > InterleaveLower (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, N > InterleaveLower (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) , class V = Vec128<T, N>>
HWY_APIInterleaveLower (Simd< T, N >, V a, V b)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T > ZeroExtendVector (Full128< T >, Vec128< T, 8/sizeof(T)> lo)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > ZeroExtendVector (Simd< T, N > 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 >, const Vec128< float > hi, const Vec128< float > lo)
 
HWY_API Vec128< double > ConcatUpperLower (Full128< double >, const Vec128< double > hi, const Vec128< double > lo)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > ConcatUpperLower (Simd< T, N > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<size_t N>
HWY_API Vec128< double, N > OddEven (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > operator<< (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, N > operator<< (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, N > operator>> (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, N > operator>> (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, N > operator>> (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, N > operator>> (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, N > operator>> (const Vec128< int64_t, N > v, const Vec128< int64_t, N > bits)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > PromoteTo (Simd< uint64_t, N >, const Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_INLINE_F16 Vec128< float, N > PromoteTo (Simd< float, N > df32, const Vec128< float16_t, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > PromoteTo (Simd< double, N >, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > DemoteTo (Simd< float, N >, const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > ConvertTo (Simd< double, N > dd, const Vec128< int64_t, N > v)
 
HWY_API Vec128< int64_t > ConvertTo (Full128< int64_t > di, const Vec128< double > v)
 
HWY_API Vec128< int64_t, 1 > ConvertTo (Simd< int64_t, 1 > di, const Vec128< double, 1 > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Round (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Trunc (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Ceil (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Floor (const Vec128< T, N > v)
 
template<typename T , size_t N, typename T2 , HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > Iota (const Simd< T, N > d, const T2 first)
 
template<typename T , size_t N>
HWY_API size_t CountTrue (const Simd< T, N >, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API bool AllFalse (const Simd< T, N >, const Mask128< T, N > mask)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, N > Compress (Vec128< T, N > v, Mask128< T, N > mask)
 
template<size_t N>
HWY_API Vec128< float, N > Compress (Vec128< float, N > v, Mask128< float, N > mask)
 
template<size_t N>
HWY_API Vec128< double, N > Compress (Vec128< double, N > v, Mask128< double, 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 > 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 >, 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 >, double *HWY_RESTRICT unaligned)
 
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< double > Zero (Full256< double >)
 
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)
 
HWY_API Vec256< double > Set (Full256< double >, const double t)
 
template<typename T >
HWY_API Vec256< T > Undefined (Full256< T >)
 
HWY_API Vec256< float > Undefined (Full256< float >)
 
HWY_API Vec256< double > Undefined (Full256< double >)
 
template<typename T >
HWY_API Vec256< T > And (Vec256< T > a, Vec256< T > b)
 
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)
 
template<typename T >
HWY_API Vec256< T > AndNot (Vec256< T > not_mask, Vec256< T > mask)
 
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)
 
template<typename T >
HWY_API Vec256< T > Or (Vec256< T > a, Vec256< T > b)
 
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)
 
template<typename T >
HWY_API Vec256< T > Xor (Vec256< T > a, Vec256< T > 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 > Not (const Vec256< T > v)
 
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 > PopulationCount (Vec256< T > v)
 
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_API Vec256< T > IfThenElse (Mask256< T > mask, Vec256< T > yes, Vec256< T > no)
 
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)
 
template<typename T >
HWY_API Vec256< T > IfThenElseZero (Mask256< T > mask, Vec256< T > yes)
 
HWY_API Vec256< float > IfThenElseZero (Mask256< float > mask, Vec256< float > yes)
 
HWY_API Vec256< double > IfThenElseZero (Mask256< double > mask, Vec256< double > yes)
 
template<typename T >
HWY_API Vec256< T > IfThenZeroElse (Mask256< T > mask, Vec256< T > no)
 
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 > 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_API Mask256< T > Not (const Mask256< T > m)
 
template<typename TFrom , typename TTo >
HWY_API Mask256< TTo > RebindMask (Full256< TTo >, Mask256< TFrom > m)
 
template<typename T >
HWY_API Mask256< T > TestBit (const Vec256< T > v, const Vec256< T > bit)
 
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< float > operator== (Vec256< float > a, Vec256< float > 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< float > operator!= (Vec256< float > a, Vec256< float > b)
 
HWY_API Mask256< double > operator!= (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< int8_t > operator> (Vec256< int8_t > a, Vec256< int8_t > b)
 
HWY_API Mask256< int16_t > operator> (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Mask256< int32_t > operator> (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Mask256< int64_t > operator> (Vec256< int64_t > a, Vec256< int64_t > b)
 
HWY_API Mask256< float > operator> (Vec256< float > a, Vec256< float > b)
 
HWY_API Mask256< double > operator> (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< float > operator>= (Vec256< float > a, Vec256< float > b)
 
HWY_API Mask256< double > operator>= (Vec256< double > a, Vec256< double > b)
 
template<typename T >
HWY_API Mask256< T > MaskFromVec (const Vec256< T > v)
 
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 Vec256< T > VecFromMask (Full256< T >, const Mask256< T > v)
 
template<typename T >
HWY_API Mask256< T > operator< (const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Mask256< T > operator<= (const Vec256< T > a, const Vec256< T > b)
 
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< double > Min (const Vec256< double > a, const Vec256< double > 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< double > Max (const Vec256< double > a, const Vec256< double > b)
 
template<typename T >
HWY_API Mask256< T > FirstN (const Full256< T > d, size_t n)
 
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< uint64_t > operator+ (const Vec256< uint64_t > a, const Vec256< uint64_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< int64_t > operator+ (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< float > operator+ (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > operator+ (const Vec256< double > a, const Vec256< double > b)
 
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< uint64_t > operator- (const Vec256< uint64_t > a, const Vec256< uint64_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< int64_t > operator- (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< float > operator- (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > operator- (const Vec256< double > a, const Vec256< double > b)
 
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< float > Abs (const Vec256< float > v)
 
HWY_API Vec256< double > Abs (const Vec256< double > v)
 
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< 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<int kBits>
HWY_API Vec256< uint16_t > ShiftLeft (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< uint64_t > ShiftLeft (const Vec256< uint64_t > v)
 
template<int kBits>
HWY_API Vec256< int16_t > ShiftLeft (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< int64_t > ShiftLeft (const Vec256< int64_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< uint16_t > ShiftRight (const Vec256< uint16_t > v)
 
template<int kBits>
HWY_API Vec256< uint32_t > ShiftRight (const Vec256< uint32_t > v)
 
template<int kBits>
HWY_API Vec256< uint64_t > ShiftRight (const Vec256< uint64_t > v)
 
template<int kBits>
HWY_API Vec256< uint8_t > ShiftRight (const Vec256< uint8_t > v)
 
template<int kBits>
HWY_API Vec256< int16_t > ShiftRight (const Vec256< int16_t > v)
 
template<int kBits>
HWY_API Vec256< int32_t > ShiftRight (const Vec256< int32_t > v)
 
template<int kBits>
HWY_API Vec256< int8_t > ShiftRight (const Vec256< int8_t > v)
 
HWY_API Vec256< int8_t > BroadcastSignBit (const Vec256< int8_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< int64_t > Abs (const Vec256< int64_t > v)
 
HWY_API Vec256< uint16_t > ShiftLeftSame (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< uint64_t > ShiftLeftSame (const Vec256< uint64_t > v, const int bits)
 
HWY_API Vec256< int16_t > ShiftLeftSame (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< int64_t > ShiftLeftSame (const Vec256< int64_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< uint16_t > ShiftRightSame (const Vec256< uint16_t > v, const int bits)
 
HWY_API Vec256< uint32_t > ShiftRightSame (const Vec256< uint32_t > v, const int bits)
 
HWY_API Vec256< uint64_t > ShiftRightSame (const Vec256< uint64_t > v, const int bits)
 
HWY_API Vec256< uint8_t > ShiftRightSame (Vec256< uint8_t > v, const int bits)
 
HWY_API Vec256< int16_t > ShiftRightSame (const Vec256< int16_t > v, const int bits)
 
HWY_API Vec256< int32_t > ShiftRightSame (const Vec256< int32_t > v, const int bits)
 
HWY_API Vec256< int64_t > ShiftRightSame (const Vec256< int64_t > v, const int bits)
 
HWY_API Vec256< int8_t > ShiftRightSame (Vec256< int8_t > v, const int bits)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > Neg (const Vec256< T > v)
 
HWY_API Vec256< float > operator* (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > operator* (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< float > operator/ (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > operator/ (const Vec256< double > a, const Vec256< double > 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< double > MulAdd (const Vec256< double > mul, const Vec256< double > x, const Vec256< double > add)
 
HWY_API Vec256< float > NegMulAdd (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > add)
 
HWY_API Vec256< double > NegMulAdd (const Vec256< double > mul, const Vec256< double > x, const Vec256< double > add)
 
HWY_API Vec256< float > MulSub (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > sub)
 
HWY_API Vec256< double > MulSub (const Vec256< double > mul, const Vec256< double > x, const Vec256< double > sub)
 
HWY_API Vec256< float > NegMulSub (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > sub)
 
HWY_API Vec256< double > NegMulSub (const Vec256< double > mul, const Vec256< double > x, const Vec256< double > sub)
 
HWY_API Vec256< float > Sqrt (const Vec256< float > v)
 
HWY_API Vec256< double > Sqrt (const Vec256< double > v)
 
HWY_API Vec256< float > ApproximateReciprocalSqrt (const Vec256< float > v)
 
HWY_API Vec256< float > Round (const Vec256< float > v)
 
HWY_API Vec256< double > Round (const Vec256< double > v)
 
HWY_API Vec256< float > Trunc (const Vec256< float > v)
 
HWY_API Vec256< double > Trunc (const Vec256< double > v)
 
HWY_API Vec256< float > Ceil (const Vec256< float > v)
 
HWY_API Vec256< double > Ceil (const Vec256< double > v)
 
HWY_API Vec256< float > Floor (const Vec256< float > v)
 
HWY_API Vec256< double > Floor (const Vec256< double > v)
 
template<typename T >
HWY_API Vec256< T > Load (Full256< T >, const T *HWY_RESTRICT aligned)
 
HWY_API Vec256< float > Load (Full256< float >, const float *HWY_RESTRICT aligned)
 
HWY_API Vec256< double > Load (Full256< double >, const double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec256< T > LoadU (Full256< T >, const T *HWY_RESTRICT p)
 
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, 4) >
HWY_API Vec256< T > MaskedLoad (Mask256< T > m, Full256< T >, const T *HWY_RESTRICT aligned)
 
HWY_API Vec256< float > MaskedLoad (Mask256< float > m, Full256< float >, const float *HWY_RESTRICT aligned)
 
HWY_API Vec256< double > MaskedLoad (Mask256< double > m, Full256< double >, const double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec256< T > LoadDup128 (Full256< T >, const T *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)
 
template<typename T >
HWY_API void Store (Vec256< T > v, Full256< T >, T *HWY_RESTRICT aligned)
 
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)
 
template<typename T >
HWY_API void StoreU (Vec256< T > v, Full256< T >, T *HWY_RESTRICT p)
 
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_API void Stream (Vec256< T > v, Full256< T >, T *HWY_RESTRICT aligned)
 
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)
 
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)
 
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)
 
template<typename T , typename Offset >
HWY_API Vec256< T > GatherOffset (Full256< T > d, const T *HWY_RESTRICT base, const Vec256< Offset > offset)
 
template<typename T , typename Index >
HWY_API Vec256< T > GatherIndex (Full256< T > d, const T *HWY_RESTRICT base, const Vec256< Index > 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)
 
template<typename T >
HWY_API Vec128< T > LowerHalf (Full128< T >, Vec256< T > v)
 
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 > LowerHalf (Vec256< T > 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_APIGetLane (const Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > ZeroExtendVector (Full256< T >, Vec128< T > lo)
 
HWY_API Vec256< float > ZeroExtendVector (Full256< float >, Vec128< float > lo)
 
HWY_API Vec256< double > ZeroExtendVector (Full256< double >, Vec128< double > lo)
 
template<typename T >
HWY_API Vec256< T > Combine (Full256< T > d, Vec128< T > hi, Vec128< T > 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 kBytes, typename T >
HWY_API Vec256< T > ShiftLeftBytes (Full256< T >, const Vec256< T > v)
 
template<int kBytes, typename T >
HWY_API Vec256< T > ShiftLeftBytes (const 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 >, const Vec256< T > v)
 
template<int kLanes, typename T >
HWY_API Vec256< T > ShiftRightLanes (Full256< T > d, const Vec256< T > v)
 
template<int kBytes, typename T , class V = Vec256<T>>
HWY_APICombineShiftRightBytes (Full256< T > d, 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< uint64_t > Broadcast (const Vec256< uint64_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< int64_t > Broadcast (const Vec256< int64_t > v)
 
template<int kLane>
HWY_API Vec256< float > Broadcast (Vec256< float > v)
 
template<int kLane>
HWY_API Vec256< double > Broadcast (const Vec256< double > v)
 
HWY_API Vec256< uint32_t > Shuffle2301 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle2301 (const Vec256< int32_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 >
HWY_API Indices256< T > SetTableIndices (const Full256< T >, const int32_t *idx)
 
HWY_API Vec256< uint32_t > TableLookupLanes (const Vec256< uint32_t > v, const Indices256< uint32_t > idx)
 
HWY_API Vec256< int32_t > TableLookupLanes (const Vec256< int32_t > v, const Indices256< int32_t > idx)
 
HWY_API Vec256< float > TableLookupLanes (const Vec256< float > v, const Indices256< float > idx)
 
template<typename T >
HWY_API Vec256< T > Reverse (Full256< T > d, const Vec256< T > v)
 
HWY_API Vec256< uint8_t > InterleaveLower (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > InterleaveLower (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > InterleaveLower (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > InterleaveLower (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > InterleaveLower (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > InterleaveLower (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > InterleaveLower (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > InterleaveLower (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< float > InterleaveLower (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > InterleaveLower (const Vec256< double > a, const Vec256< double > 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 , 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)
 
template<typename T >
HWY_API Vec256< T > ConcatLowerLower (Full256< T > d, const Vec256< T > hi, const Vec256< T > lo)
 
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)
 
template<typename T >
HWY_API Vec256< T > ConcatLowerUpper (Full256< T >, const Vec256< T > hi, const Vec256< T > 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)
 
template<typename T >
HWY_API Vec256< T > ConcatUpperLower (Full256< T >, const Vec256< T > hi, const Vec256< T > 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)
 
template<typename T >
HWY_API Vec256< T > ConcatUpperUpper (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 > d, Vec256< T > hi, Vec256< T > 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)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > ConcatEven (Full256< T > d, Vec256< T > hi, Vec256< T > 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_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)
 
HWY_API Vec256< double > OddEven (const Vec256< double > a, const Vec256< double > b)
 
template<typename T , typename TI >
HWY_API Vec256< TI > TableLookupBytes (const Vec256< T > bytes, const Vec256< TI > from)
 
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)
 
template<typename T , HWY_IF_SIGNED(T) >
HWY_API Vec256< T > operator<< (const Vec256< T > v, const Vec256< 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_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)
 
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< uint16_t > PromoteTo (Full256< uint16_t >, Vec128< uint8_t > v)
 
HWY_API Vec256< uint32_t > PromoteTo (Full256< uint32_t >, Vec128< uint8_t, 8 > v)
 
HWY_API Vec256< int16_t > PromoteTo (Full256< int16_t >, Vec128< uint8_t > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, Vec128< uint8_t, 8 > v)
 
HWY_API Vec256< uint32_t > PromoteTo (Full256< uint32_t >, Vec128< uint16_t > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, Vec128< uint16_t > v)
 
HWY_API Vec256< uint64_t > PromoteTo (Full256< uint64_t >, Vec128< uint32_t > v)
 
HWY_API Vec256< int16_t > PromoteTo (Full256< int16_t >, Vec128< int8_t > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, Vec128< int8_t, 8 > v)
 
HWY_API Vec256< int32_t > PromoteTo (Full256< int32_t >, Vec128< int16_t > v)
 
HWY_API Vec256< int64_t > PromoteTo (Full256< int64_t >, Vec128< int32_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, 8 > DemoteTo (Simd< uint8_t, 8 >, const Vec256< int32_t > v)
 
HWY_API Vec128< uint8_t > DemoteTo (Full128< uint8_t >, const Vec256< int16_t > v)
 
HWY_API Vec128< int8_t, 8 > DemoteTo (Simd< int8_t, 8 >, const Vec256< int32_t > v)
 
HWY_API Vec128< int8_t > DemoteTo (Full128< int8_t >, const Vec256< int16_t > v)
 
HWY_API Vec128< float16_tDemoteTo (Full128< float16_t > df16, const Vec256< float > v)
 
HWY_API Vec128< bfloat16_tDemoteTo (Full128< bfloat16_t > dbf16, const Vec256< float > 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 Vec128< int32_t > DemoteTo (Full128< int32_t >, const Vec256< double > v)
 
HWY_API Vec128< uint8_t, 8 > U8FromU32 (const Vec256< uint32_t > v)
 
HWY_API Vec256< float > ConvertTo (Full256< float >, const Vec256< int32_t > v)
 
HWY_API Vec256< double > ConvertTo (Full256< double > dd, const Vec256< int64_t > v)
 
HWY_API Vec256< int32_t > ConvertTo (Full256< int32_t > d, const Vec256< float > v)
 
HWY_API Vec256< int64_t > ConvertTo (Full256< int64_t > di, const Vec256< double > v)
 
HWY_API Vec256< int32_t > NearestInt (const Vec256< float > v)
 
HWY_API Vec256< float > PromoteTo (Full256< float > df32, const Vec128< float16_t > v)
 
HWY_API Vec256< float > PromoteTo (Full256< float > df32, const Vec128< bfloat16_t > v)
 
HWY_API Vec256< uint8_t > AESRound (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 Mask256< T > LoadMaskBits (const Full256< T >, 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 Mask256< T > mask)
 
template<typename T >
HWY_API intptr_t FindFirstTrue (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)
 
HWY_API Vec256< double > Compress (Vec256< double > v, Mask256< double > mask)
 
template<typename T >
HWY_API Vec256< T > CompressBits (Vec256< T > v, const uint8_t *HWY_RESTRICT bits)
 
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_API size_t CompressBitsStore (Vec256< T > v, const uint8_t *HWY_RESTRICT bits, Full256< T > d, T *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved3 (const Vec256< uint8_t > v0, const Vec256< uint8_t > v1, const Vec256< uint8_t > v2, Full256< uint8_t > d, uint8_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved4 (const Vec256< uint8_t > v0, const Vec256< uint8_t > v1, const Vec256< uint8_t > v2, const Vec256< uint8_t > v3, Full256< uint8_t > d8, uint8_t *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API Vec256< T > SumOfLanes (Full256< T > d, const Vec256< T > vHL)
 
template<typename T >
HWY_API Vec256< T > MinOfLanes (Full256< T > d, const Vec256< T > vHL)
 
template<typename T >
HWY_API Vec256< T > MaxOfLanes (Full256< T > d, const Vec256< T > vHL)
 
template<typename T >
HWY_API size_t StoreMaskBits (const Mask256< T > mask, uint8_t *bits)
 
template<typename T >
HWY_API bool AllTrue (const Mask256< T > mask)
 
template<typename T >
HWY_API bool AllFalse (const Mask256< T > mask)
 
template<typename T >
HWY_API size_t CountTrue (const Mask256< T > mask)
 
template<typename T >
HWY_API Vec256< T > SumOfLanes (const Vec256< T > vHL)
 
template<typename T >
HWY_API Vec256< T > MinOfLanes (const Vec256< T > vHL)
 
template<typename T >
HWY_API Vec256< T > MaxOfLanes (const Vec256< T > vHL)
 
template<typename T >
HWY_API Vec128< T > UpperHalf (Vec256< T > v)
 
template<int kBytes, typename T >
HWY_API Vec256< T > ShiftRightBytes (const Vec256< T > v)
 
template<int kLanes, typename T >
HWY_API Vec256< T > ShiftRightLanes (const Vec256< T > v)
 
template<size_t kBytes, typename T >
HWY_API Vec256< T > CombineShiftRightBytes (Vec256< T > hi, Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > InterleaveUpper (Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< MakeWide< T > > ZipUpper (Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Combine (Vec128< T > hi, Vec128< T > lo)
 
template<typename T >
HWY_API Vec256< T > ZeroExtendVector (Vec128< T > lo)
 
template<typename T >
HWY_API Vec256< T > ConcatLowerLower (Vec256< T > hi, Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > ConcatLowerUpper (Vec256< T > hi, Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > ConcatUpperLower (Vec256< T > hi, Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > ConcatUpperUpper (Vec256< T > hi, Vec256< T > lo)
 
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 > 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_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< 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)
 
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* (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< 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< uint16_t > MulHigh (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< int16_t > MulHigh (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int64_t > MulEven (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< uint64_t > MulEven (const Vec512< uint32_t > a, const 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< 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)
 
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, 4) >
HWY_API Vec512< T > MaskedLoad (Mask512< T > m, Full512< T >, const T *HWY_RESTRICT aligned)
 
HWY_API Vec512< float > MaskedLoad (Mask512< float > m, Full512< float >, const float *HWY_RESTRICT aligned)
 
HWY_API Vec512< double > MaskedLoad (Mask512< double > m, Full512< double >, const double *HWY_RESTRICT aligned)
 
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_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_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)
 
HWY_API Vec512< uint32_t > Shuffle2301 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle2301 (const Vec512< int32_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 >
HWY_API Indices512< T > SetTableIndices (const Full512< T >, const int32_t *idx)
 
HWY_API Vec512< uint32_t > TableLookupLanes (const Vec512< uint32_t > v, const Indices512< uint32_t > idx)
 
HWY_API Vec512< int32_t > TableLookupLanes (const Vec512< int32_t > v, const Indices512< int32_t > idx)
 
HWY_API Vec512< float > TableLookupLanes (const Vec512< float > v, const Indices512< float > idx)
 
template<typename T >
HWY_API Vec512< T > Reverse (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_APIInterleaveLower (Full512< T >, V a, V 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 > d, 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, 4) >
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, 4) >
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_API Vec512< T > OddEven (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > TableLookupBytes (Vec512< T > bytes, Vec512< T > from)
 
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< 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)
 
HWY_API Vec512< double > Compress (Vec512< double > v, Mask512< double > 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 CompressBitsStore (Vec512< T > v, const uint8_t *HWY_RESTRICT bits, Full512< T > d, T *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved3 (const Vec512< uint8_t > a, const Vec512< uint8_t > b, const Vec512< uint8_t > c, Full512< uint8_t > d, uint8_t *HWY_RESTRICT unaligned)
 
HWY_API void StoreInterleaved4 (const Vec512< uint8_t > v0, const Vec512< uint8_t > v1, const Vec512< uint8_t > v2, const Vec512< uint8_t > v3, Full512< uint8_t > d8, uint8_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)
 
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_API size_t StoreMaskBits (const Mask512< T > mask, uint8_t *bits)
 
template<typename T >
HWY_API bool AllTrue (const Mask512< T > mask)
 
template<typename T >
HWY_API bool AllFalse (const Mask512< T > mask)
 
template<typename T >
HWY_API size_t CountTrue (const Mask512< T > mask)
 
template<typename T >
HWY_API Vec512< T > SumOfLanes (Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > MinOfLanes (Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > MaxOfLanes (Vec512< T > v)
 
template<typename T >
HWY_API Vec256< T > UpperHalf (Vec512< T > v)
 
template<int kBytes, typename T >
HWY_API Vec512< T > ShiftRightBytes (const Vec512< T > v)
 
template<int kLanes, typename T >
HWY_API Vec512< T > ShiftRightLanes (const Vec512< T > v)
 
template<size_t kBytes, typename T >
HWY_API Vec512< T > CombineShiftRightBytes (Vec512< T > hi, Vec512< T > lo)
 
template<typename T >
HWY_API Vec512< T > InterleaveUpper (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Vec512< MakeWide< T > > ZipUpper (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > Combine (Vec256< T > hi, Vec256< T > lo)
 
template<typename T >
HWY_API Vec512< T > ZeroExtendVector (Vec256< T > lo)
 
template<typename T >
HWY_API Vec512< T > ConcatLowerLower (Vec512< T > hi, Vec512< T > lo)
 
template<typename T >
HWY_API Vec512< T > ConcatLowerUpper (Vec512< T > hi, Vec512< T > lo)
 
template<typename T >
HWY_API Vec512< T > ConcatUpperLower (Vec512< T > hi, Vec512< T > lo)
 
template<typename T >
HWY_API Vec512< T > ConcatUpperUpper (Vec512< T > hi, Vec512< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_NOINLINE void PrintValue (T value)
 
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>>
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_NOINLINE 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 D , HWY_IF_NOT_LANE_SIZE_D(D, 8) >
HWY_INLINE size_t PromotedLanes (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 ForUIF3264 (const Func &func)
 
constexpr size_t AdjustedReps (size_t max_reps)
 

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

◆ FixedTag

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

◆ Full

template<typename T , int kShift = 0>
using hwy::HWY_NAMESPACE::Full = typedef Simd<T, (kShift < 0) ? (HWY_LANES(T) > > (-kShift)) : (HWY_LANES(T) << kShift)>

◆ Full128

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

◆ Full256

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

◆ Full512

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

◆ 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())))

◆ 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>

◆ 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()))

◆ 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<class V , HWY_IF_SIGNED_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Abs ( const V  v)

References Max(), and Neg().

◆ Abs() [2/32]

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

References BitCast().

◆ Abs() [3/32]

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

◆ Abs() [4/32]

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

◆ Abs() [5/32]

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

◆ Abs() [6/32]

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

◆ Abs() [7/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)

◆ Abs() [8/32]

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

◆ Abs() [9/32]

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

◆ Abs() [10/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)

◆ Abs() [11/32]

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

◆ Abs() [12/32]

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

◆ Abs() [13/32]

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

◆ Abs() [14/32]

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

◆ Abs() [15/32]

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

◆ Abs() [16/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)

◆ Abs() [17/32]

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

◆ Abs() [18/32]

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

◆ Abs() [19/32]

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

◆ Abs() [20/32]

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

◆ Abs() [21/32]

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

References BitCast().

◆ Abs() [22/32]

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

References BitCast().

◆ Abs() [23/32]

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

◆ Abs() [24/32]

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

◆ Abs() [25/32]

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

◆ Abs() [26/32]

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

◆ Abs() [27/32]

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

◆ Abs() [28/32]

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

◆ Abs() [29/32]

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

◆ Abs() [30/32]

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

◆ Abs() [31/32]

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

◆ Abs() [32/32]

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

◆ AbsDiff() [1/7]

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

References Abs(), and Sub().

◆ AbsDiff() [2/7]

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

◆ AbsDiff() [3/7]

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() [4/7]

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

References Abs().

◆ AbsDiff() [5/7]

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

References Abs().

◆ AbsDiff() [6/7]

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

References Abs().

◆ AbsDiff() [7/7]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::AbsDiff ( const Vec512< float >  a,
const Vec512< float >  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(), 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(), 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 
)

◆ AdjustedReps()

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

References HWY_MAX.

◆ 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/12]

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

◆ AllFalse() [2/12]

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

◆ AllFalse() [3/12]

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

◆ AllFalse() [4/12]

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

References AllFalse().

◆ AllFalse() [5/12]

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

References AllFalse().

◆ AllFalse() [6/12]

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

References AllFalse().

◆ AllFalse() [7/12]

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

References AllFalse().

◆ AllFalse() [8/12]

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

◆ AllFalse() [9/12]

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

◆ AllFalse() [10/12]

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

References FindFirstTrue().

◆ AllFalse() [11/12]

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

◆ AllFalse() [12/12]

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

◆ AllTrue() [1/11]

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

◆ AllTrue() [2/11]

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

◆ AllTrue() [3/11]

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

References AllTrue().

◆ AllTrue() [4/11]

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

References AllTrue().

◆ AllTrue() [5/11]

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

References AllTrue().

◆ AllTrue() [6/11]

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

References AllTrue().

◆ AllTrue() [7/11]

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

◆ AllTrue() [8/11]

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

References AllTrue(), and Or().

◆ AllTrue() [9/11]

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

◆ AllTrue() [10/11]

template<typename T , size_t N>
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( Simd< T, N >  d,
svbool_t  m 
)

References CountTrue(), and Lanes().

◆ AllTrue() [11/11]

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

◆ And() [1/17]

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(), MaskFromVec(), and VecFromMask().

◆ And() [2/17]

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

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

◆ And() [3/17]

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

◆ And() [4/17]

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

◆ And() [5/17]

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() [6/17]

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

◆ And() [7/17]

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

◆ And() [8/17]

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() [9/17]

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

References BitCast().

◆ And() [10/17]

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

◆ And() [11/17]

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

◆ And() [12/17]

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

◆ And() [13/17]

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

◆ And() [14/17]

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

◆ And() [15/17]

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

◆ And() [16/17]

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

◆ And() [17/17]

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 
)

◆ AndNot() [2/18]

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

◆ AndNot() [3/18]

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

◆ 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_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() [10/18]

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

References BitCast().

◆ AndNot() [11/18]

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

◆ AndNot() [12/18]

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

◆ AndNot() [13/18]

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

◆ AndNot() [14/18]

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

◆ AndNot() [15/18]

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

◆ AndNot() [16/18]

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

◆ AndNot() [17/18]

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

◆ 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)

Referenced by operator/().

◆ ApproximateReciprocal() [2/6]

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

◆ ApproximateReciprocal() [3/6]

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

◆ ApproximateReciprocal() [4/6]

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

◆ ApproximateReciprocal() [5/6]

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

◆ ApproximateReciprocal() [6/6]

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

◆ ApproximateReciprocalSqrt() [1/6]

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

References hwy::HWY_NAMESPACE::Vec128< T, N >::raw.

Referenced by Sqrt().

◆ ApproximateReciprocalSqrt() [2/6]

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

◆ ApproximateReciprocalSqrt() [3/6]

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

◆ ApproximateReciprocalSqrt() [4/6]

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

◆ ApproximateReciprocalSqrt() [5/6]

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

◆ ApproximateReciprocalSqrt() [6/6]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec512< float >  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(), 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(), 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>>
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_NOINLINE 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(), 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(), Div(), Log1p(), Mul(), Set(), SignBit(), Sub(), and Xor().

Referenced by CallAtanh().

◆ AverageRound() [1/8]

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/8]

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/8]

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

◆ AverageRound() [4/8]

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

◆ AverageRound() [5/8]

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

◆ AverageRound() [6/8]

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

◆ AverageRound() [7/8]

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

◆ AverageRound() [8/8]

HWY_API Vec512<uint8_t> hwy::HWY_NAMESPACE::AverageRound ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  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 >  d,
Vec128< FromT, N *sizeof(T)/sizeof(FromT)>  v 
)

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

Referenced by Abs(), AllFalse(), And(), AndNot(), BitCast(), hwy::HWY_NAMESPACE::detail::BitCastToUnsigned(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), BroadcastSignBit(), Combine(), CombineShiftRightBytes(), Compress(), hwy::HWY_NAMESPACE::detail::Compress(), 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(), FirstN(), 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(), InterleaveLower(), InterleaveUpper(), LoadMaskBits(), hwy::HWY_NAMESPACE::impl::Log(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::Log2p1NoSubnormal(), MaskFromVec(), Max(), hwy::HWY_NAMESPACE::detail::MaxU(), Min(), hwy::HWY_NAMESPACE::detail::MinU(), MulEven(), MulOdd(), NaN(), Not(), OddEven(), hwy::HWY_NAMESPACE::detail::OddEven(), operator<<(), operator>(), operator>>(), Or(), hwy::HWY_NAMESPACE::detail::PopulationCount(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::Pow2I(), PromoteTo(), hwy::HWY_NAMESPACE::detail::PromoteUpperTo(), RebindMask(), ReorderDemote2To(), ReorderWidenMulAccumulate(), hwy::HWY_NAMESPACE::detail::Set64(), SetTableIndices(), ShiftLeft(), ShiftLeftBytes(), ShiftLeftLanes(), ShiftLeftSame(), ShiftRight(), ShiftRightBytes(), ShiftRightLanes(), ShiftRightSame(), Shuffle01(), Shuffle0321(), Shuffle1032(), Shuffle2103(), Shuffle2301(), SignBit(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), StoreInterleaved4(), StoreMaskBits(), TableLookupBytes(), TableLookupBytesOr0(), TableLookupLanes(), U8FromU32(), UpperHalf(), VecFromMask(), Xor(), ZipLower(), and ZipUpper().

◆ BitCast() [5/6]

template<typename T , size_t N, class FromV , HWY_IF_LE128(T, N) >
HWY_API VFromD<Simd<T, N> > hwy::HWY_NAMESPACE::BitCast ( Simd< T, N >  ,
FromV  v 
)

References BitCast().

◆ BitCast() [6/6]

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

◆ Broadcast() [1/40]

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

◆ Broadcast() [2/40]

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

◆ Broadcast() [3/40]

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

◆ Broadcast() [4/40]

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)

◆ Broadcast() [5/40]

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

◆ Broadcast() [6/40]

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

◆ Broadcast() [7/40]

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)

◆ Broadcast() [8/40]

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

◆ Broadcast() [9/40]

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

◆ Broadcast() [10/40]

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)

◆ Broadcast() [11/40]

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

◆ Broadcast() [12/40]

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

◆ Broadcast() [13/40]

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

◆ Broadcast() [14/40]

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

◆ Broadcast() [15/40]

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

◆ Broadcast() [16/40]

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)

◆ Broadcast() [17/40]

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

◆ Broadcast() [18/40]

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

◆ Broadcast() [19/40]

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)

◆ Broadcast() [20/40]

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

◆ Broadcast() [21/40]

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

◆ Broadcast() [22/40]

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

◆ Broadcast() [23/40]

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

◆ Broadcast() [24/40]

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

◆ Broadcast() [25/40]

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

◆ Broadcast() [26/40]

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

◆ Broadcast() [27/40]

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

◆ Broadcast() [28/40]

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

◆ Broadcast() [29/40]

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

◆ Broadcast() [30/40]

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

◆ Broadcast() [31/40]

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

◆ Broadcast() [32/40]

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

◆ Broadcast() [33/40]

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

◆ Broadcast() [34/40]

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

◆ Broadcast() [35/40]

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

◆ Broadcast() [36/40]

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

◆ Broadcast() [37/40]

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

◆ Broadcast() [38/40]

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

◆ Broadcast() [39/40]

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

◆ Broadcast() [40/40]

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

◆ BroadcastSignBit() [1/16]

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

References ShiftRight().

◆ BroadcastSignBit() [2/16]

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

◆ BroadcastSignBit() [3/16]

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

◆ BroadcastSignBit() [4/16]

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

◆ BroadcastSignBit() [5/16]

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

References VecFromMask(), and Zero().

◆ BroadcastSignBit() [6/16]

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

◆ BroadcastSignBit() [7/16]

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

References ShiftRight().

◆ BroadcastSignBit() [8/16]

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

◆ BroadcastSignBit() [9/16]

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

◆ BroadcastSignBit() [10/16]

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

◆ BroadcastSignBit() [11/16]

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

◆ BroadcastSignBit() [12/16]

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

References VecFromMask(), and Zero().

◆ BroadcastSignBit() [13/16]

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

◆ BroadcastSignBit() [14/16]

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

◆ BroadcastSignBit() [15/16]

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

◆ BroadcastSignBit() [16/16]

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

References VecFromMask(), and Zero().

◆ CallAcos()

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

References Acos().

◆ CallAcosh()

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

References Acosh().

◆ CallAsin()

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

References Asin().

◆ CallAsinh()

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

References Asinh().

◆ CallAtan()

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

References Atan().

◆ CallAtanh()

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

References Atanh().

◆ CallCos()

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

References Cos().

◆ CallExp()

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

References Exp().

◆ CallExpm1()

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

References Expm1().

◆ CallLog()

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

References Log().

◆ CallLog10()

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

References Log10().

◆ CallLog1p()

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

References Log1p().

◆ CallLog2()

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

References Log2().

◆ CallSin()

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

References Sin().

◆ CallSinh()

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

References Sinh().

◆ CallTanh()

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

References Tanh().

◆ Ceil() [1/9]

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

◆ Ceil() [2/9]

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

◆ Ceil() [3/9]

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/9]

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

◆ Ceil() [5/9]

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

◆ Ceil() [6/9]

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

◆ Ceil() [7/9]

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

◆ Ceil() [8/9]

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

◆ Ceil() [9/9]

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

◆ Ceiling()

template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
V hwy::HWY_NAMESPACE::Ceiling ( const V  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/21]

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

References ConcatLowerLower().

◆ Combine() [2/21]

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

◆ Combine() [3/21]

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

◆ Combine() [4/21]

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

◆ Combine() [5/21]

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

◆ Combine() [6/21]

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

◆ Combine() [7/21]

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

◆ Combine() [8/21]

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

◆ Combine() [9/21]

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

◆ Combine() [10/21]

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

◆ Combine() [11/21]

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

◆ Combine() [12/21]

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

◆ Combine() [13/21]

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

◆ Combine() [14/21]

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

◆ Combine() [15/21]

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

◆ Combine() [16/21]

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

◆ Combine() [17/21]

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

◆ Combine() [18/21]

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

References BitCast(), and InterleaveLower().

◆ Combine() [19/21]

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

References Combine().

◆ Combine() [20/21]

template<typename T , size_t N2>
HWY_API Vec128< T, N2 *2 > hwy::HWY_NAMESPACE::Combine ( Vec128< T, N2 >  hi2,
Vec128< T, N2 >  lo2 
)

References Combine().

◆ Combine() [21/21]

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

References Combine().

◆ CombineShiftRightBytes() [1/11]

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/11]

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/11]

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

◆ CombineShiftRightBytes() [4/11]

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

References BitCast().

◆ CombineShiftRightBytes() [5/11]

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

References BitCast().

◆ CombineShiftRightBytes() [6/11]

template<int kBytes, typename T , class V64 = Vec128<T, 8 / sizeof(T)>>
HWY_API V64 hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Simd< T, 8/sizeof(T)>  d,
V64  hi,
V64  lo 
)

References BitCast().

◆ CombineShiftRightBytes() [7/11]

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 >  d,
hi,
lo 
)

◆ CombineShiftRightBytes() [8/11]

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 >  d,
Vec128< T, N >  hi,
Vec128< T, N >  lo 
)

◆ CombineShiftRightBytes() [9/11]

template<size_t kBytes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Vec128< T, N >  hi,
Vec128< T, N >  lo 
)

◆ CombineShiftRightBytes() [10/11]

template<size_t kBytes, typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Vec256< T >  hi,
Vec256< T >  lo 
)

◆ CombineShiftRightBytes() [11/11]

template<size_t kBytes, typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::CombineShiftRightBytes ( Vec512< T >  hi,
Vec512< T >  lo 
)

◆ 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 IfThenElse().

◆ Compress() [1/14]

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

References BitCast(), and Compress().

◆ Compress() [2/14]

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

◆ Compress() [3/14]

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

◆ Compress() [4/14]

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

◆ Compress() [5/14]

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() [6/14]

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

◆ Compress() [7/14]

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

◆ Compress() [8/14]

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

◆ Compress() [9/14]

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

◆ Compress() [10/14]

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

◆ Compress() [11/14]

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/14]

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

◆ Compress() [13/14]

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

◆ Compress() [14/14]

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/5]

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

References Compress(), and LoadMaskBits().

◆ CompressBits() [2/5]

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/5]

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 
)

◆ CompressBits() [4/5]

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

References Compress(), and LoadMaskBits().

◆ CompressBits() [5/5]

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

References Compress(), and LoadMaskBits().

◆ 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 >  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 
)

References CompressStore(), and LoadMaskBits().

◆ 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(), and LoadMaskBits().

◆ 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(), and LoadMaskBits().

◆ CompressStore() [1/12]

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(), and StoreU().

◆ CompressStore() [2/12]

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 >  ,
double *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [3/12]

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 >  ,
float *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [4/12]

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 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [5/12]

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 >  d,
T *HWY_RESTRICT  unaligned 
)

◆ CompressStore() [6/12]

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(), and StoreU().

◆ CompressStore() [7/12]

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

◆ CompressStore() [8/12]

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

◆ CompressStore() [9/12]

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() [10/12]

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

◆ CompressStore() [11/12]

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

◆ CompressStore() [12/12]

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/15]

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

References FirstN(), and Lanes().

Referenced by Compress(), and InterleaveLower().

◆ ConcatEven() [2/15]

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

◆ ConcatEven() [3/15]

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

◆ ConcatEven() [4/15]

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

References InterleaveLower().

◆ ConcatEven() [5/15]

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

◆ ConcatEven() [6/15]

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

◆ ConcatEven() [7/15]

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

◆ ConcatEven() [8/15]

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 
)

References BitCast(), and Load().

◆ ConcatEven() [9/15]

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

◆ ConcatEven() [10/15]

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

◆ ConcatEven() [11/15]

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

References BitCast(), and Load().

◆ ConcatEven() [12/15]

template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128<float, N> hwy::HWY_NAMESPACE::ConcatEven ( Simd< float, N >  ,
Vec128< float, N >  hi,
Vec128< float, N >  lo 
)

◆ ConcatEven() [13/15]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128<int32_t, N> hwy::HWY_NAMESPACE::ConcatEven ( Simd< int32_t, N >  ,
Vec128< int32_t, N >  hi,
Vec128< int32_t, N >  lo 
)

◆ ConcatEven() [14/15]

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

References InterleaveLower().

◆ ConcatEven() [15/15]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128<uint32_t, N> hwy::HWY_NAMESPACE::ConcatEven ( Simd< uint32_t, N >  ,
Vec128< uint32_t, N >  hi,
Vec128< uint32_t, N >  lo 
)

◆ ConcatLowerLower() [1/13]

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

◆ ConcatLowerLower() [2/13]

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

◆ ConcatLowerLower() [3/13]

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

References Lanes().

◆ ConcatLowerLower() [4/13]

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

◆ ConcatLowerLower() [5/13]

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

◆ ConcatLowerLower() [6/13]

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

◆ ConcatLowerLower() [7/13]

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

◆ ConcatLowerLower() [8/13]

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

◆ ConcatLowerLower() [9/13]

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

◆ ConcatLowerLower() [10/13]

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

◆ ConcatLowerLower() [11/13]

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

References ConcatLowerLower().

◆ ConcatLowerLower() [12/13]

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

References ConcatLowerLower().

◆ ConcatLowerLower() [13/13]

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

References ConcatLowerLower().

◆ ConcatLowerUpper() [1/13]

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

◆ ConcatLowerUpper() [2/13]

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

◆ ConcatLowerUpper() [3/13]

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

References ConcatUpperLower(), and Lanes().

◆ ConcatLowerUpper() [4/13]

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

References ConcatLowerUpper().

◆ ConcatLowerUpper() [5/13]

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

◆ ConcatLowerUpper() [6/13]

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

◆ ConcatLowerUpper() [7/13]

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

◆ ConcatLowerUpper() [8/13]

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

◆ ConcatLowerUpper() [9/13]

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

◆ ConcatLowerUpper() [10/13]

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

◆ ConcatLowerUpper() [11/13]

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

◆ ConcatLowerUpper() [12/13]

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

References ConcatLowerUpper().

◆ ConcatLowerUpper() [13/13]

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

References ConcatLowerUpper().

◆ ConcatOdd() [1/15]

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

References FirstN(), and Lanes().

Referenced by DemoteTo(), and InterleaveUpper().

◆ ConcatOdd() [2/15]

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

◆ ConcatOdd() [3/15]

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

◆ ConcatOdd() [4/15]

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

References InterleaveUpper().

◆ ConcatOdd() [5/15]

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

◆ ConcatOdd() [6/15]

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

◆ ConcatOdd() [7/15]

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

◆ ConcatOdd() [8/15]

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 
)

References BitCast(), and Load().

◆ ConcatOdd() [9/15]

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

◆ ConcatOdd() [10/15]

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

◆ ConcatOdd() [11/15]

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

References BitCast(), and Load().

◆ ConcatOdd() [12/15]

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

◆ ConcatOdd() [13/15]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128<int32_t, N> hwy::HWY_NAMESPACE::ConcatOdd ( Simd< int32_t, N >  ,
Vec128< int32_t, N >  hi,
Vec128< int32_t, N >  lo 
)

◆ ConcatOdd() [14/15]

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

References InterleaveUpper().

◆ ConcatOdd() [15/15]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128<uint32_t, N> hwy::HWY_NAMESPACE::ConcatOdd ( Simd< uint32_t, N >  ,
Vec128< uint32_t, N >  hi,
Vec128< uint32_t, N >  lo 
)

◆ ConcatUpperLower() [1/16]

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

◆ ConcatUpperLower() [2/16]

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

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

◆ ConcatUpperLower() [3/16]

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

◆ ConcatUpperLower() [4/16]

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

◆ ConcatUpperLower() [5/16]

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

◆ ConcatUpperLower() [6/16]

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

◆ ConcatUpperLower() [7/16]

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

◆ ConcatUpperLower() [8/16]

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

◆ ConcatUpperLower() [9/16]

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

◆ ConcatUpperLower() [10/16]

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

◆ ConcatUpperLower() [11/16]

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

◆ ConcatUpperLower() [12/16]

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

◆ ConcatUpperLower() [13/16]

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

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

◆ ConcatUpperLower() [14/16]

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

References ConcatUpperLower().

◆ ConcatUpperLower() [15/16]

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

References ConcatUpperLower().

◆ ConcatUpperLower() [16/16]

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

References ConcatUpperLower().

◆ ConcatUpperUpper() [1/11]

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

◆ ConcatUpperUpper() [2/11]

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

◆ ConcatUpperUpper() [3/11]

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

References ConcatUpperLower(), and Lanes().

◆ ConcatUpperUpper() [4/11]

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

◆ ConcatUpperUpper() [5/11]

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

◆ ConcatUpperUpper() [6/11]

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

◆ ConcatUpperUpper() [7/11]

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

◆ ConcatUpperUpper() [8/11]

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

◆ ConcatUpperUpper() [9/11]

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

References ConcatUpperUpper().

◆ ConcatUpperUpper() [10/11]

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

References ConcatUpperUpper().

◆ ConcatUpperUpper() [11/11]

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

References ConcatUpperUpper().

◆ 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 
)

◆ 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 
)

◆ ConvertTo() [5/19]

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

◆ ConvertTo() [6/19]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::ConvertTo ( Full256< int32_t >  d,
const Vec256< float >  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 
)

◆ ConvertTo() [9/19]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::ConvertTo ( Full512< float >  ,
const Vec512< int32_t >  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]

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

◆ ConvertTo() [13/19]

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

◆ ConvertTo() [14/19]

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

◆ ConvertTo() [15/19]

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

◆ ConvertTo() [16/19]

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

◆ ConvertTo() [17/19]

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

◆ ConvertTo() [18/19]

template<typename T , size_t N, class FromV , HWY_IF_LE128(T, N) >
HWY_API VFromD<Simd<T, N> > hwy::HWY_NAMESPACE::ConvertTo ( Simd< T, N >  ,
FromV  v 
)

References ConvertTo().

◆ 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 
)

◆ 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(), BitCast(), Or(), SignBit(), and Zero().

◆ CopySign() [5/5]

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

References BitCast(), 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(), CopySign(), 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(), Mul(), Set(), Xor(), and Zero().

Referenced by CallCos().

◆ CountTrue() [1/11]

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

◆ CountTrue() [2/11]

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

◆ CountTrue() [3/11]

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

References CountTrue().

◆ CountTrue() [4/11]

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

References CountTrue().

◆ CountTrue() [5/11]

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

References CountTrue().

◆ CountTrue() [6/11]

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

References CountTrue().

◆ CountTrue() [7/11]

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

◆ CountTrue() [8/11]

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

◆ CountTrue() [9/11]

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

◆ CountTrue() [10/11]

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

◆ CountTrue() [11/11]

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

◆ DemoteTo() [1/80]

HWY_API Vf32m1 hwy::HWY_NAMESPACE::DemoteTo ( Df32m1  d,
const Vf64m2  v 
)

References Lanes().

◆ DemoteTo() [2/80]

HWY_API Vf32m2 hwy::HWY_NAMESPACE::DemoteTo ( Df32m2  d,
const Vf64m4  v 
)

References Lanes().

◆ DemoteTo() [3/80]

HWY_API Vf32m4 hwy::HWY_NAMESPACE::DemoteTo ( Df32m4  d,
const Vf64m8  v 
)

References Lanes().

◆ DemoteTo() [4/80]

HWY_API Vi16m1 hwy::HWY_NAMESPACE::DemoteTo ( Di16m1  d,
const Vi32m2  v 
)

References Lanes().

◆ DemoteTo() [5/80]

HWY_API Vi16m2 hwy::HWY_NAMESPACE::DemoteTo ( Di16m2  d,
const Vi32m4  v 
)

References Lanes().

◆ DemoteTo() [6/80]

HWY_API Vi16m4 hwy::HWY_NAMESPACE::DemoteTo ( Di16m4  d,
const Vi32m8  v 
)

References Lanes().

◆ DemoteTo() [7/80]

HWY_API Vi32m1 hwy::HWY_NAMESPACE::DemoteTo ( Di32m1  d,
const Vf64m2  v 
)

References Lanes().

◆ DemoteTo() [8/80]

HWY_API Vi32m2 hwy::HWY_NAMESPACE::DemoteTo ( Di32m2  d,
const Vf64m4  v 
)

References Lanes().

◆ DemoteTo() [9/80]

HWY_API Vi32m4 hwy::HWY_NAMESPACE::DemoteTo ( Di32m4  d,
const Vf64m8  v 
)

References Lanes().

◆ DemoteTo() [10/80]

HWY_API Vi8m1 hwy::HWY_NAMESPACE::DemoteTo ( Di8m1  d,
const Vi16m2  v 
)

References Lanes().

◆ DemoteTo() [11/80]

HWY_API Vi8m1 hwy::HWY_NAMESPACE::DemoteTo ( Di8m1  d,
const Vi32m4  v 
)

References DemoteTo().

◆ DemoteTo() [12/80]

HWY_API Vi8m2 hwy::HWY_NAMESPACE::DemoteTo ( Di8m2  d,
const Vi16m4  v 
)

References Lanes().

◆ DemoteTo() [13/80]

HWY_API Vi8m2 hwy::HWY_NAMESPACE::DemoteTo ( Di8m2  d,
const Vi32m8  v 
)

References DemoteTo().

◆ DemoteTo() [14/80]

HWY_API Vi8m4 hwy::HWY_NAMESPACE::DemoteTo ( Di8m4  d,
const Vi16m8  v 
)

References Lanes().

◆ DemoteTo() [15/80]

HWY_API Vu16m1 hwy::HWY_NAMESPACE::DemoteTo ( Du16m1  d,
const Vi32m2  v 
)

◆ DemoteTo() [16/80]

HWY_API Vu16m2 hwy::HWY_NAMESPACE::DemoteTo ( Du16m2  d,
const Vi32m4  v 
)

◆ DemoteTo() [17/80]

HWY_API Vu16m4 hwy::HWY_NAMESPACE::DemoteTo ( Du16m4  d,
const Vi32m8  v 
)

◆ DemoteTo() [18/80]

HWY_API Vu8m1 hwy::HWY_NAMESPACE::DemoteTo ( Du8m1  d,
const Vi16m2  v 
)

◆ DemoteTo() [19/80]

HWY_API Vu8m1 hwy::HWY_NAMESPACE::DemoteTo ( Du8m1  d,
const Vi32m4  v 
)

References DemoteTo(), and Lanes().

◆ DemoteTo() [20/80]

HWY_API Vu8m2 hwy::HWY_NAMESPACE::DemoteTo ( Du8m2  d,
const Vi16m4  v 
)

◆ DemoteTo() [21/80]

HWY_API Vu8m2 hwy::HWY_NAMESPACE::DemoteTo ( Du8m2  d,
const Vi32m8  v 
)

References DemoteTo(), and Lanes().

◆ DemoteTo() [22/80]

HWY_API Vu8m4 hwy::HWY_NAMESPACE::DemoteTo ( Du8m4  d,
const Vi16m8  v 
)

◆ DemoteTo() [23/80]

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

References BitCast(), and DemoteTo().

◆ DemoteTo() [24/80]

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

◆ DemoteTo() [25/80]

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

◆ DemoteTo() [26/80]

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

◆ DemoteTo() [27/80]

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

◆ DemoteTo() [28/80]

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

◆ DemoteTo() [29/80]

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

◆ DemoteTo() [30/80]

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

◆ DemoteTo() [31/80]

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

◆ DemoteTo() [32/80]

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

◆ DemoteTo() [33/80]

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

References BitCast(), and DemoteTo().

◆ DemoteTo() [34/80]

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

◆ DemoteTo() [35/80]

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

◆ DemoteTo() [36/80]

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

◆ DemoteTo() [37/80]

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

◆ DemoteTo() [38/80]

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

◆ DemoteTo() [39/80]

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

◆ DemoteTo() [40/80]

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

◆ DemoteTo() [41/80]

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

References BitCast(), and ConcatOdd().

◆ DemoteTo() [42/80]

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

References BitCast(), and DemoteTo().

◆ DemoteTo() [43/80]

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

References BitCast(), and DemoteTo().

◆ DemoteTo() [44/80]

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

◆ DemoteTo() [45/80]

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

◆ DemoteTo() [46/80]

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

◆ DemoteTo() [47/80]

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

◆ DemoteTo() [48/80]

HWY_API Vec128<int16_t, 4> hwy::HWY_NAMESPACE::DemoteTo ( Simd< int16_t, 4 >  ,
const Vec128< int32_t >  v 
)

◆ DemoteTo() [49/80]

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

References BitCast().

◆ DemoteTo() [50/80]

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

◆ DemoteTo() [51/80]

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

◆ DemoteTo() [52/80]

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

◆ DemoteTo() [53/80]

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

◆ DemoteTo() [54/80]

HWY_API Vec128<int8_t, 4> hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, 4 >  ,
const Vec128< int32_t >  v 
)

◆ DemoteTo() [55/80]

HWY_API Vec128<int8_t, 8> hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, 8 >  ,
const Vec128< int16_t >  v 
)

◆ DemoteTo() [56/80]

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

◆ DemoteTo() [57/80]

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

References BitCast().

◆ DemoteTo() [58/80]

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

References BitCast().

◆ DemoteTo() [59/80]

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

◆ DemoteTo() [60/80]

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

◆ DemoteTo() [61/80]

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

◆ DemoteTo() [62/80]

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

◆ DemoteTo() [63/80]

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

◆ DemoteTo() [64/80]

HWY_API Vec128<uint16_t, 4> hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, 4 >  ,
const Vec128< int32_t >  v 
)

◆ DemoteTo() [65/80]

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

References BitCast(), Max(), and Zero().

◆ DemoteTo() [66/80]

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

◆ DemoteTo() [67/80]

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

◆ DemoteTo() [68/80]

HWY_API Vec128<uint8_t, 4> hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, 4 >  ,
const Vec128< int32_t >  v 
)

◆ DemoteTo() [69/80]

HWY_API Vec128<uint8_t, 8> hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, 8 >  ,
const Vec128< int16_t >  v 
)

◆ DemoteTo() [70/80]

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

◆ DemoteTo() [71/80]

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

References BitCast(), Max(), and Zero().

◆ DemoteTo() [72/80]

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

References BitCast(), Max(), and Zero().

◆ DemoteTo() [73/80]

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

◆ DemoteTo() [74/80]

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

◆ DemoteTo() [75/80]

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

◆ DemoteTo() [76/80]

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

◆ DemoteTo() [77/80]

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

◆ DemoteTo() [78/80]

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

◆ DemoteTo() [79/80]

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

◆ DemoteTo() [80/80]

template<typename FromT , typename ToT , HWY_IF_FLOAT(FromT) >
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 
)

◆ Eq()

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

Referenced by Acosh(), Asinh(), InterleaveUpper(), and Log1p().

◆ 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(), 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(), IfThenElse(), Lt(), MulAdd(), Or(), Set(), and Sub().

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

◆ 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 >  ,
const Mask128< T, N >  mask 
)

◆ FindFirstTrue() [4/5]

template<typename T , size_t N>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( Simd< T, N >  d,
svbool_t  m 
)

◆ FindFirstTrue() [5/5]

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

◆ FirstN() [1/6]

template<class D , HWY_IF_NOT_LANE_SIZE_D(D, 1) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::FirstN ( const D  d,
const size_t  n 
)

◆ FirstN() [2/6]

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

◆ FirstN() [3/6]

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

◆ FirstN() [4/6]

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

◆ FirstN() [5/6]

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

◆ FirstN() [6/6]

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

◆ Floor() [1/10]

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

◆ Floor() [2/10]

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

◆ Floor() [3/10]

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

◆ Floor() [4/10]

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/10]

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

◆ Floor() [6/10]

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

◆ Floor() [7/10]

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

◆ Floor() [8/10]

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

◆ Floor() [9/10]

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

◆ Floor() [10/10]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::Floor ( const Vec512< float >  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(), and ForUIF3264().

◆ 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().

◆ ForUIF3264()

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

References ForFloatTypes().

◆ ForUnsignedTypes()

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

Referenced by ForIntegerTypes().

◆ GatherIndex() [1/9]

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

References Load(), and Store().

◆ GatherIndex() [2/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 GatherOffset().

◆ GatherIndex() [3/9]

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

◆ GatherIndex() [4/9]

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

◆ GatherIndex() [5/9]

template<typename T , typename Index >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::GatherIndex ( Full256< T >  d,
const T *HWY_RESTRICT  base,
const Vec256< Index >  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 , size_t N, typename Offset >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::GatherOffset ( const Simd< T, N >  d,
const T *HWY_RESTRICT  base,
const Vec128< Offset, N >  offset 
)

References Load(), and Store().

Referenced by GatherIndex(), and GatherOffset().

◆ GatherOffset() [2/9]

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

◆ GatherOffset() [3/9]

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

◆ GatherOffset() [4/9]

template<typename T , typename Offset >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::GatherOffset ( Full256< T >  d,
const T *HWY_RESTRICT  base,
const Vec256< Offset >  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, HWY_IF_LE128(T, N) >
HWY_API VFromD<Simd<T, N> > hwy::HWY_NAMESPACE::GatherOffset ( Simd< T, N >  ,
const T *HWY_RESTRICT  base,
VFromD< Simd< MakeSigned< T >, N >>  offset 
)

References GatherOffset().

◆ 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().

◆ GetLane() [1/26]

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

◆ GetLane() [2/26]

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

◆ GetLane() [3/26]

HWY_API float hwy::HWY_NAMESPACE::GetLane ( const Vec128< float, 2 >  v)

◆ GetLane() [4/26]

HWY_API float hwy::HWY_NAMESPACE::GetLane ( const Vec128< float, 4 >  v)

◆ GetLane() [5/26]

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

◆ GetLane() [6/26]

HWY_API int16_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< int16_t, 8 >  v)

◆ GetLane() [7/26]

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

◆ GetLane() [8/26]

HWY_API int32_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< int32_t, 4 >  v)

◆ GetLane() [9/26]

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

◆ GetLane() [10/26]

HWY_API int64_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< int64_t, 1 >  v)

◆ GetLane() [11/26]

HWY_API int64_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< int64_t, 2 >  v)

◆ GetLane() [12/26]

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

◆ GetLane() [13/26]

HWY_API int8_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< int8_t, 16 >  v)

◆ GetLane() [14/26]

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

◆ GetLane() [15/26]

HWY_API uint16_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< uint16_t, 8 >  v)

◆ GetLane() [16/26]

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

◆ GetLane() [17/26]

HWY_API uint32_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< uint32_t, 4 >  v)

◆ GetLane() [18/26]

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

◆ GetLane() [19/26]

HWY_API uint64_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< uint64_t, 1 >  v)

◆ GetLane() [20/26]

HWY_API uint64_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< uint64_t, 2 >  v)

◆ GetLane() [21/26]

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

◆ GetLane() [22/26]

HWY_API uint8_t hwy::HWY_NAMESPACE::GetLane ( const Vec128< uint8_t, 16 >  v)

◆ GetLane() [23/26]

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

◆ GetLane() [24/26]

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

◆ GetLane() [25/26]

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

References GetLane(), and LowerHalf().

◆ GetLane() [26/26]

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

References GetLane(), and LowerHalf().

◆ 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  ,
,
 
)

◆ IfThenElse() [1/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() [2/10]

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

◆ IfThenElse() [3/10]

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

◆ IfThenElse() [4/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() [5/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() [6/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() [7/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenElse ( Mask128< T, N >  mask,
Vec128< T, N >  yes,
Vec128< T, 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/11]

template<class M , class V >
HWY_API V hwy::HWY_NAMESPACE::IfThenElseZero ( const M  mask,
const V  yes 
)

References IfThenElse(), and Zero().

◆ IfThenElseZero() [2/11]

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/11]

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

◆ IfThenElseZero() [4/11]

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

◆ IfThenElseZero() [5/11]

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

◆ IfThenElseZero() [6/11]

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

◆ IfThenElseZero() [7/11]

template<size_t N>
HWY_API Vec128<double, N> hwy::HWY_NAMESPACE::IfThenElseZero ( Mask128< double, N >  mask,
Vec128< double, N >  yes 
)

◆ IfThenElseZero() [8/11]

template<size_t N>
HWY_API Vec128<float, N> hwy::HWY_NAMESPACE::IfThenElseZero ( Mask128< float, N >  mask,
Vec128< float, N >  yes 
)

◆ IfThenElseZero() [9/11]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< double >  mask,
Vec256< double >  yes 
)

◆ IfThenElseZero() [10/11]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< float >  mask,
Vec256< float >  yes 
)

◆ IfThenElseZero() [11/11]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< T >  mask,
Vec256< T >  yes 
)

◆ IfThenZeroElse() [1/11]

template<class M , class V >
HWY_API V hwy::HWY_NAMESPACE::IfThenZeroElse ( const M  mask,
const V  no 
)

References IfThenElse(), and Zero().

◆ IfThenZeroElse() [2/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() [3/11]

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

◆ IfThenZeroElse() [4/11]

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

◆ IfThenZeroElse() [5/11]

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

◆ IfThenZeroElse() [6/11]

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

◆ 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 
)

◆ InterleaveLower() [1/49]

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

References InterleaveLower().

◆ InterleaveLower() [2/49]

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/49]

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

◆ InterleaveLower() [4/49]

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/49]

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/49]

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/49]

HWY_API Vec128<int64_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< int64_t >  a,
const Vec128< int64_t >  b 
)

References Shuffle01().

◆ InterleaveLower() [8/49]

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/49]

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/49]

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() [11/49]

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() [12/49]

HWY_API Vec128<uint64_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec128< uint64_t >  a,
const Vec128< uint64_t >  b 
)

◆ InterleaveLower() [13/49]

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() [14/49]

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() [15/49]

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

◆ InterleaveLower() [16/49]

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

◆ InterleaveLower() [17/49]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ InterleaveLower() [18/49]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ InterleaveLower() [19/49]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

◆ InterleaveLower() [20/49]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ InterleaveLower() [21/49]

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

◆ InterleaveLower() [22/49]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ InterleaveLower() [23/49]

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

◆ InterleaveLower() [24/49]

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

◆ InterleaveLower() [25/49]

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

◆ InterleaveLower() [26/49]

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

◆ InterleaveLower() [27/49]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ InterleaveLower() [28/49]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ InterleaveLower() [29/49]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ InterleaveLower() [30/49]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ InterleaveLower() [31/49]

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

◆ InterleaveLower() [32/49]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ InterleaveLower() [33/49]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::InterleaveLower ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ InterleaveLower() [34/49]

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

◆ InterleaveLower() [35/49]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( d,
const V  a,
const V  b 
)

◆ InterleaveLower() [36/49]

template<typename T , class V = Vec256<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( Full256< T >  ,
a,
b 
)

References InterleaveLower().

◆ InterleaveLower() [37/49]

template<typename T , class V = Vec512<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( Full512< T >  ,
a,
b 
)

References InterleaveLower().

◆ InterleaveLower() [38/49]

template<typename T , size_t N, class V = Vec128<T, N>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( Simd< T, N >  ,
a,
b 
)

References InterleaveLower().

◆ InterleaveLower() [39/49]

template<typename T , size_t N, HWY_IF_LE128(T, N) , class V = Vec128<T, N>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( Simd< T, N >  ,
a,
b 
)

References InterleaveLower().

◆ InterleaveLower() [40/49]

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

◆ InterleaveLower() [41/49]

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() [42/49]

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() [43/49]

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() [44/49]

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() [45/49]

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() [46/49]

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() [47/49]

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() [48/49]

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() [49/49]

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

◆ InterleaveUpper() [1/9]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( const D  d,
const V  a,
const V  b 
)

◆ InterleaveUpper() [2/9]

template<typename T , class V = Vec128<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( Full128< T >  ,
a,
b 
)

◆ InterleaveUpper() [3/9]

template<typename T , class V = Vec256<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( Full256< T >  ,
a,
b 
)

◆ InterleaveUpper() [4/9]

template<typename T , class V = Vec512<T>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( Full512< T >  ,
a,
b 
)

◆ InterleaveUpper() [5/9]

template<typename T , class V = VFromD<Full<T>>>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( Simd< T, HWY_LANES(T)>  d,
const V  a,
const V  b 
)

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

◆ InterleaveUpper() [6/9]

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 >  d,
a,
b 
)

◆ InterleaveUpper() [7/9]

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

References InterleaveUpper().

◆ InterleaveUpper() [8/9]

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

References InterleaveUpper().

◆ InterleaveUpper() [9/9]

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

References InterleaveUpper().

◆ Iota() [1/6]

template<class D , HWY_IF_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Iota ( const D  d,
TFromD< D >  first 
)

References ConvertTo(), and Iota().

◆ Iota() [2/6]

template<typename T , typename T2 >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::Iota ( const Full256< T >  d,
const T2  first 
)

References HWY_ALIGN, and Load().

◆ Iota() [3/6]

template<typename T , typename T2 >
Vec512<T> hwy::HWY_NAMESPACE::Iota ( const Full512< T >  d,
const T2  first 
)

References HWY_ALIGN, and Load().

◆ Iota() [4/6]

template<typename T , size_t N, typename T2 >
Vec128< T, N > hwy::HWY_NAMESPACE::Iota ( const Simd< T, N >  d,
const T2  first 
)

◆ Iota() [5/6]

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 >  d,
const T2  first 
)

References HWY_ALIGN, and Load().

◆ Iota() [6/6]

template<typename T , typename T2 >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::Iota ( const Sisd< T >  ,
const T2  first 
)

◆ Lanes() [1/3]

template<size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::Lanes ( Simd< bfloat16_t, N >  )

References Lanes().

◆ Lanes() [2/3]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
constexpr HWY_API size_t hwy::HWY_NAMESPACE::Lanes ( Simd< T, N >  )
constexpr

◆ Lanes() [3/3]

template<typename T , size_t N, HWY_IF_GT128(T, N) >
HWY_API size_t hwy::HWY_NAMESPACE::Lanes ( Simd< T, N >  )

◆ Le()

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

Referenced by Ge().

◆ Load() [1/19]

HWY_API Vec128<double> hwy::HWY_NAMESPACE::Load ( Full128< double >  ,
const double *HWY_RESTRICT  aligned 
)

◆ Load() [2/19]

HWY_API Vec128<float> hwy::HWY_NAMESPACE::Load ( Full128< float >  ,
const float *HWY_RESTRICT  aligned 
)

◆ Load() [3/19]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Load ( Full128< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ Load() [4/19]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::Load ( Full256< double >  ,
const double *HWY_RESTRICT  aligned 
)

◆ Load() [5/19]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::Load ( Full256< float >  ,
const float *HWY_RESTRICT  aligned 
)

◆ Load() [6/19]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::Load ( Full256< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ Load() [7/19]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::Load ( Full512< double >  ,
const double *HWY_RESTRICT  aligned 
)

◆ Load() [8/19]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::Load ( Full512< float >  ,
const float *HWY_RESTRICT  aligned 
)

◆ Load() [9/19]

template<typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::Load ( Full512< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ Load() [10/19]

template<size_t N>
HWY_API svuint16_t hwy::HWY_NAMESPACE::Load ( Simd< bfloat16_t, N >  d,
const bfloat16_t *HWY_RESTRICT  p 
)

References HWY_RESTRICT, and Load().

◆ Load() [11/19]

template<size_t N>
HWY_API VFromD<Simd<uint16_t, N> > hwy::HWY_NAMESPACE::Load ( Simd< bfloat16_t, N >  d,
const bfloat16_t *HWY_RESTRICT  p 
)

References HWY_RESTRICT, and Load().

◆ Load() [12/19]

HWY_API Vec128<double, 1> hwy::HWY_NAMESPACE::Load ( Simd< double, 1 >  ,
const double *HWY_RESTRICT  p 
)

◆ Load() [13/19]

HWY_API Vec128<float, 1> hwy::HWY_NAMESPACE::Load ( Simd< float, 1 >  ,
const float *HWY_RESTRICT  p 
)

◆ Load() [14/19]

HWY_API Vec128<float, 2> hwy::HWY_NAMESPACE::Load ( Simd< float, 2 >  ,
const float *HWY_RESTRICT  p 
)

◆ Load() [15/19]

template<typename T >
HWY_API Vec128<T, 8 / sizeof(T)> hwy::HWY_NAMESPACE::Load ( Simd< T, 8/sizeof(T)>  ,
const T *HWY_RESTRICT  p 
)

◆ Load() [16/19]

template<typename T , size_t N>
HWY_API Vec128<T, N> hwy::HWY_NAMESPACE::Load ( Simd< T, N >  d,
const T *HWY_RESTRICT  p 
)

◆ Load() [17/19]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API VFromD<Simd<T, N> > hwy::HWY_NAMESPACE::Load ( Simd< T, N >  d,
const T *HWY_RESTRICT  p 
)

References Load().

◆ Load() [18/19]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Load ( Simd< T, N >  ,
const T *HWY_RESTRICT  p 
)

◆ Load() [19/19]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::Load ( Sisd< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ LoadDup128() [1/9]

template<class D >
HWY_API VFromD<D> hwy::HWY_NAMESPACE::LoadDup128 ( d,
const TFromD< D > *const HWY_RESTRICT  p 
)

◆ LoadDup128() [2/9]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::LoadDup128 ( Full256< double >  ,
const double *const HWY_RESTRICT  p 
)

References LoadU().

◆ LoadDup128() [3/9]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::LoadDup128 ( Full256< float >  ,
const float *const HWY_RESTRICT  p 
)

References LoadU().

◆ LoadDup128() [4/9]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::LoadDup128 ( Full256< T >  ,
const T *HWY_RESTRICT  p 
)

References LoadU().

◆ LoadDup128() [5/9]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::LoadDup128 ( Full512< double >  ,
const double *const HWY_RESTRICT  p 
)

◆ LoadDup128() [6/9]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::LoadDup128 ( Full512< float >  ,
const float *const HWY_RESTRICT  p 
)

◆ LoadDup128() [7/9]

template<typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::LoadDup128 ( Full512< T >  ,
const T *const HWY_RESTRICT  p 
)

References LoadU().

◆ LoadDup128() [8/9]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::LoadDup128 ( Simd< T, N >  d,
const T *const HWY_RESTRICT  p 
)

◆ LoadDup128() [9/9]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::LoadDup128 ( Sisd< T >  d,
const T *HWY_RESTRICT  aligned 
)

References Load().

◆ LoadMaskBits() [1/5]

template<typename T >
HWY_API Mask256<T> hwy::HWY_NAMESPACE::LoadMaskBits ( const Full256< T >  ,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadMaskBits() [2/5]

template<typename T >
HWY_API Mask512<T> hwy::HWY_NAMESPACE::LoadMaskBits ( const Full512< T >  ,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadMaskBits() [3/5]

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(), Iota(), Set(), Shl(), and TestBit().

◆ LoadMaskBits() [4/5]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::LoadMaskBits ( Simd< T, N >  d,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadMaskBits() [5/5]

template<typename T >
HWY_API Mask1<T> hwy::HWY_NAMESPACE::LoadMaskBits ( Sisd< T >  ,
const uint8_t *HWY_RESTRICT  bits 
)

◆ LoadU() [1/45]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( d,
const TFromD< D > *HWY_RESTRICT  p 
)

References Load().

◆ LoadU() [2/45]

HWY_API Vec128<double> hwy::HWY_NAMESPACE::LoadU ( Full128< double >  ,
const double *HWY_RESTRICT  p 
)

◆ LoadU() [3/45]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::LoadU ( Full128< float >  ,
const float *HWY_RESTRICT  unaligned 
)

◆ LoadU() [4/45]

HWY_API Vec128<int16_t> hwy::HWY_NAMESPACE::LoadU ( Full128< int16_t >  ,
const int16_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [5/45]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::LoadU ( Full128< int32_t >  ,
const int32_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [6/45]

HWY_API Vec128<int64_t> hwy::HWY_NAMESPACE::LoadU ( Full128< int64_t >  ,
const int64_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [7/45]

HWY_API Vec128<int8_t> hwy::HWY_NAMESPACE::LoadU ( Full128< int8_t >  ,
const int8_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [8/45]

template<typename T >
HWY_API Vec128<T> hwy::HWY_NAMESPACE::LoadU ( Full128< T >  ,
const T *HWY_RESTRICT  p 
)

◆ LoadU() [9/45]

HWY_API Vec128<uint16_t> hwy::HWY_NAMESPACE::LoadU ( Full128< uint16_t >  ,
const uint16_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [10/45]

HWY_API Vec128<uint32_t> hwy::HWY_NAMESPACE::LoadU ( Full128< uint32_t >  ,
const uint32_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [11/45]

HWY_API Vec128<uint64_t> hwy::HWY_NAMESPACE::LoadU ( Full128< uint64_t >  ,
const uint64_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [12/45]

HWY_API Vec128<uint8_t> hwy::HWY_NAMESPACE::LoadU ( Full128< uint8_t >  ,
const uint8_t *HWY_RESTRICT  unaligned 
)

◆ LoadU() [13/45]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::LoadU ( Full256< double >  ,
const double *HWY_RESTRICT  p 
)

◆ LoadU() [14/45]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::LoadU ( Full256< float >  ,
const float *HWY_RESTRICT  p 
)

◆ LoadU() [15/45]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::LoadU ( Full256< T >  ,
const T *HWY_RESTRICT  p 
)

◆ LoadU() [16/45]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::LoadU ( Full512< double >  ,
const double *HWY_RESTRICT  p 
)

◆ LoadU() [17/45]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::LoadU ( Full512< float >  ,
const float *HWY_RESTRICT  p 
)

◆ LoadU() [18/45]

template<typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::LoadU ( Full512< T >  ,
const T *HWY_RESTRICT  p 
)

◆ LoadU() [19/45]

template<size_t N>
HWY_API Vec128<bfloat16_t, N> hwy::HWY_NAMESPACE::LoadU ( Simd< bfloat16_t, N >  ,
const bfloat16_t *HWY_RESTRICT  p 
)

References LoadU().

◆ LoadU() [20/45]

HWY_API Vec128<float, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< float, 1 >  ,
const float *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [21/45]

HWY_API Vec128<float, 2> hwy::HWY_NAMESPACE::LoadU ( Simd< float, 2 >  ,
const float *HWY_RESTRICT  p 
)

◆ LoadU() [22/45]

template<size_t N>
HWY_API Vec128<float16_t, N> hwy::HWY_NAMESPACE::LoadU ( Simd< float16_t, N >  ,
const float16_t *HWY_RESTRICT  p 
)

References LoadU().

◆ LoadU() [23/45]

HWY_API Vec128<int16_t, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< int16_t, 1 >  ,
const int16_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [24/45]

HWY_API Vec128<int16_t, 2> hwy::HWY_NAMESPACE::LoadU ( Simd< int16_t, 2 >  ,
const int16_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [25/45]

HWY_API Vec128<int16_t, 4> hwy::HWY_NAMESPACE::LoadU ( Simd< int16_t, 4 >  ,
const int16_t *HWY_RESTRICT  p 
)

◆ LoadU() [26/45]

HWY_API Vec128<int32_t, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< int32_t, 1 >  ,
const int32_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [27/45]

HWY_API Vec128<int32_t, 2> hwy::HWY_NAMESPACE::LoadU ( Simd< int32_t, 2 >  ,
const int32_t *HWY_RESTRICT  p 
)

◆ LoadU() [28/45]

HWY_API Vec128<int64_t, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< int64_t, 1 >  ,
const int64_t *HWY_RESTRICT  p 
)

◆ LoadU() [29/45]

HWY_API Vec128<int8_t, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< int8_t, 1 >  d,
const int8_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [30/45]

HWY_API Vec128<int8_t, 2> hwy::HWY_NAMESPACE::LoadU ( Simd< int8_t, 2 >  ,
const int8_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [31/45]

HWY_API Vec128<int8_t, 4> hwy::HWY_NAMESPACE::LoadU ( Simd< int8_t, 4 >  ,
const int8_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [32/45]

HWY_API Vec128<int8_t, 8> hwy::HWY_NAMESPACE::LoadU ( Simd< int8_t, 8 >  ,
const int8_t *HWY_RESTRICT  p 
)

◆ LoadU() [33/45]

template<typename T , size_t N>
HWY_API Vec128<T, N> hwy::HWY_NAMESPACE::LoadU ( Simd< T, N >  d,
const T *HWY_RESTRICT  p 
)

References Load().

◆ LoadU() [34/45]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128<T, N> hwy::HWY_NAMESPACE::LoadU ( Simd< T, N >  d,
const T *HWY_RESTRICT  p 
)

References Load().

◆ LoadU() [35/45]

HWY_API Vec128<uint16_t, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< uint16_t, 1 >  ,
const uint16_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [36/45]

HWY_API Vec128<uint16_t, 2> hwy::HWY_NAMESPACE::LoadU ( Simd< uint16_t, 2 >  ,
const uint16_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [37/45]

HWY_API Vec128<uint16_t, 4> hwy::HWY_NAMESPACE::LoadU ( Simd< uint16_t, 4 >  ,
const uint16_t *HWY_RESTRICT  p 
)

◆ LoadU() [38/45]

HWY_API Vec128<uint32_t, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< uint32_t, 1 >  ,
const uint32_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [39/45]

HWY_API Vec128<uint32_t, 2> hwy::HWY_NAMESPACE::LoadU ( Simd< uint32_t, 2 >  ,
const uint32_t *HWY_RESTRICT  p 
)

◆ LoadU() [40/45]

HWY_API Vec128<uint64_t, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< uint64_t, 1 >  ,
const uint64_t *HWY_RESTRICT  p 
)

◆ LoadU() [41/45]

HWY_API Vec128<uint8_t, 1> hwy::HWY_NAMESPACE::LoadU ( Simd< uint8_t, 1 >  d,
const uint8_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [42/45]

HWY_API Vec128<uint8_t, 2> hwy::HWY_NAMESPACE::LoadU ( Simd< uint8_t, 2 >  ,
const uint8_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [43/45]

HWY_API Vec128<uint8_t, 4> hwy::HWY_NAMESPACE::LoadU ( Simd< uint8_t, 4 >  ,
const uint8_t *HWY_RESTRICT  p 
)

References Undefined().

◆ LoadU() [44/45]

HWY_API Vec128<uint8_t, 8> hwy::HWY_NAMESPACE::LoadU ( Simd< uint8_t, 8 >  ,
const uint8_t *HWY_RESTRICT  p 
)

◆ LoadU() [45/45]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::LoadU ( Sisd< T >  d,
const T *HWY_RESTRICT  p 
)

References 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 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 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(), 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 Log(), Mul(), and Set().

Referenced by CallLog2().

◆ LowerHalf() [1/25]

template<class D , HWY_IF_NOT_LANE_SIZE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf ( const D  d,
const VFromD< D >  v 
)

References Trunc().

◆ LowerHalf() [2/25]

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

◆ LowerHalf() [3/25]

HWY_API Vec128<float, 2> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< float >  v)

◆ LowerHalf() [4/25]

HWY_API Vec128<int16_t, 4> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< int16_t >  v)

◆ LowerHalf() [5/25]

HWY_API Vec128<int32_t, 2> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< int32_t >  v)

◆ LowerHalf() [6/25]

HWY_API Vec128<int64_t, 1> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< int64_t >  v)

◆ LowerHalf() [7/25]

HWY_API Vec128<int8_t, 8> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< int8_t >  v)

◆ LowerHalf() [8/25]

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() [9/25]

HWY_API Vec128<uint16_t, 4> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< uint16_t >  v)

◆ LowerHalf() [10/25]

HWY_API Vec128<uint32_t, 2> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< uint32_t >  v)

◆ LowerHalf() [11/25]

HWY_API Vec128<uint64_t, 1> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< uint64_t >  v)

◆ LowerHalf() [12/25]

HWY_API Vec128<uint8_t, 8> hwy::HWY_NAMESPACE::LowerHalf ( const Vec128< uint8_t >  v)

◆ LowerHalf() [13/25]

template<class D2 , class V >
HWY_API V hwy::HWY_NAMESPACE::LowerHalf ( D2  ,
const V  v 
)

◆ LowerHalf() [14/25]

HWY_API Vec128<double> hwy::HWY_NAMESPACE::LowerHalf ( Full128< double >  ,
Vec256< double >  v 
)

◆ LowerHalf() [15/25]

HWY_API Vec128<float> hwy::HWY_NAMESPACE::LowerHalf ( Full128< float >  ,
Vec256< float >  v 
)

◆ LowerHalf() [16/25]

template<typename T >
HWY_API Vec128<T> hwy::HWY_NAMESPACE::LowerHalf ( Full128< T >  ,
Vec256< T >  v 
)

◆ LowerHalf() [17/25]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::LowerHalf ( Full256< double >  ,
Vec512< double >  v 
)

◆ LowerHalf() [18/25]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::LowerHalf ( Full256< float >  ,
Vec512< float >  v 
)

◆ LowerHalf() [19/25]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::LowerHalf ( Full256< T >  ,
Vec512< T >  v 
)

◆ LowerHalf() [20/25]

template<typename T , size_t N>
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::LowerHalf ( Simd< T, N/2 >  ,
Vec128< T, N >  v 
)

References LowerHalf().

◆ LowerHalf() [21/25]

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

◆ LowerHalf() [22/25]

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

References LowerHalf().

◆ LowerHalf() [23/25]

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

◆ LowerHalf() [24/25]

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

References LowerHalf().

◆ LowerHalf() [25/25]

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

References LowerHalf().

◆ Lt()

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

◆ MaskedLoad() [1/11]

template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128<double, N> hwy::HWY_NAMESPACE::MaskedLoad ( Mask128< double, N >  m,
Simd< double, N >  ,
const double *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [2/11]

template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128<float, N> hwy::HWY_NAMESPACE::MaskedLoad ( Mask128< float, N >  m,
Simd< float, N >  ,
const float *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [3/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedLoad ( Mask128< T, N >  m,
Simd< T, N >  d,
const T *HWY_RESTRICT  aligned 
)

References IfThenElseZero(), and Load().

◆ MaskedLoad() [4/11]

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) , HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedLoad ( Mask128< T, N >  m,
Simd< T, N >  ,
const T *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [5/11]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::MaskedLoad ( Mask1< T >  m,
Sisd< T >  d,
const T *HWY_RESTRICT  aligned 
)

References IfThenElseZero(), and Load().

◆ MaskedLoad() [6/11]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< double >  m,
Full256< double >  ,
const double *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [7/11]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< float >  m,
Full256< float >  ,
const float *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [8/11]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< T >  m,
Full256< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [9/11]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::MaskedLoad ( Mask512< double >  m,
Full512< double >  ,
const double *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [10/11]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::MaskedLoad ( Mask512< float >  m,
Full512< float >  ,
const float *HWY_RESTRICT  aligned 
)

◆ MaskedLoad() [11/11]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedLoad ( Mask512< T >  m,
Full512< T >  ,
const T *HWY_RESTRICT  aligned 
)

◆ MaskFalse()

template<class D >
HWY_INLINE Mask<D> hwy::HWY_NAMESPACE::MaskFalse ( const D  d)

References Lt(), RebindMask(), and Zero().

◆ MaskFromVec() [1/12]

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

References Ne(), and Zero().

◆ MaskFromVec() [2/12]

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::MaskFromVec ( const V  v) -> decltype(Eq(v, v))

References Ne(), and Zero().

◆ MaskFromVec() [3/12]

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

References BitCast(), and MaskFromVec().

◆ MaskFromVec() [4/12]

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

References BitCast(), and MaskFromVec().

◆ 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(), and MaskFromVec().

◆ MaskFromVec() [8/12]

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

References BitCast(), and MaskFromVec().

◆ MaskFromVec() [9/12]

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

◆ MaskFromVec() [10/12]

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

References BitCast(), and MaskFromVec().

◆ MaskFromVec() [11/12]

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

References BitCast(), and MaskFromVec().

◆ 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 FirstN(), and Lanes().

◆ Max() [1/31]

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/31]

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

◆ Max() [3/31]

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

◆ Max() [4/31]

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

◆ Max() [5/31]

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() [6/31]

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

◆ Max() [7/31]

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

◆ Max() [8/31]

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

◆ Max() [9/31]

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() [10/31]

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

◆ Max() [11/31]

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() [12/31]

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

◆ Max() [13/31]

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

◆ Max() [14/31]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::Max ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ Max() [15/31]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::Max ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ Max() [16/31]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::Max ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

◆ Max() [17/31]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::Max ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ Max() [18/31]

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

◆ Max() [19/31]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::Max ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ Max() [20/31]

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

◆ Max() [21/31]

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

◆ Max() [22/31]

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

◆ Max() [23/31]

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

◆ Max() [24/31]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::Max ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ Max() [25/31]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::Max ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ Max() [26/31]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::Max ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ Max() [27/31]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::Max ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ Max() [28/31]

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

◆ Max() [29/31]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::Max ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ Max() [30/31]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::Max ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ Max() [31/31]

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

◆ MaxLanes()

template<typename T , size_t N>
HWY_INLINE constexpr HWY_MAYBE_UNUSED size_t hwy::HWY_NAMESPACE::MaxLanes ( Simd< T, N >  )
constexpr

Referenced by PopulationCount().

◆ MaxOfLanes() [1/14]

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

References MaxOfLanes().

◆ MaxOfLanes() [2/14]

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

References MaxOfLanes().

◆ MaxOfLanes() [3/14]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::MaxOfLanes ( const Vec256< T >  vHL)

References MaxOfLanes().

◆ MaxOfLanes() [4/14]

template<class D >
HWY_API VFromD<D> hwy::HWY_NAMESPACE::MaxOfLanes ( ,
const VFromD< D >  v 
)

References Set().

◆ MaxOfLanes() [5/14]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::MaxOfLanes ( Full256< T >  d,
const Vec256< T >  vHL 
)

◆ MaxOfLanes() [6/14]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< double >  d,
Vec512< double >  v 
)

◆ MaxOfLanes() [7/14]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< float >  d,
Vec512< float >  v 
)

◆ MaxOfLanes() [8/14]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< int32_t >  d,
Vec512< int32_t >  v 
)

◆ MaxOfLanes() [9/14]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< int64_t >  d,
Vec512< int64_t >  v 
)

◆ MaxOfLanes() [10/14]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< uint32_t >  d,
Vec512< uint32_t >  v 
)

◆ MaxOfLanes() [11/14]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::MaxOfLanes ( Full512< uint64_t >  d,
Vec512< uint64_t >  v 
)

◆ MaxOfLanes() [12/14]

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

◆ MaxOfLanes() [13/14]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::MaxOfLanes ( Sisd< T >  ,
const Vec1< T >  v 
)

◆ MaxOfLanes() [14/14]

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

References MaxOfLanes().

◆ Min() [1/31]

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/31]

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

◆ Min() [3/31]

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

◆ Min() [4/31]

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

◆ Min() [5/31]

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() [6/31]

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

◆ Min() [7/31]

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

◆ Min() [8/31]

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

◆ Min() [9/31]

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() [10/31]

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

◆ Min() [11/31]

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() [12/31]

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

◆ Min() [13/31]

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

◆ Min() [14/31]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::Min ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ Min() [15/31]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::Min ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ Min() [16/31]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::Min ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

◆ Min() [17/31]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::Min ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ Min() [18/31]

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

◆ Min() [19/31]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::Min ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ Min() [20/31]

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

◆ Min() [21/31]

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

◆ Min() [22/31]

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

◆ Min() [23/31]

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

◆ Min() [24/31]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::Min ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ Min() [25/31]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::Min ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ Min() [26/31]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::Min ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ Min() [27/31]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::Min ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ Min() [28/31]

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

◆ Min() [29/31]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::Min ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ Min() [30/31]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::Min ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ Min() [31/31]

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

◆ MinOfLanes() [1/14]

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

References MinOfLanes().

◆ MinOfLanes() [2/14]

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

References MinOfLanes().

◆ MinOfLanes() [3/14]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::MinOfLanes ( const Vec256< T >  vHL)

References MinOfLanes().

◆ MinOfLanes() [4/14]

template<class D >
HWY_API VFromD<D> hwy::HWY_NAMESPACE::MinOfLanes ( ,
const VFromD< D >  v 
)

References Set().

◆ MinOfLanes() [5/14]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::MinOfLanes ( Full256< T >  d,
const Vec256< T >  vHL 
)

◆ MinOfLanes() [6/14]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::MinOfLanes ( Full512< double >  d,
Vec512< double >  v 
)

◆ MinOfLanes() [7/14]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::MinOfLanes ( Full512< float >  d,
Vec512< float >  v 
)

◆ MinOfLanes() [8/14]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::MinOfLanes ( Full512< int32_t >  d,
Vec512< int32_t >  v 
)

◆ MinOfLanes() [9/14]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::MinOfLanes ( Full512< int64_t >  d,
Vec512< int64_t >  v 
)

◆ MinOfLanes() [10/14]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::MinOfLanes ( Full512< uint32_t >  d,
Vec512< uint32_t >  v 
)

◆ MinOfLanes() [11/14]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::MinOfLanes ( Full512< uint64_t >  d,
Vec512< uint64_t >  v 
)

◆ MinOfLanes() [12/14]

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

◆ MinOfLanes() [13/14]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::MinOfLanes ( Sisd< T >  ,
const Vec1< T >  v 
)

◆ MinOfLanes() [14/14]

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

References MinOfLanes().

◆ MLenFromD()

template<typename T , size_t N>
constexpr HWY_INLINE size_t hwy::HWY_NAMESPACE::MLenFromD ( Simd< T, N >  )
constexpr

References HWY_LANES.

◆ Mul()

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

◆ MulAdd() [1/7]

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/7]

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/7]

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/7]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::MulAdd ( const Vec256< double >  mul,
const Vec256< double >  x,
const Vec256< double >  add 
)

◆ MulAdd() [5/7]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::MulAdd ( const Vec256< float >  mul,
const Vec256< float >  x,
const Vec256< float >  add 
)

◆ MulAdd() [6/7]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::MulAdd ( const Vec512< double >  mul,
const Vec512< double >  x,
const Vec512< double >  add 
)

◆ MulAdd() [7/7]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::MulAdd ( const Vec512< float >  mul,
const Vec512< float >  x,
const Vec512< float >  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) >
HWY_API VFromD<RepartitionToWide<DFromV<V> > > 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().

◆ 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(), 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().

◆ 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_API Vec512<int64_t> hwy::HWY_NAMESPACE::MulEven ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ MulEven() [14/18]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::MulEven ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ MulEven() [15/18]

HWY_INLINE Vec512<uint64_t> hwy::HWY_NAMESPACE::MulEven ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ MulEven() [16/18]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< int32_t >  a,
Vec128< int32_t >  b 
)

References ConcatEven().

Referenced by MulEven(), MulOdd(), and operator>>().

◆ MulEven() [17/18]

HWY_API Vec128<uint64_t> hwy::HWY_NAMESPACE::MulEven ( Vec128< uint32_t >  a,
Vec128< uint32_t >  b 
)

References ConcatEven().

◆ MulEven() [18/18]

HWY_INLINE Vec128< uint64_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint64_t >  a,
Vec128< uint64_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]

template<size_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() [4/12]

HWY_API Vec128<uint16_t> hwy::HWY_NAMESPACE::MulHigh ( const Vec128< uint16_t >  a,
const Vec128< uint16_t >  b 
)

◆ MulHigh() [5/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() [6/12]

template<size_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() [7/12]

HWY_API Vec1<int16_t> hwy::HWY_NAMESPACE::MulHigh ( const Vec1< int16_t >  a,
const Vec1< int16_t >  b 
)

◆ MulHigh() [8/12]

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

◆ MulHigh() [9/12]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::MulHigh ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ MulHigh() [10/12]

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

◆ MulHigh() [11/12]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::MulHigh ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ MulHigh() [12/12]

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

◆ MulOdd() [1/5]

HWY_API svuint64_t hwy::HWY_NAMESPACE::MulOdd ( const svuint64_t  a,
const svuint64_t  b 
)

References Mul(), and MulHigh().

◆ MulOdd() [2/5]

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/5]

HWY_INLINE Vec256<uint64_t> hwy::HWY_NAMESPACE::MulOdd ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ MulOdd() [4/5]

HWY_INLINE Vec512<uint64_t> hwy::HWY_NAMESPACE::MulOdd ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ MulOdd() [5/5]

HWY_INLINE Vec128< uint64_t > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint64_t >  a,
Vec128< uint64_t >  b 
)

◆ MulSub() [1/7]

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/7]

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/7]

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/7]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::MulSub ( const Vec256< double >  mul,
const Vec256< double >  x,
const Vec256< double >  sub 
)

◆ MulSub() [5/7]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::MulSub ( const Vec256< float >  mul,
const Vec256< float >  x,
const Vec256< float >  sub 
)

◆ MulSub() [6/7]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::MulSub ( const Vec512< double >  mul,
const Vec512< double >  x,
const Vec512< double >  sub 
)

◆ MulSub() [7/7]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::MulSub ( const Vec512< float >  mul,
const Vec512< float >  x,
const Vec512< float >  sub 
)

◆ NaN()

template<class D >
HWY_API Vec<D> hwy::HWY_NAMESPACE::NaN ( d)

References BitCast(), hwy::LimitsMax(), and Set().

◆ Ne()

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

Referenced by MaskFromVec(), and TestBit().

◆ 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)

◆ NearestInt() [3/5]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::NearestInt ( const Vec256< float >  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(), and Round().

◆ Neg() [1/11]

template<class V , HWY_IF_SIGNED_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Neg ( const V  v)

References Sub(), and Zero().

◆ Neg() [2/11]

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

◆ Neg() [3/11]

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

◆ Neg() [4/11]

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

◆ Neg() [5/11]

hwy::HWY_NAMESPACE::Neg ( const Vec128< int64_t, 1 >  v)

References Zero().

Referenced by Abs(), MulSub(), NegMulSub(), and operator>>().

◆ Neg() [6/11]

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

◆ Neg() [7/11]

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

◆ Neg() [8/11]

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

References SignBit(), and Xor().

◆ Neg() [9/11]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Neg ( const Vec1< T >  v)

References SignBit(), and Xor().

◆ Neg() [10/11]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Neg ( const Vec256< T >  v)

References SignBit(), and Xor().

◆ Neg() [11/11]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Neg ( const Vec512< T >  v)

References SignBit(), and Xor().

◆ NegMulAdd() [1/7]

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/7]

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/7]

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/7]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::NegMulAdd ( const Vec256< double >  mul,
const Vec256< double >  x,
const Vec256< double >  add 
)

◆ NegMulAdd() [5/7]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::NegMulAdd ( const Vec256< float >  mul,
const Vec256< float >  x,
const Vec256< float >  add 
)

◆ NegMulAdd() [6/7]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::NegMulAdd ( const Vec512< double >  mul,
const Vec512< double >  x,
const Vec512< double >  add 
)

◆ NegMulAdd() [7/7]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::NegMulAdd ( const Vec512< float >  mul,
const Vec512< float >  x,
const Vec512< float >  add 
)

◆ NegMulSub() [1/7]

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/7]

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/7]

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/7]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::NegMulSub ( const Vec256< double >  mul,
const Vec256< double >  x,
const Vec256< double >  sub 
)

◆ NegMulSub() [5/7]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::NegMulSub ( const Vec256< float >  mul,
const Vec256< float >  x,
const Vec256< float >  sub 
)

◆ NegMulSub() [6/7]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::NegMulSub ( const Vec512< double >  mul,
const Vec512< double >  x,
const Vec512< double >  sub 
)

◆ NegMulSub() [7/7]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::NegMulSub ( const Vec512< float >  mul,
const Vec512< float >  x,
const Vec512< float >  sub 
)

◆ 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 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(), and Not().

◆ Not() [6/12]

template<typename T >
HWY_API Vec128<T> hwy::HWY_NAMESPACE::Not ( const Vec128< T >  v)

References BitCast().

Referenced by AndNot(), Not(), and operator!=().

◆ 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(), and Zero().

◆ Not() [8/12]

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

References BitCast().

◆ Not() [9/12]

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

References BitCast(), and Xor().

◆ Not() [10/12]

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

References BitCast().

◆ Not() [11/12]

HWY_API svbool_t hwy::HWY_NAMESPACE::Not ( svbool_t  m)

References HWY_SVE_PTRUE.

◆ Not() [12/12]

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

◆ OddEven() [1/8]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::OddEven ( const V  odd,
const V  even 
)

◆ OddEven() [2/8]

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

◆ OddEven() [3/8]

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/8]

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/8]

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

◆ OddEven() [6/8]

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

◆ OddEven() [7/8]

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

◆ OddEven() [8/8]

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

References IfThenElse(), and grk::shift.

◆ operator!=() [1/17]

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/17]

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/17]

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!=() [4/17]

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 
)

References Not().

◆ operator!=() [5/17]

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!=() [6/17]

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/17]

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/17]

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!=() [9/17]

template<typename T >
HWY_API Mask1<T> hwy::HWY_NAMESPACE::operator!= ( const Vec1< T >  a,
const Vec1< T >  b 
)

◆ operator!=() [10/17]

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!=() [11/17]

template<size_t N>
HWY_API Mask128<double, N> hwy::HWY_NAMESPACE::operator!= ( Vec128< double, N >  a,
Vec128< double, N >  b 
)

◆ operator!=() [12/17]

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!=() [13/17]

HWY_API Mask256<double> hwy::HWY_NAMESPACE::operator!= ( Vec256< double >  a,
Vec256< double >  b 
)

◆ operator!=() [14/17]

HWY_API Mask256<float> hwy::HWY_NAMESPACE::operator!= ( Vec256< float >  a,
Vec256< float >  b 
)

◆ operator!=() [15/17]

HWY_API Mask512<double> hwy::HWY_NAMESPACE::operator!= ( Vec512< double >  a,
Vec512< double >  b 
)

◆ operator!=() [16/17]

HWY_API Mask512<float> hwy::HWY_NAMESPACE::operator!= ( Vec512< float >  a,
Vec512< float >  b 
)

◆ operator!=() [17/17]

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/29]

HWY_API Vec128<double, 1> hwy::HWY_NAMESPACE::operator* ( const Vec128< double, 1 >  a,
const Vec128< double, 1 >  b 
)

◆ operator*() [2/29]

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

◆ operator*() [3/29]

HWY_API Vec128<float, 1> hwy::HWY_NAMESPACE::operator* ( const Vec128< float, 1 >  a,
const Vec128< float, 1 >  b 
)

◆ operator*() [4/29]

HWY_API Vec128<int16_t> hwy::HWY_NAMESPACE::operator* ( const Vec128< int16_t >  a,
const Vec128< int16_t >  b 
)

◆ operator*() [5/29]

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*() [6/29]

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*() [7/29]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::operator* ( const Vec128< int32_t >  a,
const Vec128< int32_t >  b 
)

◆ operator*() [8/29]

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*() [9/29]

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*() [10/29]

HWY_API Vec128<uint16_t> hwy::HWY_NAMESPACE::operator* ( const Vec128< uint16_t >  a,
const Vec128< uint16_t >  b 
)

◆ operator*() [11/29]

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*() [12/29]

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*() [13/29]

HWY_API Vec128<uint32_t> hwy::HWY_NAMESPACE::operator* ( const Vec128< uint32_t >  a,
const Vec128< uint32_t >  b 
)

◆ operator*() [14/29]

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*() [15/29]

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*() [16/29]

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

◆ operator*() [17/29]

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

◆ operator*() [18/29]

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

◆ operator*() [19/29]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::operator* ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ operator*() [20/29]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::operator* ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator*() [21/29]

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

◆ operator*() [22/29]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::operator* ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator*() [23/29]

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

◆ operator*() [24/29]

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

◆ operator*() [25/29]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::operator* ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ operator*() [26/29]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::operator* ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ operator*() [27/29]

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

◆ operator*() [28/29]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::operator* ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ operator*() [29/29]

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

◆ operator+() [1/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

HWY_API Vec1<double> hwy::HWY_NAMESPACE::operator+ ( const Vec1< double >  a,
const Vec1< double >  b 
)

◆ operator+() [12/33]

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

◆ operator+() [13/33]

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

◆ operator+() [14/33]

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

◆ operator+() [15/33]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::operator+ ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ operator+() [16/33]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::operator+ ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator+() [17/33]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::operator+ ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

◆ operator+() [18/33]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::operator+ ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ operator+() [19/33]

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

◆ operator+() [20/33]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::operator+ ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator+() [21/33]

HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::operator+ ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ operator+() [22/33]

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

◆ operator+() [23/33]

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

◆ operator+() [24/33]

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

◆ operator+() [25/33]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::operator+ ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ operator+() [26/33]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::operator+ ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ operator+() [27/33]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::operator+ ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ operator+() [28/33]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::operator+ ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ operator+() [29/33]

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

◆ operator+() [30/33]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::operator+ ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ operator+() [31/33]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::operator+ ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ operator+() [32/33]

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

◆ operator+() [33/33]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::operator+ ( Vec1< T >  a,
Vec1< T >  b 
)

◆ operator-() [1/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

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/33]

HWY_API Vec1<double> hwy::HWY_NAMESPACE::operator- ( const Vec1< double >  a,
const Vec1< double >  b 
)

◆ operator-() [11/33]

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

◆ operator-() [12/33]

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

◆ operator-() [13/33]

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

◆ operator-() [14/33]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::operator- ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ operator-() [15/33]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::operator- ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ operator-() [16/33]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::operator- ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

◆ operator-() [17/33]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::operator- ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ operator-() [18/33]

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

◆ operator-() [19/33]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::operator- ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ operator-() [20/33]

HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::operator- ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ operator-() [21/33]

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

◆ operator-() [22/33]

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

◆ operator-() [23/33]

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

◆ operator-() [24/33]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::operator- ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ operator-() [25/33]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::operator- ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ operator-() [26/33]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::operator- ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ operator-() [27/33]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::operator- ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ operator-() [28/33]

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

◆ operator-() [29/33]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::operator- ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ operator-() [30/33]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::operator- ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ operator-() [31/33]

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

◆ operator-() [32/33]

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/33]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::operator- ( Vec1< T >  a,
Vec1< T >  b 
)

◆ operator/() [1/9]

HWY_API Vec128<double, 1> hwy::HWY_NAMESPACE::operator/ ( const Vec128< double, 1 >  a,
const Vec128< double, 1 >  b 
)

◆ operator/() [2/9]

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

◆ operator/() [3/9]

HWY_API Vec128<float, 1> hwy::HWY_NAMESPACE::operator/ ( const Vec128< float, 1 >  a,
const Vec128< float, 1 >  b 
)

◆ operator/() [4/9]

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

◆ operator/() [5/9]

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

◆ operator/() [6/9]

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

◆ operator/() [7/9]

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

◆ operator/() [8/9]

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

◆ operator/() [9/9]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::operator/ ( const Vec512< float >  a,
const Vec512< float >  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 
)

References operator>().

◆ 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 
)

◆ operator<() [4/4]

template<typename T >
HWY_API Mask512<T> hwy::HWY_NAMESPACE::operator< ( Vec512< T >  a,
Vec512< T >  b 
)

◆ operator<<() [1/30]

HWY_API Vec128<int16_t> hwy::HWY_NAMESPACE::operator<< ( const Vec128< int16_t >  v,
const Vec128< int16_t >  bits 
)

◆ operator<<() [2/30]

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/30]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::operator<< ( const Vec128< int32_t >  v,
const Vec128< int32_t >  bits 
)

◆ operator<<() [4/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 >  v,
const Vec128< int32_t, N >  bits 
)

◆ operator<<() [5/30]

HWY_API Vec128<int64_t> hwy::HWY_NAMESPACE::operator<< ( const Vec128< int64_t >  v,
const Vec128< int64_t >  bits 
)

◆ operator<<() [6/30]

HWY_API Vec128<int64_t, 1> hwy::HWY_NAMESPACE::operator<< ( const Vec128< int64_t, 1 >  v,
const Vec128< int64_t, 1 >  bits 
)

◆ operator<<() [7/30]

HWY_API Vec128<int8_t> hwy::HWY_NAMESPACE::operator<< ( const Vec128< int8_t >  v,
const Vec128< int8_t >  bits 
)

◆ operator<<() [8/30]

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<<() [9/30]

HWY_API Vec128<uint16_t> hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint16_t >  v,
const Vec128< uint16_t >  bits 
)

◆ operator<<() [10/30]

HWY_API Vec128<uint16_t, 1> hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint16_t, 1 >  v,
const Vec128< uint16_t, 1 >  bits 
)

◆ operator<<() [11/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 >  v,
const Vec128< uint16_t, N >  bits 
)

◆ operator<<() [12/30]

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<<() [13/30]

HWY_API Vec128<uint32_t> hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint32_t >  v,
const Vec128< uint32_t >  bits 
)

◆ operator<<() [14/30]

HWY_API Vec128<uint32_t, 1> hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint32_t, 1 >  v,
const Vec128< uint32_t, 1 >  bits 
)

◆ operator<<() [15/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 >  v,
const Vec128< uint32_t, N >  bits 
)

◆ operator<<() [16/30]

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<<() [17/30]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint64_t >  v,
const Vec128< uint64_t >  bits 
)

◆ operator<<() [18/30]

HWY_API Vec128< uint64_t, 1 > hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint64_t, 1 >  v,
const Vec128< uint64_t, 1 >  bits 
)

◆ operator<<() [19/30]

HWY_API Vec128<uint8_t> hwy::HWY_NAMESPACE::operator<< ( const Vec128< uint8_t >  v,
const Vec128< uint8_t >  bits 
)

◆ operator<<() [20/30]

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<<() [21/30]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::operator<< ( const Vec1< T >  v,
const Vec1< T >  bits 
)

◆ operator<<() [22/30]

template<typename T , HWY_IF_SIGNED(T) >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::operator<< ( const Vec256< T >  v,
const Vec256< T >  bits 
)

References BitCast().

◆ operator<<() [23/30]

HWY_API Vec256<uint16_t> hwy::HWY_NAMESPACE::operator<< ( const Vec256< uint16_t >  v,
const Vec256< uint16_t >  bits 
)

◆ operator<<() [24/30]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::operator<< ( const Vec256< uint32_t >  v,
const Vec256< uint32_t >  bits 
)

◆ operator<<() [25/30]

HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::operator<< ( const Vec256< uint64_t >  v,
const Vec256< uint64_t >  bits 
)

◆ operator<<() [26/30]

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().

◆ operator<<() [27/30]

HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::operator<< ( const Vec512< uint16_t >  v,
const Vec512< uint16_t >  bits 
)

◆ operator<<() [28/30]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::operator<< ( const Vec512< uint32_t >  v,
const Vec512< uint32_t >  bits 
)

◆ operator<<() [29/30]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::operator<< ( const Vec512< uint64_t >  v,
const Vec512< uint64_t >  bits 
)

◆ operator<<() [30/30]

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<=() [1/5]

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/5]

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

◆ operator<=() [3/5]

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

◆ operator<=() [4/5]

template<typename T , size_t N>
HWY_API Mask128<T, N> hwy::HWY_NAMESPACE::operator<= ( Vec128< T, N >  a,
Vec128< T, N >  b 
)

◆ operator<=() [5/5]

template<typename T >
HWY_API Mask512<T> hwy::HWY_NAMESPACE::operator<= ( Vec512< T >  a,
Vec512< T >  b 
)

◆ operator==() [1/16]

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/16]

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/16]

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==() [4/16]

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==() [5/16]

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==() [6/16]

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==() [7/16]

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==() [8/16]

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

◆ operator==() [9/16]

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==() [10/16]

template<size_t N>
HWY_API Mask128<double, N> hwy::HWY_NAMESPACE::operator== ( Vec128< double, N >  a,
Vec128< double, N >  b 
)

◆ operator==() [11/16]

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==() [12/16]

HWY_API Mask256<double> hwy::HWY_NAMESPACE::operator== ( Vec256< double >  a,
Vec256< double >  b 
)

◆ operator==() [13/16]

HWY_API Mask256<float> hwy::HWY_NAMESPACE::operator== ( Vec256< float >  a,
Vec256< float >  b 
)

◆ operator==() [14/16]

HWY_API Mask512<double> hwy::HWY_NAMESPACE::operator== ( Vec512< double >  a,
Vec512< double >  b 
)

◆ operator==() [15/16]

HWY_API Mask512<float> hwy::HWY_NAMESPACE::operator== ( Vec512< float >  a,
Vec512< float >  b 
)

◆ operator==() [16/16]

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/20]

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/20]

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/20]

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/20]

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 
)

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

◆ operator>() [5/20]

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/20]

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

◆ operator>() [7/20]

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

◆ operator>() [8/20]

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>() [9/20]

HWY_API Mask256<double> hwy::HWY_NAMESPACE::operator> ( Vec256< double >  a,
Vec256< double >  b 
)

◆ operator>() [10/20]

HWY_API Mask256<float> hwy::HWY_NAMESPACE::operator> ( Vec256< float >  a,
Vec256< float >  b 
)

◆ operator>() [11/20]

HWY_API Mask256<int16_t> hwy::HWY_NAMESPACE::operator> ( Vec256< int16_t >  a,
Vec256< int16_t >  b 
)

◆ operator>() [12/20]

HWY_API Mask256<int32_t> hwy::HWY_NAMESPACE::operator> ( Vec256< int32_t >  a,
Vec256< int32_t >  b 
)

◆ operator>() [13/20]

HWY_API Mask256<int64_t> hwy::HWY_NAMESPACE::operator> ( Vec256< int64_t >  a,
Vec256< int64_t >  b 
)

◆ operator>() [14/20]

HWY_API Mask256<int8_t> hwy::HWY_NAMESPACE::operator> ( Vec256< int8_t >  a,
Vec256< int8_t >  b 
)

◆ operator>() [15/20]

HWY_API Mask512<double> hwy::HWY_NAMESPACE::operator> ( Vec512< double >  a,
Vec512< double >  b 
)

◆ operator>() [16/20]

HWY_API Mask512<float> hwy::HWY_NAMESPACE::operator> ( Vec512< float >  a,
Vec512< float >  b 
)

◆ operator>() [17/20]

HWY_API Mask512<int16_t> hwy::HWY_NAMESPACE::operator> ( Vec512< int16_t >  a,
Vec512< int16_t >  b 
)

◆ operator>() [18/20]

HWY_API Mask512<int32_t> hwy::HWY_NAMESPACE::operator> ( Vec512< int32_t >  a,
Vec512< int32_t >  b 
)

◆ operator>() [19/20]

HWY_API Mask512<int64_t> hwy::HWY_NAMESPACE::operator> ( Vec512< int64_t >  a,
Vec512< int64_t >  b 
)

◆ operator>() [20/20]

HWY_API Mask512<int8_t> hwy::HWY_NAMESPACE::operator> ( Vec512< int8_t >  a,
Vec512< int8_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]

template<size_t N>
HWY_API Mask128<double, N> hwy::HWY_NAMESPACE::operator>= ( Vec128< double, N >  a,
Vec128< double, N >  b 
)

◆ operator>=() [4/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>=() [5/8]

HWY_API Mask256<double> hwy::HWY_NAMESPACE::operator>= ( Vec256< double >  a,
Vec256< double >  b 
)

◆ operator>=() [6/8]

HWY_API Mask256<float> hwy::HWY_NAMESPACE::operator>= ( Vec256< float >  a,
Vec256< float >  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/39]

HWY_API Vec128<int16_t> hwy::HWY_NAMESPACE::operator>> ( const Vec128< int16_t >  v,
const Vec128< int16_t >  bits 
)

◆ operator>>() [2/39]

HWY_API Vec128<int16_t, 1> hwy::HWY_NAMESPACE::operator>> ( const Vec128< int16_t, 1 >  v,
const Vec128< int16_t, 1 >  bits 
)

◆ operator>>() [3/39]

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>>() [4/39]

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/39]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::operator>> ( const Vec128< int32_t >  v,
const Vec128< int32_t >  bits 
)

◆ operator>>() [6/39]

HWY_API Vec128<int32_t, 1> hwy::HWY_NAMESPACE::operator>> ( const Vec128< int32_t, 1 >  v,
const Vec128< int32_t, 1 >  bits 
)

◆ operator>>() [7/39]

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>>() [8/39]

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/39]

HWY_API Vec128<int64_t> hwy::HWY_NAMESPACE::operator>> ( const Vec128< int64_t >  v,
const Vec128< int64_t >  bits 
)

◆ operator>>() [10/39]

HWY_API Vec128<int64_t, 1> hwy::HWY_NAMESPACE::operator>> ( const Vec128< int64_t, 1 >  v,
const Vec128< int64_t, 1 >  bits 
)

◆ operator>>() [11/39]

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>>() [12/39]

HWY_API Vec128<int8_t> hwy::HWY_NAMESPACE::operator>> ( const Vec128< int8_t >  v,
const Vec128< int8_t >  bits 
)

◆ operator>>() [13/39]

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>>() [14/39]

HWY_API Vec128<uint16_t> hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint16_t >  v,
const Vec128< uint16_t >  bits 
)

◆ operator>>() [15/39]

HWY_API Vec128<uint16_t, 1> hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint16_t, 1 >  in,
const Vec128< uint16_t, 1 >  bits 
)

◆ operator>>() [16/39]

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>>() [17/39]

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>>() [18/39]

HWY_API Vec128<uint32_t> hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint32_t >  v,
const Vec128< uint32_t >  bits 
)

◆ operator>>() [19/39]

HWY_API Vec128<uint32_t, 1> hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint32_t, 1 >  in,
const Vec128< uint32_t, 1 >  bits 
)

◆ operator>>() [20/39]

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>>() [21/39]

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>>() [22/39]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint64_t >  v,
const Vec128< uint64_t >  bits 
)

◆ operator>>() [23/39]

HWY_API Vec128< uint64_t, 1 > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint64_t, 1 >  v,
const Vec128< uint64_t, 1 >  bits 
)

◆ operator>>() [24/39]

HWY_API Vec128<uint8_t> hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint8_t >  v,
const Vec128< uint8_t >  bits 
)

◆ operator>>() [25/39]

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>>() [26/39]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::operator>> ( const Vec1< T >  v,
const Vec1< T >  bits 
)

◆ operator>>() [27/39]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::operator>> ( const Vec256< int16_t >  v,
const Vec256< int16_t >  bits 
)

◆ operator>>() [28/39]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::operator>> ( const Vec256< int32_t >  v,
const Vec256< int32_t >  bits 
)

◆ operator>>() [29/39]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::operator>> ( const Vec256< int64_t >  v,
const Vec256< int64_t >  bits 
)

◆ operator>>() [30/39]

HWY_API Vec256<uint16_t> hwy::HWY_NAMESPACE::operator>> ( const Vec256< uint16_t >  v,
const Vec256< uint16_t >  bits 
)

◆ operator>>() [31/39]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::operator>> ( const Vec256< uint32_t >  v,
const Vec256< uint32_t >  bits 
)

◆ operator>>() [32/39]

HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::operator>> ( const Vec256< uint64_t >  v,
const Vec256< uint64_t >  bits 
)

◆ operator>>() [33/39]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::operator>> ( const Vec512< int16_t >  v,
const Vec512< int16_t >  bits 
)

◆ operator>>() [34/39]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::operator>> ( const Vec512< int32_t >  v,
const Vec512< int32_t >  bits 
)

◆ operator>>() [35/39]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::operator>> ( const Vec512< int64_t >  v,
const Vec512< int64_t >  bits 
)

◆ operator>>() [36/39]

HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint16_t >  v,
const Vec512< uint16_t >  bits 
)

◆ operator>>() [37/39]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint32_t >  v,
const Vec512< uint32_t >  bits 
)

◆ operator>>() [38/39]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint64_t >  v,
const Vec512< uint64_t >  bits 
)

◆ operator>>() [39/39]

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^() [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 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 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 
)

◆ 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 >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::Or ( const Vec1< T >  a,
const Vec1< T >  b 
)

References BitCast().

◆ Or() [10/17]

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

◆ Or() [11/17]

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

◆ Or() [12/17]

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

◆ Or() [13/17]

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

◆ Or() [14/17]

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

◆ Or() [15/17]

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

◆ Or() [16/17]

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

◆ Or() [17/17]

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

◆ PopulationCount() [1/6]

template<typename V , HWY_IF_LANES_ARE(uint8_t, V) >
HWY_API V hwy::HWY_NAMESPACE::PopulationCount ( v)

◆ PopulationCount() [2/6]

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() [3/6]

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

◆ PopulationCount() [4/6]

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

◆ PopulationCount() [5/6]

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

◆ PopulationCount() [6/6]

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

◆ 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 
)

◆ PrintValue()

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_NOINLINE void hwy::HWY_NAMESPACE::PrintValue ( value)

◆ PromotedLanes()

template<class D , HWY_IF_NOT_LANE_SIZE_D(D, 8) >
HWY_INLINE size_t hwy::HWY_NAMESPACE::PromotedLanes ( const D  d)

◆ PromoteTo() [1/79]

HWY_API Vec128<int16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< int16_t >  d,
const Vec128< uint8_t, 8 >  v 
)

◆ PromoteTo() [2/79]

HWY_API Vec128<int16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< int16_t >  ,
const Vec128< int8_t, 8 >  v 
)

◆ PromoteTo() [3/79]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< int32_t >  d,
const Vec128< uint16_t, 4 >  v 
)

◆ PromoteTo() [4/79]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< int32_t >  d,
const Vec128< uint8_t, 4 >  v 
)

◆ PromoteTo() [5/79]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< int32_t >  ,
const Vec128< int16_t, 4 >  v 
)

◆ PromoteTo() [6/79]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< int32_t >  ,
const Vec128< int8_t, 4 >  v 
)

◆ PromoteTo() [7/79]

HWY_API Vec128<int64_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< int64_t >  ,
const Vec128< int32_t, 2 >  v 
)

◆ PromoteTo() [8/79]

HWY_API Vec128<uint16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< uint16_t >  ,
const Vec128< uint8_t, 8 >  v 
)

◆ PromoteTo() [9/79]

HWY_API Vec128<uint32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< uint32_t >  ,
const Vec128< uint16_t, 4 >  v 
)

◆ PromoteTo() [10/79]

HWY_API Vec128<uint32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< uint32_t >  ,
const Vec128< uint8_t, 4 >  v 
)

◆ PromoteTo() [11/79]

HWY_API Vec128<uint64_t> hwy::HWY_NAMESPACE::PromoteTo ( Full128< uint64_t >  ,
const Vec128< uint32_t, 2 >  v 
)

◆ PromoteTo() [12/79]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::PromoteTo ( Full256< double >  ,
const Vec128< float, 4 >  v 
)

◆ PromoteTo() [13/79]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::PromoteTo ( Full256< double >  ,
const Vec128< int32_t, 4 >  v 
)

◆ PromoteTo() [14/79]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::PromoteTo ( Full256< float >  df32,
const Vec128< bfloat16_t v 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [15/79]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::PromoteTo ( Full256< float >  df32,
const Vec128< float16_t v 
)

◆ PromoteTo() [16/79]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< int16_t >  ,
Vec128< int8_t >  v 
)

◆ PromoteTo() [17/79]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< int16_t >  ,
Vec128< uint8_t >  v 
)

◆ PromoteTo() [18/79]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
Vec128< int16_t >  v 
)

◆ PromoteTo() [19/79]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
Vec128< int8_t, 8 >  v 
)

◆ PromoteTo() [20/79]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
Vec128< uint16_t >  v 
)

◆ PromoteTo() [21/79]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< int32_t >  ,
Vec128< uint8_t, 8 >  v 
)

◆ PromoteTo() [22/79]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< int64_t >  ,
Vec128< int32_t >  v 
)

◆ PromoteTo() [23/79]

HWY_API Vec256<uint16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint16_t >  ,
Vec128< uint8_t >  v 
)

◆ PromoteTo() [24/79]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint32_t >  ,
Vec128< uint16_t >  v 
)

◆ PromoteTo() [25/79]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint32_t >  ,
Vec128< uint8_t, 8 >  v 
)

◆ PromoteTo() [26/79]

HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::PromoteTo ( Full256< uint64_t >  ,
Vec128< uint32_t >  v 
)

◆ PromoteTo() [27/79]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::PromoteTo ( Full512< double >  ,
Vec256< float >  v 
)

◆ PromoteTo() [28/79]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::PromoteTo ( Full512< double >  ,
Vec256< int32_t >  v 
)

◆ PromoteTo() [29/79]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::PromoteTo ( Full512< float >  df32,
const Vec256< bfloat16_t v 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [30/79]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::PromoteTo ( Full512< float >  ,
const Vec256< float16_t v 
)

◆ PromoteTo() [31/79]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< int16_t >  ,
Vec256< int8_t >  v 
)

◆ PromoteTo() [32/79]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< int16_t >  ,
Vec256< uint8_t >  v 
)

◆ PromoteTo() [33/79]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< int32_t >  ,
Vec128< int8_t >  v 
)

◆ PromoteTo() [34/79]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< int32_t >  ,
Vec128< uint8_t >  v 
)

◆ PromoteTo() [35/79]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< int32_t >  ,
Vec256< int16_t >  v 
)

◆ PromoteTo() [36/79]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< int32_t >  ,
Vec256< uint16_t >  v 
)

◆ PromoteTo() [37/79]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< int64_t >  ,
Vec256< int32_t >  v 
)

◆ PromoteTo() [38/79]

HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< uint16_t >  ,
Vec256< uint8_t >  v 
)

◆ PromoteTo() [39/79]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< uint32_t >  ,
Vec128< uint8_t >  v 
)

◆ PromoteTo() [40/79]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< uint32_t >  ,
Vec256< uint16_t >  v 
)

◆ PromoteTo() [41/79]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::PromoteTo ( Full512< uint64_t >  ,
Vec256< uint32_t >  v 
)

◆ PromoteTo() [42/79]

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

◆ PromoteTo() [43/79]

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

◆ PromoteTo() [44/79]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< float, N >  df32,
const Vec128< bfloat16_t, N >  v 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [45/79]

template<size_t N>
HWY_INLINE_F16 Vec128<float, N> hwy::HWY_NAMESPACE::PromoteTo ( Simd< float, N >  df32,
const Vec128< float16_t, N >  v 
)

◆ PromoteTo() [46/79]

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

◆ PromoteTo() [47/79]

template<size_t N>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N >  d,
VFromD< Simd< bfloat16_t, N >>  v 
) -> VFromD<decltype(d)>

References BitCast(), and PromoteTo().

◆ PromoteTo() [48/79]

template<size_t N>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N >  df32,
const svuint16_t  v 
)

References BitCast(), and ZipLower().

◆ PromoteTo() [49/79]

template<size_t N>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N >  ,
const svfloat16_t  v 
)

◆ PromoteTo() [50/79]

template<size_t N>
HWY_API svfloat64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float64_t, N >  ,
const svfloat32_t  v 
)

◆ PromoteTo() [51/79]

template<size_t N>
HWY_API svfloat64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float64_t, N >  ,
const svint32_t  v 
)

◆ PromoteTo() [52/79]

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

◆ PromoteTo() [53/79]

template<size_t N>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int16_t, N >  d,
VFromD< Simd< uint8_t, N >>  v 
) -> VFromD<decltype(d)>

References BitCast(), and PromoteTo().

◆ PromoteTo() [54/79]

template<size_t N>
HWY_API svint16_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int16_t, N >  dto,
svuint8_t  vfrom 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [55/79]

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

◆ PromoteTo() [56/79]

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

◆ PromoteTo() [57/79]

template<size_t N>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N >  d,
VFromD< Simd< uint16_t, N >>  v 
) -> VFromD<decltype(d)>

References BitCast(), and PromoteTo().

◆ PromoteTo() [58/79]

template<size_t N>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N >  d,
VFromD< Simd< uint8_t, N >>  v 
) -> VFromD<decltype(d)>

References BitCast(), and PromoteTo().

◆ PromoteTo() [59/79]

template<size_t N>
HWY_API svint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N >  dto,
svint8_t  vfrom 
)

References PromoteTo().

◆ PromoteTo() [60/79]

template<size_t N>
HWY_API svint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N >  dto,
svuint16_t  vfrom 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [61/79]

template<size_t N>
HWY_API svint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N >  dto,
svuint8_t  vfrom 
)

References BitCast(), and PromoteTo().

◆ PromoteTo() [62/79]

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

◆ PromoteTo() [63/79]

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

◆ PromoteTo() [64/79]

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

◆ PromoteTo() [65/79]

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

◆ PromoteTo() [66/79]

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

◆ PromoteTo() [67/79]

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

◆ PromoteTo() [68/79]

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

◆ PromoteTo() [69/79]

template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_API Vec128<uint16_t, N> hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint16_t, N >  ,
const Vec128< uint8_t, N >  v 
)

◆ PromoteTo() [70/79]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint16_t, N >  ,
const Vec128< uint8_t, N >  v 
)

◆ PromoteTo() [71/79]

template<size_t N>
HWY_API svuint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N >  dto,
svuint8_t  vfrom 
)

References PromoteTo().

◆ PromoteTo() [72/79]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N >  ,
const Vec128< uint16_t, N >  v 
)

◆ PromoteTo() [73/79]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_API Vec128<uint32_t, N> hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N >  ,
const Vec128< uint8_t, N >  v 
)

◆ PromoteTo() [74/79]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N >  ,
const Vec128< uint8_t, N >  v 
)

◆ PromoteTo() [75/79]

template<size_t N, HWY_IF_LE64(uint64_t, N) >
HWY_API Vec128<uint64_t, N> hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint64_t, N >  ,
const Vec128< uint32_t, N >  v 
)

◆ PromoteTo() [76/79]

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

◆ PromoteTo() [77/79]

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

◆ PromoteTo() [78/79]

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

◆ PromoteTo() [79/79]

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

◆ 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 >  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 >  ,
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/5]

HWY_API Vec256<bfloat16_t> hwy::HWY_NAMESPACE::ReorderDemote2To ( Full256< bfloat16_t dbf16,
Vec256< float >  a,
Vec256< float >  b 
)

References BitCast(), and OddEven().

◆ ReorderDemote2To() [2/5]

HWY_API Vec512<bfloat16_t> hwy::HWY_NAMESPACE::ReorderDemote2To ( Full512< bfloat16_t dbf16,
Vec512< float >  a,
Vec512< float >  b 
)

References BitCast(), and OddEven().

◆ ReorderDemote2To() [3/5]

template<size_t N>
HWY_API Vec128< bfloat16_t, 2 *N > hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< bfloat16_t, 2 *N >  dbf16,
Vec128< float, N >  a,
Vec128< float, N >  b 
)

References BitCast(), and OddEven().

◆ ReorderDemote2To() [4/5]

template<size_t N>
HWY_API svuint16_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< bfloat16_t, N >  dbf16,
svfloat32_t  a,
svfloat32_t  b 
)

References BitCast(), and OddEven().

◆ ReorderDemote2To() [5/5]

template<size_t N, class DF = Simd<float, N / 2>>
HWY_API VFromD<Simd<uint16_t, N> > hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< bfloat16_t, N >  dbf16,
VFromD< DF >  a,
VFromD< DF >  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 svfloat32_t hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< float, N >  df32,
svuint16_t  a,
svuint16_t  b,
const svfloat32_t  sum0,
svfloat32_t &  sum1 
)

◆ ReorderWidenMulAccumulate() [4/6]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< float, N >  df32,
Vec128< bfloat16_t, 2 *N >  a,
Vec128< bfloat16_t, 2 *N >  b,
const Vec128< float, N >  sum0,
Vec128< float, N > &  sum1 
)

◆ ReorderWidenMulAccumulate() [5/6]

template<size_t N, class DU16 = Simd<uint16_t, N * 2>>
HWY_API auto hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< float, N >  df32,
VFromD< DU16 >  a,
VFromD< DU16 >  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 > &   
)

◆ Reverse() [1/7]

template<class D >
HWY_API VFromD<D> hwy::HWY_NAMESPACE::Reverse ( ,
VFromD< D >  v 
)

◆ Reverse() [2/7]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse ( Full128< T >  ,
const Vec128< T >  v 
)

References Shuffle0123().

◆ Reverse() [3/7]

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

◆ Reverse() [4/7]

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

◆ Reverse() [5/7]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Reverse ( Simd< T, 1 >  ,
const Vec128< T, 1 >  v 
)

◆ Reverse() [6/7]

template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::Reverse ( Simd< T, 2 >  ,
const Vec128< T, 2 >  v 
)

References Shuffle2301().

◆ Reverse() [7/7]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::Reverse ( Sisd< T >  ,
const Vec1< T >  v 
)

◆ Round() [1/8]

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

◆ Round() [2/8]

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

◆ Round() [3/8]

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

◆ Round() [4/8]

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

◆ Round() [5/8]

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

◆ Round() [6/8]

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

◆ Round() [7/8]

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

◆ Round() [8/8]

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

◆ SaturatedAdd() [1/16]

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/16]

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/16]

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/16]

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/16]

HWY_API Vec1<int16_t> hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< int16_t >  a,
const Vec1< int16_t >  b 
)

◆ SaturatedAdd() [6/16]

HWY_API Vec1<int8_t> hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< int8_t >  a,
const Vec1< int8_t >  b 
)

◆ SaturatedAdd() [7/16]

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

◆ SaturatedAdd() [8/16]

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

◆ SaturatedAdd() [9/16]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ SaturatedAdd() [10/16]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ SaturatedAdd() [11/16]

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

◆ SaturatedAdd() [12/16]

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

◆ SaturatedAdd() [13/16]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ SaturatedAdd() [14/16]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ SaturatedAdd() [15/16]

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

◆ SaturatedAdd() [16/16]

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

◆ SaturatedSub() [1/16]

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/16]

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/16]

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/16]

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/16]

HWY_API Vec1<int16_t> hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< int16_t >  a,
const Vec1< int16_t >  b 
)

◆ SaturatedSub() [6/16]

HWY_API Vec1<int8_t> hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< int8_t >  a,
const Vec1< int8_t >  b 
)

◆ SaturatedSub() [7/16]

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

◆ SaturatedSub() [8/16]

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

References HWY_MAX, HWY_MIN, and hwy::HWY_NAMESPACE::Vec1< T >::raw.

Referenced by Max(), and Min().

◆ SaturatedSub() [9/16]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::SaturatedSub ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ SaturatedSub() [10/16]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::SaturatedSub ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ SaturatedSub() [11/16]

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

◆ SaturatedSub() [12/16]

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

◆ SaturatedSub() [13/16]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::SaturatedSub ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ SaturatedSub() [14/16]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::SaturatedSub ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ SaturatedSub() [15/16]

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

◆ SaturatedSub() [16/16]

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

◆ ScatterIndex() [1/12]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec128< double, N >  v,
Simd< double, N >  ,
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 >  ,
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 >  d,
T *HWY_RESTRICT  base,
const Vec128< Index, N >  index 
)

References Store().

◆ 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 >  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 
)

◆ 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 ScatterOffset().

◆ ScatterOffset() [1/12]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec128< double, N >  v,
Simd< double, N >  ,
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 >  ,
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 >  d,
T *HWY_RESTRICT  base,
const Vec128< Offset, N >  offset 
)

References Store().

Referenced by ScatterIndex(), and ScatterOffset().

◆ 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 >  d,
T *HWY_RESTRICT  base,
const Vec128< Offset, N >  offset 
)

◆ ScatterOffset() [5/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() [6/12]

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

◆ ScatterOffset() [7/12]

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

◆ ScatterOffset() [8/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 
)

◆ ScatterOffset() [9/12]

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

◆ ScatterOffset() [10/12]

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

◆ ScatterOffset() [11/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 
)

◆ ScatterOffset() [12/12]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< Simd< T, N >>  v,
Simd< T, N >  ,
T *HWY_RESTRICT  base,
VFromD< Simd< MakeSigned< T >, N >>  offset 
)

References ScatterOffset().

◆ 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>
svuint16_t hwy::HWY_NAMESPACE::Set ( Simd< bfloat16_t, N >  d,
bfloat16_t  arg 
)

References hwy::bfloat16_t::bits.

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(), 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(), FirstN(), grk::HWY_NAMESPACE::hwy_decompress_v_cas0_mcols_53(), grk::HWY_NAMESPACE::hwy_decompress_v_cas1_mcols_53(), hwy::HWY_NAMESPACE::detail::Idx16x8FromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), LoadMaskBits(), hwy::HWY_NAMESPACE::impl::Log(), Log10(), Log1p(), Log2(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::Log2p1NoSubnormal(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::LogPoly(), Max(), MaxOfLanes(), hwy::HWY_NAMESPACE::detail::MaxU(), Min(), MinOfLanes(), hwy::HWY_NAMESPACE::detail::MinU(), MulEven(), MulOdd(), NaN(), operator>>(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::Poly(), PopulationCount(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::Pow2I(), PromoteTo(), Reverse(), Round(), Set(), ShiftLeft(), ShiftLeftSame(), ShiftRight(), ShiftRightSame(), SignBit(), Sin(), Sinh(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), StoreInterleaved3(), SumOfLanes(), Tanh(), hwy::HWY_NAMESPACE::detail::UseInt(), grk::HWY_NAMESPACE::DecompressDcShiftIrrev::vtrans(), grk::HWY_NAMESPACE::DecompressDcShiftRev::vtrans(), grk::HWY_NAMESPACE::DecompressRev::vtrans(), grk::HWY_NAMESPACE::DecompressIrrev::vtrans(), grk::HWY_NAMESPACE::CompressRev::vtrans(), grk::HWY_NAMESPACE::CompressIrrev::vtrans(), and Zero().

◆ Set() [22/34]

template<size_t N>
decltype(Set(Simd<uint16_t, N>(), 0)) hwy::HWY_NAMESPACE::Set ( Simd< bfloat16_t, N >  d,
bfloat16_t  arg 
)

References 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 >  ,
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 >  ,
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 >  ,
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 >  ,
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 >  ,
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 >  ,
const int8_t  t 
)

◆ Set() [29/34]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API VFromD<Simd<T, N> > hwy::HWY_NAMESPACE::Set ( Simd< T, N >  ,
arg 
)

References Set().

◆ 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 >  ,
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 >  ,
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 >  ,
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 >  ,
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 >
HWY_API Indices256<T> hwy::HWY_NAMESPACE::SetTableIndices ( const Full256< T >  ,
const int32_t *  idx 
)

References HWY_DASSERT, and LoadU().

◆ SetTableIndices() [2/6]

template<typename T >
HWY_API Indices512<T> hwy::HWY_NAMESPACE::SetTableIndices ( const Full512< T >  ,
const int32_t *  idx 
)

References HWY_DASSERT, and LoadU().

◆ SetTableIndices() [3/6]

template<class D , class DI = RebindToSigned<D>>
HWY_API VFromD<DI> hwy::HWY_NAMESPACE::SetTableIndices ( d,
const TFromD< DI > *  idx 
)

References HWY_DASSERT, Lanes(), and Load().

◆ SetTableIndices() [4/6]

template<class D , class DU = RebindToUnsigned<D>>
HWY_API VFromD<DU> hwy::HWY_NAMESPACE::SetTableIndices ( d,
const TFromD< DU > *  idx 
)

References HWY_DASSERT, Lanes(), and Load().

◆ SetTableIndices() [5/6]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Indices128< T, N > hwy::HWY_NAMESPACE::SetTableIndices ( Simd< T, N >  d,
const int32_t *  idx 
)

References BitCast(), HWY_DASSERT, and Load().

Referenced by Reverse().

◆ SetTableIndices() [6/6]

template<typename T >
HWY_API Indices1<T> hwy::HWY_NAMESPACE::SetTableIndices ( Sisd< T >  ,
const int32_t *  idx 
)

References HWY_DASSERT.

◆ ShiftLeft() [1/22]

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

◆ ShiftLeft() [2/22]

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

◆ ShiftLeft() [3/22]

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

◆ ShiftLeft() [4/22]

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)

◆ ShiftLeft() [5/22]

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

◆ ShiftLeft() [6/22]

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

◆ ShiftLeft() [7/22]

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

◆ ShiftLeft() [8/22]

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

◆ ShiftLeft() [9/22]

template<int kBits>
HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< int16_t >  v)

◆ ShiftLeft() [10/22]

template<int kBits>
HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< int32_t >  v)

◆ ShiftLeft() [11/22]

template<int kBits>
HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< int64_t >  v)

◆ ShiftLeft() [12/22]

template<int kBits, typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< T >  v)

References BitCast(), and Set().

◆ ShiftLeft() [13/22]

template<int kBits>
HWY_API Vec256<uint16_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< uint16_t >  v)

◆ ShiftLeft() [14/22]

template<int kBits>
HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< uint32_t >  v)

◆ ShiftLeft() [15/22]

template<int kBits>
HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec256< uint64_t >  v)

◆ ShiftLeft() [16/22]

template<int kBits>
HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int16_t >  v)

◆ ShiftLeft() [17/22]

template<int kBits>
HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int32_t >  v)

◆ ShiftLeft() [18/22]

template<int kBits>
HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int64_t >  v)

◆ ShiftLeft() [19/22]

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(), and Set().

◆ ShiftLeft() [20/22]

template<int kBits>
HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint16_t >  v)

◆ ShiftLeft() [21/22]

template<int kBits>
HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint32_t >  v)

◆ ShiftLeft() [22/22]

template<int kBits>
HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint64_t >  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().

◆ ShiftLeftBytes() [2/9]

template<int kBytes, class V >
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftBytes ( const V  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)

◆ ShiftLeftBytes() [4/9]

template<int kBytes, typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ShiftLeftBytes ( const Vec256< T >  v)

◆ ShiftLeftBytes() [5/9]

template<int kBytes, typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ShiftLeftBytes ( const Vec512< T >  v)

◆ ShiftLeftBytes() [6/9]

template<int kBytes, class V >
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftBytes ( DFromV< V >  d,
const V  v 
)

References BitCast().

◆ ShiftLeftBytes() [7/9]

template<int kBytes, typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ShiftLeftBytes ( Full256< T >  ,
const Vec256< T >  v 
)

◆ ShiftLeftBytes() [8/9]

template<int kBytes, typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ShiftLeftBytes ( Full512< T >  ,
const Vec512< T >  v 
)

◆ ShiftLeftBytes() [9/9]

template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftBytes ( Simd< T, N >  ,
Vec128< T, N >  v 
)

◆ ShiftLeftLanes() [1/8]

template<size_t kLanes, class V >
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftLanes ( const V  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)

◆ ShiftLeftLanes() [3/8]

template<int kLanes, typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ShiftLeftLanes ( const Vec256< T >  v)

◆ ShiftLeftLanes() [4/8]

template<int kLanes, typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ShiftLeftLanes ( const Vec512< T >  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 FirstN(), IfThenElse(), 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(), and ShiftLeftBytes().

◆ 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(), and ShiftLeftBytes().

◆ ShiftLeftLanes() [8/8]

template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftLanes ( Simd< T, N >  d,
const Vec128< T, N >  v 
)

References BitCast(), and ShiftLeftBytes().

◆ 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 
)

◆ 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 
)

◆ 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 
)

◆ 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 
)

◆ 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 
)

◆ 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 
)

◆ 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 
)

◆ ShiftLeftSame() [9/23]

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

◆ ShiftLeftSame() [10/23]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int16_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [11/23]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int32_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [12/23]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int64_t >  v,
const int  bits 
)

◆ 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 BitCast(), Set(), and ShiftLeftSame().

◆ ShiftLeftSame() [14/23]

HWY_API Vec256<uint16_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint16_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [15/23]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint32_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [16/23]

HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint64_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [17/23]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int16_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [18/23]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int32_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [19/23]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int64_t >  v,
const int  bits 
)

◆ 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(), and ShiftLeftSame().

◆ ShiftLeftSame() [21/23]

HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint16_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [22/23]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint32_t >  v,
const int  bits 
)

◆ ShiftLeftSame() [23/23]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint64_t >  v,
const int  bits 
)

◆ ShiftRight() [1/25]

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

◆ ShiftRight() [2/25]

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

◆ ShiftRight() [3/25]

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

◆ ShiftRight() [4/25]

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

References BitCast(), and Set().

◆ ShiftRight() [5/25]

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

◆ ShiftRight() [6/25]

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

◆ ShiftRight() [7/25]

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

◆ ShiftRight() [8/25]

template<int kBits, size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint8_t, N >  v)

◆ ShiftRight() [9/25]

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

◆ ShiftRight() [10/25]

template<int kBits>
HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int16_t >  v)

◆ ShiftRight() [11/25]

template<int kBits>
HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int32_t >  v)

◆ ShiftRight() [12/25]

template<int kBits>
HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int64_t >  v)

◆ ShiftRight() [13/25]

template<int kBits>
HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int8_t >  v)

References BitCast(), and Set().

◆ ShiftRight() [14/25]

template<int kBits>
HWY_API Vec256<uint16_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< uint16_t >  v)

◆ ShiftRight() [15/25]

template<int kBits>
HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< uint32_t >  v)

◆ ShiftRight() [16/25]

template<int kBits>
HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< uint64_t >  v)

◆ ShiftRight() [17/25]

template<int kBits>
HWY_API Vec256<uint8_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< uint8_t >  v)

◆ ShiftRight() [18/25]

template<int kBits>
HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int16_t >  v)

◆ ShiftRight() [19/25]

template<int kBits>
HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int32_t >  v)

◆ ShiftRight() [20/25]

template<int kBits>
HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int64_t >  v)

◆ ShiftRight() [21/25]

template<int kBits>
HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int8_t >  v)

References BitCast(), and Set().

◆ ShiftRight() [22/25]

template<int kBits>
HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint16_t >  v)

◆ ShiftRight() [23/25]

template<int kBits>
HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint32_t >  v)

◆ ShiftRight() [24/25]

template<int kBits>
HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint64_t >  v)

◆ ShiftRight() [25/25]

template<int kBits>
HWY_API Vec512<uint8_t> hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint8_t >  v)

◆ ShiftRightBytes() [1/7]

template<int kBytes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftRightBytes ( const D  d,
const V  v 
)

References BitCast().

◆ ShiftRightBytes() [2/7]

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

◆ ShiftRightBytes() [3/7]

template<int kBytes, typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ShiftRightBytes ( const Vec256< T >  v)

◆ ShiftRightBytes() [4/7]

template<int kBytes, typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ShiftRightBytes ( const Vec512< T >  v)

◆ ShiftRightBytes() [5/7]

template<int kBytes, typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ShiftRightBytes ( Full256< T >  ,
const Vec256< T >  v 
)

◆ ShiftRightBytes() [6/7]

template<int kBytes, typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ShiftRightBytes ( Full512< T >  ,
const Vec512< T >  v 
)

◆ ShiftRightBytes() [7/7]

template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRightBytes ( Simd< T, N >  ,
Vec128< T, N >  v 
)

Referenced by ShiftRightLanes(), and UpperHalf().

◆ ShiftRightLanes() [1/7]

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

◆ ShiftRightLanes() [2/7]

template<int kLanes, typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ShiftRightLanes ( const Vec256< T >  v)

◆ ShiftRightLanes() [3/7]

template<int kLanes, typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ShiftRightLanes ( const Vec512< T >  v)

◆ ShiftRightLanes() [4/7]

template<int kLanes, typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ShiftRightLanes ( Full256< T >  d,
const Vec256< T >  v 
)

References BitCast(), and ShiftRightBytes().

◆ ShiftRightLanes() [5/7]

template<int kLanes, typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ShiftRightLanes ( Full512< T >  d,
const Vec512< T >  v 
)

References BitCast(), and ShiftRightBytes().

◆ ShiftRightLanes() [6/7]

template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRightLanes ( Simd< T, N >  d,
const Vec128< T, N >  v 
)

References BitCast(), and ShiftRightBytes().

◆ ShiftRightLanes() [7/7]

template<size_t kLanes, typename T , size_t N, class V = VFromD<Simd<T, N>>>
HWY_API V hwy::HWY_NAMESPACE::ShiftRightLanes ( Simd< T, N >  d,
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 
)

◆ 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 
)

◆ 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 
)

◆ 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().

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 
)

◆ 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 
)

◆ 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 
)

◆ ShiftRightSame() [8/26]

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

◆ ShiftRightSame() [9/26]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< int16_t >  v,
const int  bits 
)

◆ ShiftRightSame() [10/26]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< int32_t >  v,
const int  bits 
)

◆ 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 
)

◆ ShiftRightSame() [13/26]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< uint32_t >  v,
const int  bits 
)

◆ ShiftRightSame() [14/26]

HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< uint64_t >  v,
const int  bits 
)

◆ ShiftRightSame() [15/26]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int16_t >  v,
const int  bits 
)

◆ ShiftRightSame() [16/26]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int32_t >  v,
const int  bits 
)

◆ ShiftRightSame() [17/26]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int64_t >  v,
const int  bits 
)

◆ ShiftRightSame() [18/26]

HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint16_t >  v,
const int  bits 
)

◆ ShiftRightSame() [19/26]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint32_t >  v,
const int  bits 
)

◆ ShiftRightSame() [20/26]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint64_t >  v,
const int  bits 
)

◆ 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(), and ShiftRightSame().

◆ 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 
)

◆ ShiftRightSame() [23/26]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::ShiftRightSame ( Vec256< int8_t >  v,
const int  bits 
)

References BitCast(), Set(), and ShiftRightSame().

◆ ShiftRightSame() [24/26]

HWY_API Vec256<uint8_t> hwy::HWY_NAMESPACE::ShiftRightSame ( Vec256< uint8_t >  v,
const int  bits 
)

References BitCast(), Set(), and ShiftRightSame().

◆ ShiftRightSame() [25/26]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::ShiftRightSame ( Vec512< int8_t >  v,
const int  bits 
)

References BitCast(), Set(), and ShiftRightSame().

◆ ShiftRightSame() [26/26]

HWY_API Vec512<uint8_t> hwy::HWY_NAMESPACE::ShiftRightSame ( Vec512< uint8_t >  v,
const int  bits 
)

References BitCast(), Set(), and ShiftRightSame().

◆ Shl()

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

Referenced by LoadMaskBits().

◆ Shr()

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

◆ Shuffle01() [1/11]

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

References BitCast().

◆ Shuffle01() [2/11]

HWY_API Vec128<double> hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< double >  v)

◆ Shuffle01() [3/11]

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

◆ Shuffle01() [4/11]

template<typename T >
HWY_API Vec128<T> hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< T >  v)

◆ Shuffle01() [5/11]

HWY_API Vec128<uint64_t> hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< uint64_t >  v)

◆ Shuffle01() [6/11]

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

◆ Shuffle01() [7/11]

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

◆ Shuffle01() [8/11]

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

◆ Shuffle01() [9/11]

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

◆ Shuffle01() [10/11]

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

◆ Shuffle01() [11/11]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::Shuffle01 ( const Vec512< uint64_t >  v)

◆ Shuffle0123() [1/11]

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

References Shuffle1032(), and Shuffle2301().

◆ Shuffle0123() [2/11]

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

◆ Shuffle0123() [3/11]

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

◆ Shuffle0123() [4/11]

template<typename T >
HWY_API Vec128<T> hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< T >  v)

References Shuffle1032(), and Shuffle2301().

Referenced by Reverse().

◆ Shuffle0123() [5/11]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< uint32_t >  v)

◆ Shuffle0123() [6/11]

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

◆ Shuffle0123() [7/11]

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

◆ Shuffle0123() [8/11]

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

◆ Shuffle0123() [9/11]

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

◆ Shuffle0123() [10/11]

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

◆ Shuffle0123() [11/11]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec512< uint32_t >  v)

◆ Shuffle0321() [1/11]

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

References BitCast().

◆ Shuffle0321() [2/11]

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

◆ Shuffle0321() [3/11]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec128< int32_t >  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)

◆ Shuffle0321() [6/11]

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

◆ Shuffle0321() [7/11]

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

◆ Shuffle0321() [8/11]

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

◆ Shuffle0321() [9/11]

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

◆ Shuffle0321() [10/11]

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

◆ Shuffle0321() [11/11]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec512< uint32_t >  v)

◆ Shuffle1032() [1/11]

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

References BitCast().

◆ Shuffle1032() [2/11]

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

◆ Shuffle1032() [3/11]

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

◆ Shuffle1032() [4/11]

template<typename T >
HWY_API Vec128<T> hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< T >  v)

◆ Shuffle1032() [5/11]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< uint32_t >  v)

◆ Shuffle1032() [6/11]

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

◆ Shuffle1032() [7/11]

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

◆ Shuffle1032() [8/11]

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

◆ Shuffle1032() [9/11]

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

◆ Shuffle1032() [10/11]

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

◆ Shuffle1032() [11/11]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec512< uint32_t >  v)

◆ Shuffle2103() [1/11]

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

References BitCast().

◆ Shuffle2103() [2/11]

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

◆ Shuffle2103() [3/11]

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

◆ Shuffle2103() [4/11]

template<typename T >
HWY_API Vec128<T> hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< T >  v)

◆ Shuffle2103() [5/11]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< uint32_t >  v)

◆ Shuffle2103() [6/11]

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

◆ Shuffle2103() [7/11]

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

◆ Shuffle2103() [8/11]

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

◆ Shuffle2103() [9/11]

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

◆ Shuffle2103() [10/11]

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

◆ Shuffle2103() [11/11]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec512< uint32_t >  v)

◆ Shuffle2301() [1/17]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Shuffle2301 ( const V  v)

References BitCast(), and Shuffle2301().

◆ Shuffle2301() [2/17]

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

References BitCast(), and Or().

◆ Shuffle2301() [3/17]

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

◆ Shuffle2301() [4/17]

HWY_API Vec128<float, 2> hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< float, 2 >  v)

◆ Shuffle2301() [5/17]

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

◆ Shuffle2301() [6/17]

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

◆ Shuffle2301() [7/17]

HWY_API Vec128<int32_t, 2> hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< int32_t, 2 >  v)

◆ Shuffle2301() [8/17]

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

◆ Shuffle2301() [9/17]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< uint32_t >  v)

◆ Shuffle2301() [10/17]

HWY_API Vec128<uint32_t, 2> hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< uint32_t, 2 >  v)

◆ Shuffle2301() [11/17]

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

◆ Shuffle2301() [12/17]

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

◆ Shuffle2301() [13/17]

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

◆ Shuffle2301() [14/17]

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

◆ Shuffle2301() [15/17]

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

◆ Shuffle2301() [16/17]

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

◆ Shuffle2301() [17/17]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec512< uint32_t >  v)

◆ 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(), 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(), Div(), Expm1(), Mul(), Set(), SignBit(), and Xor().

Referenced by CallSinh().

◆ Sqrt() [1/10]

HWY_API Vec128<double, 1> hwy::HWY_NAMESPACE::Sqrt ( const Vec128< double, 1 >  v)

◆ Sqrt() [2/10]

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

◆ Sqrt() [3/10]

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

◆ Sqrt() [4/10]

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

◆ Sqrt() [5/10]

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

◆ Sqrt() [6/10]

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

◆ Sqrt() [7/10]

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

◆ Sqrt() [8/10]

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

◆ Sqrt() [9/10]

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

◆ Sqrt() [10/10]

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

◆ Store() [1/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< double >  v,
Full128< double >  ,
double *HWY_RESTRICT  aligned 
)

◆ Store() [2/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< double, 1 >  v,
Simd< double, 1 >  ,
double *HWY_RESTRICT  p 
)

◆ Store() [3/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< float >  v,
Full128< float >  ,
float *HWY_RESTRICT  aligned 
)

◆ Store() [4/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< float, 1 >  v,
Simd< float, 1 >  ,
float *HWY_RESTRICT  p 
)

◆ Store() [5/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec128< float, 2 >  v,
Simd< float, 2 >  ,
float *HWY_RESTRICT  p 
)

◆ Store() [6/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec1< T >  v,
Sisd< T >  ,
T *HWY_RESTRICT  aligned 
)

◆ Store() [7/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec256< double >  v,
Full256< double >  ,
double *HWY_RESTRICT  aligned 
)

◆ Store() [8/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec256< float >  v,
Full256< float >  ,
float *HWY_RESTRICT  aligned 
)

◆ Store() [9/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec512< double >  v,
Full512< double >  ,
double *HWY_RESTRICT  aligned 
)

◆ Store() [10/19]

HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec512< float >  v,
Full512< float >  ,
float *HWY_RESTRICT  aligned 
)

◆ Store() [11/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  aligned 
)

◆ Store() [12/19]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::Store ( svuint16_t  v,
Simd< bfloat16_t, N >  d,
bfloat16_t *HWY_RESTRICT  p 
)

References HWY_RESTRICT, and Store().

◆ Store() [13/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< T >  v,
Full128< T >  ,
T *HWY_RESTRICT  aligned 
)

◆ Store() [14/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< T, 8/sizeof(T)>  v,
Simd< T, 8/sizeof(T)>  ,
T *HWY_RESTRICT  p 
)

◆ Store() [15/19]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< T, N >  v,
Simd< T, N >  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 >  ,
T *HWY_RESTRICT  p 
)

◆ Store() [17/19]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  aligned 
)

◆ Store() [18/19]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::Store ( VFromD< Simd< T, N >>  v,
Simd< T, N >  ,
T *HWY_RESTRICT  p 
)

References Store().

◆ Store() [19/19]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::Store ( VFromD< Simd< uint16_t, N >>  v,
Simd< bfloat16_t, N >  d,
bfloat16_t *HWY_RESTRICT  p 
)

References HWY_RESTRICT, and Store().

◆ StoreInterleaved3() [1/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec128< uint8_t >  v0,
const Vec128< uint8_t >  v1,
const Vec128< uint8_t >  v2,
Full128< uint8_t >  d,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [2/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec128< uint8_t, 8 >  v0,
const Vec128< uint8_t, 8 >  v1,
const Vec128< uint8_t, 8 >  v2,
Simd< uint8_t, 8 >  d,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [3/6]

template<size_t N, HWY_IF_LE32(uint8_t, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec128< uint8_t, N >  v0,
const Vec128< uint8_t, N >  v1,
const Vec128< uint8_t, N >  v2,
Simd< uint8_t, N >  ,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [4/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec1< uint8_t >  v0,
const Vec1< uint8_t >  v1,
const Vec1< uint8_t >  v2,
Sisd< uint8_t >  d,
uint8_t *HWY_RESTRICT  unaligned 
)

References StoreU().

◆ StoreInterleaved3() [5/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec256< uint8_t >  v0,
const Vec256< uint8_t >  v1,
const Vec256< uint8_t >  v2,
Full256< uint8_t >  d,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved3() [6/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b,
const Vec512< uint8_t >  c,
Full512< uint8_t >  d,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [1/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec128< uint8_t >  v0,
const Vec128< uint8_t >  v1,
const Vec128< uint8_t >  v2,
const Vec128< uint8_t >  v3,
Full128< uint8_t >  d8,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [2/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec128< uint8_t, 8 >  v0,
const Vec128< uint8_t, 8 >  v1,
const Vec128< uint8_t, 8 >  v2,
const Vec128< uint8_t, 8 >  v3,
Simd< uint8_t, 8 >  ,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [3/6]

template<size_t N, HWY_IF_LE32(uint8_t, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec128< uint8_t, N >  v0,
const Vec128< uint8_t, N >  v1,
const Vec128< uint8_t, N >  v2,
const Vec128< uint8_t, N >  v3,
Simd< uint8_t, N >  ,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [4/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec1< uint8_t >  v0,
const Vec1< uint8_t >  v1,
const Vec1< uint8_t >  v2,
const Vec1< uint8_t >  v3,
Sisd< uint8_t >  d,
uint8_t *HWY_RESTRICT  unaligned 
)

References StoreU().

◆ StoreInterleaved4() [5/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec256< uint8_t >  v0,
const Vec256< uint8_t >  v1,
const Vec256< uint8_t >  v2,
const Vec256< uint8_t >  v3,
Full256< uint8_t >  d8,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreInterleaved4() [6/6]

HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec512< uint8_t >  v0,
const Vec512< uint8_t >  v1,
const Vec512< uint8_t >  v2,
const Vec512< uint8_t >  v3,
Full512< uint8_t >  d8,
uint8_t *HWY_RESTRICT  unaligned 
)

References StoreU(), ZipLower(), and ZipUpper().

◆ StoreMaskBits() [1/9]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( const Full256< T >  ,
const Mask256< T >  mask,
uint8_t *  bits 
)

◆ StoreMaskBits() [2/9]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( const Full512< T >  ,
const Mask512< T >  mask,
uint8_t *  bits 
)

◆ StoreMaskBits() [3/9]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( const Mask128< T, N >  mask,
uint8_t *  bits 
)

References StoreMaskBits().

◆ StoreMaskBits() [4/9]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( const Mask1< T >  mask,
uint8_t *  bits 
)

References StoreMaskBits().

◆ StoreMaskBits() [5/9]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( const Mask256< T >  mask,
uint8_t *  bits 
)

References StoreMaskBits().

◆ StoreMaskBits() [6/9]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( const Mask512< T >  mask,
uint8_t *  bits 
)

References StoreMaskBits().

◆ StoreMaskBits() [7/9]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( Simd< T, N >  d,
svbool_t  m,
uint8_t *  bits 
)

◆ StoreMaskBits() [8/9]

template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( Simd< T, N >  ,
const Mask128< T, N >  mask,
uint8_t *  bits 
)

◆ StoreMaskBits() [9/9]

template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( Sisd< T >  d,
const Mask1< T >  mask,
uint8_t *  bits 
)

References AllTrue().

◆ StoreU() [1/45]

template<class V , class D >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const V  v,
d,
TFromD< D > *HWY_RESTRICT  p 
)

References Store().

◆ StoreU() [2/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< double >  v,
Full128< double >  ,
double *HWY_RESTRICT  p 
)

◆ StoreU() [3/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< float >  v,
Full128< float >  ,
float *HWY_RESTRICT  unaligned 
)

◆ StoreU() [4/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< float, 1 >  v,
Simd< float, 1 >  ,
float *HWY_RESTRICT  p 
)

◆ StoreU() [5/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< float, 2 >  v,
Simd< float, 2 >  ,
float *HWY_RESTRICT  p 
)

◆ StoreU() [6/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int16_t >  v,
Full128< int16_t >  ,
int16_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [7/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int16_t, 1 >  v,
Simd< int16_t, 1 >  ,
int16_t *HWY_RESTRICT  p 
)

◆ StoreU() [8/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int16_t, 2 >  v,
Simd< int16_t, 2 >  ,
int16_t *HWY_RESTRICT  p 
)

◆ StoreU() [9/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int16_t, 4 >  v,
Simd< int16_t, 4 >  ,
int16_t *HWY_RESTRICT  p 
)

◆ StoreU() [10/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int32_t >  v,
Full128< int32_t >  ,
int32_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [11/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int32_t, 1 >  v,
Simd< int32_t, 1 >  ,
int32_t *HWY_RESTRICT  p 
)

◆ StoreU() [12/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int32_t, 2 >  v,
Simd< int32_t, 2 >  ,
int32_t *HWY_RESTRICT  p 
)

◆ StoreU() [13/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int64_t >  v,
Full128< int64_t >  ,
int64_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [14/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int64_t, 1 >  v,
Simd< int64_t, 1 >  ,
int64_t *HWY_RESTRICT  p 
)

◆ StoreU() [15/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int8_t >  v,
Full128< int8_t >  ,
int8_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [16/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int8_t, 1 >  v,
Simd< int8_t, 1 >  ,
int8_t *HWY_RESTRICT  p 
)

◆ StoreU() [17/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int8_t, 2 >  v,
Simd< int8_t, 2 >  ,
int8_t *HWY_RESTRICT  p 
)

◆ StoreU() [18/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int8_t, 4 >  v,
Simd< int8_t, 4 >  ,
int8_t *HWY_RESTRICT  p 
)

◆ StoreU() [19/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< int8_t, 8 >  v,
Simd< int8_t, 8 >  ,
int8_t *HWY_RESTRICT  p 
)

◆ StoreU() [20/45]

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 >  d,
T *HWY_RESTRICT  p 
)

References Store().

◆ StoreU() [21/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint16_t >  v,
Full128< uint16_t >  ,
uint16_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [22/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint16_t, 1 >  v,
Simd< uint16_t, 1 >  ,
uint16_t *HWY_RESTRICT  p 
)

◆ StoreU() [23/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint16_t, 2 >  v,
Simd< uint16_t, 2 >  ,
uint16_t *HWY_RESTRICT  p 
)

◆ StoreU() [24/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint16_t, 4 >  v,
Simd< uint16_t, 4 >  ,
uint16_t *HWY_RESTRICT  p 
)

◆ StoreU() [25/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint32_t >  v,
Full128< uint32_t >  ,
uint32_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [26/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint32_t, 1 >  v,
Simd< uint32_t, 1 >  ,
uint32_t *HWY_RESTRICT  p 
)

◆ StoreU() [27/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint32_t, 2 >  v,
Simd< uint32_t, 2 >  ,
uint32_t *HWY_RESTRICT  p 
)

◆ StoreU() [28/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint64_t >  v,
Full128< uint64_t >  ,
uint64_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [29/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint64_t, 1 >  v,
Simd< uint64_t, 1 >  ,
uint64_t *HWY_RESTRICT  p 
)

◆ StoreU() [30/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint8_t >  v,
Full128< uint8_t >  ,
uint8_t *HWY_RESTRICT  unaligned 
)

◆ StoreU() [31/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint8_t, 1 >  v,
Simd< uint8_t, 1 >  ,
uint8_t *HWY_RESTRICT  p 
)

◆ StoreU() [32/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint8_t, 2 >  v,
Simd< uint8_t, 2 >  ,
uint8_t *HWY_RESTRICT  p 
)

◆ StoreU() [33/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint8_t, 4 >  v,
Simd< uint8_t, 4 >  ,
uint8_t *HWY_RESTRICT  p 
)

◆ StoreU() [34/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec128< uint8_t, 8 >  v,
Simd< uint8_t, 8 >  ,
uint8_t *HWY_RESTRICT  p 
)

◆ StoreU() [35/45]

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

References Store().

◆ StoreU() [36/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec256< double >  v,
Full256< double >  ,
double *HWY_RESTRICT  p 
)

◆ StoreU() [37/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec256< float >  v,
Full256< float >  ,
float *HWY_RESTRICT  p 
)

◆ StoreU() [38/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec512< double >  v,
Full512< double >  ,
double *HWY_RESTRICT  p 
)

◆ StoreU() [39/45]

HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec512< float >  v,
Full512< float >  ,
float *HWY_RESTRICT  p 
)

◆ StoreU() [40/45]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  p 
)

◆ StoreU() [41/45]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< bfloat16_t, N >  v,
Simd< bfloat16_t, N >  ,
bfloat16_t *HWY_RESTRICT  p 
)

◆ StoreU() [42/45]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< float16_t, N >  v,
Simd< float16_t, N >  ,
float16_t *HWY_RESTRICT  p 
)

◆ StoreU() [43/45]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< T >  v,
Full128< T >  ,
T *HWY_RESTRICT  p 
)

◆ StoreU() [44/45]

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

References Store().

◆ StoreU() [45/45]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  p 
)

◆ 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 Store().

◆ Stream() [2/11]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec128< double, N >  v,
Simd< double, N >  ,
double *HWY_RESTRICT  aligned 
)

◆ Stream() [3/11]

template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec128< float, N >  v,
Simd< float, N >  ,
float *HWY_RESTRICT  aligned 
)

◆ Stream() [4/11]

template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec128< T, N >  v,
Simd< T, N >  d,
T *HWY_RESTRICT  aligned 
)

References Store().

◆ 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 Store().

◆ Stream() [6/11]

HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec256< double >  v,
Full256< double >  ,
double *HWY_RESTRICT  aligned 
)

◆ Stream() [7/11]

HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec256< float >  v,
Full256< float >  ,
float *HWY_RESTRICT  aligned 
)

◆ Stream() [8/11]

HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec512< double >  v,
Full512< double >  ,
double *HWY_RESTRICT  aligned 
)

◆ Stream() [9/11]

HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec512< float >  v,
Full512< float >  ,
float *HWY_RESTRICT  aligned 
)

◆ Stream() [10/11]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  aligned 
)

◆ Stream() [11/11]

template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream ( Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  aligned 
)

◆ Sub()

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

◆ SumOfLanes() [1/14]

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

References SumOfLanes().

◆ SumOfLanes() [2/14]

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

References SumOfLanes().

◆ SumOfLanes() [3/14]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::SumOfLanes ( const Vec256< T >  vHL)

References SumOfLanes().

◆ SumOfLanes() [4/14]

template<class D >
HWY_API VFromD<D> hwy::HWY_NAMESPACE::SumOfLanes ( ,
const VFromD< D >  v 
)

References Zero().

◆ SumOfLanes() [5/14]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::SumOfLanes ( Full256< T >  d,
const Vec256< T >  vHL 
)

◆ SumOfLanes() [6/14]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::SumOfLanes ( Full512< double >  d,
Vec512< double >  v 
)

◆ SumOfLanes() [7/14]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::SumOfLanes ( Full512< float >  d,
Vec512< float >  v 
)

◆ SumOfLanes() [8/14]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::SumOfLanes ( Full512< int32_t >  d,
Vec512< int32_t >  v 
)

◆ SumOfLanes() [9/14]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::SumOfLanes ( Full512< int64_t >  d,
Vec512< int64_t >  v 
)

◆ SumOfLanes() [10/14]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::SumOfLanes ( Full512< uint32_t >  d,
Vec512< uint32_t >  v 
)

◆ SumOfLanes() [11/14]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::SumOfLanes ( Full512< uint64_t >  d,
Vec512< uint64_t >  v 
)

◆ SumOfLanes() [12/14]

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

◆ SumOfLanes() [13/14]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::SumOfLanes ( Sisd< T >  ,
const Vec1< T >  v 
)

◆ SumOfLanes() [14/14]

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

References SumOfLanes().

◆ TableLookupBytes() [1/15]

template<class V , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytes ( const V  v,
const VI  idx 
)

◆ TableLookupBytes() [2/15]

template<typename T , typename TI >
HWY_API Vec128<TI> hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec128< T >  bytes,
const Vec128< TI >  from 
)

◆ TableLookupBytes() [3/15]

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/15]

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/15]

template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec128< T, N >  bytes,
const Vec128< TI, NI >  from 
)

◆ TableLookupBytes() [6/15]

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() [7/15]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec1< T >  in,
const Vec1< T >  from 
)

◆ TableLookupBytes() [8/15]

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/15]

template<typename T , typename TI >
HWY_API Vec256<TI> hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec256< T >  bytes,
const Vec256< TI >  from 
)

◆ TableLookupBytes() [10/15]

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> > > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N >  bytes,
Vec128< TI, NI >  from 
)

References BitCast().

◆ TableLookupBytes() [11/15]

template<typename T , size_t N, typename TI >
HWY_API Vec512<TI> hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N >  bytes,
Vec512< TI >  from 
)

◆ TableLookupBytes() [12/15]

template<typename T , typename TI >
HWY_API Vec512<TI> hwy::HWY_NAMESPACE::TableLookupBytes ( Vec256< T >  bytes,
Vec512< TI >  from 
)

◆ TableLookupBytes() [13/15]

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() [14/15]

template<typename T , typename TI >
HWY_API Vec256<TI> hwy::HWY_NAMESPACE::TableLookupBytes ( Vec512< T >  bytes,
Vec256< TI >  from 
)

◆ TableLookupBytes() [15/15]

template<typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::TableLookupBytes ( Vec512< T >  bytes,
Vec512< T >  from 
)

◆ TableLookupBytesOr0() [1/4]

template<class V , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const V  bytes,
const VI  from 
)

References TableLookupBytes().

◆ TableLookupBytesOr0() [2/4]

template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128<TI, NI> hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const Vec128< T, N >  bytes,
const Vec128< TI, NI >  from 
)

◆ TableLookupBytesOr0() [3/4]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const Vec1< T >  in,
const Vec1< T >  from 
)

◆ TableLookupBytesOr0() [4/4]

template<class V , class VI >
HWY_API V hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const VI  v,
const V  idx 
)

◆ TableLookupLanes() [1/10]

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

◆ TableLookupLanes() [2/10]

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

◆ TableLookupLanes() [3/10]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec128< uint32_t, N >  v,
const Indices128< uint32_t, N >  idx 
)

◆ TableLookupLanes() [4/10]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec1< T >  v,
const Indices1< T >   
)

◆ TableLookupLanes() [5/10]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec256< float >  v,
const Indices256< float >  idx 
)

◆ TableLookupLanes() [6/10]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec256< int32_t >  v,
const Indices256< int32_t >  idx 
)

◆ TableLookupLanes() [7/10]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec256< uint32_t >  v,
const Indices256< uint32_t >  idx 
)

◆ TableLookupLanes() [8/10]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec512< float >  v,
const Indices512< float >  idx 
)

◆ TableLookupLanes() [9/10]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec512< int32_t >  v,
const Indices512< int32_t >  idx 
)

◆ TableLookupLanes() [10/10]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec512< uint32_t >  v,
const Indices512< uint32_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(), 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(), Ne(), and Zero().

◆ 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(), Ne(), and Zero().

◆ TestBit() [3/8]

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

◆ TestBit() [4/8]

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

◆ 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 
)

◆ TestBit() [7/8]

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

◆ TestBit() [8/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 
)

Referenced by LoadMaskBits().

◆ Trunc() [1/8]

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

◆ Trunc() [2/8]

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

◆ Trunc() [3/8]

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/8]

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

◆ Trunc() [5/8]

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

◆ Trunc() [6/8]

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

◆ Trunc() [7/8]

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

◆ Trunc() [8/8]

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

◆ U32FromU8()

template<size_t N>
HWY_API svuint32_t hwy::HWY_NAMESPACE::U32FromU8 ( svuint8_t  v)

References PromoteTo().

◆ U8FromU32() [1/9]

HWY_API svuint8_t hwy::HWY_NAMESPACE::U8FromU32 ( const svuint32_t  v)

References BitCast().

◆ U8FromU32() [2/9]

HWY_API Vec128<uint8_t, 4> hwy::HWY_NAMESPACE::U8FromU32 ( const Vec128< uint32_t >  v)

◆ U8FromU32() [3/9]

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/9]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec128< uint32_t, N >  v)

◆ U8FromU32() [5/9]

HWY_API Vec1<uint8_t> hwy::HWY_NAMESPACE::U8FromU32 ( const Vec1< uint32_t >  v)

References DemoteTo().

◆ U8FromU32() [6/9]

HWY_API Vec128<uint8_t, 8> hwy::HWY_NAMESPACE::U8FromU32 ( const Vec256< uint32_t >  v)

◆ U8FromU32() [7/9]

HWY_API Vec128<uint8_t, 16> hwy::HWY_NAMESPACE::U8FromU32 ( const Vec512< uint32_t >  v)

◆ U8FromU32() [8/9]

HWY_API Vu8m1 hwy::HWY_NAMESPACE::U8FromU32 ( const Vu32m4  v)

References Lanes().

◆ U8FromU32() [9/9]

HWY_API Vu8m2 hwy::HWY_NAMESPACE::U8FromU32 ( const Vu32m8  v)

References Lanes().

◆ Undefined() [1/12]

template<class D >
HWY_API VFromD<D> hwy::HWY_NAMESPACE::Undefined ( d)

References 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 >  )

◆ 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 >  )

◆ Undefined() [9/12]

template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128<float, N> hwy::HWY_NAMESPACE::Undefined ( Simd< float, N >  )

◆ 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 >  d)

References Zero().

◆ Undefined() [11/12]

template<typename T , size_t N>
HWY_API Vec128<T, N> hwy::HWY_NAMESPACE::Undefined ( Simd< T, N >  )

References HWY_DIAGNOSTICS, and HWY_DIAGNOSTICS_OFF.

Referenced by LoadU().

◆ Undefined() [12/12]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::Undefined ( Sisd< T >  d)

References Zero().

◆ UpperHalf() [1/24]

template<class D , HWY_IF_NOT_LANE_SIZE_D(D, 8) >
HWY_API VFromD<D> hwy::HWY_NAMESPACE::UpperHalf ( const D  d,
const VFromD< D >  v 
)

References Lanes(), and LowerHalf().

◆ UpperHalf() [2/24]

template<class D2 , class V >
HWY_API V hwy::HWY_NAMESPACE::UpperHalf ( const D2  d2,
const V  v 
)

◆ UpperHalf() [3/24]

HWY_API Vec128<double> hwy::HWY_NAMESPACE::UpperHalf ( Full128< double >  ,
Vec256< double >  v 
)

◆ UpperHalf() [4/24]

HWY_API Vec128<float> hwy::HWY_NAMESPACE::UpperHalf ( Full128< float >  ,
Vec256< float >  v 
)

◆ UpperHalf() [5/24]

template<typename T >
HWY_API Vec128<T> hwy::HWY_NAMESPACE::UpperHalf ( Full128< T >  ,
Vec256< T >  v 
)

◆ UpperHalf() [6/24]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::UpperHalf ( Full256< double >  ,
Vec512< double >  v 
)

◆ UpperHalf() [7/24]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::UpperHalf ( Full256< float >  ,
Vec512< float >  v 
)

◆ UpperHalf() [8/24]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::UpperHalf ( Full256< T >  ,
Vec512< T >  v 
)

◆ UpperHalf() [9/24]

HWY_API Vec128<float, 2> hwy::HWY_NAMESPACE::UpperHalf ( Half< Full128< float >>  ,
const Vec128< float >  v 
)

◆ UpperHalf() [10/24]

template<typename T >
HWY_API Vec128< T, 8/sizeof(T)> hwy::HWY_NAMESPACE::UpperHalf ( Half< Full128< T >>  ,
const Vec128< T >  v 
)

◆ UpperHalf() [11/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 >>  ,
Vec128< T, N >  v 
)

References BitCast(), and ShiftRightBytes().

◆ UpperHalf() [12/24]

HWY_API Vec128<double, 1> hwy::HWY_NAMESPACE::UpperHalf ( Simd< double, 1 >  ,
Vec128< double >  v 
)

◆ UpperHalf() [13/24]

HWY_API Vec128< float, 2 > hwy::HWY_NAMESPACE::UpperHalf ( Simd< float, 2 >  ,
const Vec128< float >  v 
)

◆ UpperHalf() [14/24]

HWY_API Vec128<int16_t, 4> hwy::HWY_NAMESPACE::UpperHalf ( Simd< int16_t, 4 >  ,
const Vec128< int16_t >  v 
)

◆ UpperHalf() [15/24]

HWY_API Vec128<int32_t, 2> hwy::HWY_NAMESPACE::UpperHalf ( Simd< int32_t, 2 >  ,
const Vec128< int32_t >  v 
)

◆ UpperHalf() [16/24]

HWY_API Vec128<int64_t, 1> hwy::HWY_NAMESPACE::UpperHalf ( Simd< int64_t, 1 >  ,
const Vec128< int64_t >  v 
)

◆ UpperHalf() [17/24]

HWY_API Vec128<int8_t, 8> hwy::HWY_NAMESPACE::UpperHalf ( Simd< int8_t, 8 >  ,
const Vec128< int8_t >  v 
)

◆ UpperHalf() [18/24]

HWY_API Vec128<uint16_t, 4> hwy::HWY_NAMESPACE::UpperHalf ( Simd< uint16_t, 4 >  ,
const Vec128< uint16_t >  v 
)

◆ UpperHalf() [19/24]

HWY_API Vec128<uint32_t, 2> hwy::HWY_NAMESPACE::UpperHalf ( Simd< uint32_t, 2 >  ,
const Vec128< uint32_t >  v 
)

◆ UpperHalf() [20/24]

HWY_API Vec128<uint64_t, 1> hwy::HWY_NAMESPACE::UpperHalf ( Simd< uint64_t, 1 >  ,
const Vec128< uint64_t >  v 
)

◆ UpperHalf() [21/24]

HWY_API Vec128<uint8_t, 8> hwy::HWY_NAMESPACE::UpperHalf ( Simd< uint8_t, 8 >  ,
const Vec128< uint8_t >  v 
)

◆ UpperHalf() [22/24]

template<typename T , size_t N>
HWY_API Vec128< T,(N+1)/2 > hwy::HWY_NAMESPACE::UpperHalf ( Vec128< T, N >  v)

References UpperHalf().

◆ UpperHalf() [23/24]

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

References UpperHalf().

◆ UpperHalf() [24/24]

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

References UpperHalf().

◆ VecFromMask() [1/24]

template<class D , HWY_IF_NOT_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::VecFromMask ( const D  d,
MFromD< D >  mask 
)

References Zero().

◆ VecFromMask() [2/24]

template<class D , HWY_IF_NOT_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::VecFromMask ( const D  d,
svbool_t  mask 
)

References BitCast(), and Zero().

◆ VecFromMask() [3/24]

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

◆ VecFromMask() [4/24]

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

◆ VecFromMask() [5/24]

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

◆ VecFromMask() [6/24]

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)

◆ VecFromMask() [7/24]

template<typename T >
Vec1<T> hwy::HWY_NAMESPACE::VecFromMask ( const Mask1< T >  mask)

◆ VecFromMask() [8/24]

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

◆ VecFromMask() [9/24]

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

◆ VecFromMask() [10/24]

template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::VecFromMask ( const Mask256< T >  v)

◆ VecFromMask() [11/24]

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

◆ VecFromMask() [12/24]

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

◆ VecFromMask() [13/24]

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

◆ VecFromMask() [14/24]

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

◆ VecFromMask() [15/24]

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

◆ VecFromMask() [16/24]

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

◆ VecFromMask() [17/24]

HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< uint16_t >  v)

◆ VecFromMask() [18/24]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< uint32_t >  v)

◆ VecFromMask() [19/24]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< uint64_t >  v)

◆ VecFromMask() [20/24]

HWY_API Vec512<uint8_t> hwy::HWY_NAMESPACE::VecFromMask ( const Mask512< uint8_t >  v)

◆ VecFromMask() [21/24]

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

References VecFromMask().

◆ VecFromMask() [22/24]

template<typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::VecFromMask ( Full512< T >  ,
const Mask512< T >  v 
)

References VecFromMask().

◆ VecFromMask() [23/24]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::VecFromMask ( Simd< T, N >  d,
const Mask128< T, N >  v 
)

◆ VecFromMask() [24/24]

template<typename T >
Vec1<T> hwy::HWY_NAMESPACE::VecFromMask ( Sisd< T >  ,
const Mask1< T >  mask 
)

◆ 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 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 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 
)

◆ 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 >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::Xor ( const Vec1< T >  a,
const Vec1< T >  b 
)

References BitCast().

◆ Xor() [10/17]

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

◆ Xor() [11/17]

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

◆ Xor() [12/17]

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

◆ Xor() [13/17]

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

◆ Xor() [14/17]

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

◆ Xor() [15/17]

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

◆ Xor() [16/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Xor ( Vec128< T, N >  a,
Vec128< T, N >  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 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 >  d)

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 >  )

◆ Zero() [10/14]

template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Zero ( Simd< float, N >  )

◆ Zero() [11/14]

template<typename T , size_t N>
HWY_API Vec128<T, N> hwy::HWY_NAMESPACE::Zero ( Simd< T, N >  d)

◆ Zero() [12/14]

template<typename T , size_t N>
HWY_API VFromD<Simd<T, N> > hwy::HWY_NAMESPACE::Zero ( Simd< T, N >  d)

References Set().

◆ Zero() [13/14]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Zero ( Simd< T, N >  )

◆ Zero() [14/14]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::Zero ( Sisd< T >  )

◆ ZeroExtendVector() [1/14]

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

References Combine(), and Zero().

◆ ZeroExtendVector() [2/14]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::ZeroExtendVector ( const V  lo)

References Combine(), and Xor().

◆ ZeroExtendVector() [3/14]

template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ZeroExtendVector ( Full128< T >  d,
Vec128< T, 8/sizeof(T)>  lo 
)

◆ ZeroExtendVector() [4/14]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::ZeroExtendVector ( Full256< double >  ,
Vec128< double >  lo 
)

◆ ZeroExtendVector() [5/14]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::ZeroExtendVector ( Full256< float >  ,
Vec128< float >  lo 
)

◆ ZeroExtendVector() [6/14]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ZeroExtendVector ( Full256< T >  ,
Vec128< T >  lo 
)

◆ ZeroExtendVector() [7/14]

HWY_API Vec512<double> hwy::HWY_NAMESPACE::ZeroExtendVector ( Full512< double >  ,
Vec256< double >  lo 
)

◆ ZeroExtendVector() [8/14]

HWY_API Vec512<float> hwy::HWY_NAMESPACE::ZeroExtendVector ( Full512< float >  ,
Vec256< float >  lo 
)

◆ ZeroExtendVector() [9/14]

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

◆ ZeroExtendVector() [10/14]

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

◆ ZeroExtendVector() [11/14]

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

◆ ZeroExtendVector() [12/14]

template<typename T >
HWY_API Vec256<T> hwy::HWY_NAMESPACE::ZeroExtendVector ( Vec128< T >  lo)

References ZeroExtendVector().

◆ ZeroExtendVector() [13/14]

template<typename T , size_t N2, HWY_IF_LE64(T, N2) >
HWY_API Vec128< T, N2 *2 > hwy::HWY_NAMESPACE::ZeroExtendVector ( Vec128< T, N2 >  lo)

References ZeroExtendVector().

◆ ZeroExtendVector() [14/14]

template<typename T >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ZeroExtendVector ( Vec256< T >  lo)

References ZeroExtendVector().

◆ ZeroIfNegative() [1/6]

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

References IfThenElse(), Lt(), and Zero().

◆ ZeroIfNegative() [2/6]

template<typename T >
HWY_API Vec1<T> hwy::HWY_NAMESPACE::ZeroIfNegative ( const Vec1< T >  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(), and MaskFromVec().

◆ ZeroIfNegative() [4/6]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec512<T> hwy::HWY_NAMESPACE::ZeroIfNegative ( const Vec512< T >  v)

References IfThenZeroElse(), and MaskFromVec().

◆ ZeroIfNegative() [5/6]

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

References Max(), 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 IfThenElse(), and Zero().

◆ ZipLower() [1/16]

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/16]

HWY_API Vec1<int32_t> hwy::HWY_NAMESPACE::ZipLower ( const Vec1< int16_t >  a,
const Vec1< int16_t >  b 
)

◆ ZipLower() [3/16]

HWY_API Vec1<int64_t> hwy::HWY_NAMESPACE::ZipLower ( const Vec1< int32_t >  a,
const Vec1< int32_t >  b 
)

◆ ZipLower() [4/16]

HWY_API Vec1<int16_t> hwy::HWY_NAMESPACE::ZipLower ( const Vec1< int8_t >  a,
const Vec1< int8_t >  b 
)

◆ ZipLower() [5/16]

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

◆ ZipLower() [6/16]

HWY_API Vec1<uint64_t> hwy::HWY_NAMESPACE::ZipLower ( const Vec1< uint32_t >  a,
const Vec1< uint32_t >  b 
)

◆ ZipLower() [7/16]

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

◆ ZipLower() [8/16]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( DW  dw,
a,
b 
)

◆ ZipLower() [9/16]

template<typename T , size_t N, class D = Simd<T, N>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( DW  dw,
Vec128< T, N >  a,
Vec128< T, N >  b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [10/16]

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() [11/16]

template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512<TW> hwy::HWY_NAMESPACE::ZipLower ( Full512< TW >  d,
Vec512< T >  a,
Vec512< T >  b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [12/16]

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() [13/16]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD<DW> hwy::HWY_NAMESPACE::ZipLower ( a,
b 
)

References BitCast(), and InterleaveLower().

◆ ZipLower() [14/16]

template<typename T , size_t N, class DW = RepartitionToWide<Simd<T, N>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( Vec128< T, N >  a,
Vec128< T, N >  b 
)

◆ ZipLower() [15/16]

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() [16/16]

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/7]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipUpper ( DW  dw,
a,
b 
)

◆ ZipUpper() [2/7]

template<typename T , size_t N, class D = Simd<T, N>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipUpper ( DW  dw,
Vec128< T, N >  a,
Vec128< T, N >  b 
)

◆ ZipUpper() [3/7]

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() [4/7]

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(), and InterleaveUpper().

◆ ZipUpper() [5/7]

template<typename T , size_t N, class D = Simd<T, N>>
HWY_API VFromD< RepartitionToWide< D > > hwy::HWY_NAMESPACE::ZipUpper ( Vec128< T, N >  a,
Vec128< T, N >  b 
)

References InterleaveUpper().

◆ ZipUpper() [6/7]

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

References InterleaveUpper().

◆ ZipUpper() [7/7]

template<typename T >
HWY_API Vec512<MakeWide<T> > hwy::HWY_NAMESPACE::ZipUpper ( Vec512< T >  a,
Vec512< T >  b 
)

References InterleaveUpper().