13 #ifndef EIGEN_PACKET_MATH_MSA_H
14 #define EIGEN_PACKET_MATH_MSA_H
20 #include "../../InternalHeaderCheck.h"
26 #ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
27 #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
30 #ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
31 #define EIGEN_HAS_SINGLE_INSTRUCTION_MADD
34 #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
35 #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 32
39 #define EIGEN_MSA_DEBUG \
40 static bool firstTime = true; \
43 std::cout << __FILE__ << ':' << __LINE__ << ':' << __FUNCTION__ << std::endl; \
48 #define EIGEN_MSA_DEBUG
51 #define EIGEN_MSA_SHF_I8(a, b, c, d) (((d) << 6) | ((c) << 4) | ((b) << 2) | (a))
57 #define EIGEN_DECLARE_CONST_Packet4f(NAME, X) const Packet4f p4f_##NAME = {X, X, X, X}
58 #define EIGEN_DECLARE_CONST_Packet4i(NAME, X) const Packet4i p4i_##NAME = {X, X, X, X}
59 #define EIGEN_DECLARE_CONST_Packet4ui(NAME, X) const Packet4ui p4ui_##NAME = {X, X, X, X}
77 struct packet_traits<float> : default_packet_traits {
99 struct packet_traits<
int32_t> : default_packet_traits {
150 return __builtin_msa_fill_w(from);
166 return __builtin_msa_fill_w(*from);
173 return __builtin_msa_fadd_w(
a,
b);
180 return __builtin_msa_addv_w(
a,
b);
187 static const Packet4f countdown = {0.0f, 1.0f, 2.0f, 3.0f};
195 static const Packet4i countdown = {0, 1, 2, 3};
203 return __builtin_msa_fsub_w(
a,
b);
210 return __builtin_msa_subv_w(
a,
b);
217 return (
Packet4f)__builtin_msa_bnegi_w((v4u32)
a, 31);
224 return __builtin_msa_addvi_w((v4i32)__builtin_msa_nori_b((v16u8)
a, 0), 1);
245 return __builtin_msa_fmul_w(
a,
b);
252 return __builtin_msa_mulv_w(
a,
b);
259 return __builtin_msa_fdiv_w(
a,
b);
266 return __builtin_msa_div_s_w(
a,
b);
273 return __builtin_msa_fmadd_w(
c,
a,
b);
282 __asm__(
"maddv.w %w[value], %w[a], %w[b]\n"
286 : [
a]
"f"(
a), [
b]
"f"(
b));
294 return (
Packet4f)__builtin_msa_and_v((v16u8)
a, (v16u8)
b);
301 return (
Packet4i)__builtin_msa_and_v((v16u8)
a, (v16u8)
b);
308 return (
Packet4f)__builtin_msa_or_v((v16u8)
a, (v16u8)
b);
315 return (
Packet4i)__builtin_msa_or_v((v16u8)
a, (v16u8)
b);
322 return (
Packet4f)__builtin_msa_xor_v((v16u8)
a, (v16u8)
b);
329 return (
Packet4i)__builtin_msa_xor_v((v16u8)
a, (v16u8)
b);
352 return __builtin_msa_fmin_w(
a,
b);
357 return (
Packet4f)__builtin_msa_bsel_v((v16u8)aMinOrNaN, (v16u8)
b, (v16u8)
a);
365 return __builtin_msa_min_s_w(
a,
b);
374 return __builtin_msa_fmax_w(
a,
b);
379 return (
Packet4f)__builtin_msa_bsel_v((v16u8)aMaxOrNaN, (v16u8)
b, (v16u8)
a);
387 return __builtin_msa_max_s_w(
a,
b);
422 float f0 = from[0],
f1 = from[1];
425 return (
Packet4f)__builtin_msa_ilvr_d((v2i64)
v1, (v2i64)v0);
432 int32_t i0 = from[0], i1 = from[1];
435 return (
Packet4i)__builtin_msa_ilvr_d((v2i64)
v1, (v2i64)v0);
473 v[2] = from[2 * stride];
474 v[3] = from[3 * stride];
485 v[2] = from[2 * stride];
486 v[3] = from[3 * stride];
520 __builtin_prefetch(addr);
527 __builtin_prefetch(addr);
562 return (
Packet4f)__builtin_msa_bclri_w((v4u32)
a, 31);
570 return __builtin_msa_add_a_w(
zero,
a);
621 v16u8 unord = (v16u8)__builtin_msa_fcun_w(
a, swapped);
623 unord = (v16u8)__builtin_msa_ceqi_d((v2i64)unord, 0);
626 Packet4f v = __builtin_msa_fmin_w(
a, swapped);
630 v16u8 qnans = (v16u8)__builtin_msa_fill_w(0x7FC00000);
631 v = (
Packet4f)__builtin_msa_bsel_v(unord, qnans, (v16u8)
v);
655 v16u8 unord = (v16u8)__builtin_msa_fcun_w(
a, swapped);
657 unord = (v16u8)__builtin_msa_ceqi_d((v2i64)unord, 0);
660 Packet4f v = __builtin_msa_fmax_w(
a, swapped);
664 v16u8 qnans = (v16u8)__builtin_msa_fill_w(0x7FC00000);
665 v = (
Packet4f)__builtin_msa_bsel_v(unord, qnans, (v16u8)
v);
680 os <<
"[ " <<
value.packet[0] <<
"," << std::endl
681 <<
" " <<
value.packet[1] <<
"," << std::endl
682 <<
" " <<
value.packet[2] <<
"," << std::endl
683 <<
" " <<
value.packet[3] <<
" ]";
690 v4i32 tmp1, tmp2, tmp3, tmp4;
692 tmp1 = __builtin_msa_ilvr_w((v4i32)kernel.packet[1], (v4i32)kernel.packet[0]);
693 tmp2 = __builtin_msa_ilvr_w((v4i32)kernel.packet[3], (v4i32)kernel.packet[2]);
694 tmp3 = __builtin_msa_ilvl_w((v4i32)kernel.packet[1], (v4i32)kernel.packet[0]);
695 tmp4 = __builtin_msa_ilvl_w((v4i32)kernel.packet[3], (v4i32)kernel.packet[2]);
697 kernel.packet[0] = (
Packet4f)__builtin_msa_ilvr_d((v2i64)tmp2, (v2i64)tmp1);
698 kernel.packet[1] = (
Packet4f)__builtin_msa_ilvod_d((v2i64)tmp2, (v2i64)tmp1);
699 kernel.packet[2] = (
Packet4f)__builtin_msa_ilvr_d((v2i64)tmp4, (v2i64)tmp3);
700 kernel.packet[3] = (
Packet4f)__builtin_msa_ilvod_d((v2i64)tmp4, (v2i64)tmp3);
704 os <<
"[ " <<
value.packet[0] <<
"," << std::endl
705 <<
" " <<
value.packet[1] <<
"," << std::endl
706 <<
" " <<
value.packet[2] <<
"," << std::endl
707 <<
" " <<
value.packet[3] <<
" ]";
714 v4i32 tmp1, tmp2, tmp3, tmp4;
716 tmp1 = __builtin_msa_ilvr_w(kernel.packet[1], kernel.packet[0]);
717 tmp2 = __builtin_msa_ilvr_w(kernel.packet[3], kernel.packet[2]);
718 tmp3 = __builtin_msa_ilvl_w(kernel.packet[1], kernel.packet[0]);
719 tmp4 = __builtin_msa_ilvl_w(kernel.packet[3], kernel.packet[2]);
721 kernel.packet[0] = (
Packet4i)__builtin_msa_ilvr_d((v2i64)tmp2, (v2i64)tmp1);
722 kernel.packet[1] = (
Packet4i)__builtin_msa_ilvod_d((v2i64)tmp2, (v2i64)tmp1);
723 kernel.packet[2] = (
Packet4i)__builtin_msa_ilvr_d((v2i64)tmp4, (v2i64)tmp3);
724 kernel.packet[3] = (
Packet4i)__builtin_msa_ilvod_d((v2i64)tmp4, (v2i64)tmp3);
731 return __builtin_msa_fsqrt_w(
a);
739 return __builtin_msa_frsqrt_w(
a);
741 Packet4f ones = __builtin_msa_ffint_s_w(__builtin_msa_ldi_w(1));
751 "cfcmsa %[old_mode], $1\n"
752 "ori %[new_mode], %[old_mode], 3\n"
753 "ctcmsa $1, %[new_mode]\n"
754 "frint.w %w[v], %w[v]\n"
755 "ctcmsa $1, %[old_mode]\n"
757 [old_mode]
"=r"(old_mode), [new_mode]
"=r"(new_mode),
770 "cfcmsa %[old_mode], $1\n"
771 "ori %[new_mode], %[old_mode], 3\n"
772 "xori %[new_mode], %[new_mode], 1\n"
773 "ctcmsa $1, %[new_mode]\n"
774 "frint.w %w[v], %w[v]\n"
775 "ctcmsa $1, %[old_mode]\n"
777 [old_mode]
"=r"(old_mode), [new_mode]
"=r"(new_mode),
790 "cfcmsa %[old_mode], $1\n"
791 "ori %[new_mode], %[old_mode], 3\n"
792 "xori %[new_mode], %[new_mode], 3\n"
793 "ctcmsa $1, %[new_mode]\n"
794 "frint.w %w[v], %w[v]\n"
795 "ctcmsa $1, %[old_mode]\n"
797 [old_mode]
"=r"(old_mode), [new_mode]
"=r"(new_mode),
808 Packet4ui select = {ifPacket.select[0], ifPacket.select[1], ifPacket.select[2], ifPacket.select[3]};
810 return (
Packet4f)__builtin_msa_bsel_v((v16u8)mask, (v16u8)thenPacket, (v16u8)elsePacket);
816 Packet4ui select = {ifPacket.select[0], ifPacket.select[1], ifPacket.select[2], ifPacket.select[3]};
818 return (
Packet4i)__builtin_msa_bsel_v((v16u8)mask, (v16u8)thenPacket, (v16u8)elsePacket);
827 #define EIGEN_DECLARE_CONST_Packet2d(NAME, X) const Packet2d p2d_##NAME = {X, X}
828 #define EIGEN_DECLARE_CONST_Packet2l(NAME, X) const Packet2l p2l_##NAME = {X, X}
829 #define EIGEN_DECLARE_CONST_Packet2ul(NAME, X) const Packet2ul p2ul_##NAME = {X, X}
832 os <<
"[ " <<
value[0] <<
", " <<
value[1] <<
" ]";
837 os <<
"[ " <<
value[0] <<
", " <<
value[1] <<
" ]";
842 os <<
"[ " <<
value[0] <<
", " <<
value[1] <<
" ]";
847 struct packet_traits<
double> : default_packet_traits {
888 return __builtin_msa_fadd_d(
a,
b);
895 static const Packet2d countdown = {0.0, 1.0};
903 return __builtin_msa_fsub_d(
a,
b);
910 return (
Packet2d)__builtin_msa_bnegi_d((v2u64)
a, 63);
924 return __builtin_msa_fmul_d(
a,
b);
931 return __builtin_msa_fdiv_d(
a,
b);
938 return __builtin_msa_fmadd_d(
c,
a,
b);
947 return (
Packet2d)__builtin_msa_and_v((v16u8)
a, (v16u8)
b);
954 return (
Packet2d)__builtin_msa_or_v((v16u8)
a, (v16u8)
b);
961 return (
Packet2d)__builtin_msa_xor_v((v16u8)
a, (v16u8)
b);
984 return __builtin_msa_fmin_d(
a,
b);
987 v2i64 aNaN = __builtin_msa_fcun_d(
a,
a);
988 v2i64 aMinOrNaN =
por(__builtin_msa_fclt_d(
a,
b), aNaN);
989 return (
Packet2d)__builtin_msa_bsel_v((v16u8)aMinOrNaN, (v16u8)
b, (v16u8)
a);
999 return __builtin_msa_fmax_d(
a,
b);
1002 v2i64 aNaN = __builtin_msa_fcun_d(
a,
a);
1003 v2i64 aMaxOrNaN =
por(__builtin_msa_fclt_d(
b,
a), aNaN);
1004 return (
Packet2d)__builtin_msa_bsel_v((v16u8)aMaxOrNaN, (v16u8)
b, (v16u8)
a);
1061 __builtin_prefetch(addr);
1082 return (
Packet2d)__builtin_msa_bclri_d((v2u64)
a, 63);
1110 Packet2d v = __builtin_msa_fmin_d(
a, swapped);
1113 double a0 =
a[0], a1 =
a[1];
1125 Packet2d v = __builtin_msa_fmax_d(
a, swapped);
1128 double a0 =
a[0], a1 =
a[1];
1137 return __builtin_msa_fsqrt_d(
a);
1145 return __builtin_msa_frsqrt_d(
a);
1147 Packet2d ones = __builtin_msa_ffint_s_d(__builtin_msa_ldi_d(1));
1153 os <<
"[ " <<
value.packet[0] <<
"," << std::endl <<
" " <<
value.packet[1] <<
" ]";
1160 Packet2d trn1 = (
Packet2d)__builtin_msa_ilvev_d((v2i64)kernel.packet[1], (v2i64)kernel.packet[0]);
1161 Packet2d trn2 = (
Packet2d)__builtin_msa_ilvod_d((v2i64)kernel.packet[1], (v2i64)kernel.packet[0]);
1162 kernel.packet[0] = trn1;
1163 kernel.packet[1] = trn2;
1171 "cfcmsa %[old_mode], $1\n"
1172 "ori %[new_mode], %[old_mode], 3\n"
1173 "ctcmsa $1, %[new_mode]\n"
1174 "frint.d %w[v], %w[v]\n"
1175 "ctcmsa $1, %[old_mode]\n"
1177 [old_mode]
"=r"(old_mode), [new_mode]
"=r"(new_mode),
1190 "cfcmsa %[old_mode], $1\n"
1191 "ori %[new_mode], %[old_mode], 3\n"
1192 "xori %[new_mode], %[new_mode], 1\n"
1193 "ctcmsa $1, %[new_mode]\n"
1194 "frint.d %w[v], %w[v]\n"
1195 "ctcmsa $1, %[old_mode]\n"
1197 [old_mode]
"=r"(old_mode), [new_mode]
"=r"(new_mode),
1210 "cfcmsa %[old_mode], $1\n"
1211 "ori %[new_mode], %[old_mode], 3\n"
1212 "xori %[new_mode], %[new_mode], 3\n"
1213 "ctcmsa $1, %[new_mode]\n"
1214 "frint.d %w[v], %w[v]\n"
1215 "ctcmsa $1, %[old_mode]\n"
1217 [old_mode]
"=r"(old_mode), [new_mode]
"=r"(new_mode),
1230 return (
Packet2d)__builtin_msa_bsel_v((v16u8)mask, (v16u8)thenPacket, (v16u8)elsePacket);
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
int i
Definition: BiCGSTAB_step_by_step.cpp:9
MatrixXcf ones
Definition: ComplexEigenSolver_eigenvalues.cpp:1
#define EIGEN_DEBUG_ALIGNED_STORE
Definition: GenericPacketMath.h:38
#define EIGEN_DEBUG_ALIGNED_LOAD
Definition: GenericPacketMath.h:30
#define EIGEN_DEBUG_UNALIGNED_STORE
Definition: GenericPacketMath.h:42
#define EIGEN_DEBUG_UNALIGNED_LOAD
Definition: GenericPacketMath.h:34
#define EIGEN_MSA_SHF_I8(a, b, c, d)
Definition: MSA/PacketMath.h:51
#define EIGEN_MSA_DEBUG
Definition: MSA/PacketMath.h:48
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:892
#define EIGEN_FAST_MATH
Definition: Macros.h:51
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
float * p
Definition: Tutorial_Map_using.cpp:9
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
Scalar * b
Definition: benchVecAdd.cpp:17
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
int * m
Definition: level2_cplx_impl.h:294
EIGEN_STRONG_INLINE Packet4f pandnot< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1465
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 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_DEVICE_FUNC Packet padd(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:318
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
EIGEN_STRONG_INLINE Packet2d pandnot< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:1003
EIGEN_STRONG_INLINE Packet4i pload1< Packet4i >(const int32_t *from)
Definition: MSA/PacketMath.h:163
__vector int Packet4i
Definition: AltiVec/PacketMath.h:34
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 Packet4i pset1< Packet4i >(const int &from)
Definition: AltiVec/PacketMath.h:778
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
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
EIGEN_STRONG_INLINE Packet2d pxor< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:962
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:368
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_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 void prefetch< int32_t >(const int32_t *addr)
Definition: LSX/PacketMath.h:1848
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
EIGEN_STRONG_INLINE Packet4f pload1< Packet4f >(const float *from)
Definition: MSA/PacketMath.h:154
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 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_DEVICE_FUNC EIGEN_STRONG_INLINE void pscatter< int32_t, Packet4i >(int32_t *to, const Packet4i &from, Index stride)
Definition: LSX/PacketMath.h:1771
EIGEN_STRONG_INLINE Packet8h por(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2309
__vector unsigned int Packet4ui
Definition: AltiVec/PacketMath.h:35
EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf &a)
Definition: AltiVec/Complex.h:303
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 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
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
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
EIGEN_STRONG_INLINE Packet2d ploadu< Packet2d >(const double *from)
Definition: LSX/PacketMath.h:1448
EIGEN_STRONG_INLINE Packet4f pxor< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1448
EIGEN_STRONG_INLINE void pstoreu< int32_t >(int32_t *to, const Packet4i &from)
Definition: LSX/PacketMath.h:1591
EIGEN_STRONG_INLINE Packet4i pmin< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1261
EIGEN_STRONG_INLINE Packet4f psqrt(const Packet4f &a)
Definition: LSX/PacketMath.h:2176
EIGEN_STRONG_INLINE Packet8h pand(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2319
EIGEN_STRONG_INLINE void pstore< int32_t >(int32_t *to, const Packet4i &from)
Definition: LSX/PacketMath.h:1549
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
EIGEN_STRONG_INLINE Packet4f pand< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1406
EIGEN_STRONG_INLINE int predux_max< Packet4i >(const Packet4i &a)
Definition: AltiVec/PacketMath.h:2684
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet2d pgather< double, Packet2d >(const double *from, Index stride)
Definition: LSX/PacketMath.h:1621
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet4i pgather< int32_t, Packet4i >(const int32_t *from, Index stride)
Definition: LSX/PacketMath.h:1660
EIGEN_STRONG_INLINE Packet4i pmax< Packet4i >(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1293
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
EIGEN_STRONG_INLINE Packet4f prsqrt(const Packet4f &a)
Definition: LSX/PacketMath.h:2528
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
EIGEN_STRONG_INLINE Packet2d pround< Packet2d >(const Packet2d &a)
Definition: MSA/PacketMath.h:1206
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_STRONG_INLINE Packet2d pfloor< Packet2d >(const Packet2d &a)
Definition: MSA/PacketMath.h:1167
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
EIGEN_STRONG_INLINE Packet4f pmax< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1282
std::int32_t int32_t
Definition: Meta.h:41
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool() isnan(const Eigen::bfloat16 &h)
Definition: BFloat16.h:742
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
squared absolute value
Definition: GlobalFunctions.h:87
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
double f1(const Vector< double > &coord)
f1 function, in front of the C1 unknown
Definition: poisson/poisson_with_singularity/two_d_poisson.cc:147
int c
Definition: calibrate.py:100
Definition: Eigen_Colamd.h:49
Definition: GenericPacketMath.h:1407
Definition: GenericPacketMath.h:1421
bool select[N]
Definition: GenericPacketMath.h:1422
@ 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: MSA/PacketMath.h:849
Packet2d type
Definition: MSA/PacketMath.h:848
Packet4f type
Definition: MSA/PacketMath.h:78
Packet4f half
Definition: MSA/PacketMath.h:79
Packet4i half
Definition: MSA/PacketMath.h:101
Packet4i type
Definition: MSA/PacketMath.h:100
@ size
Definition: GenericPacketMath.h:113
@ AlignedOnScalar
Definition: GenericPacketMath.h:114
@ Vectorizable
Definition: GenericPacketMath.h:112
double type
Definition: MSA/PacketMath.h:865
Packet2d half
Definition: MSA/PacketMath.h:873
Packet4f half
Definition: MSA/PacketMath.h:122
float type
Definition: MSA/PacketMath.h:114
int32_t type
Definition: MSA/PacketMath.h:127
Packet4i half
Definition: MSA/PacketMath.h:135
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
EIGEN_DONT_INLINE Scalar zero()
Definition: svd_common.h:232