11#ifndef EIGEN_GEOMETRY_SIMD_H
12#define EIGEN_GEOMETRY_SIMD_H
18template<
class Derived,
class OtherDerived>
31 const float neg_zero = numext::bit_cast<float>(0x80000000u);
32 const float arr[4] = {0.f, 0.f, 0.f,
neg_zero};
36 Packet4f s1 = pmul(vec4f_swizzle1(a,1,2,0,2),vec4f_swizzle1(b,2,0,1,2));
37 Packet4f s2 = pmul(vec4f_swizzle1(a,3,3,3,1),vec4f_swizzle1(b,0,1,2,1));
40 padd(psub(pmul(a,vec4f_swizzle1(b,3,3,3,3)),
41 pmul(vec4f_swizzle1(a,2,0,1,0),
42 vec4f_swizzle1(b,1,2,0,0))),
43 pxor(mask,padd(
s1,s2))));
49template<
class Derived>
50struct quat_conj<Architecture::Target, Derived, float>
59 const float neg_zero = numext::bit_cast<float>(0x80000000u);
68template<
typename VectorLhs,
typename VectorRhs>
81 Packet4f mul1 = pmul(vec4f_swizzle1(a,1,2,0,3),vec4f_swizzle1(b,2,0,1,3));
82 Packet4f mul2 = pmul(vec4f_swizzle1(a,2,0,1,3),vec4f_swizzle1(b,1,2,0,3));
91#if (defined EIGEN_VECTORIZE_SSE) || (EIGEN_ARCH_ARM64)
93template<
class Derived,
class OtherDerived>
108 const double* a =
_a.coeffs().data();
141template<
class Derived>
142struct quat_conj<Architecture::Target, Derived, double>
145 ResAlignment = traits<Quaternion<double> >::Alignment
147 static inline Quaternion<double> run(
const QuaternionBase<Derived>& q)
149 evaluator<typename Derived::Coefficients> qe(q.coeffs());
150 Quaternion<double> res;
151 const double neg_zero = numext::bit_cast<double>(0x8000000000000000ull);
152 const double arr1[2] = {neg_zero, neg_zero};
153 const double arr2[2] = {neg_zero, 0.0};
154 const Packet2d mask0 = ploadu<Packet2d>(arr1);
155 const Packet2d mask2 = ploadu<Packet2d>(arr2);
156 pstoret<double,Packet2d,ResAlignment>(&res.x(), pxor(mask0, qe.template packet<traits<Derived>::Alignment,Packet2d>(0)));
157 pstoret<double,Packet2d,ResAlignment>(&res.z(), pxor(mask2, qe.template packet<traits<Derived>::Alignment,Packet2d>(2)));
Base class for all dense matrices, vectors, and expressions.
Definition MatrixBase.h:50
Namespace containing all symbols from the Eigen library.
Definition LDLT.h:16
Definition OrthoMethods.h:56
Definition XprHelper.h:295
Definition Quaternion.h:736
Definition Quaternion.h:488
Definition ForwardDeclarations.h:17