11 #ifndef EIGEN_COMPLEX_NEON_H
12 #define EIGEN_COMPLEX_NEON_H
15 #include "../../InternalHeaderCheck.h"
23 #if EIGEN_COMP_CLANG || EIGEN_COMP_CASTXML
24 uint32x4_t
ret = {0x00000000, 0x80000000, 0x00000000, 0x80000000};
27 static const uint32_t conj_XOR_DATA[] = {0x00000000, 0x80000000, 0x00000000, 0x80000000};
28 return vld1q_u32(conj_XOR_DATA);
33 static const uint32_t conj_XOR_DATA[] = {0x00000000, 0x80000000};
34 return vld1_u32(conj_XOR_DATA);
51 struct packet_traits<std::
complex<float> > : default_packet_traits {
77 typedef std::complex<float>
type;
89 struct unpacket_traits<Packet2cf> {
90 typedef std::complex<float>
type;
104 return Packet1cf(vset_lane_f32(
a, vdup_n_f32(0.f), 0));
108 return Packet2cf(vreinterpretq_f32_u64(vmovl_u32(vreinterpret_u32_f32(
a))));
118 return Packet2cf(vdupq_n_f32(0.0f));
123 return Packet1cf(vld1_f32(
reinterpret_cast<const float*
>(&from)));
127 const float32x2_t r64 = vld1_f32(
reinterpret_cast<const float*
>(&from));
128 return Packet2cf(vcombine_f32(r64, r64));
155 return Packet2cf(pnegate<Packet4f>(
a.v));
166 return Packet2cf(vreinterpretq_f32_u32(veorq_u32(
b,
p4ui_CONJ_XOR())));
169 #ifdef __ARM_FEATURE_COMPLEX
171 EIGEN_STRONG_INLINE Packet1cf pmadd<Packet1cf>(
const Packet1cf&
a,
const Packet1cf&
b,
const Packet1cf&
c) {
173 result.v = vcmla_f32(
c.v,
a.v,
b.v);
174 result.v = vcmla_rot90_f32(result.v,
a.v,
b.v);
188 v1 = vdup_lane_f32(
a.v, 0);
190 v2 = vdup_lane_f32(
a.v, 1);
192 v1 = vmul_f32(
v1,
b.v);
194 v2 = vmul_f32(
v2,
b.v);
204 #ifdef __ARM_FEATURE_COMPLEX
208 result.
v = vcmlaq_f32(
c.v,
a.v,
b.v);
209 result.v = vcmlaq_rot90_f32(result.v,
a.v,
b.v);
223 v1 = vcombine_f32(vdup_lane_f32(vget_low_f32(
a.v), 0), vdup_lane_f32(vget_high_f32(
a.v), 0));
225 v2 = vcombine_f32(vdup_lane_f32(vget_low_f32(
a.v), 1), vdup_lane_f32(vget_high_f32(
a.v), 1));
227 v1 = vmulq_f32(
v1,
b.v);
229 v2 = vmulq_f32(
v2,
b.v);
231 v2 = vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(
v2),
p4ui_CONJ_XOR()));
233 v2 = vrev64q_f32(
v2);
235 return Packet2cf(vaddq_f32(
v1,
v2));
246 Packet2f eq_swapped = vrev64_f32(eq);
257 Packet4f eq_swapped = vrev64q_f32(eq);
264 return Packet1cf(vreinterpret_f32_u32(vand_u32(vreinterpret_u32_f32(
a.v), vreinterpret_u32_f32(
b.v))));
268 return Packet2cf(vreinterpretq_f32_u32(vandq_u32(vreinterpretq_u32_f32(
a.v), vreinterpretq_u32_f32(
b.v))));
273 return Packet1cf(vreinterpret_f32_u32(vorr_u32(vreinterpret_u32_f32(
a.v), vreinterpret_u32_f32(
b.v))));
277 return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(
a.v), vreinterpretq_u32_f32(
b.v))));
282 return Packet1cf(vreinterpret_f32_u32(veor_u32(vreinterpret_u32_f32(
a.v), vreinterpret_u32_f32(
b.v))));
286 return Packet2cf(vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(
a.v), vreinterpretq_u32_f32(
b.v))));
291 return Packet1cf(vreinterpret_f32_u32(vbic_u32(vreinterpret_u32_f32(
a.v), vreinterpret_u32_f32(
b.v))));
295 return Packet2cf(vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(
a.v), vreinterpretq_u32_f32(
b.v))));
330 EIGEN_STRONG_INLINE void pstore<std::complex<float> >(std::complex<float>* to,
const Packet2cf& from) {
339 EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float>* to,
const Packet2cf& from) {
350 EIGEN_DEVICE_FUNC inline Packet2cf pgather<std::complex<float>, Packet2cf>(
const std::complex<float>* from,
356 return Packet2cf(
res);
362 to[stride * 0] = std::complex<float>(vget_lane_f32(from.v, 0), vget_lane_f32(from.v, 1));
365 EIGEN_DEVICE_FUNC inline void pscatter<std::complex<float>, Packet2cf>(std::complex<float>* to,
const Packet2cf& from,
367 to[stride * 0] = std::complex<float>(vgetq_lane_f32(from.v, 0), vgetq_lane_f32(from.v, 1));
368 to[stride * 1] = std::complex<float>(vgetq_lane_f32(from.v, 2), vgetq_lane_f32(from.v, 3));
379 vst1_f32(
reinterpret_cast<float*
>(&
x),
a.v);
385 vst1q_f32(
reinterpret_cast<float*
>(
x),
a.v);
395 return Packet2cf(vcombine_f32(vget_high_f32(
a.v), vget_low_f32(
a.v)));
404 return Packet2cf(vrev64q_f32(
a.v));
409 std::complex<float>
s;
410 vst1_f32((
float*)&
s,
a.v);
415 std::complex<float>
s;
416 vst1_f32(
reinterpret_cast<float*
>(&
s), vadd_f32(vget_low_f32(
a.v), vget_high_f32(
a.v)));
422 std::complex<float>
s;
423 vst1_f32((
float*)&
s,
a.v);
429 std::complex<float>
s;
431 a1 = vget_low_f32(
a.v);
432 a2 = vget_high_f32(
a.v);
434 v1 = vdup_lane_f32(a1, 0);
436 v2 = vdup_lane_f32(a1, 1);
438 v1 = vmul_f32(
v1, a2);
440 v2 = vmul_f32(
v2, a2);
448 vst1_f32(
reinterpret_cast<float*
>(&
s),
prod);
467 Packet4f tmp = vcombine_f32(vget_high_f32(kernel.packet[0].v), vget_high_f32(kernel.packet[1].v));
468 kernel.packet[0].v = vcombine_f32(vget_low_f32(kernel.packet[0].v), vget_low_f32(kernel.packet[1].v));
469 kernel.packet[1].v =
tmp;
474 return psqrt_complex<Packet1cf>(
a);
479 return psqrt_complex<Packet2cf>(
a);
503 #if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG
505 inline uint64x2_t p2ul_CONJ_XOR() {
506 static const uint64_t p2ul_conj_XOR_DATA[] = {0x0, 0x8000000000000000};
507 return vld1q_u64(p2ul_conj_XOR_DATA);
517 struct packet_traits<std::
complex<double> > : default_packet_traits {
518 typedef Packet1cd
type;
519 typedef Packet1cd
half;
541 struct unpacket_traits<Packet1cd> {
542 typedef std::complex<double>
type;
543 typedef Packet1cd
half;
566 return Packet1cd(vdupq_n_f64(0.0));
587 return Packet1cd(pnegate<Packet2d>(
a.v));
592 return Packet1cd(vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(
a.v), p2ul_CONJ_XOR())));
595 #ifdef __ARM_FEATURE_COMPLEX
599 result.
v = vcmlaq_f64(
c.v,
a.v,
b.v);
600 result.v = vcmlaq_rot90_f64(result.v,
a.v,
b.v);
614 v1 = vdupq_lane_f64(vget_low_f64(
a.v), 0);
616 v2 = vdupq_lane_f64(vget_high_f64(
a.v), 0);
618 v1 = vmulq_f64(
v1,
b.v);
620 v2 = vmulq_f64(
v2,
b.v);
622 v2 = vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(
v2), p2ul_CONJ_XOR()));
624 v2 = preverse<Packet2d>(
v2);
626 return Packet1cd(vaddq_f64(
v1,
v2));
637 Packet2d eq_swapped = vreinterpretq_f64_u32(vrev64q_u32(vreinterpretq_u32_f64(eq)));
644 return Packet1cd(vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(
a.v), vreinterpretq_u64_f64(
b.v))));
649 return Packet1cd(vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(
a.v), vreinterpretq_u64_f64(
b.v))));
654 return Packet1cd(vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(
a.v), vreinterpretq_u64_f64(
b.v))));
659 return Packet1cd(vreinterpretq_f64_u64(vbicq_u64(vreinterpretq_u64_f64(
a.v), vreinterpretq_u64_f64(
b.v))));
668 EIGEN_STRONG_INLINE void pstore<std::complex<double> >(std::complex<double>* to,
const Packet1cd& from) {
673 EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double>* to,
const Packet1cd& from) {
678 EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(
const std::complex<double>* addr) {
683 EIGEN_DEVICE_FUNC inline Packet1cd pgather<std::complex<double>, Packet1cd>(
const std::complex<double>* from,
688 return Packet1cd(
res);
692 EIGEN_DEVICE_FUNC inline void pscatter<std::complex<double>, Packet1cd>(std::complex<double>* to,
const Packet1cd& from,
694 to[stride * 0] = std::complex<double>(vgetq_lane_f64(from.v, 0), vgetq_lane_f64(from.v, 1));
700 pstore<std::complex<double> >(&
res,
a);
731 Packet2d tmp = vcombine_f64(vget_high_f64(kernel.packet[0].v), vget_high_f64(kernel.packet[1].v));
732 kernel.packet[0].v = vcombine_f64(vget_low_f64(kernel.packet[0].v), vget_low_f64(kernel.packet[1].v));
733 kernel.packet[1].v =
tmp;
738 return psqrt_complex<Packet1cd>(
a);
AnnoyingScalar imag(const AnnoyingScalar &)
Definition: AnnoyingScalar.h:132
#define EIGEN_MAKE_CONJ_HELPER_CPLX_REAL(PACKET_CPLX, PACKET_REAL)
Definition: ConjHelper.h:14
#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_DEVICE_FUNC
Definition: Macros.h:892
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
#define EIGEN_ARM_PREFETCH(ADDR)
Definition: NEON/PacketMath.h:172
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
Map< RowVectorXf > v2(M2.data(), M2.size())
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
Scalar * b
Definition: benchVecAdd.cpp:17
float real
Definition: datatypes.h:10
@ Aligned16
Definition: Constants.h:237
RealScalar s
Definition: level1_cplx_impl.h:130
Eigen::DenseIndex ret
Definition: level1_cplx_impl.h:43
const Scalar * a
Definition: level2_cplx_impl.h:32
Eigen::Matrix< Scalar, Dynamic, Dynamic, ColMajor > tmp
Definition: level3_impl.h:365
uint32x2_t p2ui_CONJ_XOR()
Definition: NEON/Complex.h:32
__m128d Packet2d
Definition: LSX/PacketMath.h:36
EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf &a)
Definition: AltiVec/Complex.h:268
EIGEN_STRONG_INLINE std::complex< float > predux_mul< Packet2cf >(const Packet2cf &a)
Definition: AltiVec/Complex.h:318
EIGEN_STRONG_INLINE std::complex< float > predux< Packet2cf >(const Packet2cf &a)
Definition: AltiVec/Complex.h:310
EIGEN_STRONG_INLINE Packet2d pcmp_eq< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:1135
EIGEN_STRONG_INLINE Packet2d padd< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:605
uint32x2_t Packet2ui
Definition: NEON/PacketMath.h:89
EIGEN_STRONG_INLINE Packet8f pzero(const Packet8f &)
Definition: AVX/PacketMath.h:774
EIGEN_STRONG_INLINE Packet2f pand< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: NEON/PacketMath.h:1899
EIGEN_STRONG_INLINE Packet2cf psqrt< Packet2cf >(const Packet2cf &a)
Definition: AltiVec/Complex.h:370
EIGEN_STRONG_INLINE Packet4f padd< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1066
EIGEN_STRONG_INLINE Packet4f pcmp_eq< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: LSX/PacketMath.h:1131
EIGEN_STRONG_INLINE std::complex< double > predux_mul< Packet1cd >(const Packet1cd &a)
Definition: LSX/Complex.h:420
EIGEN_STRONG_INLINE Packet2cf pandnot< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:285
EIGEN_STRONG_INLINE Packet1cf psqrt< Packet1cf >(const Packet1cf &a)
Definition: NEON/Complex.h:473
EIGEN_STRONG_INLINE Packet1cf padd< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: NEON/Complex.h:132
EIGEN_STRONG_INLINE Packet2d pand< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: LSX/PacketMath.h:880
EIGEN_STRONG_INLINE Packet2f pcmp_eq< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: NEON/PacketMath.h:1804
EIGEN_STRONG_INLINE Packet1cd psqrt< Packet1cd >(const Packet1cd &a)
Definition: LSX/Complex.h:462
EIGEN_STRONG_INLINE void ptranspose(PacketBlock< Packet2cf, 2 > &kernel)
Definition: AltiVec/Complex.h:339
EIGEN_STRONG_INLINE Packet1cd plog< Packet1cd >(const Packet1cd &a)
Definition: LSX/Complex.h:472
EIGEN_STRONG_INLINE Packet1cf por< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: NEON/Complex.h:272
EIGEN_STRONG_INLINE Packet2cf ploaddup< Packet2cf >(const std::complex< float > *from)
Definition: AltiVec/Complex.h:162
EIGEN_STRONG_INLINE Packet1cf pand< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: NEON/Complex.h:263
EIGEN_STRONG_INLINE Packet2cf pmul< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: LSX/Complex.h:95
EIGEN_STRONG_INLINE Packet1cd pzero< Packet1cd >(const Packet1cd &)
Definition: LSX/Complex.h:477
EIGEN_STRONG_INLINE std::complex< float > predux_mul< Packet1cf >(const Packet1cf &a)
Definition: NEON/Complex.h:421
EIGEN_STRONG_INLINE Packet1cd pmul< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: LSX/Complex.h:327
EIGEN_STRONG_INLINE Packet2d pset1< Packet2d >(const double &from)
Definition: LSX/PacketMath.h:503
EIGEN_STRONG_INLINE std::complex< float > pfirst< Packet2cf >(const Packet2cf &a)
Definition: AltiVec/Complex.h:295
EIGEN_STRONG_INLINE Packet4f pload< Packet4f >(const float *from)
Definition: AltiVec/PacketMath.h:492
EIGEN_STRONG_INLINE Packet1cd ploadu< Packet1cd >(const std::complex< double > *from)
Definition: LSX/Complex.h:373
EIGEN_STRONG_INLINE Packet2cf por< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:277
EIGEN_STRONG_INLINE Packet2cf pset1< Packet2cf >(const std::complex< float > &from)
Definition: AltiVec/Complex.h:125
EIGEN_STRONG_INLINE Packet1cf pcast< float, Packet1cf >(const float &a)
Definition: NEON/Complex.h:103
__vector unsigned int Packet4ui
Definition: AltiVec/PacketMath.h:35
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog_complex(const Packet &x)
Definition: GenericPacketMathFunctions.h:1338
EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf &a)
Definition: AltiVec/Complex.h:303
static Packet4ui p4ui_CONJ_XOR
Definition: AltiVec/Complex.h:21
EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f &a, const Packet4f &b, const Packet4f &c)
Definition: AltiVec/PacketMath.h:1218
EIGEN_STRONG_INLINE Packet2cf pcplxflip(const Packet2cf &x)
Definition: LSX/Complex.h:218
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pexp_complex(const Packet &a)
Definition: GenericPacketMathFunctions.h:1366
EIGEN_STRONG_INLINE Packet2d pload< Packet2d >(const double *from)
Definition: LSX/PacketMath.h:1407
EIGEN_STRONG_INLINE Packet1cf pload< Packet1cf >(const std::complex< float > *from)
Definition: NEON/Complex.h:299
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pdiv_complex(const Packet &x, const Packet &y)
Definition: GenericPacketMathFunctions.h:1318
EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf &a)
Definition: AltiVec/Complex.h:264
EIGEN_STRONG_INLINE Packet1cd pxor< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: LSX/Complex.h:355
EIGEN_STRONG_INLINE Packet2cf pdiv< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:330
EIGEN_STRONG_INLINE Packet1cf ploaddup< Packet1cf >(const std::complex< float > *from)
Definition: NEON/Complex.h:317
EIGEN_STRONG_INLINE Packet1cf ploadu< Packet1cf >(const std::complex< float > *from)
Definition: NEON/Complex.h:308
EIGEN_STRONG_INLINE Packet1cd padd< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: LSX/Complex.h:305
EIGEN_STRONG_INLINE Packet2cf ploadu< Packet2cf >(const std::complex< float > *from)
Definition: AltiVec/Complex.h:148
EIGEN_STRONG_INLINE Packet1cf pset1< Packet1cf >(const std::complex< float > &from)
Definition: NEON/Complex.h:122
EIGEN_STRONG_INLINE Packet1cf pcplxflip< Packet1cf >(const Packet1cf &a)
Definition: NEON/Complex.h:399
EIGEN_STRONG_INLINE Packet1cf pmul< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: NEON/Complex.h:184
EIGEN_STRONG_INLINE Packet1cd ploaddup< Packet1cd >(const std::complex< double > *from)
Definition: LSX/Complex.h:383
EIGEN_STRONG_INLINE Packet2cf pload< Packet2cf >(const std::complex< float > *from)
Definition: AltiVec/Complex.h:144
EIGEN_STRONG_INLINE Packet1cf pandnot< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: NEON/Complex.h:290
EIGEN_STRONG_INLINE bfloat16 pfirst(const Packet8bf &a)
Definition: AltiVec/PacketMath.h:2418
EIGEN_STRONG_INLINE std::complex< double > predux< Packet1cd >(const Packet1cd &a)
Definition: LSX/Complex.h:415
float32x2_t Packet2f
Definition: NEON/PacketMath.h:75
EIGEN_STRONG_INLINE Packet1cf pexp< Packet1cf >(const Packet1cf &a)
Definition: NEON/Complex.h:493
EIGEN_DEVICE_FUNC void pstore(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:891
EIGEN_STRONG_INLINE Packet2d ploadu< Packet2d >(const double *from)
Definition: LSX/PacketMath.h:1448
EIGEN_STRONG_INLINE Packet1cd pmadd< Packet1cd >(const Packet1cd &a, const Packet1cd &b, const Packet1cd &c)
Definition: LSX/Complex.h:483
EIGEN_STRONG_INLINE Packet2cf pcast< Packet2f, Packet2cf >(const Packet2f &a)
Definition: NEON/Complex.h:107
EIGEN_STRONG_INLINE Packet1cd pload< Packet1cd >(const std::complex< double > *from)
Definition: LSX/Complex.h:369
EIGEN_STRONG_INLINE Packet2cf pcplxflip< Packet2cf >(const Packet2cf &x)
Definition: AltiVec/Complex.h:335
EIGEN_STRONG_INLINE Packet1cd pand< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: LSX/Complex.h:343
EIGEN_STRONG_INLINE Packet2f ploadu< Packet2f >(const float *from)
Definition: NEON/PacketMath.h:2463
EIGEN_STRONG_INLINE Packet2cf pand< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:273
EIGEN_STRONG_INLINE Packet2cf pmadd< Packet2cf >(const Packet2cf &a, const Packet2cf &b, const Packet2cf &c)
Definition: LSX/Complex.h:241
EIGEN_STRONG_INLINE Packet2cf pcmp_eq(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:353
EIGEN_STRONG_INLINE Packet2cf pexp< Packet2cf >(const Packet2cf &a)
Definition: AltiVec/Complex.h:380
EIGEN_STRONG_INLINE Packet1cd pandnot< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: LSX/Complex.h:361
EIGEN_DEVICE_FUNC void pstoreu(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:911
EIGEN_STRONG_INLINE Packet2cf pxor< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:281
EIGEN_STRONG_INLINE Packet2f padd< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: NEON/PacketMath.h:840
EIGEN_STRONG_INLINE Packet4f ploadu< Packet4f >(const float *from)
Definition: AltiVec/PacketMath.h:1533
EIGEN_STRONG_INLINE Packet2cf psub< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:260
EIGEN_STRONG_INLINE Packet4f pand< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1406
EIGEN_STRONG_INLINE Packet2cf plog< Packet2cf >(const Packet2cf &a)
Definition: AltiVec/Complex.h:375
EIGEN_STRONG_INLINE Packet1cf plog< Packet1cf >(const Packet1cf &a)
Definition: NEON/Complex.h:483
EIGEN_STRONG_INLINE Packet1cf pxor< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: NEON/Complex.h:281
EIGEN_STRONG_INLINE std::complex< float > predux< Packet1cf >(const Packet1cf &a)
Definition: NEON/Complex.h:408
EIGEN_STRONG_INLINE Packet2cf padd< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:256
EIGEN_STRONG_INLINE Packet1cd por< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: LSX/Complex.h:349
__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 Packet1cd pset1< Packet1cd >(const std::complex< double > &from)
Definition: LSX/Complex.h:378
EIGEN_STRONG_INLINE std::complex< double > pfirst< Packet1cd >(const Packet1cd &a)
Definition: LSX/Complex.h:403
EIGEN_STRONG_INLINE Packet1cd pdiv< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: LSX/Complex.h:427
EIGEN_STRONG_INLINE std::complex< float > pfirst< Packet1cf >(const Packet1cf &a)
Definition: NEON/Complex.h:377
EIGEN_STRONG_INLINE Packet1cf pdiv< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: NEON/Complex.h:457
EIGEN_STRONG_INLINE Packet1cf psub< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: NEON/Complex.h:141
EIGEN_STRONG_INLINE Packet2f pload< Packet2f >(const float *from)
Definition: NEON/PacketMath.h:2386
EIGEN_STRONG_INLINE Packet2f psub< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: NEON/PacketMath.h:915
EIGEN_STRONG_INLINE Packet1cd psub< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: LSX/Complex.h:309
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
EIGEN_STRONG_INLINE Packet1cd()
Definition: LSX/Complex.h:261
Packet2d v
Definition: LSX/Complex.h:263
Definition: NEON/Complex.h:39
EIGEN_STRONG_INLINE Packet1cf()
Definition: NEON/Complex.h:40
Packet2f v
Definition: NEON/Complex.h:42
EIGEN_STRONG_INLINE Packet1cf(const Packet2f &a)
Definition: NEON/Complex.h:41
Definition: AltiVec/Complex.h:38
Packet4f v
Definition: AltiVec/Complex.h:78
EIGEN_STRONG_INLINE Packet2cf()
Definition: NEON/Complex.h:45
EIGEN_STRONG_INLINE Packet2cf(const Packet4f &a)
Definition: NEON/Complex.h:46
Definition: GenericPacketMath.h:1407
@ HasExp
Definition: GenericPacketMath.h:75
@ HasSqrt
Definition: GenericPacketMath.h:73
@ HasLog
Definition: GenericPacketMath.h:77
@ HasDiv
Definition: GenericPacketMath.h:71
Packet2cf type
Definition: NEON/Complex.h:52
Packet1cf half
Definition: NEON/Complex.h:53
T type
Definition: GenericPacketMath.h:109
@ size
Definition: GenericPacketMath.h:113
@ AlignedOnScalar
Definition: GenericPacketMath.h:114
@ Vectorizable
Definition: GenericPacketMath.h:112
T half
Definition: GenericPacketMath.h:110
@ 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
@ HasAbs2
Definition: GenericPacketMath.h:122
@ HasAbs
Definition: GenericPacketMath.h:121
Packet2f as_real
Definition: NEON/Complex.h:79
Packet1cf half
Definition: NEON/Complex.h:78
std::complex< float > type
Definition: NEON/Complex.h:77
std::complex< float > type
Definition: NEON/Complex.h:90
Packet4f as_real
Definition: NEON/Complex.h:92
Packet1cf half
Definition: NEON/Complex.h:91
Definition: GenericPacketMath.h:134
T type
Definition: GenericPacketMath.h:135
T half
Definition: GenericPacketMath.h:136
@ 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: datatypes.h:12