11#ifndef EIGEN_GENERIC_PACKET_MATH_H
12#define EIGEN_GENERIC_PACKET_MATH_H
26#ifndef EIGEN_DEBUG_ALIGNED_LOAD
27#define EIGEN_DEBUG_ALIGNED_LOAD
30#ifndef EIGEN_DEBUG_UNALIGNED_LOAD
31#define EIGEN_DEBUG_UNALIGNED_LOAD
34#ifndef EIGEN_DEBUG_ALIGNED_STORE
35#define EIGEN_DEBUG_ALIGNED_STORE
38#ifndef EIGEN_DEBUG_UNALIGNED_STORE
39#define EIGEN_DEBUG_UNALIGNED_STORE
158template<
typename T,
int unique_
id = 0>
177template<
typename Packet>
186template <
typename SrcPacket,
typename TgtPacket>
189 return static_cast<TgtPacket
>(a);
191template <
typename SrcPacket,
typename TgtPacket>
193pcast(
const SrcPacket& a,
const SrcPacket& ) {
194 return static_cast<TgtPacket
>(a);
196template <
typename SrcPacket,
typename TgtPacket>
198pcast(
const SrcPacket& a,
const SrcPacket& ,
const SrcPacket& ,
const SrcPacket& ) {
199 return static_cast<TgtPacket
>(a);
201template <
typename SrcPacket,
typename TgtPacket>
203pcast(
const SrcPacket& a,
const SrcPacket& ,
const SrcPacket& ,
const SrcPacket& ,
204 const SrcPacket& ,
const SrcPacket& ,
const SrcPacket& ,
const SrcPacket& ) {
205 return static_cast<TgtPacket
>(a);
209template <
typename Target,
typename Packet>
215padd(
const Packet& a,
const Packet&
b) {
return a+
b; }
218padd(
const bool& a,
const bool&
b) {
return a ||
b; }
222psub(
const Packet& a,
const Packet&
b) {
return a-
b; }
233pconj(
const Packet& a) {
return numext::conj(a); }
237pmul(
const Packet& a,
const Packet&
b) {
return a*
b; }
240pmul(
const bool& a,
const bool&
b) {
return a &&
b; }
244pdiv(
const Packet& a,
const Packet&
b) {
return a/
b; }
247template<
typename Packet,
typename EnableIf =
void>
251 memset(
static_cast<void*
>(&
b), 0xff,
sizeof(Packet));
275template<
typename Packet,
typename EnableIf =
void>
279 memset(
static_cast<void*
>(&
b), 0x00,
sizeof(Packet));
370 template<
typename Op>
372 const unsigned char* a_ptr =
reinterpret_cast<const unsigned char*
>(&a);
374 unsigned char* c_ptr =
reinterpret_cast<unsigned char*
>(&
c);
375 for (
size_t i = 0; i <
sizeof(T); ++i) {
376 *c_ptr++ = op(*a_ptr++);
381 template<
typename Op>
383 const unsigned char* a_ptr =
reinterpret_cast<const unsigned char*
>(&a);
384 const unsigned char* b_ptr =
reinterpret_cast<const unsigned char*
>(&
b);
386 unsigned char* c_ptr =
reinterpret_cast<unsigned char*
>(&
c);
387 for (
size_t i = 0; i <
sizeof(T); ++i) {
388 *c_ptr++ = op(*a_ptr++, *b_ptr++);
395template<
typename T,
typename EnableIf =
void>
402 is_scalar<T>::value && (NumTraits<T>::IsInteger || NumTraits<T>::RequireInitialization)>
::type
407pand(
const Packet& a,
const Packet&
b) {
413por(
const Packet& a,
const Packet&
b) {
419pxor(
const Packet& a,
const Packet&
b) {
434template<
typename Packet,
typename EnableIf =
void>
442template<
typename Packet>
452pselect(
const Packet& mask,
const Packet& a,
const Packet&
b) {
457 const bool& cond,
const bool& a,
const bool&
b) {
463template<
int NaNPropagation>
465 template <
typename Packet,
typename Op>
475 template <
typename Packet,
typename Op>
477 Packet not_nan_mask_a =
pcmp_eq(a, a);
490 template <
typename Packet,
typename Op>
492 Packet not_nan_mask_a =
pcmp_eq(a, a);
495 pselect(not_nan_mask_b, op(a,
b), a),
501#ifndef SYCL_DEVICE_ONLY
502#define EIGEN_BINARY_OP_NAN_PROPAGATION(Type, Func) Func
504#define EIGEN_BINARY_OP_NAN_PROPAGATION(Type, Func) \
505[](const Type& a, const Type& b) { \
516template <
int NaNPropagation,
typename Packet>
528template <
int NaNPropagation,
typename Packet>
537pabs(
const unsigned int& a) {
return a; }
539pabs(
const unsigned long& a) {
return a; }
541pabs(
const unsigned long long& a) {
return a; }
575template <
typename Packet>
579 Packet
result =
static_cast<Packet
>(frexp(a, &exp));
580 exponent =
static_cast<Packet
>(exp);
588pldexp(
const Packet &a,
const Packet &exponent) {
590 return static_cast<Packet
>(ldexp(a,
static_cast<int>(exponent)));
610typename enable_if<unpacket_traits<Packet>::masked_load_available, Packet>
::type
641{
return pload1<Packet>(
from); }
654 Packet& a0, Packet& a1, Packet& a2, Packet& a3)
656 a0 = pload1<Packet>(a+0);
657 a1 = pload1<Packet>(a+1);
658 a2 = pload1<Packet>(a+2);
659 a3 = pload1<Packet>(a+3);
671 Packet& a0, Packet& a1)
673 a0 = pload1<Packet>(a+0);
674 a1 = pload1<Packet>(a+1);
687 EIGEN_ALIGN_TO_BOUNDARY(
sizeof(Packet)) Scalar elements[n];
688 for(
size_t i = 0; i < n; ++i) {
689 memset(elements+i, ((i & 1) == 0 ? 0xff : 0),
sizeof(Scalar));
691 return ploadu<Packet>(elements);
707template<
typename Scalar,
typename Packet>
709typename enable_if<unpacket_traits<Packet>::masked_store_available,
void>
::type
713 {
return ploadu<Packet>(
from); }
721#if defined(EIGEN_HIP_DEVICE_COMPILE)
723#elif defined(EIGEN_CUDA_ARCH)
724#if defined(__LP64__) || EIGEN_OS_WIN64
726 asm(
" prefetch.L1 [ %1 ];" :
"=l"(addr) :
"l"(addr));
729 asm(
" prefetch.L1 [ %1 ];" :
"=r"(addr) :
"r"(addr));
731#elif (!EIGEN_COMP_MSVC) && (EIGEN_COMP_GNUC || EIGEN_COMP_CLANG || EIGEN_COMP_ICC)
732 __builtin_prefetch(addr);
821 return pdiv(pset1<Packet>(Scalar(1)),
psqrt(a));
842template<
typename Packet>
851template<
typename Packet>
857template <
typename Packet,
typename Op>
862 EIGEN_ALIGN_TO_BOUNDARY(
sizeof(Packet)) Scalar elements[n];
863 pstoreu<Scalar>(elements, a);
864 for(
size_t k = n / 2; k > 0; k /= 2) {
865 for(
size_t i = 0; i < k; ++i) {
866 elements[i] = op(elements[i], elements[i + k]);
873template<
typename Packet>
881template <
typename Packet>
889template <
typename Packet>
896template <
int NaNPropagation,
typename Packet>
904template <
typename Packet>
911template <
int NaNPropagation,
typename Packet>
918#undef EIGEN_BINARY_OP_NAN_PROPAGATION
948template<
typename Packet>
951 pstore(to, pset1<Packet>(a));
963template<
typename Packet,
int Alignment>
967 return pload<Packet>(
from);
969 return ploadu<Packet>(
from);
974template<
typename Scalar,
typename Packet,
int Alignment>
988template<
typename Packet,
int LoadMode>
991 return ploadt<Packet, LoadMode>(
from);
999#if !defined(EIGEN_GPUCC)
1001template<>
inline std::complex<float>
pmul(
const std::complex<float>& a,
const std::complex<float>&
b)
1002{
return std::complex<float>(a.real()*
b.real() - a.imag()*
b.imag(), a.imag()*
b.real() + a.real()*
b.imag()); }
1004template<>
inline std::complex<double>
pmul(
const std::complex<double>& a,
const std::complex<double>&
b)
1005{
return std::complex<double>(a.real()*
b.real() - a.imag()*
b.imag(), a.imag()*
b.real() + a.real()*
b.imag()); }
1033 return ifPacket.select[0] ? thenPacket : elsePacket;
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArgReturnType arg() const
Definition: ArrayCwiseUnaryOps.h:66
EIGEN_DEVICE_FUNC const RintReturnType rint() const
Definition: ArrayCwiseUnaryOps.h:453
EIGEN_DEVICE_FUNC RealReturnType real() const
Definition: CommonCwiseUnaryOps.h:100
EIGEN_DEVICE_FUNC const ImagReturnType imag() const
Definition: CommonCwiseUnaryOps.h:109
#define EIGEN_BINARY_OP_NAN_PROPAGATION(Type, Func)
Definition: GenericPacketMath.h:502
#define EIGEN_ALWAYS_INLINE
Definition: Macros.h:942
#define EIGEN_USING_STD(FUNC)
Definition: Macros.h:1195
#define EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
Definition: Macros.h:994
#define EIGEN_CONSTEXPR
Definition: Macros.h:797
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:986
#define EIGEN_STRONG_INLINE
Definition: Macros.h:927
#define EIGEN_LOG2E
Definition: MathFunctions.h:17
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:128
type
Definition: core.h:575
dimensionless::scalar_t sinh(const AngleUnit angle) noexcept
Compute hyperbolic sine.
Definition: math.h:226
UnitType round(const UnitType x) noexcept
Round to nearest.
Definition: math.h:591
angle::radian_t asin(const ScalarUnit x) noexcept
Compute arc sine.
Definition: math.h:137
angle::radian_t acos(const ScalarUnit x) noexcept
Compute arc cosine.
Definition: math.h:119
dimensionless::scalar_t expm1(const ScalarUnit x) noexcept
Compute exponential minus one.
Definition: math.h:420
dimensionless::scalar_t cosh(const AngleUnit angle) noexcept
Compute hyperbolic cosine.
Definition: math.h:206
angle::radian_t atan(const ScalarUnit x) noexcept
Compute arc tangent.
Definition: math.h:159
dimensionless::scalar_t cos(const AngleUnit angle) noexcept
Compute cosine.
Definition: math.h:61
dimensionless::scalar_t tanh(const AngleUnit angle) noexcept
Compute hyperbolic tangent.
Definition: math.h:246
UnitType floor(const UnitType x) noexcept
Round down value.
Definition: math.h:542
dimensionless::scalar_t log(const ScalarUnit x) noexcept
Compute natural logarithm.
Definition: math.h:349
dimensionless::scalar_t log1p(const ScalarUnit x) noexcept
Compute logarithm plus one.
Definition: math.h:437
dimensionless::scalar_t log10(const ScalarUnit x) noexcept
Compute common logarithm.
Definition: math.h:365
dimensionless::scalar_t sin(const AngleUnit angle) noexcept
Compute sine.
Definition: math.h:81
UnitType ceil(const UnitType x) noexcept
Round up value.
Definition: math.h:528
@ PropagateNaN
Always propagate NaNs.
Definition: Constants.h:343
@ PropagateNumbers
Always propagate not-NaNs.
Definition: Constants.h:345
@ Target
Definition: Constants.h:492
EIGEN_STRONG_INLINE Packet8f pcmp_lt_or_nan(const Packet8f &a, const Packet8f &b)
Definition: PacketMath.h:347
EIGEN_STRONG_INLINE Packet8f pblend(const Selector< 8 > &ifPacket, const Packet8f &thenPacket, const Packet8f &elsePacket)
Definition: PacketMath.h:921
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pexpm1(const Packet &a)
Definition: GenericPacketMath.h:792
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_min(const Packet &a)
Definition: GenericPacketMath.h:890
EIGEN_DEVICE_FUNC TgtPacket pcast(const SrcPacket &a)
Definition: GenericPacketMath.h:188
EIGEN_STRONG_INLINE Packet8f pcmp_eq(const Packet8f &a, const Packet8f &b)
Definition: PacketMath.h:348
EIGEN_DEVICE_FUNC Packet padd(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:215
EIGEN_DEVICE_FUNC void ptranspose(PacketBlock< Packet8f, 8 > &kernel)
Definition: PacketMath.h:863
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_helper(const Packet &a, Op op)
Definition: GenericPacketMath.h:859
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog10(const Packet &a)
Definition: GenericPacketMath.h:804
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux(const Packet &a)
Definition: GenericPacketMath.h:875
EIGEN_STRONG_INLINE Packet8f pzero(const Packet8f &)
Definition: PacketMath.h:247
EIGEN_STRONG_INLINE Packet8h pselect(const Packet8h &mask, const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1057
EIGEN_DEVICE_FUNC Packet parg(const Packet &a)
Definition: GenericPacketMath.h:551
EIGEN_STRONG_INLINE Packet8i plogical_shift_left(Packet8i a)
Definition: PacketMath.h:567
EIGEN_DEVICE_FUNC void pbroadcast4(const typename unpacket_traits< Packet >::type *a, Packet &a0, Packet &a1, Packet &a2, Packet &a3)
Definition: GenericPacketMath.h:653
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog2(const Packet &a)
Definition: GenericPacketMath.h:808
EIGEN_DEVICE_FUNC Packet pset1frombits(BitsType a)
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog(const Packet &a)
Definition: GenericPacketMath.h:796
EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i &a, const Packet4i &b, const Packet4i &c)
Definition: PacketMath.h:370
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:244
EIGEN_DEVICE_FUNC Packet pgather(const Scalar *from, Index)
Definition: GenericPacketMath.h:712
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pexp(const Packet &a)
Definition: GenericPacketMath.h:788
EIGEN_STRONG_INLINE Packet8f pabs(const Packet8f &a)
Definition: PacketMath.h:725
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pcos(const Packet &a)
Definition: GenericPacketMath.h:756
EIGEN_DEVICE_FUNC void prefetch(const Scalar *addr)
Definition: GenericPacketMath.h:719
EIGEN_STRONG_INLINE Packet8f pcmp_le(const Packet8f &a, const Packet8f &b)
Definition: PacketMath.h:345
EIGEN_STRONG_INLINE Packet4f print(const Packet4f &a)
Definition: PacketMath.h:646
EIGEN_DEVICE_FUNC Packet ploadu(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:603
EIGEN_DEVICE_FUNC Packet pmax(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:524
EIGEN_DEVICE_FUNC Packet pnot(const Packet &a)
Definition: GenericPacketMath.h:425
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet psin(const Packet &a)
Definition: GenericPacketMath.h:752
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pacos(const Packet &a)
Definition: GenericPacketMath.h:768
EIGEN_DEVICE_FUNC Target preinterpret(const Packet &a)
EIGEN_DEVICE_FUNC bool pselect< bool >(const bool &cond, const bool &a, const bool &b)
Definition: GenericPacketMath.h:456
EIGEN_STRONG_INLINE Packet8h por(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1042
EIGEN_STRONG_INLINE Packet8i plogical_shift_right(Packet8i a)
Definition: PacketMath.h:557
EIGEN_STRONG_INLINE Packet8f pcmp_lt(const Packet8f &a, const Packet8f &b)
Definition: PacketMath.h:346
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet ptan(const Packet &a)
Definition: GenericPacketMath.h:760
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_mul(const Packet &a)
Definition: GenericPacketMath.h:882
EIGEN_STRONG_INLINE Packet8f pconj(const Packet8f &a)
Definition: PacketMath.h:295
EIGEN_STRONG_INLINE Packet2cf pcplxflip(const Packet2cf &x)
Definition: Complex.h:168
EIGEN_DEVICE_FUNC Packet pmul(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:237
EIGEN_STRONG_INLINE Packet8h ptrue(const Packet8h &a)
Definition: PacketMath.h:978
EIGEN_DEVICE_FUNC Packet pmin(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:512
EIGEN_STRONG_INLINE Packet8h pandnot(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1053
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pcosh(const Packet &a)
Definition: GenericPacketMath.h:780
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pround(const Packet &a)
Definition: GenericPacketMath.h:826
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet ptanh(const Packet &a)
Definition: GenericPacketMath.h:784
EIGEN_DEVICE_FUNC Packet paddsub(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:545
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void pstoret(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:975
EIGEN_DEVICE_FUNC void pscatter(Scalar *to, const Packet &from, Index)
Definition: GenericPacketMath.h:715
EIGEN_DEVICE_FUNC Packet pabsdiff(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:595
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_max(const Packet &a)
Definition: GenericPacketMath.h:905
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pceil(const Packet &a)
Definition: GenericPacketMath.h:839
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog1p(const Packet &a)
Definition: GenericPacketMath.h:800
EIGEN_STRONG_INLINE Packet8i parithmetic_shift_right(Packet8i a)
Definition: PacketMath.h:547
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet ploaddup(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:631
EIGEN_CONSTEXPR Index size(const T &x)
Definition: Meta.h:479
EIGEN_STRONG_INLINE Packet8f peven_mask(const Packet8f &)
Definition: PacketMath.h:252
EIGEN_DEVICE_FUNC void pstore(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:696
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet4c predux_half_dowto4(const Packet8c &a)
Definition: PacketMath.h:2478
EIGEN_STRONG_INLINE Packet8h pldexp(const Packet8h &a, const Packet8h &exponent)
Definition: MathFunctions.h:196
EIGEN_STRONG_INLINE bool predux_any(const Packet8f &x)
Definition: PacketMath.h:857
EIGEN_DEVICE_FUNC void pstoreu(Scalar *to, const Packet &from)
Definition: GenericPacketMath.h:700
EIGEN_STRONG_INLINE Packet8h pand(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1050
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet ploadt(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:964
EIGEN_STRONG_INLINE Packet8h pxor(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1047
EIGEN_DEVICE_FUNC void pbroadcast2(const typename unpacket_traits< Packet >::type *a, Packet &a0, Packet &a1)
Definition: GenericPacketMath.h:670
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet psinh(const Packet &a)
Definition: GenericPacketMath.h:776
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type pfirst(const Packet &a)
Definition: GenericPacketMath.h:844
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pasin(const Packet &a)
Definition: GenericPacketMath.h:764
EIGEN_DEVICE_FUNC Packet psub(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:222
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet plset(const typename unpacket_traits< Packet >::type &a)
Definition: GenericPacketMath.h:679
EIGEN_STRONG_INLINE Packet8h pfrexp(const Packet8h &a, Packet8h &exponent)
Definition: MathFunctions.h:188
EIGEN_STRONG_INLINE Packet8f preverse(const Packet8f &a)
Definition: PacketMath.h:707
EIGEN_DEVICE_FUNC Packet pload1(const typename unpacket_traits< Packet >::type *a)
Definition: GenericPacketMath.h:623
void pstore1(typename unpacket_traits< Packet >::type *to, const typename unpacket_traits< Packet >::type &a)
Definition: GenericPacketMath.h:949
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet ploadt_ro(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:989
EIGEN_DEVICE_FUNC Packet pload(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:599
EIGEN_STRONG_INLINE Packet4f prsqrt(const Packet4f &a)
Definition: PacketMath.h:3276
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet patan(const Packet &a)
Definition: GenericPacketMath.h:772
EIGEN_DEVICE_FUNC Packet ploadquad(const typename unpacket_traits< Packet >::type *from)
Definition: GenericPacketMath.h:640
EIGEN_STRONG_INLINE Packet8f pnegate(const Packet8f &a)
Definition: PacketMath.h:286
EIGEN_STRONG_INLINE Packet4uc psqrt(const Packet4uc &a)
Computes the integer square root.
Definition: PacketMath.h:3191
EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pfloor(const Packet &a)
Definition: GenericPacketMath.h:830
EIGEN_DEVICE_FUNC Packet pset1(const typename unpacket_traits< Packet >::type &a)
Definition: GenericPacketMath.h:615
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool equal_strict(const X &x, const Y &y)
Definition: Meta.h:787
EIGEN_DEVICE_FUNC T() floor(const T &x)
Definition: MathFunctions.h:1400
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T maxi(const T &x, const T &y)
Definition: MathFunctions.h:1091
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict(const X &x, const Y &y)
Definition: Meta.h:798
EIGEN_DEVICE_FUNC T() ceil(const T &x)
Definition: MathFunctions.h:1420
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float sqrt(const float &x)
Definition: MathFunctions.h:177
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T mini(const T &x, const T &y)
Definition: MathFunctions.h:1083
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE internal::enable_if< NumTraits< T >::IsSigned||NumTraits< T >::IsComplex, typenameNumTraits< T >::Real >::type abs(const T &x)
Definition: MathFunctions.h:1509
Namespace containing all symbols from the Eigen library.
Definition: Core:141
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
result
Definition: format.h:2564
Definition: Eigen_Colamd.h:50
static constexpr const velocity::meters_per_second_t c(299792458.0)
Speed of light in vacuum.
Definition: GenericPacketMath.h:1014
Packet packet[N]
Definition: GenericPacketMath.h:1015
Definition: GenericPacketMath.h:1027
bool select[N]
Definition: GenericPacketMath.h:1028
Definition: GenericPacketMath.h:317
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR EIGEN_ALWAYS_INLINE T operator()(const T &a, const T &b) const
Definition: GenericPacketMath.h:318
Definition: GenericPacketMath.h:338
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR EIGEN_ALWAYS_INLINE T operator()(const T &a) const
Definition: GenericPacketMath.h:339
Definition: GenericPacketMath.h:324
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR EIGEN_ALWAYS_INLINE T operator()(const T &a, const T &b) const
Definition: GenericPacketMath.h:325
Definition: GenericPacketMath.h:331
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR EIGEN_ALWAYS_INLINE T operator()(const T &a, const T &b) const
Definition: GenericPacketMath.h:332
Definition: GenericPacketMath.h:396
Definition: GenericPacketMath.h:355
static EIGEN_DEVICE_FUNC T bitwise_xor(const T &a, const T &b)
Definition: GenericPacketMath.h:362
static EIGEN_DEVICE_FUNC T bitwise_not(const T &a)
Definition: GenericPacketMath.h:365
static EIGEN_DEVICE_FUNC T bitwise_and(const T &a, const T &b)
Definition: GenericPacketMath.h:356
static EIGEN_DEVICE_FUNC T bitwise_or(const T &a, const T &b)
Definition: GenericPacketMath.h:359
Definition: GenericPacketMath.h:43
@ HasSign
Definition: GenericPacketMath.h:102
@ HasZeta
Definition: GenericPacketMath.h:86
@ HasASin
Definition: GenericPacketMath.h:78
@ HasIGamma
Definition: GenericPacketMath.h:92
@ HasSub
Definition: GenericPacketMath.h:48
@ HasRsqrt
Definition: GenericPacketMath.h:67
@ HasSin
Definition: GenericPacketMath.h:75
@ HasBlend
Definition: GenericPacketMath.h:60
@ HasLog10
Definition: GenericPacketMath.h:72
@ HasTan
Definition: GenericPacketMath.h:77
@ HasErfc
Definition: GenericPacketMath.h:89
@ HasACos
Definition: GenericPacketMath.h:79
@ HasAbsDiff
Definition: GenericPacketMath.h:55
@ HasMin
Definition: GenericPacketMath.h:56
@ HasArg
Definition: GenericPacketMath.h:53
@ HasNdtri
Definition: GenericPacketMath.h:90
@ HasCos
Definition: GenericPacketMath.h:76
@ HasSinh
Definition: GenericPacketMath.h:81
@ HasPolygamma
Definition: GenericPacketMath.h:87
@ HasCmp
Definition: GenericPacketMath.h:63
@ HasDiGamma
Definition: GenericPacketMath.h:85
@ HasConj
Definition: GenericPacketMath.h:58
@ HasSetLinear
Definition: GenericPacketMath.h:59
@ HasShift
Definition: GenericPacketMath.h:49
@ HasLog1p
Definition: GenericPacketMath.h:71
@ HasMax
Definition: GenericPacketMath.h:57
@ HasPow
Definition: GenericPacketMath.h:73
@ HasIGammac
Definition: GenericPacketMath.h:95
@ HasCeil
Definition: GenericPacketMath.h:101
@ HasNegate
Definition: GenericPacketMath.h:51
@ HasAdd
Definition: GenericPacketMath.h:47
@ HasExp
Definition: GenericPacketMath.h:68
@ HasRound
Definition: GenericPacketMath.h:98
@ HasRint
Definition: GenericPacketMath.h:99
@ HasBetaInc
Definition: GenericPacketMath.h:96
@ HasSqrt
Definition: GenericPacketMath.h:66
@ HasLGamma
Definition: GenericPacketMath.h:84
@ HasErf
Definition: GenericPacketMath.h:88
@ HasBessel
Definition: GenericPacketMath.h:91
@ HasAbs
Definition: GenericPacketMath.h:52
@ HasCosh
Definition: GenericPacketMath.h:82
@ HasExpm1
Definition: GenericPacketMath.h:69
@ HasLog
Definition: GenericPacketMath.h:70
@ HasTanh
Definition: GenericPacketMath.h:83
@ HasMul
Definition: GenericPacketMath.h:50
@ HasAbs2
Definition: GenericPacketMath.h:54
@ HasGammaSampleDerAlpha
Definition: GenericPacketMath.h:94
@ HasIGammaDerA
Definition: GenericPacketMath.h:93
@ HasATan
Definition: GenericPacketMath.h:80
@ HasFloor
Definition: GenericPacketMath.h:100
@ HasHalfPacket
Definition: GenericPacketMath.h:45
@ HasDiv
Definition: GenericPacketMath.h:65
Definition: GenericPacketMath.h:160
EIGEN_ALWAYS_INLINE eigen_packet_wrapper & operator=(const T &v)
Definition: GenericPacketMath.h:165
EIGEN_ALWAYS_INLINE eigen_packet_wrapper(const T &v)
Definition: GenericPacketMath.h:164
EIGEN_ALWAYS_INLINE eigen_packet_wrapper()
Definition: GenericPacketMath.h:163
T m_val
Definition: GenericPacketMath.h:170
Definition: GenericPacketMath.h:178
unpacket_traits< Packet >::type Scalar
Definition: GenericPacketMath.h:179
Definition: GenericPacketMath.h:346
static EIGEN_DEVICE_FUNC T bitwise_not(const T &a)
Definition: GenericPacketMath.h:350
static EIGEN_DEVICE_FUNC T bitwise_xor(const T &a, const T &b)
Definition: GenericPacketMath.h:349
static EIGEN_DEVICE_FUNC T bitwise_and(const T &a, const T &b)
Definition: GenericPacketMath.h:347
static EIGEN_DEVICE_FUNC T bitwise_or(const T &a, const T &b)
Definition: GenericPacketMath.h:348
Definition: GenericPacketMath.h:107
T type
Definition: GenericPacketMath.h:108
@ HasHalfPacket
Definition: GenericPacketMath.h:114
@ size
Definition: GenericPacketMath.h:112
@ AlignedOnScalar
Definition: GenericPacketMath.h:113
@ Vectorizable
Definition: GenericPacketMath.h:111
T half
Definition: GenericPacketMath.h:109
@ 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
@ HasConj
Definition: GenericPacketMath.h:125
@ HasAbs2
Definition: GenericPacketMath.h:122
@ HasAbs
Definition: GenericPacketMath.h:121
static EIGEN_DEVICE_FUNC Packet run(const Packet &a, const Packet &b, Op op)
Definition: GenericPacketMath.h:476
static EIGEN_DEVICE_FUNC Packet run(const Packet &a, const Packet &b, Op op)
Definition: GenericPacketMath.h:491
Definition: GenericPacketMath.h:464
static EIGEN_DEVICE_FUNC Packet run(const Packet &a, const Packet &b, Op op)
Definition: GenericPacketMath.h:466
static EIGEN_DEVICE_FUNC Packet run(const Packet &mask, const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:445
Definition: GenericPacketMath.h:435
static EIGEN_DEVICE_FUNC Packet run(const Packet &mask, const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:436
static EIGEN_DEVICE_FUNC T run(const T &)
Definition: GenericPacketMath.h:263
Definition: GenericPacketMath.h:248
static EIGEN_DEVICE_FUNC Packet run(const Packet &)
Definition: GenericPacketMath.h:249
static EIGEN_DEVICE_FUNC T run(const T &)
Definition: GenericPacketMath.h:289
Definition: GenericPacketMath.h:276
static EIGEN_DEVICE_FUNC Packet run(const Packet &)
Definition: GenericPacketMath.h:277
Definition: GenericPacketMath.h:148
@ TgtCoeffRatio
Definition: GenericPacketMath.h:152
@ VectorizedCast
Definition: GenericPacketMath.h:150
@ SrcCoeffRatio
Definition: GenericPacketMath.h:151
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