11 #ifndef EIGEN_GENERIC_PACKET_MATH_H
12 #define EIGEN_GENERIC_PACKET_MATH_H
26 #ifndef EIGEN_DEBUG_ALIGNED_LOAD
27 #define EIGEN_DEBUG_ALIGNED_LOAD
30 #ifndef EIGEN_DEBUG_UNALIGNED_LOAD
31 #define EIGEN_DEBUG_UNALIGNED_LOAD
34 #ifndef EIGEN_DEBUG_ALIGNED_STORE
35 #define EIGEN_DEBUG_ALIGNED_STORE
38 #ifndef EIGEN_DEBUG_UNALIGNED_STORE
39 #define EIGEN_DEBUG_UNALIGNED_STORE
158 template<
typename T,
int unique_
id = 0>
177 template<
typename Packet>
186 template <
typename SrcPacket,
typename TgtPacket>
189 return static_cast<TgtPacket
>(
a);
191 template <
typename SrcPacket,
typename TgtPacket>
193 pcast(
const SrcPacket&
a,
const SrcPacket& ) {
194 return static_cast<TgtPacket
>(
a);
196 template <
typename SrcPacket,
typename TgtPacket>
198 pcast(
const SrcPacket&
a,
const SrcPacket& ,
const SrcPacket& ,
const SrcPacket& ) {
199 return static_cast<TgtPacket
>(
a);
201 template <
typename SrcPacket,
typename TgtPacket>
203 pcast(
const SrcPacket&
a,
const SrcPacket& ,
const SrcPacket& ,
const SrcPacket& ,
204 const SrcPacket& ,
const SrcPacket& ,
const SrcPacket& ,
const SrcPacket& ) {
205 return static_cast<TgtPacket
>(
a);
209 template <
typename Target,
typename Packet>
218 padd(
const bool&
a,
const bool& b) {
return a || b; }
240 pmul(
const bool&
a,
const bool& b) {
return a && b; }
247 template<
typename Packet,
typename EnableIf =
void>
251 memset(
static_cast<void*
>(&b), 0xff,
sizeof(
Packet));
275 template<
typename Packet,
typename EnableIf =
void>
279 memset(
static_cast<void*
>(&b), 0x00,
sizeof(
Packet));
370 template<
typename Op>
372 const unsigned char* a_ptr =
reinterpret_cast<const unsigned char*
>(&
a);
374 unsigned char* c_ptr =
reinterpret_cast<unsigned char*
>(&c);
375 for (
size_t i = 0; i <
sizeof(T); ++i) {
376 *c_ptr++ = op(*a_ptr++);
381 template<
typename Op>
383 const unsigned char* a_ptr =
reinterpret_cast<const unsigned char*
>(&
a);
384 const unsigned char* b_ptr =
reinterpret_cast<const unsigned char*
>(&b);
386 unsigned char* c_ptr =
reinterpret_cast<unsigned char*
>(&c);
387 for (
size_t i = 0; i <
sizeof(T); ++i) {
388 *c_ptr++ = op(*a_ptr++, *b_ptr++);
395 template<
typename T,
typename EnableIf =
void>
402 is_scalar<T>::value && (NumTraits<T>::IsInteger || NumTraits<T>::RequireInitialization)>
::type
434 template<
typename Packet,
typename EnableIf =
void>
442 template<
typename Packet>
457 const bool& cond,
const bool&
a,
const bool& b) {
463 template<
int NaNPropagation>
465 template <
typename Packet,
typename Op>
475 template <
typename Packet,
typename Op>
480 pselect(not_nan_mask_b, op(
a, b), b),
490 template <
typename Packet,
typename Op>
501 #ifndef SYCL_DEVICE_ONLY
502 #define EIGEN_BINARY_OP_NAN_PROPAGATION(Type, Func) Func
504 #define EIGEN_BINARY_OP_NAN_PROPAGATION(Type, Func) \
505 [](const Type& a, const Type& b) { \
516 template <
int NaNPropagation,
typename Packet>
528 template <
int NaNPropagation,
typename Packet>
537 pabs(
const unsigned int&
a) {
return a; }
539 pabs(
const unsigned long&
a) {
return a; }
541 pabs(
const unsigned long long&
a) {
return a; }
575 template <
typename Packet>
590 return static_cast<Packet>(ldexp(
a,
static_cast<int>(exponent)));
610 typename enable_if<unpacket_traits<Packet>::masked_load_available, Packet>
::type
641 {
return pload1<Packet>(from); }
656 a0 = pload1<Packet>(
a+0);
657 a1 = pload1<Packet>(
a+1);
658 a2 = pload1<Packet>(
a+2);
659 a3 = pload1<Packet>(
a+3);
673 a0 = pload1<Packet>(
a+0);
674 a1 = pload1<Packet>(
a+1);
687 EIGEN_ALIGN_TO_BOUNDARY(
sizeof(
Packet)) Scalar elements[n];
688 for(
size_t i = 0; i < n; ++i) {
689 memset(elements+i, ((i & 1) == 0 ? 0xff : 0),
sizeof(Scalar));
691 return ploadu<Packet>(elements);
707 template<
typename Scalar,
typename Packet>
709 typename enable_if<unpacket_traits<Packet>::masked_store_available,
void>
::type
713 {
return ploadu<Packet>(from); }
721 #if defined(EIGEN_HIP_DEVICE_COMPILE)
723 #elif defined(EIGEN_CUDA_ARCH)
724 #if defined(__LP64__) || EIGEN_OS_WIN64
726 asm(
" prefetch.L1 [ %1 ];" :
"=l"(addr) :
"l"(addr));
729 asm(
" prefetch.L1 [ %1 ];" :
"=r"(addr) :
"r"(addr));
731 #elif (!EIGEN_COMP_MSVC) && (EIGEN_COMP_GNUC || EIGEN_COMP_CLANG || EIGEN_COMP_ICC)
732 __builtin_prefetch(addr);
821 return pdiv(pset1<Packet>(Scalar(1)),
psqrt(
a));
842 template<
typename Packet>
851 template<
typename Packet>
857 template <
typename Packet,
typename Op>
862 EIGEN_ALIGN_TO_BOUNDARY(
sizeof(
Packet)) Scalar elements[n];
863 pstoreu<Scalar>(elements,
a);
864 for(
size_t k = n / 2; k > 0; k /= 2) {
865 for(
size_t i = 0; i < k; ++i) {
866 elements[i] = op(elements[i], elements[i + k]);
873 template<
typename Packet>
881 template <
typename Packet>
889 template <
typename Packet>
896 template <
int NaNPropagation,
typename Packet>
904 template <
typename Packet>
911 template <
int NaNPropagation,
typename Packet>
918 #undef EIGEN_BINARY_OP_NAN_PROPAGATION
948 template<
typename Packet>
963 template<
typename Packet,
int Alignment>
967 return pload<Packet>(from);
969 return ploadu<Packet>(from);
974 template<
typename Scalar,
typename Packet,
int Alignment>
988 template<
typename Packet,
int LoadMode>
991 return ploadt<Packet, LoadMode>(from);
999 #if !defined(EIGEN_GPUCC)
1001 template<>
inline std::complex<float>
pmul(
const std::complex<float>&
a,
const std::complex<float>& b)
1002 {
return std::complex<float>(
a.real()*b.real() -
a.imag()*b.imag(),
a.imag()*b.real() +
a.real()*b.imag()); }
1004 template<>
inline std::complex<double>
pmul(
const std::complex<double>&
a,
const std::complex<double>& b)
1005 {
return std::complex<double>(
a.real()*b.real() -
a.imag()*b.imag(),
a.imag()*b.real() +
a.real()*b.imag()); }
1033 return ifPacket.select[0] ? thenPacket : elsePacket;
EIGEN_DEVICE_FUNC const TanReturnType tan() const
Definition: ArrayCwiseUnaryOps.h:269
EIGEN_DEVICE_FUNC const Log10ReturnType log10() const
Definition: ArrayCwiseUnaryOps.h:158
EIGEN_DEVICE_FUNC const ExpReturnType exp() const
Definition: ArrayCwiseUnaryOps.h:97
EIGEN_DEVICE_FUNC const SinhReturnType sinh() const
Definition: ArrayCwiseUnaryOps.h:339
EIGEN_DEVICE_FUNC const FloorReturnType floor() const
Definition: ArrayCwiseUnaryOps.h:481
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArgReturnType arg() const
Definition: ArrayCwiseUnaryOps.h:66
EIGEN_DEVICE_FUNC const LogReturnType log() const
Definition: ArrayCwiseUnaryOps.h:128
EIGEN_DEVICE_FUNC const AcosReturnType acos() const
Definition: ArrayCwiseUnaryOps.h:297
EIGEN_DEVICE_FUNC const CeilReturnType ceil() const
Definition: ArrayCwiseUnaryOps.h:495
EIGEN_DEVICE_FUNC const AsinReturnType asin() const
Definition: ArrayCwiseUnaryOps.h:311
EIGEN_DEVICE_FUNC const Log1pReturnType log1p() const
Definition: ArrayCwiseUnaryOps.h:142
EIGEN_DEVICE_FUNC const CosReturnType cos() const
Definition: ArrayCwiseUnaryOps.h:237
EIGEN_DEVICE_FUNC const SinReturnType sin() const
Definition: ArrayCwiseUnaryOps.h:255
EIGEN_DEVICE_FUNC const AtanReturnType atan() const
Definition: ArrayCwiseUnaryOps.h:283
EIGEN_DEVICE_FUNC const RintReturnType rint() const
Definition: ArrayCwiseUnaryOps.h:453
EIGEN_DEVICE_FUNC const RoundReturnType round() const
Definition: ArrayCwiseUnaryOps.h:467
EIGEN_DEVICE_FUNC const TanhReturnType tanh() const
Definition: ArrayCwiseUnaryOps.h:325
EIGEN_DEVICE_FUNC const CoshReturnType cosh() const
Definition: ArrayCwiseUnaryOps.h:353
EIGEN_DEVICE_FUNC const Expm1ReturnType expm1() const
Definition: ArrayCwiseUnaryOps.h:111
EIGEN_DEVICE_FUNC RealReturnType real() const
Definition: CommonCwiseUnaryOps.h:100
EIGEN_DEVICE_FUNC const ImagReturnType imag() const
Definition: CommonCwiseUnaryOps.h:109
#define EIGEN_BINARY_OP_NAN_PROPAGATION(Type, Func)
Definition: GenericPacketMath.h:502
#define EIGEN_ALWAYS_INLINE
Definition: Macros.h:932
#define EIGEN_USING_STD(FUNC)
Definition: Macros.h:1185
#define EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
Definition: Macros.h:984
#define EIGEN_CONSTEXPR
Definition: Macros.h:787
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:976
#define EIGEN_STRONG_INLINE
Definition: Macros.h:917
#define EIGEN_LOG2E
Definition: MathFunctions.h:17
@ PropagateNaN
Definition: Constants.h:343
@ PropagateNumbers
Definition: Constants.h:345
@ Target
Definition: Constants.h:492
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pexpm1(const Packet &a)
Definition: GenericPacketMath.h:792
EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf &a)
Definition: Complex.h:167
EIGEN_DEVICE_FUNC TgtPacket pcast(const SrcPacket &a)
Definition: GenericPacketMath.h:188
EIGEN_DEVICE_FUNC Packet padd(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:215
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE packet_type ploadt(const Eigen::TensorSycl::internal::RangeAccess< cl::sycl::access::mode::read_write, typename unpacket_traits< packet_type >::type > &from)
Definition: PacketMath.h:117
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog10(const Packet &a)
Definition: GenericPacketMath.h:804
EIGEN_STRONG_INLINE Packet8f pzero(const Packet8f &)
Definition: PacketMath.h:247
EIGEN_DEVICE_FUNC Packet parg(const Packet &a)
Definition: GenericPacketMath.h:551
EIGEN_STRONG_INLINE Packet16h ploadquad(const Eigen::half *from)
Definition: PacketMath.h:1420
EIGEN_DEVICE_FUNC void pbroadcast4(const typename unpacket_traits< Packet >::type *a, Packet &a0, Packet &a1, Packet &a2, Packet &a3)
Definition: GenericPacketMath.h:653
EIGEN_STRONG_INLINE void ptranspose(PacketBlock< Packet2cf, 2 > &kernel)
Definition: Complex.h:224
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog2(const Packet &a)
Definition: GenericPacketMath.h:808
EIGEN_DEVICE_FUNC Packet pset1frombits(BitsType a)
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog(const Packet &a)
Definition: GenericPacketMath.h:796
EIGEN_STRONG_INLINE bool predux_any(const Packet4f &x)
Definition: PacketMath.h:1765
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_helper(const Packet &a, Op op)
Definition: GenericPacketMath.h:859
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void pstoret(Eigen::TensorSycl::internal::RangeAccess< cl::sycl::access::mode::read_write, typename unpacket_traits< packet_type >::type > to, const packet_type &from)
Definition: PacketMath.h:657
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:244
EIGEN_DEVICE_FUNC Packet pgather(const Scalar *from, Index)
Definition: GenericPacketMath.h:712
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pexp(const Packet &a)
Definition: GenericPacketMath.h:788
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_max(const Packet &a)
Definition: GenericPacketMath.h:905
EIGEN_STRONG_INLINE Packet4i plogical_shift_left(const Packet4i &a)
Definition: PacketMath.h:1191
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pcos(const Packet &a)
Definition: GenericPacketMath.h:756
EIGEN_DEVICE_FUNC void prefetch(const Scalar *addr)
Definition: GenericPacketMath.h:719
EIGEN_STRONG_INLINE Packet4f print(const Packet4f &a)
Definition: PacketMath.h:3115
EIGEN_DEVICE_FUNC Packet ploadu(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:603
EIGEN_DEVICE_FUNC Packet pmax(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:524
EIGEN_STRONG_INLINE Packet4i pblend(const Selector< 4 > &ifPacket, const Packet4i &thenPacket, const Packet4i &elsePacket)
Definition: PacketMath.h:2107
EIGEN_DEVICE_FUNC Packet pnot(const Packet &a)
Definition: GenericPacketMath.h:425
EIGEN_STRONG_INLINE Packet4f pcmp_le(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:867
EIGEN_STRONG_INLINE Packet4i plogical_shift_right(const Packet4i &a)
Definition: PacketMath.h:1189
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet psin(const Packet &a)
Definition: GenericPacketMath.h:752
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pacos(const Packet &a)
Definition: GenericPacketMath.h:768
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_min(const Packet &a)
Definition: GenericPacketMath.h:890
EIGEN_DEVICE_FUNC Target preinterpret(const Packet &a)
EIGEN_DEVICE_FUNC bool pselect< bool >(const bool &cond, const bool &a, const bool &b)
Definition: GenericPacketMath.h:456
EIGEN_STRONG_INLINE Packet8h por(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1042
EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf &a)
Definition: Complex.h:184
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet ptan(const Packet &a)
Definition: GenericPacketMath.h:760
EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f &a, const Packet4f &b, const Packet4f &c)
Definition: PacketMath.h:827
EIGEN_DEVICE_FUNC Packet pmul(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:237
EIGEN_STRONG_INLINE Packet8h ptrue(const Packet8h &a)
Definition: PacketMath.h:978
EIGEN_DEVICE_FUNC Packet pmin(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:512
EIGEN_STRONG_INLINE Packet1cd pcplxflip(const Packet1cd &x)
Definition: Complex.h:620
EIGEN_STRONG_INLINE Packet8h pandnot(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1053
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pcosh(const Packet &a)
Definition: GenericPacketMath.h:780
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pround(const Packet &a)
Definition: GenericPacketMath.h:826
EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf &a)
Definition: Complex.h:166
EIGEN_STRONG_INLINE Packet4f pcmp_lt(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:868
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet ptanh(const Packet &a)
Definition: GenericPacketMath.h:784
EIGEN_STRONG_INLINE Packet4i parithmetic_shift_right(const Packet4i &a)
Definition: PacketMath.h:1187
EIGEN_DEVICE_FUNC Packet paddsub(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:545
EIGEN_DEVICE_FUNC void pscatter(Scalar *to, const Packet &from, Index)
Definition: GenericPacketMath.h:715
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE packet_type ploadt_ro(const Eigen::TensorSycl::internal::RangeAccess< cl::sycl::access::mode::read_write, T > &from)
Definition: PacketMath.h:53
EIGEN_DEVICE_FUNC Packet pabsdiff(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:595
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pceil(const Packet &a)
Definition: GenericPacketMath.h:839
EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f &a)
Definition: PacketMath.h:1176
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog1p(const Packet &a)
Definition: GenericPacketMath.h:800
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet ploaddup(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:631
EIGEN_CONSTEXPR Index size(const T &x)
Definition: Meta.h:479
EIGEN_STRONG_INLINE Packet8f peven_mask(const Packet8f &)
Definition: PacketMath.h:252
EIGEN_STRONG_INLINE bfloat16 pfirst(const Packet8bf &a)
Definition: PacketMath.h:1429
EIGEN_DEVICE_FUNC void pstore(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:696
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux(const Packet &a)
Definition: GenericPacketMath.h:875
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet4c predux_half_dowto4(const Packet8c &a)
Definition: PacketMath.h:2478
EIGEN_STRONG_INLINE Packet4f psqrt(const Packet4f &a)
Definition: PacketMath.h:723
EIGEN_STRONG_INLINE Packet2cf pcmp_eq(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:231
EIGEN_STRONG_INLINE Packet8h pldexp(const Packet8h &a, const Packet8h &exponent)
Definition: MathFunctions.h:196
EIGEN_DEVICE_FUNC void pstoreu(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:700
EIGEN_STRONG_INLINE Packet8h pand(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1050
EIGEN_STRONG_INLINE Packet8h pxor(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1047
EIGEN_DEVICE_FUNC void pbroadcast2(const typename unpacket_traits< Packet >::type *a, Packet &a0, Packet &a1)
Definition: GenericPacketMath.h:670
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet psinh(const Packet &a)
Definition: GenericPacketMath.h:776
EIGEN_STRONG_INLINE Packet4f pselect(const Packet4f &mask, const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:917
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pasin(const Packet &a)
Definition: GenericPacketMath.h:764
EIGEN_DEVICE_FUNC Packet psub(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:222
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet plset(const typename unpacket_traits< Packet >::type &a)
Definition: GenericPacketMath.h:679
EIGEN_STRONG_INLINE Packet8h pfrexp(const Packet8h &a, Packet8h &exponent)
Definition: MathFunctions.h:188
EIGEN_DEVICE_FUNC Packet pload1(const typename unpacket_traits< Packet >::type *a)
Definition: GenericPacketMath.h:623
void pstore1(typename unpacket_traits< Packet >::type *to, const typename unpacket_traits< Packet >::type &a)
Definition: GenericPacketMath.h:949
EIGEN_DEVICE_FUNC Packet pload(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:599
EIGEN_STRONG_INLINE Packet4f prsqrt(const Packet4f &a)
Definition: PacketMath.h:730
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet patan(const Packet &a)
Definition: GenericPacketMath.h:772
EIGEN_STRONG_INLINE Packet4f pcmp_lt_or_nan(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:870
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pfloor(const Packet &a)
Definition: GenericPacketMath.h:830
EIGEN_DEVICE_FUNC Packet pset1(const typename unpacket_traits< Packet >::type &a)
Definition: GenericPacketMath.h:615
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_mul(const Packet &a)
Definition: GenericPacketMath.h:882
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool equal_strict(const X &x, const Y &y)
Definition: Meta.h:787
EIGEN_DEVICE_FUNC T() floor(const T &x)
Definition: MathFunctions.h:1400
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T maxi(const T &x, const T &y)
Definition: MathFunctions.h:1091
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE internal::enable_if< NumTraits< T >::IsSigned||NumTraits< T >::IsComplex, typename NumTraits< T >::Real >::type abs(const T &x)
Definition: MathFunctions.h:1509
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict(const X &x, const Y &y)
Definition: Meta.h:798
EIGEN_DEVICE_FUNC T() ceil(const T &x)
Definition: MathFunctions.h:1420
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float sqrt(const float &x)
Definition: MathFunctions.h:177
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T mini(const T &x, const T &y)
Definition: MathFunctions.h:1083
Namespace containing all symbols from the Eigen library.
Definition: LDLT.h:16
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
type
The type the bitset is encoded with.
Definition: bitset.hpp:44
Definition: document.h:416
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1181
Definition: GenericPacketMath.h:1014
Packet packet[N]
Definition: GenericPacketMath.h:1015
Definition: GenericPacketMath.h:1027
bool select[N]
Definition: GenericPacketMath.h:1028
Definition: GenericPacketMath.h:317
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR EIGEN_ALWAYS_INLINE T operator()(const T &a, const T &b) const
Definition: GenericPacketMath.h:318
Definition: GenericPacketMath.h:338
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR EIGEN_ALWAYS_INLINE T operator()(const T &a) const
Definition: GenericPacketMath.h:339
Definition: GenericPacketMath.h:324
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR EIGEN_ALWAYS_INLINE T operator()(const T &a, const T &b) const
Definition: GenericPacketMath.h:325
Definition: GenericPacketMath.h:331
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR EIGEN_ALWAYS_INLINE T operator()(const T &a, const T &b) const
Definition: GenericPacketMath.h:332
Definition: GenericPacketMath.h:396
Definition: GenericPacketMath.h:355
static EIGEN_DEVICE_FUNC T bitwise_xor(const T &a, const T &b)
Definition: GenericPacketMath.h:362
static EIGEN_DEVICE_FUNC T bitwise_not(const T &a)
Definition: GenericPacketMath.h:365
static EIGEN_DEVICE_FUNC T unary(const T &a, Op op)
Definition: GenericPacketMath.h:371
static EIGEN_DEVICE_FUNC T bitwise_and(const T &a, const T &b)
Definition: GenericPacketMath.h:356
static EIGEN_DEVICE_FUNC T binary(const T &a, const T &b, Op op)
Definition: GenericPacketMath.h:382
static EIGEN_DEVICE_FUNC T bitwise_or(const T &a, const T &b)
Definition: GenericPacketMath.h:359
Definition: GenericPacketMath.h:43
@ HasSign
Definition: GenericPacketMath.h:102
@ HasZeta
Definition: GenericPacketMath.h:86
@ HasASin
Definition: GenericPacketMath.h:78
@ HasIGamma
Definition: GenericPacketMath.h:92
@ HasSub
Definition: GenericPacketMath.h:48
@ HasRsqrt
Definition: GenericPacketMath.h:67
@ HasSin
Definition: GenericPacketMath.h:75
@ HasBlend
Definition: GenericPacketMath.h:60
@ HasLog10
Definition: GenericPacketMath.h:72
@ HasTan
Definition: GenericPacketMath.h:77
@ HasErfc
Definition: GenericPacketMath.h:89
@ HasACos
Definition: GenericPacketMath.h:79
@ HasAbsDiff
Definition: GenericPacketMath.h:55
@ HasMin
Definition: GenericPacketMath.h:56
@ HasArg
Definition: GenericPacketMath.h:53
@ HasNdtri
Definition: GenericPacketMath.h:90
@ HasCos
Definition: GenericPacketMath.h:76
@ HasSinh
Definition: GenericPacketMath.h:81
@ HasPolygamma
Definition: GenericPacketMath.h:87
@ HasCmp
Definition: GenericPacketMath.h:63
@ HasDiGamma
Definition: GenericPacketMath.h:85
@ HasConj
Definition: GenericPacketMath.h:58
@ HasSetLinear
Definition: GenericPacketMath.h:59
@ HasShift
Definition: GenericPacketMath.h:49
@ HasLog1p
Definition: GenericPacketMath.h:71
@ HasMax
Definition: GenericPacketMath.h:57
@ HasPow
Definition: GenericPacketMath.h:73
@ HasIGammac
Definition: GenericPacketMath.h:95
@ HasCeil
Definition: GenericPacketMath.h:101
@ HasNegate
Definition: GenericPacketMath.h:51
@ HasAdd
Definition: GenericPacketMath.h:47
@ HasExp
Definition: GenericPacketMath.h:68
@ HasRound
Definition: GenericPacketMath.h:98
@ HasRint
Definition: GenericPacketMath.h:99
@ HasBetaInc
Definition: GenericPacketMath.h:96
@ HasSqrt
Definition: GenericPacketMath.h:66
@ HasLGamma
Definition: GenericPacketMath.h:84
@ HasErf
Definition: GenericPacketMath.h:88
@ HasBessel
Definition: GenericPacketMath.h:91
@ HasAbs
Definition: GenericPacketMath.h:52
@ HasCosh
Definition: GenericPacketMath.h:82
@ HasExpm1
Definition: GenericPacketMath.h:69
@ HasLog
Definition: GenericPacketMath.h:70
@ HasTanh
Definition: GenericPacketMath.h:83
@ HasMul
Definition: GenericPacketMath.h:50
@ HasAbs2
Definition: GenericPacketMath.h:54
@ HasGammaSampleDerAlpha
Definition: GenericPacketMath.h:94
@ HasIGammaDerA
Definition: GenericPacketMath.h:93
@ HasATan
Definition: GenericPacketMath.h:80
@ HasFloor
Definition: GenericPacketMath.h:100
@ HasHalfPacket
Definition: GenericPacketMath.h:45
@ HasDiv
Definition: GenericPacketMath.h:65
Definition: GenericPacketMath.h:160
EIGEN_ALWAYS_INLINE eigen_packet_wrapper & operator=(const T &v)
Definition: GenericPacketMath.h:165
EIGEN_ALWAYS_INLINE eigen_packet_wrapper(const T &v)
Definition: GenericPacketMath.h:164
EIGEN_ALWAYS_INLINE eigen_packet_wrapper()
Definition: GenericPacketMath.h:163
T m_val
Definition: GenericPacketMath.h:170
Definition: GenericPacketMath.h:178
@ value
Definition: GenericPacketMath.h:181
unpacket_traits< Packet >::type Scalar
Definition: GenericPacketMath.h:179
Definition: GenericPacketMath.h:346
static EIGEN_DEVICE_FUNC T bitwise_not(const T &a)
Definition: GenericPacketMath.h:350
static EIGEN_DEVICE_FUNC T bitwise_xor(const T &a, const T &b)
Definition: GenericPacketMath.h:349
static EIGEN_DEVICE_FUNC T bitwise_and(const T &a, const T &b)
Definition: GenericPacketMath.h:347
static EIGEN_DEVICE_FUNC T bitwise_or(const T &a, const T &b)
Definition: GenericPacketMath.h:348
Definition: GenericPacketMath.h:107
@ HasSub
Definition: GenericPacketMath.h:118
@ HasMax
Definition: GenericPacketMath.h:124
@ HasNegate
Definition: GenericPacketMath.h:120
@ HasMul
Definition: GenericPacketMath.h:119
@ HasAdd
Definition: GenericPacketMath.h:117
@ HasSetLinear
Definition: GenericPacketMath.h:126
@ HasMin
Definition: GenericPacketMath.h:123
@ HasConj
Definition: GenericPacketMath.h:125
@ HasAbs2
Definition: GenericPacketMath.h:122
@ HasAbs
Definition: GenericPacketMath.h:121
T type
Definition: GenericPacketMath.h:108
T half
Definition: GenericPacketMath.h:109
@ HasHalfPacket
Definition: GenericPacketMath.h:114
@ size
Definition: GenericPacketMath.h:112
@ AlignedOnScalar
Definition: GenericPacketMath.h:113
@ Vectorizable
Definition: GenericPacketMath.h:111
static EIGEN_DEVICE_FUNC Packet run(const Packet &a, const Packet &b, Op op)
Definition: GenericPacketMath.h:476
static EIGEN_DEVICE_FUNC Packet run(const Packet &a, const Packet &b, Op op)
Definition: GenericPacketMath.h:491
Definition: GenericPacketMath.h:464
static EIGEN_DEVICE_FUNC Packet run(const Packet &a, const Packet &b, Op op)
Definition: GenericPacketMath.h:466
static EIGEN_DEVICE_FUNC Packet run(const Packet &mask, const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:445
Definition: GenericPacketMath.h:435
static EIGEN_DEVICE_FUNC Packet run(const Packet &mask, const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:436
static EIGEN_DEVICE_FUNC T run(const T &)
Definition: GenericPacketMath.h:263
Definition: GenericPacketMath.h:248
static EIGEN_DEVICE_FUNC Packet run(const Packet &)
Definition: GenericPacketMath.h:249
static EIGEN_DEVICE_FUNC T run(const T &)
Definition: GenericPacketMath.h:289
Definition: GenericPacketMath.h:276
static EIGEN_DEVICE_FUNC Packet run(const Packet &)
Definition: GenericPacketMath.h:277
Definition: GenericPacketMath.h:148
@ TgtCoeffRatio
Definition: GenericPacketMath.h:152
@ VectorizedCast
Definition: GenericPacketMath.h:150
@ SrcCoeffRatio
Definition: GenericPacketMath.h:151
Definition: GenericPacketMath.h:133
T type
Definition: GenericPacketMath.h:134
@ masked_load_available
Definition: GenericPacketMath.h:141
@ size
Definition: GenericPacketMath.h:138
@ masked_store_available
Definition: GenericPacketMath.h:142
@ vectorizable
Definition: GenericPacketMath.h:140
@ alignment
Definition: GenericPacketMath.h:139
T half
Definition: GenericPacketMath.h:135
Definition: PacketMath.h:47
#define const
Definition: zconf.h:233