10 #ifndef EIGEN_PACKET_MATH_ALTIVEC_H 11 #define EIGEN_PACKET_MATH_ALTIVEC_H 17 #ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 18 #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 4 21 #ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD 22 #define EIGEN_HAS_SINGLE_INSTRUCTION_MADD 25 #ifndef EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD 26 #define EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD 30 #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 31 #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 32 44 #define _EIGEN_DECLARE_CONST_FAST_Packet4f(NAME,X) \ 45 Packet4f p4f_##NAME = reinterpret_cast<Packet4f>(vec_splat_s32(X)) 47 #define _EIGEN_DECLARE_CONST_FAST_Packet4i(NAME,X) \ 48 Packet4i p4i_##NAME = vec_splat_s32(X) 50 #define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \ 51 Packet4f p4f_##NAME = pset1<Packet4f>(X) 53 #define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \ 54 Packet4i p4i_##NAME = pset1<Packet4i>(X) 56 #define _EIGEN_DECLARE_CONST_Packet2d(NAME,X) \ 57 Packet2d p2d_##NAME = pset1<Packet2d>(X) 59 #define _EIGEN_DECLARE_CONST_Packet2l(NAME,X) \ 60 Packet2l p2l_##NAME = pset1<Packet2l>(X) 62 #define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \ 63 const Packet4f p4f_##NAME = reinterpret_cast<Packet4f>(pset1<Packet4i>(X)) 66 #define DST_CTRL(size, count, stride) (((size) << 24) | ((count) << 16) | (stride)) 77 static Packet4f
p4f_ONE = vec_ctf(p4i_ONE, 0);
83 static Packet16uc
p16uc_REVERSE32 = { 12,13,14,15, 8,9,10,11, 4,5,6,7, 0,1,2,3 };
84 static Packet16uc
p16uc_DUPLICATE32_HI = { 0,1,2,3, 0,1,2,3, 4,5,6,7, 4,5,6,7 };
88 #define _EIGEN_MASK_ALIGNMENT 0xfffffffffffffff0 90 #define _EIGEN_MASK_ALIGNMENT 0xfffffff0 93 #define _EIGEN_ALIGNED_PTR(x) ((std::ptrdiff_t)(x) & _EIGEN_MASK_ALIGNMENT) 100 static Packet16uc
p16uc_REVERSE64 = { 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
102 static Packet16uc
p16uc_PSET32_WODD = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 0), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 2), 8);
103 static Packet16uc
p16uc_PSET32_WEVEN = vec_sld(p16uc_DUPLICATE32_HI, (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 3), 8);
104 static Packet16uc
p16uc_HALF64_0_16 = vec_sld((Packet16uc)p4i_ZERO, vec_splat((Packet16uc) vec_abs(p4i_MINUS16), 3), 8);
107 static Packet16uc p16uc_REVERSE64 = { 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
108 static Packet16uc p16uc_PSET32_WODD = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 1), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 3), 8);
109 static Packet16uc p16uc_PSET32_WEVEN = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 0), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 2), 8);
110 static Packet16uc p16uc_HALF64_0_16 = vec_sld(vec_splat((Packet16uc) vec_abs(p4i_MINUS16), 0), (Packet16uc)p4i_ZERO, 8);
111 #endif // _BIG_ENDIAN 123 static Packet16uc p16uc_COMPLEX32_REV2 = vec_sld(p16uc_PSET64_HI, p16uc_PSET64_LO, 8);
124 #endif // _BIG_ENDIAN 126 #if EIGEN_HAS_BUILTIN(__builtin_prefetch) || EIGEN_COMP_GNUC 127 #define EIGEN_PPC_PREFETCH(ADDR) __builtin_prefetch(ADDR); 129 #define EIGEN_PPC_PREFETCH(ADDR) asm( " dcbt [%[addr]]\n" :: [addr] "r" (ADDR) : "cc" ); 155 #if !EIGEN_COMP_CLANG 200 for (
int i=0;
i< 16;
i++)
201 s << (
int)vt.n[
i] <<
", ";
212 s << vt.n[0] <<
", " << vt.n[1] <<
", " << vt.n[2] <<
", " << vt.n[3];
223 s << vt.n[0] <<
", " << vt.n[1] <<
", " << vt.n[2] <<
", " << vt.n[3];
234 s << vt.n[0] <<
", " << vt.n[1] <<
", " << vt.n[2] <<
", " << vt.n[3];
243 return vec_vsx_ld(0, from);
245 return vec_ld(0, from);
253 return vec_vsx_ld(0, from);
255 return vec_ld(0, from);
263 vec_vsx_st(from, 0, to);
273 vec_vsx_st(from, 0, to);
280 Packet4f
v = {from, from, from, from};
285 Packet4i
v = {from, from, from, from};
290 Packet4f& a0, Packet4f& a1, Packet4f& a2, Packet4f& a3)
293 a0 = vec_splat(a3, 0);
294 a1 = vec_splat(a3, 1);
295 a2 = vec_splat(a3, 2);
296 a3 = vec_splat(a3, 3);
300 Packet4i& a0, Packet4i& a1, Packet4i& a2, Packet4i& a3)
303 a0 = vec_splat(a3, 0);
304 a1 = vec_splat(a3, 1);
305 a2 = vec_splat(a3, 2);
306 a3 = vec_splat(a3, 3);
312 af[0] = from[0*stride];
313 af[1] = from[1*stride];
314 af[2] = from[2*stride];
315 af[3] = from[3*stride];
321 ai[0] = from[0*stride];
322 ai[1] = from[1*stride];
323 ai[2] = from[2*stride];
324 ai[3] = from[3*stride];
331 to[0*stride] = af[0];
332 to[1*stride] = af[1];
333 to[2*stride] = af[2];
334 to[3*stride] = af[3];
340 to[0*stride] = ai[0];
341 to[1*stride] = ai[1];
342 to[2*stride] = ai[2];
343 to[3*stride] = ai[3];
366 #ifndef __VSX__ // VSX actually provides a div instruction 367 Packet4f
t, y_0, y_1;
373 t = vec_nmsub(y_0,
b, p4f_ONE);
374 y_1 = vec_madd(y_0, t, y_0);
376 return vec_madd(a, y_1, p4f_MZERO);
378 return vec_div(a,
b);
383 {
eigen_assert(
false &&
"packet integer division are not supported by AltiVec");
395 __asm__ (
"xvcmpgesp %x0,%x1,%x2\n\txxsel %x0,%x1,%x2,%x0" :
"=&wa" (ret) :
"wa" (a),
"wa" (
b));
398 return vec_min(a,
b);
407 __asm__ (
"xvcmpgtsp %x0,%x2,%x1\n\txxsel %x0,%x1,%x2,%x0" :
"=&wa" (ret) :
"wa" (a),
"wa" (
b));
410 return vec_max(a,
b);
437 MSQ = vec_ld(0, (
unsigned char *)from);
438 LSQ = vec_ld(15, (
unsigned char *)from);
439 mask = vec_lvsl(0, from);
440 return (Packet4f) vec_perm(MSQ, LSQ, mask);
449 MSQ = vec_ld(0, (
unsigned char *)from);
450 LSQ = vec_ld(15, (
unsigned char *)from);
451 mask = vec_lvsl(0, from);
452 return (Packet4i) vec_perm(MSQ, LSQ, mask);
464 return (Packet4f) vec_vsx_ld((
long)from & 15, (
const float*)
_EIGEN_ALIGNED_PTR(from));
473 return vec_perm(p, p, p16uc_DUPLICATE32_HI);
480 return vec_perm(p, p, p16uc_DUPLICATE32_HI);
489 Packet16uc MSQ, LSQ,
edges;
490 Packet16uc edgeAlign,
align;
492 MSQ = vec_ld(0, (
unsigned char *)to);
493 LSQ = vec_ld(15, (
unsigned char *)to);
494 edgeAlign = vec_lvsl(0, to);
495 edges=vec_perm(LSQ,MSQ,edgeAlign);
496 align = vec_lvsr( 0, to );
497 MSQ = vec_perm(edges,(Packet16uc)from,align);
498 LSQ = vec_perm((Packet16uc)from,edges,align);
499 vec_st( LSQ, 15, (
unsigned char *)to );
500 vec_st( MSQ, 0, (
unsigned char *)to );
507 Packet16uc MSQ, LSQ,
edges;
508 Packet16uc edgeAlign,
align;
510 MSQ = vec_ld(0, (
unsigned char *)to);
511 LSQ = vec_ld(15, (
unsigned char *)to);
512 edgeAlign = vec_lvsl(0, to);
513 edges=vec_perm(LSQ, MSQ, edgeAlign);
514 align = vec_lvsr( 0, to );
515 MSQ = vec_perm(edges, (Packet16uc) from, align);
516 LSQ = vec_perm((Packet16uc) from, edges, align);
517 vec_st( LSQ, 15, (
unsigned char *)to );
518 vec_st( MSQ, 0, (
unsigned char *)to );
542 return reinterpret_cast<Packet4f
>(vec_perm(reinterpret_cast<Packet16uc>(a), reinterpret_cast<Packet16uc>(a), p16uc_REVERSE32));
546 return reinterpret_cast<Packet4i
>(vec_perm(reinterpret_cast<Packet16uc>(a), reinterpret_cast<Packet16uc>(a), p16uc_REVERSE32)); }
554 b = vec_sld(a, a, 8);
556 b = vec_sld(sum, sum, 4);
563 Packet4f
v[4],
sum[4];
568 v[0] = vec_mergeh(vecs[0], vecs[2]);
569 v[1] = vec_mergel(vecs[0], vecs[2]);
570 v[2] = vec_mergeh(vecs[1], vecs[3]);
571 v[3] = vec_mergel(vecs[1], vecs[3]);
573 sum[0] = vec_mergeh(v[0], v[2]);
574 sum[1] = vec_mergel(v[0], v[2]);
575 sum[2] = vec_mergeh(v[1], v[3]);
576 sum[3] = vec_mergel(v[1], v[3]);
580 sum[0] = sum[0] + sum[1];
582 sum[1] = sum[2] + sum[3];
584 sum[0] = sum[0] + sum[1];
592 sum = vec_sums(a, p4i_ZERO);
594 sum = vec_sld(sum, p4i_ZERO, 12);
596 sum = vec_sld(p4i_ZERO, sum, 4);
603 Packet4i
v[4],
sum[4];
608 v[0] = vec_mergeh(vecs[0], vecs[2]);
609 v[1] = vec_mergel(vecs[0], vecs[2]);
610 v[2] = vec_mergeh(vecs[1], vecs[3]);
611 v[3] = vec_mergel(vecs[1], vecs[3]);
613 sum[0] = vec_mergeh(v[0], v[2]);
614 sum[1] = vec_mergel(v[0], v[2]);
615 sum[2] = vec_mergeh(v[1], v[3]);
616 sum[3] = vec_mergel(v[1], v[3]);
620 sum[0] = sum[0] + sum[1];
622 sum[1] = sum[2] + sum[3];
624 sum[0] = sum[0] + sum[1];
634 prod =
pmul(a, vec_sld(a, a, 8));
635 return pfirst(
pmul(prod, vec_sld(prod, prod, 4)));
642 return aux[0] * aux[1] * aux[2] * aux[3];
649 b = vec_min(a, vec_sld(a, a, 8));
650 res = vec_min(b, vec_sld(b, b, 4));
657 b = vec_min(a, vec_sld(a, a, 8));
658 res = vec_min(b, vec_sld(b, b, 4));
666 b = vec_max(a, vec_sld(a, a, 8));
667 res = vec_max(b, vec_sld(b, b, 4));
674 b = vec_max(a, vec_sld(a, a, 8));
675 res = vec_max(b, vec_sld(b, b, 4));
685 switch (Offset % 4) {
687 first = vec_sld(first, second, 4);
break;
689 first = vec_sld(first, second, 8);
break;
691 first = vec_sld(first, second, 12);
break;
694 switch (Offset % 4) {
696 first = vec_sld(second, first, 12);
break;
698 first = vec_sld(second, first, 8);
break;
700 first = vec_sld(second, first, 4);
break;
712 switch (Offset % 4) {
714 first = vec_sld(first, second, 4);
break;
716 first = vec_sld(first, second, 8);
break;
718 first = vec_sld(first, second, 12);
break;
721 switch (Offset % 4) {
723 first = vec_sld(second, first, 12);
break;
725 first = vec_sld(second, first, 8);
break;
727 first = vec_sld(second, first, 4);
break;
733 EIGEN_DEVICE_FUNC
inline void 735 Packet4f t0, t1, t2, t3;
740 kernel.
packet[0] = vec_mergeh(t0, t2);
741 kernel.
packet[1] = vec_mergel(t0, t2);
742 kernel.
packet[2] = vec_mergeh(t1, t3);
743 kernel.
packet[3] = vec_mergel(t1, t3);
746 EIGEN_DEVICE_FUNC
inline void 748 Packet4i t0, t1, t2, t3;
753 kernel.
packet[0] = vec_mergeh(t0, t2);
754 kernel.
packet[1] = vec_mergel(t0, t2);
755 kernel.
packet[2] = vec_mergeh(t1, t3);
756 kernel.
packet[3] = vec_mergel(t1, t3);
761 Packet4ui mask =
reinterpret_cast<Packet4ui
>(vec_cmpeq(reinterpret_cast<Packet4ui>(select), reinterpret_cast<Packet4ui>(p4i_ONE)));
762 return vec_sel(elsePacket, thenPacket, mask);
767 Packet4ui mask =
reinterpret_cast<Packet4ui
>(vec_cmpeq(reinterpret_cast<Packet4ui>(select), reinterpret_cast<Packet4ui>(p4i_ONE)));
768 return vec_sel(elsePacket, thenPacket, mask);
775 typedef __vector
unsigned long long Packet2ul;
776 typedef __vector
long long Packet2l;
778 typedef Packet2ul Packet2bl;
780 typedef __vector __bool
long Packet2bl;
783 static Packet2l p2l_ONE = { 1, 1 };
784 static Packet2l p2l_ZERO =
reinterpret_cast<Packet2l
>(p4i_ZERO);
785 static Packet2d
p2d_ONE = { 1.0, 1.0 };
786 static Packet2d p2d_ZERO =
reinterpret_cast<Packet2d
>(p4f_ZERO);
787 static Packet2d p2d_MZERO = { -0.0, -0.0 };
790 static Packet2d
p2d_COUNTDOWN =
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4f>(p2d_ZERO), reinterpret_cast<Packet4f>(p2d_ONE), 8));
792 static Packet2d p2d_COUNTDOWN =
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4f>(p2d_ONE), reinterpret_cast<Packet4f>(p2d_ZERO), 8));
795 template<
int index> Packet2d vec_splat_dbl(Packet2d& a);
799 return reinterpret_cast<Packet2d
>(vec_perm(a, a, p16uc_PSET64_HI));
804 return reinterpret_cast<Packet2d
>(vec_perm(a, a, p16uc_PSET64_LO));
809 typedef Packet2d
type;
810 typedef Packet2d
half;
840 inline std::ostream &
operator <<(std::ostream &
s,
const Packet2l &
v)
847 s << vt.n[0] <<
", " << vt.n[1];
851 inline std::ostream &
operator <<(std::ostream & s,
const Packet2d & v)
858 s << vt.n[0] <<
", " << vt.n[1];
867 return vec_vsx_ld(0, from);
869 return vec_ld(0, from);
877 vec_vsx_st(from, 0, to);
884 Packet2d v = {from, from};
890 Packet2d& a0, Packet2d& a1, Packet2d& a2, Packet2d& a3)
893 a0 = vec_splat_dbl<0>(a1);
894 a1 = vec_splat_dbl<1>(a1);
896 a2 = vec_splat_dbl<0>(a3);
897 a3 = vec_splat_dbl<1>(a3);
903 af[0] = from[0*stride];
904 af[1] = from[1*stride];
911 to[0*stride] = af[0];
912 to[1*stride] = af[1];
929 template<>
EIGEN_STRONG_INLINE Packet2d
pmadd(
const Packet2d& a,
const Packet2d&
b,
const Packet2d&
c) {
return vec_madd(a, b, c); }
934 __asm__ (
"xvcmpgedp %x0,%x1,%x2\n\txxsel %x0,%x1,%x2,%x0" :
"=&wa" (ret) :
"wa" (a),
"wa" (b));
941 __asm__ (
"xvcmpgtdp %x0,%x2,%x1\n\txxsel %x0,%x1,%x2,%x0" :
"=&wa" (ret) :
"wa" (a),
"wa" (b));
960 return (Packet2d) vec_vsx_ld((
long)from & 15, (
const double*)
_EIGEN_ALIGNED_PTR(from));
968 return vec_splat_dbl<0>(
p);
983 return reinterpret_cast<Packet2d
>(vec_perm(reinterpret_cast<Packet16uc>(a), reinterpret_cast<Packet16uc>(a), p16uc_REVERSE64));
990 b =
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4f>(a), reinterpret_cast<Packet4f>(a), 8));
998 v[0] = vecs[0] +
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4f>(vecs[0]), reinterpret_cast<Packet4f>(vecs[0]), 8));
999 v[1] = vecs[1] +
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4f>(vecs[1]), reinterpret_cast<Packet4f>(vecs[1]), 8));
1002 sum =
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4f>(v[0]), reinterpret_cast<Packet4f>(v[1]), 8));
1004 sum =
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4f>(v[1]), reinterpret_cast<Packet4f>(v[0]), 8));
1013 return pfirst(
pmul(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(a), reinterpret_cast<Packet4ui>(a), 8))));
1019 return pfirst(
pmin(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(a), reinterpret_cast<Packet4ui>(a), 8))));
1025 return pfirst(
pmax(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(a), reinterpret_cast<Packet4ui>(a), 8))));
1028 template<
int Offset>
1035 first =
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4ui>(first), reinterpret_cast<Packet4ui>(second), 8));
1037 first =
reinterpret_cast<Packet2d
>(vec_sld(reinterpret_cast<Packet4ui>(second), reinterpret_cast<Packet4ui>(first), 8));
1042 EIGEN_DEVICE_FUNC
inline void 1045 t0 = vec_perm(kernel.
packet[0], kernel.
packet[1], p16uc_TRANSPOSE64_HI);
1046 t1 = vec_perm(kernel.
packet[0], kernel.
packet[1], p16uc_TRANSPOSE64_LO);
1052 Packet2l select = { ifPacket.
select[0], ifPacket.
select[1] };
1053 Packet2bl mask =
reinterpret_cast<Packet2bl
>( vec_cmpeq(reinterpret_cast<Packet2d>(select), reinterpret_cast<Packet2d>(p2l_ONE)) );
1054 return vec_sel(elsePacket, thenPacket, mask);
1061 #endif // EIGEN_PACKET_MATH_ALTIVEC_H static Packet16uc p16uc_REVERSE64
EIGEN_STRONG_INLINE Packet4i ploaddup< Packet4i >(const int *from)
EIGEN_DEVICE_FUNC void pscatter< int, Packet4i >(int *to, const Packet4i &from, Index stride)
vector< MFAS::KeyPair > edges
static _EIGEN_DECLARE_CONST_FAST_Packet4i(ZERO, 0)
EIGEN_STRONG_INLINE Packet4f pxor< Packet4f >(const Packet4f &a, const Packet4f &b)
#define EIGEN_STRONG_INLINE
EIGEN_STRONG_INLINE Packet4f pround< Packet4f >(const Packet4f &a)
__vector unsigned char Packet16uc
EIGEN_STRONG_INLINE Packet2d plset< Packet2d >(const double &a)
const mpreal ai(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
EIGEN_STRONG_INLINE int pfirst< Packet4i >(const Packet4i &a)
EIGEN_DEVICE_FUNC void pscatter< float, Packet4f >(float *to, const Packet4f &from, Index stride)
EIGEN_STRONG_INLINE double predux_min< Packet2d >(const Packet2d &a)
EIGEN_STRONG_INLINE Packet4i pload< Packet4i >(const int *from)
static Packet16uc p16uc_PSET32_WODD
EIGEN_STRONG_INLINE double predux_max< Packet2d >(const Packet2d &a)
EIGEN_STRONG_INLINE Packet4i plset< Packet4i >(const int &a)
#define EIGEN_DEBUG_UNALIGNED_LOAD
std::ostream & operator<<(std::ostream &s, const Packet16uc &v)
EIGEN_STRONG_INLINE Packet2d pceil< Packet2d >(const Packet2d &a)
EIGEN_STRONG_INLINE float pfirst< Packet4f >(const Packet4f &a)
static Packet16uc p16uc_TRANSPOSE64_LO
static Packet16uc p16uc_COMPLEX32_REV2
EIGEN_STRONG_INLINE Packet4f ploaddup< Packet4f >(const float *from)
EIGEN_STRONG_INLINE void pbroadcast4< Packet4f >(const float *a, Packet4f &a0, Packet4f &a1, Packet4f &a2, Packet4f &a3)
EIGEN_STRONG_INLINE int predux< Packet4i >(const Packet4i &a)
#define EIGEN_DEBUG_ALIGNED_STORE
__vector unsigned int Packet4ui
Namespace containing all symbols from the Eigen library.
static EIGEN_STRONG_INLINE void run(Packet4i &first, const Packet4i &second)
EIGEN_STRONG_INLINE Packet4i ploadu< Packet4i >(const int *from)
EIGEN_STRONG_INLINE float predux_max< Packet4f >(const Packet4f &a)
static Packet16uc p16uc_FORWARD
static EIGEN_STRONG_INLINE void run(Packet4f &first, const Packet4f &second)
#define EIGEN_DEBUG_UNALIGNED_STORE
EIGEN_STRONG_INLINE void prefetch< float >(const float *addr)
static Packet16uc p16uc_REVERSE32
EIGEN_STRONG_INLINE Packet4i pdiv< Packet4i >(const Packet4i &, const Packet4i &)
static Packet16uc p16uc_PSET32_WEVEN
EIGEN_STRONG_INLINE int predux_min< Packet4i >(const Packet4i &a)
EIGEN_STRONG_INLINE void pstoreu< double >(double *to, const Packet4d &from)
__vector __bool int Packet4bi
#define EIGEN_DEBUG_ALIGNED_LOAD
__vector long long Packet2l
#define EIGEN_PPC_PREFETCH(ADDR)
static Packet4f p4f_MZERO
EIGEN_STRONG_INLINE Packet2d padd< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_STRONG_INLINE Packet2d ploaddup< Packet2d >(const double *from)
static Packet4i p4i_COUNTDOWN
EIGEN_STRONG_INLINE double predux_mul< Packet2d >(const Packet2d &a)
EIGEN_STRONG_INLINE Packet2d preduxp< Packet2d >(const Packet2d *vecs)
EIGEN_DEVICE_FUNC Packet4i pgather< int, Packet4i >(const int *from, Index stride)
EIGEN_STRONG_INLINE Packet2d pdiv< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_DEVICE_FUNC Packet pmin(const Packet &a, const Packet &b)
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
EIGEN_STRONG_INLINE Packet4i pmul< Packet4i >(const Packet4i &a, const Packet4i &b)
EIGEN_STRONG_INLINE Packet2d pandnot< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_STRONG_INLINE void pstore< double >(double *to, const Packet4d &from)
EIGEN_STRONG_INLINE Packet4f pceil< Packet4f >(const Packet4f &a)
EIGEN_STRONG_INLINE Packet4f pdiv< Packet4f >(const Packet4f &a, const Packet4f &b)
static _EIGEN_DECLARE_CONST_FAST_Packet4f(ZERO, 0)
EIGEN_STRONG_INLINE Packet4f pmin< Packet4f >(const Packet4f &a, const Packet4f &b)
EIGEN_STRONG_INLINE Packet2d pmin< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_STRONG_INLINE void prefetch< int >(const int *addr)
constexpr int first(int i)
Implementation details for constexpr functions.
EIGEN_STRONG_INLINE Packet4i pand< Packet4i >(const Packet4i &a, const Packet4i &b)
EIGEN_STRONG_INLINE int predux_max< Packet4i >(const Packet4i &a)
EIGEN_STRONG_INLINE Packet4i pmin< Packet4i >(const Packet4i &a, const Packet4i &b)
__vector unsigned long long Packet2ul
EIGEN_STRONG_INLINE Packet4f ploadu< Packet4f >(const float *from)
EIGEN_STRONG_INLINE void ptranspose(PacketBlock< Packet2cf, 2 > &kernel)
EIGEN_STRONG_INLINE Packet4i pxor< Packet4i >(const Packet4i &a, const Packet4i &b)
EIGEN_STRONG_INLINE void pstoreu< int >(int *to, const Packet4i &from)
EIGEN_STRONG_INLINE void pstore< float >(float *to, const Packet4f &from)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
EIGEN_DEVICE_FUNC void pscatter< double, Packet2d >(double *to, const Packet2d &from, Index stride)
EIGEN_STRONG_INLINE Packet4f por< Packet4f >(const Packet4f &a, const Packet4f &b)
EIGEN_STRONG_INLINE Packet2d pmax< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_STRONG_INLINE Packet4i preduxp< Packet4i >(const Packet4i *vecs)
__vector short int Packet8i
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type pfirst(const Packet &a)
const mpreal sum(const mpreal tab[], const unsigned long int n, int &status, mp_rnd_t mode=mpreal::get_default_rnd())
EIGEN_STRONG_INLINE Packet4f pandnot< Packet4f >(const Packet4f &a, const Packet4f &b)
static Packet16uc p16uc_COMPLEX32_REV
EIGEN_STRONG_INLINE void pbroadcast4< Packet2d >(const double *a, Packet2d &a0, Packet2d &a1, Packet2d &a2, Packet2d &a3)
EIGEN_STRONG_INLINE float predux< Packet4f >(const Packet4f &a)
EIGEN_STRONG_INLINE Packet2d pand< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_STRONG_INLINE Packet2d ploadu< Packet2d >(const double *from)
EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf &a)
EIGEN_STRONG_INLINE float predux_min< Packet4f >(const Packet4f &a)
EIGEN_STRONG_INLINE Packet2d pload< Packet2d >(const double *from)
EIGEN_STRONG_INLINE Packet2d psub< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_STRONG_INLINE void pstoreu< float >(float *to, const Packet4f &from)
static Packet2d p2d_COUNTDOWN
EIGEN_STRONG_INLINE int predux_mul< Packet4i >(const Packet4i &a)
EIGEN_STRONG_INLINE Packet4f pmul< Packet4f >(const Packet4f &a, const Packet4f &b)
EIGEN_DEVICE_FUNC void pstore(Scalar *to, const Packet &from)
static Packet16uc p16uc_HALF64_0_16
boost::optional< Pose2 > align(const vector< Point2Pair > &pairs)
EIGEN_STRONG_INLINE double predux< Packet2d >(const Packet2d &a)
EIGEN_STRONG_INLINE Packet4f pload< Packet4f >(const float *from)
EIGEN_STRONG_INLINE Packet4i pmax< Packet4i >(const Packet4i &a, const Packet4i &b)
EIGEN_STRONG_INLINE Packet2d pxor< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf &a)
EIGEN_STRONG_INLINE Packet4i por< Packet4i >(const Packet4i &a, const Packet4i &b)
static Packet4f p4f_COUNTDOWN
#define _EIGEN_ALIGNED_PTR(x)
EIGEN_STRONG_INLINE Packet4i padd< Packet4i >(const Packet4i &a, const Packet4i &b)
EIGEN_STRONG_INLINE Packet4f padd< Packet4f >(const Packet4f &a, const Packet4f &b)
EIGEN_STRONG_INLINE void pstore< int >(int *to, const Packet4i &from)
EIGEN_STRONG_INLINE Packet4i pandnot< Packet4i >(const Packet4i &a, const Packet4i &b)
EIGEN_STRONG_INLINE Packet4f pfloor< Packet4f >(const Packet4f &a)
EIGEN_STRONG_INLINE void pbroadcast4< Packet4i >(const int *a, Packet4i &a0, Packet4i &a1, Packet4i &a2, Packet4i &a3)
static Packet16uc p16uc_DUPLICATE32_HI
EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f &a, const Packet4f &b, const Packet4f &c)
EIGEN_STRONG_INLINE Packet4f preduxp< Packet4f >(const Packet4f *vecs)
EIGEN_STRONG_INLINE Packet2d pround< Packet2d >(const Packet2d &a)
EIGEN_STRONG_INLINE Packet2d pfloor< Packet2d >(const Packet2d &a)
EIGEN_STRONG_INLINE Packet2d pset1< Packet2d >(const double &from)
EIGEN_STRONG_INLINE Packet4f plset< Packet4f >(const float &a)
EIGEN_DEVICE_FUNC Packet2d pgather< double, Packet2d >(const double *from, Index stride)
EIGEN_STRONG_INLINE Packet2d pmul< Packet2d >(const Packet2d &a, const Packet2d &b)
void run(Expr &expr, Dev &dev)
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
EIGEN_STRONG_INLINE Packet4f pmax< Packet4f >(const Packet4f &a, const Packet4f &b)
static Packet16uc p16uc_PSET64_HI
EIGEN_STRONG_INLINE Packet4f pset1< Packet4f >(const float &from)
EIGEN_STRONG_INLINE double pfirst< Packet2d >(const Packet2d &a)
EIGEN_DEVICE_FUNC Packet pmul(const Packet &a, const Packet &b)
EIGEN_DEVICE_FUNC Packet4f pgather< float, Packet4f >(const float *from, Index stride)
EIGEN_STRONG_INLINE void prefetch< double >(const double *addr)
static Packet16uc p16uc_TRANSPOSE64_HI
EIGEN_STRONG_INLINE Packet4i psub< Packet4i >(const Packet4i &a, const Packet4i &b)
EIGEN_STRONG_INLINE Packet4f psub< Packet4f >(const Packet4f &a, const Packet4f &b)
EIGEN_DEVICE_FUNC Packet pmax(const Packet &a, const Packet &b)
static Packet16uc p16uc_PSET64_LO
EIGEN_STRONG_INLINE Packet4i pblend(const Selector< 4 > &ifPacket, const Packet4i &thenPacket, const Packet4i &elsePacket)
EIGEN_STRONG_INLINE Packet4i pset1< Packet4i >(const int &from)
EIGEN_STRONG_INLINE Packet2d por< Packet2d >(const Packet2d &a, const Packet2d &b)
EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf &a)
EIGEN_STRONG_INLINE float predux_mul< Packet4f >(const Packet4f &a)
EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f &a)
const Product< Lhs, Rhs > prod(const Lhs &lhs, const Rhs &rhs)
EIGEN_STRONG_INLINE Packet4f pand< Packet4f >(const Packet4f &a, const Packet4f &b)