10 #ifndef EIGEN_PACKET_MATH_ZVECTOR_H
11 #define EIGEN_PACKET_MATH_ZVECTOR_H
14 #include "../../InternalHeaderCheck.h"
20 #ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
21 #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 16
24 #ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
25 #define EIGEN_HAS_SINGLE_INSTRUCTION_MADD
28 #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
29 #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 32
38 typedef __vector
unsigned long long Packet2ul;
42 #if !defined(__ARCH__) || (defined(__ARCH__) && __ARCH__ >= 12)
62 #if !defined(__ARCH__) || (defined(__ARCH__) && __ARCH__ >= 12)
70 #define EIGEN_DECLARE_CONST_FAST_Packet4i(NAME, X) Packet4i p4i_##NAME = reinterpret_cast<Packet4i>(vec_splat_s32(X))
72 #define EIGEN_DECLARE_CONST_FAST_Packet2d(NAME, X) Packet2d p2d_##NAME = reinterpret_cast<Packet2d>(vec_splat_s64(X))
74 #define EIGEN_DECLARE_CONST_FAST_Packet2l(NAME, X) Packet2l p2l_##NAME = reinterpret_cast<Packet2l>(vec_splat_s64(X))
76 #define EIGEN_DECLARE_CONST_Packet4i(NAME, X) Packet4i p4i_##NAME = pset1<Packet4i>(X)
78 #define EIGEN_DECLARE_CONST_Packet2d(NAME, X) Packet2d p2d_##NAME = pset1<Packet2d>(X)
80 #define EIGEN_DECLARE_CONST_Packet2l(NAME, X) Packet2l p2l_##NAME = pset1<Packet2l>(X)
92 numext::bit_cast<double>(0x8000000000000000ull)};
94 #if !defined(__ARCH__) || (defined(__ARCH__) && __ARCH__ >= 12)
95 #define EIGEN_DECLARE_CONST_FAST_Packet4f(NAME, X) Packet4f p4f_##NAME = reinterpret_cast<Packet4f>(vec_splat_s32(X))
97 #define EIGEN_DECLARE_CONST_Packet4f(NAME, X) Packet4f p4f_##NAME = pset1<Packet4f>(X)
99 #define EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME, X) \
100 const Packet4f p4f_##NAME = reinterpret_cast<Packet4f>(pset1<Packet4i>(X))
112 static Packet16uc p16uc_PSET64_HI = {0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7};
113 static Packet16uc p16uc_DUPLICATE32_HI = {0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, 7};
116 #define EIGEN_MASK_ALIGNMENT 0xfffffffffffffff0
118 #define EIGEN_ALIGNED_PTR(x) ((std::ptrdiff_t)(x) & EIGEN_MASK_ALIGNMENT)
123 static Packet16uc p16uc_FORWARD = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
124 static Packet16uc p16uc_REVERSE32 = {12, 13, 14, 15, 8, 9, 10, 11, 4, 5, 6, 7, 0, 1, 2, 3};
125 static Packet16uc p16uc_REVERSE64 = {8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7};
142 static Packet16uc p16uc_TRANSPOSE64_HI = {0, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 22, 23};
143 static Packet16uc p16uc_TRANSPOSE64_LO = {8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31};
151 #if EIGEN_HAS_BUILTIN(__builtin_prefetch) || EIGEN_COMP_GNUC
152 #define EIGEN_ZVECTOR_PREFETCH(ADDR) __builtin_prefetch(ADDR);
154 #define EIGEN_ZVECTOR_PREFETCH(ADDR) asm(" pfd [%[addr]]\n" ::[addr] "r"(ADDR) : "cc");
158 struct packet_traits<
int> : default_packet_traits {
175 struct packet_traits<float> : default_packet_traits {
204 struct packet_traits<
double> : default_packet_traits {
273 s << vt.
i[0] <<
", " << vt.
i[1] <<
", " << vt.
i[2] <<
", " << vt.
i[3];
280 s << vt.ui[0] <<
", " << vt.ui[1] <<
", " << vt.ui[2] <<
", " << vt.ui[3];
287 s << vt.l[0] <<
", " << vt.l[1];
294 s << vt.ul[0] <<
", " << vt.ul[1];
301 s << vt.d[0] <<
", " << vt.d[1];
305 #if !defined(__ARCH__) || (defined(__ARCH__) && __ARCH__ >= 12)
309 s << vt.f[0] <<
", " << vt.f[1] <<
", " << vt.f[2] <<
", " << vt.f[3];
352 return vec_splats(from);
356 return vec_splats(from);
362 a0 = vec_splat(a3, 0);
363 a1 = vec_splat(a3, 1);
364 a2 = vec_splat(a3, 2);
365 a3 = vec_splat(a3, 3);
372 a0 = vec_splat(a1, 0);
373 a1 = vec_splat(a1, 1);
375 a2 = vec_splat(a3, 0);
376 a3 = vec_splat(a3, 1);
382 ai[0] = from[0 * stride];
383 ai[1] = from[1 * stride];
384 ai[2] = from[2 * stride];
385 ai[3] = from[3 * stride];
392 af[0] = from[0 * stride];
393 af[1] = from[1 * stride];
401 to[0 * stride] = ai[0];
402 to[1 * stride] = ai[1];
403 to[2 * stride] = ai[2];
404 to[3 * stride] = ai[3];
411 to[0 * stride] = af[0];
412 to[1 * stride] = af[1];
475 return vec_madd(
a,
b,
c);
489 return vec_min(
a,
b);
493 return vec_min(
a,
b);
498 return vec_max(
a,
b);
502 return vec_max(
a,
b);
507 return vec_and(
a,
b);
511 return vec_and(
a,
b);
525 return vec_xor(
a,
b);
529 return vec_xor(
a,
b);
538 return vec_and(
a, vec_nor(
b,
b));
630 b = vec_sld(
a,
a, 8);
632 b = vec_sld(sum, sum, 4);
651 return aux[0] * aux[1] * aux[2] * aux[3];
692 Packet4i t0 = vec_mergeh(kernel.packet[0], kernel.packet[2]);
693 Packet4i t1 = vec_mergel(kernel.packet[0], kernel.packet[2]);
694 Packet4i t2 = vec_mergeh(kernel.packet[1], kernel.packet[3]);
695 Packet4i t3 = vec_mergel(kernel.packet[1], kernel.packet[3]);
696 kernel.packet[0] = vec_mergeh(t0, t2);
697 kernel.packet[1] = vec_mergel(t0, t2);
698 kernel.packet[2] = vec_mergeh(t1, t3);
699 kernel.packet[3] = vec_mergel(t1, t3);
705 kernel.packet[0] = t0;
706 kernel.packet[1] = t1;
712 Packet4ui select = {ifPacket.select[0], ifPacket.select[1], ifPacket.select[2], ifPacket.select[3]};
714 return vec_sel(elsePacket, thenPacket, mask);
720 Packet2ul select = {ifPacket.select[0], ifPacket.select[1]};
722 return vec_sel(elsePacket, thenPacket, mask);
728 #if !defined(__ARCH__) || (defined(__ARCH__) && __ARCH__ < 12)
731 template <
int element>
736 splat.v4f[0] = vec_splat(from.v4f[0], 0);
737 splat.v4f[1] = splat.v4f[0];
740 splat.v4f[0] = vec_splat(from.v4f[0], 1);
741 splat.v4f[1] = splat.v4f[0];
744 splat.v4f[0] = vec_splat(from.v4f[1], 0);
745 splat.v4f[1] = splat.v4f[0];
748 splat.v4f[0] = vec_splat(from.v4f[1], 1);
749 splat.v4f[1] = splat.v4f[0];
760 vfrom.v4f[0] = vec_ld2f(&from[0]);
761 vfrom.v4f[1] = vec_ld2f(&from[2]);
769 vec_st2f(from.v4f[0], &to[0]);
770 vec_st2f(from.v4f[1], &to[2]);
777 to.v4f[1] = to.v4f[0];
784 a0 = vec_splat_packet4f<0>(a3);
785 a1 = vec_splat_packet4f<1>(a3);
786 a2 = vec_splat_packet4f<2>(a3);
787 a3 = vec_splat_packet4f<3>(a3);
793 ai[0] = from[0 * stride];
794 ai[1] = from[1 * stride];
795 ai[2] = from[2 * stride];
796 ai[3] = from[3 * stride];
804 to[0 * stride] = ai[0];
805 to[1 * stride] = ai[1];
806 to[2 * stride] = ai[2];
807 to[3 * stride] = ai[3];
813 c.v4f[0] =
a.v4f[0] +
b.v4f[0];
814 c.v4f[1] =
a.v4f[1] +
b.v4f[1];
821 c.v4f[0] =
a.v4f[0] -
b.v4f[0];
822 c.v4f[1] =
a.v4f[1] -
b.v4f[1];
829 c.v4f[0] =
a.v4f[0] *
b.v4f[0];
830 c.v4f[1] =
a.v4f[1] *
b.v4f[1];
837 c.v4f[0] =
a.v4f[0] /
b.v4f[0];
838 c.v4f[1] =
a.v4f[1] /
b.v4f[1];
845 c.v4f[0] = -
a.v4f[0];
846 c.v4f[1] = -
a.v4f[1];
853 res.v4f[0] = vec_madd(
a.v4f[0],
b.v4f[0],
c.v4f[0]);
854 res.v4f[1] = vec_madd(
a.v4f[1],
b.v4f[1],
c.v4f[1]);
885 res.v4f[0] =
por(
a.v4f[0],
b.v4f[0]);
886 res.v4f[1] =
por(
a.v4f[1],
b.v4f[1]);
909 res.v4f[0] = vec_round(
a.v4f[0]);
910 res.v4f[1] = vec_round(
a.v4f[1]);
917 res.v4f[0] = vec_ceil(
a.v4f[0]);
918 res.v4f[1] = vec_ceil(
a.v4f[1]);
925 res.v4f[0] = vec_floor(
a.v4f[0]);
926 res.v4f[1] = vec_floor(
a.v4f[1]);
933 p.v4f[1] = vec_splat(
p.v4f[0], 1);
934 p.v4f[0] = vec_splat(
p.v4f[0], 0);
941 vec_st2f(
a.v4f[0], &
x[0]);
948 rev.v4f[0] = preverse<Packet2d>(
a.v4f[1]);
949 rev.v4f[1] = preverse<Packet2d>(
a.v4f[0]);
966 return static_cast<float>(first);
996 PacketBlock<Packet2d, 2> t0, t1, t2, t3;
998 t0.packet[0] = kernel.packet[0].v4f[0];
999 t0.packet[1] = kernel.packet[1].v4f[0];
1002 t1.packet[0] = kernel.packet[0].v4f[1];
1003 t1.packet[1] = kernel.packet[1].v4f[1];
1006 t2.packet[0] = kernel.packet[2].v4f[0];
1007 t2.packet[1] = kernel.packet[3].v4f[0];
1010 t3.packet[0] = kernel.packet[2].v4f[1];
1011 t3.packet[1] = kernel.packet[3].v4f[1];
1020 kernel.packet[0].v4f[0] = t0.packet[0];
1021 kernel.packet[0].v4f[1] = t2.packet[0];
1022 kernel.packet[1].v4f[0] = t0.packet[1];
1023 kernel.packet[1].v4f[1] = t2.packet[1];
1024 kernel.packet[2].v4f[0] = t1.packet[0];
1025 kernel.packet[2].v4f[1] = t3.packet[0];
1026 kernel.packet[3].v4f[0] = t1.packet[1];
1027 kernel.packet[3].v4f[1] = t3.packet[1];
1033 Packet2ul select_hi = {ifPacket.select[0], ifPacket.select[1]};
1034 Packet2ul select_lo = {ifPacket.select[2], ifPacket.select[3]};
1038 result.v4f[0] = vec_sel(elsePacket.v4f[0], thenPacket.v4f[0], mask_hi);
1039 result.v4f[1] = vec_sel(elsePacket.v4f[1], thenPacket.v4f[1], mask_lo);
1088 return vec_splats(from);
1094 a0 = vec_splat(a3, 0);
1095 a1 = vec_splat(a3, 1);
1096 a2 = vec_splat(a3, 2);
1097 a3 = vec_splat(a3, 3);
1103 af[0] = from[0 * stride];
1104 af[1] = from[1 * stride];
1105 af[2] = from[2 * stride];
1106 af[3] = from[3 * stride];
1114 to[0 * stride] = af[0];
1115 to[1 * stride] = af[1];
1116 to[2 * stride] = af[2];
1117 to[3 * stride] = af[3];
1146 return vec_madd(
a,
b,
c);
1150 return vec_min(
a,
b);
1154 return vec_max(
a,
b);
1158 return vec_and(
a,
b);
1162 return vec_or(
a,
b);
1166 return vec_xor(
a,
b);
1170 return vec_and(
a, vec_nor(
b,
b));
1174 return vec_round(
a);
1182 return vec_floor(
a);
1210 b = vec_sld(
a,
a, 8);
1212 b = vec_sld(sum, sum, 4);
1245 Packet4f t0 = vec_mergeh(kernel.packet[0], kernel.packet[2]);
1246 Packet4f t1 = vec_mergel(kernel.packet[0], kernel.packet[2]);
1247 Packet4f t2 = vec_mergeh(kernel.packet[1], kernel.packet[3]);
1248 Packet4f t3 = vec_mergel(kernel.packet[1], kernel.packet[3]);
1249 kernel.packet[0] = vec_mergeh(t0, t2);
1250 kernel.packet[1] = vec_mergel(t0, t2);
1251 kernel.packet[2] = vec_mergeh(t1, t3);
1252 kernel.packet[3] = vec_mergel(t1, t3);
1258 Packet4ui select = {ifPacket.select[0], ifPacket.select[1], ifPacket.select[2], ifPacket.select[3]};
1260 return vec_sel(elsePacket, thenPacket, mask);
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
int i
Definition: BiCGSTAB_step_by_step.cpp:9
#define EIGEN_DEBUG_ALIGNED_STORE
Definition: GenericPacketMath.h:38
#define EIGEN_DEBUG_ALIGNED_LOAD
Definition: GenericPacketMath.h:30
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:892
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
float * p
Definition: Tutorial_Map_using.cpp:9
#define EIGEN_ZVECTOR_PREFETCH(ADDR)
Definition: ZVector/PacketMath.h:154
Scalar * b
Definition: benchVecAdd.cpp:17
internal::packet_traits< Scalar >::type Packet
Definition: benchmark-blocking-sizes.cpp:54
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
@ Aligned16
Definition: Constants.h:237
RealScalar s
Definition: level1_cplx_impl.h:130
const Scalar * a
Definition: level2_cplx_impl.h:32
EIGEN_STRONG_INLINE Packet4f pandnot< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1465
static Packet16uc p16uc_REVERSE64
Definition: ZVector/PacketMath.h:125
std::ostream & operator<<(std::ostream &s, const Packet16c &v)
Definition: AltiVec/PacketMath.h:427
__m128d Packet2d
Definition: LSX/PacketMath.h:36
EIGEN_STRONG_INLINE void pstoreu< double >(double *to, const Packet4d &from)
Definition: AVX/PacketMath.h:1628
EIGEN_STRONG_INLINE Packet4f vec_splat_packet4f(const Packet4f &from)
Definition: ZVector/PacketMath.h:732
EIGEN_STRONG_INLINE double predux< Packet2d >(const Packet2d &a)
Definition: LSX/PacketMath.h:1965
EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf &a)
Definition: AltiVec/Complex.h:268
eigen_packet_wrapper< __m128i, 3 > Packet2l
Definition: LSX/PacketMath.h:41
EIGEN_STRONG_INLINE Packet4f pmin< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1250
EIGEN_STRONG_INLINE Packet2d padd< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:605
static Packet4i p4i_COUNTDOWN
Definition: AltiVec/PacketMath.h:88
EIGEN_STRONG_INLINE Packet2d pandnot< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:1003
__vector int Packet4i
Definition: AltiVec/PacketMath.h:34
EIGEN_STRONG_INLINE Packet4i pabs< Packet4i >(const Packet4i &a)
Definition: ZVector/PacketMath.h:619
EIGEN_STRONG_INLINE Packet4f padd< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1066
EIGEN_STRONG_INLINE Packet4i por< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1431
EIGEN_STRONG_INLINE Packet4f pcmp_eq< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: LSX/PacketMath.h:1131
static EIGEN_DECLARE_CONST_FAST_Packet4f(ZERO, 0)
static EIGEN_DECLARE_CONST_FAST_Packet2d(ZERO, 0)
__vector unsigned char Packet16uc
Definition: AltiVec/PacketMath.h:41
EIGEN_STRONG_INLINE Packet4i pset1< Packet4i >(const int &from)
Definition: AltiVec/PacketMath.h:778
EIGEN_STRONG_INLINE Packet4f pabs< Packet4f >(const Packet4f &a)
Definition: ZVector/PacketMath.h:954
EIGEN_STRONG_INLINE Packet4f pcmp_le< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: LSX/PacketMath.h:1040
EIGEN_STRONG_INLINE float pfirst< Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:1863
EIGEN_STRONG_INLINE Packet2d pand< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:880
EIGEN_STRONG_INLINE void ptranspose(PacketBlock< Packet2cf, 2 > &kernel)
Definition: AltiVec/Complex.h:339
EIGEN_STRONG_INLINE Packet4i ploaddup< Packet4i >(const int *from)
Definition: AltiVec/PacketMath.h:1644
static Packet16uc p16uc_TRANSPOSE64_LO
Definition: AltiVec/PacketMath.h:145
EIGEN_STRONG_INLINE float predux_max< Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:2679
EIGEN_STRONG_INLINE Packet2d ploaddup< Packet2d >(const double *from)
Definition: LSX/PacketMath.h:1490
static Packet16uc p16uc_REVERSE32
Definition: AltiVec/PacketMath.h:95
EIGEN_STRONG_INLINE Packet2d pxor< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:962
EIGEN_STRONG_INLINE Packet2d por< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:921
EIGEN_STRONG_INLINE Packet4i pdiv< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1205
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void pscatter< int, Packet4i >(int *to, const Packet4i &from, Index stride)
Definition: AltiVec/PacketMath.h:959
EIGEN_STRONG_INLINE Packet4f ploaddup< Packet4f >(const float *from)
Definition: AltiVec/PacketMath.h:1640
EIGEN_STRONG_INLINE Packet4f por< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1427
EIGEN_STRONG_INLINE int predux_min< Packet4i >(const Packet4i &a)
Definition: AltiVec/PacketMath.h:2604
EIGEN_STRONG_INLINE Packet4i pxor< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1452
EIGEN_STRONG_INLINE double predux_max< Packet2d >(const Packet2d &a)
Definition: LSX/PacketMath.h:2127
EIGEN_STRONG_INLINE Packet4f pmul< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1162
static Packet16uc p16uc_PSET32_WEVEN
Definition: AltiVec/PacketMath.h:132
EIGEN_DEVICE_FUNC Packet pmax(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:663
EIGEN_STRONG_INLINE Packet4i pblend(const Selector< 4 > &ifPacket, const Packet4i &thenPacket, const Packet4i &elsePacket)
Definition: AltiVec/PacketMath.h:3075
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet4f pgather< float, Packet4f >(const float *from, Index stride)
Definition: AltiVec/PacketMath.h:853
EIGEN_STRONG_INLINE Packet4f pcmp_le(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1314
EIGEN_STRONG_INLINE Packet2d pset1< Packet2d >(const double &from)
Definition: LSX/PacketMath.h:503
EIGEN_STRONG_INLINE Packet4f pload< Packet4f >(const float *from)
Definition: AltiVec/PacketMath.h:492
EIGEN_STRONG_INLINE int predux_mul< Packet4i >(const Packet4i &a)
Definition: AltiVec/PacketMath.h:2529
EIGEN_STRONG_INLINE void pstore< int >(int *to, const Packet4i &from)
Definition: AltiVec/PacketMath.h:647
EIGEN_STRONG_INLINE Packet8h por(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2309
EIGEN_STRONG_INLINE Packet4i pcmp_lt(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1341
static EIGEN_DECLARE_CONST_FAST_Packet2l(ZERO, 0)
__vector unsigned int Packet4ui
Definition: AltiVec/PacketMath.h:35
EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf &a)
Definition: AltiVec/Complex.h:303
__vector __bool int Packet4bi
Definition: AltiVec/PacketMath.h:36
EIGEN_STRONG_INLINE void pstore< double >(double *to, const Packet4d &from)
Definition: AVX/PacketMath.h:1611
EIGEN_STRONG_INLINE Packet4i padd< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1070
EIGEN_STRONG_INLINE Packet4f pfloor< Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:1497
EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f &a, const Packet4f &b, const Packet4f &c)
Definition: AltiVec/PacketMath.h:1218
EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf &a, const Packet4cf &b)
Definition: AVX/Complex.h:88
EIGEN_STRONG_INLINE Packet4i pandnot< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1469
EIGEN_DEVICE_FUNC Packet pmin(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:649
EIGEN_STRONG_INLINE Packet4f pdiv< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1187
EIGEN_STRONG_INLINE Packet8h pandnot(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2323
EIGEN_STRONG_INLINE Packet2d pload< Packet2d >(const double *from)
Definition: LSX/PacketMath.h:1407
EIGEN_STRONG_INLINE Packet2d pmul< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:741
EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf &a)
Definition: AltiVec/Complex.h:264
EIGEN_STRONG_INLINE float predux_mul< Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:2522
EIGEN_STRONG_INLINE void prefetch< float >(const float *addr)
Definition: AltiVec/PacketMath.h:1854
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void pscatter< double, Packet2d >(double *to, const Packet2d &from, Index stride)
Definition: LSX/PacketMath.h:1734
EIGEN_STRONG_INLINE Packet4i ploadu< Packet4i >(const int *from)
Definition: AltiVec/PacketMath.h:1537
EIGEN_STRONG_INLINE double predux_mul< Packet2d >(const Packet2d &a)
Definition: LSX/PacketMath.h:2019
EIGEN_STRONG_INLINE Packet2d pdiv< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:782
static Packet4f p4f_MZERO
Definition: AltiVec/PacketMath.h:81
EIGEN_STRONG_INLINE double predux_min< Packet2d >(const Packet2d &a)
Definition: LSX/PacketMath.h:2073
EIGEN_STRONG_INLINE Packet4f pset1< Packet4f >(const float &from)
Definition: AltiVec/PacketMath.h:773
static Packet2d p2d_ZERO_
Definition: ZVector/PacketMath.h:91
EIGEN_STRONG_INLINE Packet4i psub< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1099
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void pscatter< float, Packet4f >(float *to, const Packet4f &from, Index stride)
Definition: AltiVec/PacketMath.h:954
EIGEN_STRONG_INLINE Packet2d plset< Packet2d >(const double &a)
Definition: LSX/PacketMath.h:563
EIGEN_STRONG_INLINE Packet4f pceil< Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:1493
EIGEN_STRONG_INLINE void pstore< float >(float *to, const Packet4f &from)
Definition: AltiVec/PacketMath.h:642
EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f &a)
Definition: AltiVec/PacketMath.h:1936
static EIGEN_DECLARE_CONST_FAST_Packet4i(ZERO, 0)
static Packet2d p2d_ONE
Definition: ZVector/PacketMath.h:90
EIGEN_STRONG_INLINE bfloat16 pfirst(const Packet8bf &a)
Definition: AltiVec/PacketMath.h:2418
EIGEN_STRONG_INLINE void pbroadcast4< Packet2d >(const double *a, Packet2d &a0, Packet2d &a1, Packet2d &a2, Packet2d &a3)
Definition: SSE/PacketMath.h:1819
eigen_packet_wrapper< __m256i, 0 > Packet8i
Definition: AVX/PacketMath.h:35
EIGEN_DEVICE_FUNC void pstore(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:891
static Packet16uc p16uc_PSET64_HI
Definition: AltiVec/PacketMath.h:139
EIGEN_STRONG_INLINE Packet2d ploadu< Packet2d >(const double *from)
Definition: LSX/PacketMath.h:1448
EIGEN_STRONG_INLINE Packet4f pcmp_lt< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: LSX/PacketMath.h:1081
EIGEN_STRONG_INLINE Packet4f pxor< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1448
EIGEN_STRONG_INLINE Packet4i pmin< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1261
EIGEN_STRONG_INLINE Packet2d pabs< Packet2d >(const Packet2d &a)
Definition: ZVector/PacketMath.h:623
EIGEN_STRONG_INLINE Packet2cf pcmp_eq(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:353
static Packet16uc p16uc_FORWARD
Definition: AltiVec/PacketMath.h:128
EIGEN_STRONG_INLINE void pstoreu< int >(int *to, const Packet4i &from)
Definition: AltiVec/PacketMath.h:1760
EIGEN_STRONG_INLINE Packet8h pand(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2319
EIGEN_STRONG_INLINE Packet8h pxor(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2315
EIGEN_STRONG_INLINE int pfirst< Packet4i >(const Packet4i &a)
Definition: AltiVec/PacketMath.h:1869
EIGEN_STRONG_INLINE Packet4i plset< Packet4i >(const int &a)
Definition: AltiVec/PacketMath.h:1045
EIGEN_STRONG_INLINE float predux< Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:2435
EIGEN_STRONG_INLINE Packet2d pceil< Packet2d >(const Packet2d &a)
Definition: MSA/PacketMath.h:1186
EIGEN_STRONG_INLINE Packet4f ploadu< Packet4f >(const float *from)
Definition: AltiVec/PacketMath.h:1533
EIGEN_STRONG_INLINE Packet4i pmul< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1166
EIGEN_STRONG_INLINE Packet4i pand< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1410
EIGEN_STRONG_INLINE Packet2d pmin< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:1244
EIGEN_STRONG_INLINE int predux< Packet4i >(const Packet4i &a)
Definition: AltiVec/PacketMath.h:2445
static Packet2d p2d_COUNTDOWN
Definition: ZVector/PacketMath.h:109
EIGEN_STRONG_INLINE Packet4f pand< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1406
static Packet16uc p16uc_PSET32_WODD
Definition: AltiVec/PacketMath.h:129
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet4i pgather< int, Packet4i >(const int *from, Index stride)
Definition: AltiVec/PacketMath.h:858
static Packet16uc p16uc_PSET64_LO
Definition: AltiVec/PacketMath.h:141
EIGEN_STRONG_INLINE int predux_max< Packet4i >(const Packet4i &a)
Definition: AltiVec/PacketMath.h:2684
static Packet16uc p16uc_COMPLEX32_REV
Definition: AltiVec/PacketMath.h:148
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet2d pgather< double, Packet2d >(const double *from, Index stride)
Definition: LSX/PacketMath.h:1621
EIGEN_STRONG_INLINE Packet4i pmax< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1293
EIGEN_STRONG_INLINE void pbroadcast4< Packet4f >(const float *a, Packet4f &a0, Packet4f &a1, Packet4f &a2, Packet4f &a3)
Definition: AltiVec/PacketMath.h:823
EIGEN_STRONG_INLINE Packet4i pload< Packet4i >(const int *from)
Definition: AltiVec/PacketMath.h:497
__vector float Packet4f
Definition: AltiVec/PacketMath.h:33
EIGEN_STRONG_INLINE Packet2d psub< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:646
EIGEN_STRONG_INLINE Packet4f psub< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1095
static Packet4f p4f_COUNTDOWN
Definition: AltiVec/PacketMath.h:87
EIGEN_STRONG_INLINE Packet4f plset< Packet4f >(const float &a)
Definition: AltiVec/PacketMath.h:1041
EIGEN_STRONG_INLINE void pstoreu< float >(float *to, const Packet4f &from)
Definition: AltiVec/PacketMath.h:1756
EIGEN_STRONG_INLINE Packet2d pmax< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:1256
EIGEN_STRONG_INLINE Packet4f pround< Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:1479
static Packet16uc p16uc_COMPLEX32_REV2
Definition: ZVector/PacketMath.h:148
EIGEN_STRONG_INLINE Packet2d pround< Packet2d >(const Packet2d &a)
Definition: MSA/PacketMath.h:1206
EIGEN_STRONG_INLINE void prefetch< int >(const int *addr)
Definition: AltiVec/PacketMath.h:1858
EIGEN_STRONG_INLINE double pfirst< Packet2d >(const Packet2d &a)
Definition: LSX/PacketMath.h:1879
eigen_packet_wrapper< __m128i, 7 > Packet2ul
Definition: LSX/PacketMath.h:45
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_mul(const Packet &a)
Definition: GenericPacketMath.h:1238
EIGEN_STRONG_INLINE Packet2d pfloor< Packet2d >(const Packet2d &a)
Definition: MSA/PacketMath.h:1167
EIGEN_STRONG_INLINE void pbroadcast4< Packet4i >(const int *a, Packet4i &a0, Packet4i &a1, Packet4i &a2, Packet4i &a3)
Definition: AltiVec/PacketMath.h:827
EIGEN_STRONG_INLINE float predux_min< Packet4f >(const Packet4f &a)
Definition: AltiVec/PacketMath.h:2599
EIGEN_STRONG_INLINE void prefetch< double >(const double *addr)
Definition: AVX/PacketMath.h:1750
static Packet16uc p16uc_DUPLICATE32_HI
Definition: ZVector/PacketMath.h:113
EIGEN_STRONG_INLINE Packet4f pmax< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1282
static Packet16uc p16uc_TRANSPOSE64_HI
Definition: AltiVec/PacketMath.h:143
std::int32_t int32_t
Definition: Meta.h:41
std::int64_t int64_t
Definition: Meta.h:43
std::uint32_t uint32_t
Definition: Meta.h:40
std::uint64_t uint64_t
Definition: Meta.h:42
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
const Product< Lhs, Rhs > prod(const Lhs &lhs, const Rhs &rhs)
Definition: evaluators.cpp:7
int c
Definition: calibrate.py:100
Definition: Eigen_Colamd.h:49
list x
Definition: plotDoE.py:28
Definition: GenericPacketMath.h:1407
@ HasRsqrt
Definition: GenericPacketMath.h:74
@ HasSin
Definition: GenericPacketMath.h:81
@ HasBlend
Definition: GenericPacketMath.h:66
@ HasCos
Definition: GenericPacketMath.h:82
@ HasExp
Definition: GenericPacketMath.h:75
@ HasSqrt
Definition: GenericPacketMath.h:73
@ HasErf
Definition: GenericPacketMath.h:95
@ HasLog
Definition: GenericPacketMath.h:77
@ HasTanh
Definition: GenericPacketMath.h:90
@ HasDiv
Definition: GenericPacketMath.h:71
Packet2d half
Definition: ZVector/PacketMath.h:206
Packet2d type
Definition: ZVector/PacketMath.h:205
Packet4f type
Definition: ZVector/PacketMath.h:176
Packet4f half
Definition: ZVector/PacketMath.h:177
Packet4i type
Definition: ZVector/PacketMath.h:159
Packet4i half
Definition: ZVector/PacketMath.h:160
@ size
Definition: GenericPacketMath.h:113
@ AlignedOnScalar
Definition: GenericPacketMath.h:114
@ Vectorizable
Definition: GenericPacketMath.h:112
@ 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
@ HasMin
Definition: GenericPacketMath.h:123
@ HasAbs
Definition: GenericPacketMath.h:121
double type
Definition: ZVector/PacketMath.h:256
Packet2d half
Definition: ZVector/PacketMath.h:264
Packet4f half
Definition: ZVector/PacketMath.h:252
float type
Definition: ZVector/PacketMath.h:244
int type
Definition: ZVector/PacketMath.h:232
Packet4i half
Definition: ZVector/PacketMath.h:240
Definition: GenericPacketMath.h:134
@ masked_load_available
Definition: GenericPacketMath.h:142
@ size
Definition: GenericPacketMath.h:139
@ masked_store_available
Definition: GenericPacketMath.h:143
@ vectorizable
Definition: GenericPacketMath.h:141
@ alignment
Definition: GenericPacketMath.h:140
Definition: ZVector/PacketMath.h:50
numext::int32_t i[4]
Definition: ZVector/PacketMath.h:51
Packet4f v4f
Definition: ZVector/PacketMath.h:63
Packet2ul v2ul
Definition: ZVector/PacketMath.h:60
Packet4i v4i
Definition: ZVector/PacketMath.h:57
Packet4ui v4ui
Definition: ZVector/PacketMath.h:58
Packet2l v2l
Definition: ZVector/PacketMath.h:59
Packet2d v2d
Definition: ZVector/PacketMath.h:61