11#ifndef EIGEN_COMPLEX_NEON_H
12#define EIGEN_COMPLEX_NEON_H
21#if EIGEN_COMP_CLANG || EIGEN_COMP_CASTXML
22 uint32x4_t ret = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
25 static const uint32_t conj_XOR_DATA[] = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
26 return vld1q_u32( conj_XOR_DATA );
32 static const uint32_t conj_XOR_DATA[] = { 0x00000000, 0x80000000 };
33 return vld1_u32( conj_XOR_DATA );
51template<>
struct packet_traits<
std::complex<float> > : default_packet_traits
77 typedef std::complex<float>
type;
89template<>
struct unpacket_traits<Packet2cf>
91 typedef std::complex<float>
type;
105{
return Packet1cf(vset_lane_f32(a, vdup_n_f32(0.f), 0)); }
107{
return Packet2cf(vreinterpretq_f32_u64(vmovl_u32(vreinterpret_u32_f32(a)))); }
110{
return Packet1cf(vld1_f32(
reinterpret_cast<const float*
>(&
from))); }
113 const float32x2_t r64 = vld1_f32(
reinterpret_cast<const float*
>(&
from));
114 return Packet2cf(vcombine_f32(r64, r64));
146 v1 = vdup_lane_f32(a.
v, 0);
148 v2 = vdup_lane_f32(a.
v, 1);
150 v1 = vmul_f32(v1,
b.v);
152 v2 = vmul_f32(v2,
b.v);
154 v2 = vreinterpret_f32_u32(veor_u32(vreinterpret_u32_f32(v2),
p2ui_CONJ_XOR()));
165 v1 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.
v), 0), vdup_lane_f32(vget_high_f32(a.
v), 0));
167 v2 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.
v), 1), vdup_lane_f32(vget_high_f32(a.
v), 1));
169 v1 = vmulq_f32(v1,
b.v);
171 v2 = vmulq_f32(v2,
b.v);
173 v2 = vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(v2),
p4ui_CONJ_XOR()));
175 v2 = vrev64q_f32(v2);
187 Packet2f eq_swapped = vrev64_f32(eq);
198 Packet4f eq_swapped = vrev64q_f32(eq);
204{
return Packet1cf(vreinterpret_f32_u32(vand_u32(vreinterpret_u32_f32(a.
v), vreinterpret_u32_f32(
b.v)))); }
206{
return Packet2cf(vreinterpretq_f32_u32(vandq_u32(vreinterpretq_u32_f32(a.
v), vreinterpretq_u32_f32(
b.v)))); }
209{
return Packet1cf(vreinterpret_f32_u32(vorr_u32(vreinterpret_u32_f32(a.
v), vreinterpret_u32_f32(
b.v)))); }
211{
return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a.
v), vreinterpretq_u32_f32(
b.v)))); }
214{
return Packet1cf(vreinterpret_f32_u32(veor_u32(vreinterpret_u32_f32(a.
v), vreinterpret_u32_f32(
b.v)))); }
216{
return Packet2cf(vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a.
v), vreinterpretq_u32_f32(
b.v)))); }
219{
return Packet1cf(vreinterpret_f32_u32(vbic_u32(vreinterpret_u32_f32(a.
v), vreinterpret_u32_f32(
b.v)))); }
221{
return Packet2cf(vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a.
v), vreinterpretq_u32_f32(
b.v)))); }
249 const std::complex<float>*
from,
Index stride)
255 const std::complex<float>*
from,
Index stride)
266{ to[stride*0] = std::complex<float>(vget_lane_f32(
from.v, 0), vget_lane_f32(
from.v, 1)); }
270 to[stride*0] = std::complex<float>(vgetq_lane_f32(
from.v, 0), vgetq_lane_f32(
from.v, 1));
271 to[stride*1] = std::complex<float>(vgetq_lane_f32(
from.v, 2), vgetq_lane_f32(
from.v, 3));
280 vst1_f32(
reinterpret_cast<float*
>(&x), a.
v);
286 vst1q_f32(
reinterpret_cast<float*
>(x), a.
v);
292{
return Packet2cf(vcombine_f32(vget_high_f32(a.
v), vget_low_f32(a.
v))); }
301 std::complex<float> s;
302 vst1_f32((
float *)&s, a.
v);
307 std::complex<float> s;
308 vst1_f32(
reinterpret_cast<float*
>(&s), vadd_f32(vget_low_f32(a.
v), vget_high_f32(a.
v)));
314 std::complex<float> s;
315 vst1_f32((
float *)&s, a.
v);
320 float32x2_t a1, a2, v1, v2, prod;
321 std::complex<float> s;
323 a1 = vget_low_f32(a.
v);
324 a2 = vget_high_f32(a.
v);
326 v1 = vdup_lane_f32(a1, 0);
328 v2 = vdup_lane_f32(a1, 1);
330 v1 = vmul_f32(v1, a2);
332 v2 = vmul_f32(v2, a2);
334 v2 = vreinterpret_f32_u32(veor_u32(vreinterpret_u32_f32(v2),
p2ui_CONJ_XOR()));
338 prod = vadd_f32(v1, v2);
340 vst1_f32(
reinterpret_cast<float*
>(&s), prod);
355 s = vmul_f32(
b.v,
b.v);
356 rev_s = vrev64_f32(s);
367 s = vmulq_f32(
b.v,
b.v);
368 rev_s = vrev64q_f32(s);
376 Packet4f tmp = vcombine_f32(vget_high_f32(kernel.packet[0].v), vget_high_f32(kernel.packet[1].v));
377 kernel.packet[0].v = vcombine_f32(vget_low_f32(kernel.packet[0].v), vget_low_f32(kernel.packet[1].v));
378 kernel.packet[1].v = tmp;
382 return psqrt_complex<Packet1cf>(a);
386 return psqrt_complex<Packet2cf>(a);
390#if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG
393#if EIGEN_COMP_CLANG || EIGEN_COMP_CASTXML
394 static uint64x2_t p2ul_CONJ_XOR = {0x0, 0x8000000000000000};
396 const uint64_t p2ul_conj_XOR_DATA[] = { 0x0, 0x8000000000000000 };
397 static uint64x2_t p2ul_CONJ_XOR = vld1q_u64( p2ul_conj_XOR_DATA );
407template<>
struct packet_traits<
std::complex<double> > : default_packet_traits
409 typedef Packet1cd
type;
410 typedef Packet1cd
half;
431template<>
struct unpacket_traits<Packet1cd>
433 typedef std::complex<double>
type;
434 typedef Packet1cd
half;
465{
return Packet1cd(pnegate<Packet2d>(a.v)); }
468{
return Packet1cd(vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(a.v), p2ul_CONJ_XOR))); }
475 v1 = vdupq_lane_f64(vget_low_f64(a.v), 0);
477 v2 = vdupq_lane_f64(vget_high_f64(a.v), 0);
479 v1 = vmulq_f64(v1,
b.v);
481 v2 = vmulq_f64(v2,
b.v);
483 v2 = vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(v2), p2ul_CONJ_XOR));
485 v2 = preverse<Packet2d>(v2);
487 return Packet1cd(vaddq_f64(v1, v2));
494 Packet2d eq = pcmp_eq<Packet2d>(a.v,
b.v);
497 Packet2d eq_swapped = vreinterpretq_f64_u32(vrev64q_u32(vreinterpretq_u32_f64(eq)));
503{
return Packet1cd(vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(a.v),vreinterpretq_u64_f64(
b.v)))); }
506{
return Packet1cd(vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(a.v),vreinterpretq_u64_f64(
b.v)))); }
509{
return Packet1cd(vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(a.v),vreinterpretq_u64_f64(
b.v)))); }
512{
return Packet1cd(vreinterpretq_f64_u64(vbicq_u64(vreinterpretq_u64_f64(a.v),vreinterpretq_u64_f64(
b.v)))); }
517template<>
EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> *to,
const Packet1cd&
from)
520template<>
EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> *to,
const Packet1cd&
from)
523template<>
EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(
const std::complex<double> *addr)
526template<>
EIGEN_DEVICE_FUNC inline Packet1cd pgather<std::complex<double>, Packet1cd>(
527 const std::complex<double>*
from,
Index stride)
532 return Packet1cd(res);
535template<>
EIGEN_DEVICE_FUNC inline void pscatter<std::complex<double>, Packet1cd>(
536 std::complex<double>* to,
const Packet1cd&
from,
Index stride)
537{ to[stride*0] = std::complex<double>(vgetq_lane_f64(
from.v, 0), vgetq_lane_f64(
from.v, 1)); }
542 pstore<std::complex<double> >(&res, a);
559 Packet2d rev_s = preverse<Packet2d>(s);
569 Packet2d tmp = vcombine_f64(vget_high_f64(kernel.packet[0].v), vget_high_f64(kernel.packet[1].v));
570 kernel.packet[0].v = vcombine_f64(vget_low_f64(kernel.packet[0].v), vget_low_f64(kernel.packet[1].v));
571 kernel.packet[1].v = tmp;
575 return psqrt_complex<Packet1cd>(a);
EIGEN_DEVICE_FUNC RealReturnType real() const
Definition: CommonCwiseUnaryOps.h:100
EIGEN_DEVICE_FUNC const ImagReturnType imag() const
Definition: CommonCwiseUnaryOps.h:109
#define EIGEN_MAKE_CONJ_HELPER_CPLX_REAL(PACKET_CPLX, PACKET_REAL)
Definition: ConjHelper.h:14
#define EIGEN_DEBUG_ALIGNED_STORE
Definition: GenericPacketMath.h:35
#define EIGEN_DEBUG_ALIGNED_LOAD
Definition: GenericPacketMath.h:27
#define EIGEN_DEBUG_UNALIGNED_STORE
Definition: GenericPacketMath.h:39
#define EIGEN_DEBUG_UNALIGNED_LOAD
Definition: GenericPacketMath.h:31
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:986
#define EIGEN_STRONG_INLINE
Definition: Macros.h:927
#define EIGEN_ARM_PREFETCH(ADDR)
Definition: PacketMath.h:162
and restrictions which apply to each piece of software is included later in this file and or inside of the individual applicable source files The disclaimer of warranty in the WPILib license above applies to all code in and nothing in any of the other licenses gives permission to use the names of FIRST nor the names of the WPILib contributors to endorse or promote products derived from this software The following pieces of software have additional or alternate and or Google Inc All rights reserved Redistribution and use in source and binary with or without are permitted provided that the following conditions are this list of conditions and the following disclaimer *Redistributions in binary form must reproduce the above copyright this list of conditions and the following disclaimer in the documentation and or other materials provided with the distribution *Neither the name of Google Inc nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED BUT NOT LIMITED THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY OR CONSEQUENTIAL WHETHER IN STRICT OR EVEN IF ADVISED OF THE POSSIBILITY OF SUCH January AND DISTRIBUTION Definitions License shall mean the terms and conditions for and distribution as defined by Sections through of this document Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License Legal Entity shall mean the union of the acting entity and all other entities that control are controlled by or are under common control with that entity For the purposes of this definition control direct or to cause the direction or management of such whether by contract or including but not limited to software source documentation and configuration files Object form shall mean any form resulting from mechanical transformation or translation of a Source including but not limited to compiled object generated and conversions to other media types Work shall mean the work of whether in Source or Object made available under the as indicated by a copyright notice that is included in or attached to the whether in Source or Object that is based or other modifications as a an original work of authorship For the purposes of this Derivative Works shall not include works that remain separable from
Definition: ThirdPartyNotices.txt:131
@ Aligned16
Data pointer is aligned on a 16 bytes boundary.
Definition: Constants.h:235
EIGEN_STRONG_INLINE std::complex< float > predux< Packet1cf >(const Packet1cf &a)
Definition: Complex.h:299
uint32x2_t p2ui_CONJ_XOR()
Definition: Complex.h:30
EIGEN_STRONG_INLINE std::complex< float > predux_mul< Packet2cf >(const Packet2cf &a)
Definition: Complex.h:163
EIGEN_STRONG_INLINE std::complex< float > predux< Packet2cf >(const Packet2cf &a)
Definition: Complex.h:158
__m128d Packet2d
Definition: PacketMath.h:43
EIGEN_STRONG_INLINE Packet2d padd< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: PacketMath.h:290
uint32x2_t Packet2ui
Definition: PacketMath.h:76
EIGEN_STRONG_INLINE Packet2f pand< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: PacketMath.h:1465
EIGEN_STRONG_INLINE Packet2cf psqrt< Packet2cf >(const Packet2cf &a)
Definition: Complex.h:344
EIGEN_STRONG_INLINE Packet4f pcmp_eq< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:1400
EIGEN_STRONG_INLINE Packet4f padd< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:289
__m128 Packet4f
Definition: PacketMath.h:42
EIGEN_STRONG_INLINE std::complex< double > predux_mul< Packet1cd >(const Packet1cd &a)
Definition: Complex.h:293
EIGEN_STRONG_INLINE Packet2cf pandnot< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:102
EIGEN_STRONG_INLINE Packet1cf psqrt< Packet1cf >(const Packet1cf &a)
Definition: Complex.h:381
EIGEN_STRONG_INLINE Packet1cf padd< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: Complex.h:117
EIGEN_STRONG_INLINE std::complex< float > pfirst< Packet1cf >(const Packet1cf &a)
Definition: Complex.h:277
EIGEN_STRONG_INLINE Packet2d pand< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: PacketMath.h:413
EIGEN_STRONG_INLINE Packet2f pcmp_eq< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: PacketMath.h:1398
EIGEN_STRONG_INLINE Packet1cd psqrt< Packet1cd >(const Packet1cd &a)
Definition: Complex.h:340
EIGEN_STRONG_INLINE Packet1cf por< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: Complex.h:208
EIGEN_STRONG_INLINE Packet2cf ploaddup< Packet2cf >(const std::complex< float > *from)
Definition: Complex.h:119
EIGEN_STRONG_INLINE std::complex< float > predux_mul< Packet1cf >(const Packet1cf &a)
Definition: Complex.h:312
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:244
EIGEN_DEVICE_FUNC void ptranspose(PacketBlock< Packet4f, 4 > &kernel)
Definition: PacketMath.h:1124
EIGEN_STRONG_INLINE Packet1cf pand< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: Complex.h:203
EIGEN_STRONG_INLINE Packet2cf pmul< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:81
uint32x4_t p4ui_CONJ_XOR()
Definition: Complex.h:18
EIGEN_STRONG_INLINE Packet1cd pmul< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: Complex.h:243
EIGEN_STRONG_INLINE Packet2d pset1< Packet2d >(const double &from)
Definition: PacketMath.h:258
EIGEN_STRONG_INLINE std::complex< float > pfirst< Packet2cf >(const Packet2cf &a)
Definition: Complex.h:141
EIGEN_STRONG_INLINE Packet4f pload< Packet4f >(const float *from)
Definition: PacketMath.h:715
EIGEN_STRONG_INLINE Packet1cd ploadu< Packet1cd >(const std::complex< double > *from)
Definition: Complex.h:266
EIGEN_STRONG_INLINE Packet2cf por< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:100
EIGEN_STRONG_INLINE Packet2cf pset1< Packet2cf >(const std::complex< float > &from)
Definition: Complex.h:107
EIGEN_STRONG_INLINE Packet1cf pcast< float, Packet1cf >(const float &a)
Definition: Complex.h:104
uint32x4_t Packet4ui
Definition: PacketMath.h:77
EIGEN_STRONG_INLINE Packet2cf pcplxflip(const Packet2cf &x)
Definition: Complex.h:168
EIGEN_STRONG_INLINE Packet2cf pcplxflip< Packet2cf >(const Packet2cf &a)
Definition: Complex.h:296
EIGEN_DEVICE_FUNC Packet pmul(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:237
EIGEN_STRONG_INLINE Packet4f pdiv< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:366
EIGEN_STRONG_INLINE Packet2d pload< Packet2d >(const double *from)
Definition: PacketMath.h:716
EIGEN_STRONG_INLINE Packet1cf pload< Packet1cf >(const std::complex< float > *from)
Definition: Complex.h:223
EIGEN_STRONG_INLINE Packet2d pmul< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: PacketMath.h:347
EIGEN_STRONG_INLINE Packet1cd pxor< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: Complex.h:260
EIGEN_STRONG_INLINE Packet2cf pdiv< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:175
EIGEN_STRONG_INLINE Packet1cf ploaddup< Packet1cf >(const std::complex< float > *from)
Definition: Complex.h:233
EIGEN_STRONG_INLINE Packet1cf ploadu< Packet1cf >(const std::complex< float > *from)
Definition: Complex.h:228
EIGEN_STRONG_INLINE Packet4f pcmp_eq(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:434
EIGEN_STRONG_INLINE Packet1cd padd< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: Complex.h:234
EIGEN_STRONG_INLINE Packet2cf ploadu< Packet2cf >(const std::complex< float > *from)
Definition: Complex.h:105
EIGEN_STRONG_INLINE Packet1cf pset1< Packet1cf >(const std::complex< float > &from)
Definition: Complex.h:109
EIGEN_STRONG_INLINE Packet1cf pcplxflip< Packet1cf >(const Packet1cf &a)
Definition: Complex.h:294
EIGEN_STRONG_INLINE Packet1cf pmul< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: Complex.h:141
EIGEN_STRONG_INLINE Packet1cd ploaddup< Packet1cd >(const std::complex< double > *from)
Definition: Complex.h:271
EIGEN_STRONG_INLINE Packet2cf pload< Packet2cf >(const std::complex< float > *from)
Definition: Complex.h:104
EIGEN_STRONG_INLINE Packet1cf pandnot< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: Complex.h:218
EIGEN_STRONG_INLINE std::complex< double > predux< Packet1cd >(const Packet1cd &a)
Definition: Complex.h:288
float32x2_t Packet2f
Definition: PacketMath.h:62
EIGEN_DEVICE_FUNC void pstore(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:696
EIGEN_STRONG_INLINE Packet2d ploadu< Packet2d >(const double *from)
Definition: PacketMath.h:743
EIGEN_STRONG_INLINE Packet2cf pcast< Packet2f, Packet2cf >(const Packet2f &a)
Definition: Complex.h:106
EIGEN_STRONG_INLINE Packet1cd pload< Packet1cd >(const std::complex< double > *from)
Definition: Complex.h:264
EIGEN_STRONG_INLINE Packet1cd pand< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: Complex.h:258
EIGEN_STRONG_INLINE Packet2f ploadu< Packet2f >(const float *from)
Definition: PacketMath.h:1709
EIGEN_STRONG_INLINE Packet2cf pand< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:99
EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f &a)
Definition: PacketMath.h:891
EIGEN_STRONG_INLINE Packet1cd pandnot< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: Complex.h:261
EIGEN_DEVICE_FUNC void pstoreu(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:700
EIGEN_STRONG_INLINE Packet2cf pxor< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:101
EIGEN_STRONG_INLINE Packet2f padd< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: PacketMath.h:805
EIGEN_STRONG_INLINE Packet4f ploadu< Packet4f >(const float *from)
Definition: PacketMath.h:736
EIGEN_STRONG_INLINE Packet2cf psub< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:68
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type pfirst(const Packet &a)
Definition: GenericPacketMath.h:844
EIGEN_STRONG_INLINE Packet2f pdiv< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: PacketMath.h:950
EIGEN_STRONG_INLINE Packet4f pand< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:412
EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f &a)
Definition: PacketMath.h:342
EIGEN_STRONG_INLINE Packet1cf pxor< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: Complex.h:213
EIGEN_STRONG_INLINE Packet2cf padd< Packet2cf >(const Packet2cf &a, const Packet2cf &b)
Definition: Complex.h:67
EIGEN_STRONG_INLINE Packet1cd por< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: Complex.h:259
EIGEN_STRONG_INLINE Packet2d psub< Packet2d >(const Packet2d &a, const Packet2d &b)
Definition: PacketMath.h:296
EIGEN_STRONG_INLINE Packet4f psub< Packet4f >(const Packet4f &a, const Packet4f &b)
Definition: PacketMath.h:295
EIGEN_STRONG_INLINE Packet1cd pset1< Packet1cd >(const std::complex< double > &from)
Definition: Complex.h:268
EIGEN_STRONG_INLINE std::complex< double > pfirst< Packet1cd >(const Packet1cd &a)
Definition: Complex.h:279
EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f &a)
Definition: PacketMath.h:322
EIGEN_STRONG_INLINE Packet1cd pdiv< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: Complex.h:300
EIGEN_STRONG_INLINE Packet1cf psub< Packet1cf >(const Packet1cf &a, const Packet1cf &b)
Definition: Complex.h:122
EIGEN_STRONG_INLINE Packet2f pload< Packet2f >(const float *from)
Definition: PacketMath.h:1664
EIGEN_STRONG_INLINE Packet2f psub< Packet2f >(const Packet2f &a, const Packet2f &b)
Definition: PacketMath.h:834
EIGEN_STRONG_INLINE Packet1cd psub< Packet1cd >(const Packet1cd &a, const Packet1cd &b)
Definition: Complex.h:235
::uint64_t uint64_t
Definition: Meta.h:58
::uint32_t uint32_t
Definition: Meta.h:56
Namespace containing all symbols from the Eigen library.
Definition: MatrixExponential.h:16
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
Definition: Eigen_Colamd.h:50
Definition: StdDeque.h:50
EIGEN_STRONG_INLINE Packet1cd()
Definition: Complex.h:188
Packet2d v
Definition: Complex.h:190
EIGEN_STRONG_INLINE Packet1cf()
Definition: Complex.h:40
Packet2f v
Definition: Complex.h:42
EIGEN_STRONG_INLINE Packet1cf(const Packet2f &a)
Definition: Complex.h:41
Packet4f v
Definition: Complex.h:22
EIGEN_STRONG_INLINE Packet2cf()
Definition: Complex.h:46
EIGEN_STRONG_INLINE Packet2cf(const Packet4f &a)
Definition: Complex.h:47
Definition: GenericPacketMath.h:1014
@ HasDiv
Definition: GenericPacketMath.h:65
Packet2cf type
Definition: Complex.h:53
Packet1cf half
Definition: Complex.h:54
@ HasHalfPacket
Definition: GenericPacketMath.h:114
@ size
Definition: GenericPacketMath.h:112
@ AlignedOnScalar
Definition: GenericPacketMath.h:113
@ Vectorizable
Definition: GenericPacketMath.h:111
@ 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
T type
Definition: GenericPacketMath.h:108
T half
Definition: GenericPacketMath.h:109
Packet2f as_real
Definition: Complex.h:79
Packet1cf half
Definition: Complex.h:78
std::complex< float > type
Definition: Complex.h:77
std::complex< float > type
Definition: Complex.h:91
Packet4f as_real
Definition: Complex.h:93
Packet1cf half
Definition: Complex.h:92
Definition: GenericPacketMath.h:133
T type
Definition: GenericPacketMath.h:134
T half
Definition: GenericPacketMath.h:135
@ masked_load_available
Definition: GenericPacketMath.h:141
@ size
Definition: GenericPacketMath.h:138
@ masked_store_available
Definition: GenericPacketMath.h:142
@ vectorizable
Definition: GenericPacketMath.h:140
@ alignment
Definition: GenericPacketMath.h:139