10 #ifndef EIGEN_BINARY_FUNCTORS_H
11 #define EIGEN_BINARY_FUNCTORS_H
14 #include "../InternalHeaderCheck.h"
22 template <
typename Arg1,
typename Arg2>
33 template <
typename LhsScalar,
typename RhsScalar>
36 #ifdef EIGEN_SCALAR_BINARY_OP_PLUGIN
43 template <
typename Packet>
47 template <
typename Packet>
52 template <
typename LhsScalar,
typename RhsScalar>
72 template <
typename LhsScalar,
typename RhsScalar>
75 #ifdef EIGEN_SCALAR_BINARY_OP_PLUGIN
82 template <
typename Packet>
86 template <
typename Packet>
91 template <
typename LhsScalar,
typename RhsScalar>
103 const bool&
b)
const {
113 template <
typename LhsScalar,
typename RhsScalar>
123 template <
typename Packet>
128 template <
typename LhsScalar,
typename RhsScalar>
141 template <
typename LhsScalar,
typename RhsScalar,
int NaNPropagation>
145 return internal::pmin<NaNPropagation>(
a,
b);
147 template <
typename Packet>
149 return internal::pmin<NaNPropagation>(
a,
b);
151 template <
typename Packet>
153 return internal::predux_min<NaNPropagation>(
a);
157 template <
typename LhsScalar,
typename RhsScalar,
int NaNPropagation>
170 template <
typename LhsScalar,
typename RhsScalar,
int NaNPropagation>
174 return internal::pmax<NaNPropagation>(
a,
b);
176 template <
typename Packet>
178 return internal::pmax<NaNPropagation>(
a,
b);
180 template <
typename Packet>
182 return internal::predux_max<NaNPropagation>(
a);
186 template <
typename LhsScalar,
typename RhsScalar,
int NaNPropagation>
198 template <
typename LhsScalar,
typename RhsScalar, ComparisonName cmp,
bool UseTypedComparators = false>
201 template <
typename LhsScalar,
typename RhsScalar, ComparisonName cmp,
bool UseTypedComparators>
210 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
218 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
221 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
227 template <
typename Packet>
234 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
240 template <
typename Packet>
247 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
253 template <
typename Packet>
260 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
266 template <
typename Packet>
273 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
279 template <
typename Packet>
286 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
292 template <
typename Packet>
299 template <
typename LhsScalar,
typename RhsScalar,
bool UseTypedComparators>
305 template <
typename Packet>
317 template <
typename Scalar>
328 template <
typename Scalar>
340 template <
typename Scalar,
typename Exponent>
343 #ifdef EIGEN_SCALAR_BINARY_OP_PLUGIN
346 typedef Exponent RhsScalar;
355 template <
typename Packet>
361 template <
typename Scalar,
typename Exponent>
380 template <
typename LhsScalar,
typename RhsScalar>
383 #ifdef EIGEN_SCALAR_BINARY_OP_PLUGIN
390 template <
typename Packet>
395 template <
typename LhsScalar,
typename RhsScalar>
409 #ifndef EIGEN_GPU_COMPILE_PHASE
410 template <
typename Packet>
429 template <
typename LhsScalar,
typename RhsScalar>
432 #ifdef EIGEN_SCALAR_BINARY_OP_PLUGIN
439 template <
typename Packet>
445 template <
typename LhsScalar,
typename RhsScalar>
460 template <
typename Scalar>
468 template <
typename Packet>
475 return pandnot(cst_one, a_nand_b);
478 template <
typename Scalar>
488 template <
typename Scalar>
496 template <
typename Packet>
502 return pandnot(cst_one, a_nor_b);
505 template <
typename Scalar>
515 template <
typename Scalar>
523 template <
typename Packet>
530 return pand(cst_one, a_xor_b);
533 template <
typename Scalar>
543 uint_t a_as_uint = numext::bit_cast<uint_t, Scalar>(
a);
544 uint_t b_as_uint = numext::bit_cast<uint_t, Scalar>(
b);
545 uint_t result = a_as_uint & b_as_uint;
546 return numext::bit_cast<Scalar, uint_t>(result);
549 uint_t a_as_uint = numext::bit_cast<uint_t, Scalar>(
a);
550 uint_t b_as_uint = numext::bit_cast<uint_t, Scalar>(
b);
551 uint_t result = a_as_uint | b_as_uint;
552 return numext::bit_cast<Scalar, uint_t>(result);
555 uint_t a_as_uint = numext::bit_cast<uint_t, Scalar>(
a);
556 uint_t b_as_uint = numext::bit_cast<uint_t, Scalar>(
b);
557 uint_t result = a_as_uint ^ b_as_uint;
558 return numext::bit_cast<Scalar, uint_t>(result);
562 template <
typename Scalar>
568 return Scalar(real_result, imag_result);
573 return Scalar(real_result, imag_result);
578 return Scalar(real_result, imag_result);
587 template <
typename Scalar>
590 BITWISE OPERATIONS MAY ONLY BE PERFORMED ON PLAIN DATA TYPES)
592 using result_type =
Scalar;
596 template <
typename Packet>
601 template <
typename Scalar>
611 template <
typename Scalar>
614 BITWISE OPERATIONS MAY ONLY BE PERFORMED ON PLAIN DATA TYPES)
616 using result_type =
Scalar;
620 template <
typename Packet>
625 template <
typename Scalar>
635 template <
typename Scalar>
638 BITWISE OPERATIONS MAY ONLY BE PERFORMED ON PLAIN DATA TYPES)
640 using result_type =
Scalar;
644 template <
typename Packet>
649 template <
typename Scalar>
659 template <
typename LhsScalar,
typename RhsScalar>
662 #ifdef EIGEN_SCALAR_BINARY_OP_PLUGIN
669 template <
typename Packet>
674 template <
typename LhsScalar,
typename RhsScalar>
682 template <
typename LhsScalar,
typename RhsScalar>
693 template <
typename Packet>
699 template <
typename LhsScalar,
typename RhsScalar>
715 template <
typename BinaryOp>
724 return BinaryOp::operator()(
m_value,
b);
727 template <
typename Packet>
729 return BinaryOp::packetOp(internal::pset1<Packet>(
m_value),
b);
734 template <
typename BinaryOp>
737 template <
typename BinaryOp>
746 return BinaryOp::operator()(
a,
m_value);
749 template <
typename Packet>
751 return BinaryOp::packetOp(
a, internal::pset1<Packet>(
m_value));
756 template <
typename BinaryOp>
AnnoyingScalar imag(const AnnoyingScalar &)
Definition: AnnoyingScalar.h:132
#define EIGEN_PREDICT_FALSE(x)
Definition: Macros.h:1179
#define EIGEN_UNUSED_VARIABLE(var)
Definition: Macros.h:966
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:892
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
#define EIGEN_STATIC_ASSERT(X, MSG)
Definition: StaticAssert.h:26
Scalar * b
Definition: benchVecAdd.cpp:17
SCALAR Scalar
Definition: bench_gemm.cpp:45
@ IsComplex
Definition: common.h:73
float real
Definition: datatypes.h:10
const Scalar * a
Definition: level2_cplx_impl.h:32
#define EIGEN_SCALAR_BINARY_OP_PLUGIN
Definition: linearstructure.cpp:12
@ cmp_NEQ
Definition: Constants.h:590
@ cmp_EQ
Definition: Constants.h:586
@ cmp_GT
Definition: Constants.h:591
@ cmp_LT
Definition: Constants.h:587
@ cmp_GE
Definition: Constants.h:592
@ cmp_LE
Definition: Constants.h:588
@ cmp_UNORD
Definition: Constants.h:589
EIGEN_DEVICE_FUNC Packet padd(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:318
EIGEN_STRONG_INLINE Packet8f pzero(const Packet8f &)
Definition: AVX/PacketMath.h:774
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE RealScalar positive_real_hypot(const RealScalar &x, const RealScalar &y)
Definition: MathFunctionsImpl.h:150
const Scalar & y
Definition: RandomImpl.h:36
EIGEN_STRONG_INLINE bool predux_any(const Packet4f &x)
Definition: AltiVec/PacketMath.h:2751
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:368
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet patan2(const Packet &y, const Packet &x)
Definition: GenericPacketMath.h:1475
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet generic_pow(const Packet &x, const Packet &y)
Definition: GenericPacketMathFunctions.h:2043
EIGEN_STRONG_INLINE Packet4f pcmp_le(const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1314
EIGEN_STRONG_INLINE Packet8h por(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2309
EIGEN_STRONG_INLINE Packet4i pcmp_lt(const Packet4i &a, const Packet4i &b)
Definition: AltiVec/PacketMath.h:1341
EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf &a, const Packet4cf &b)
Definition: AVX/Complex.h:88
EIGEN_STRONG_INLINE Packet8h pandnot(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2323
EIGEN_DEVICE_FUNC Packet pabsdiff(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:746
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux(const Packet &a)
Definition: GenericPacketMath.h:1232
EIGEN_STRONG_INLINE Packet2cf pcmp_eq(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:353
EIGEN_STRONG_INLINE Packet8h pand(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2319
EIGEN_STRONG_INLINE Packet8h pxor(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2315
EIGEN_DEVICE_FUNC Packet psub(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:337
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_mul(const Packet &a)
Definition: GenericPacketMath.h:1238
typename typed_cmp_helper< LhsScalar, RhsScalar, UseTypedComparators >::type cmp_return_t
Definition: BinaryFunctors.h:219
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T absdiff(const T &x, const T &y)
Definition: MathFunctions.h:1105
EIGEN_DEVICE_FUNC internal::pow_impl< ScalarX, ScalarY >::result_type pow(const ScalarX &x, const ScalarY &y)
Definition: MathFunctions.h:1161
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T atan2(const T &y, const T &x)
Definition: MathFunctions.h:1689
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
squared absolute value
Definition: GlobalFunctions.h:87
val
Definition: calibrate.py:119
type
Definition: compute_granudrum_aor.py:141
Definition: Eigen_Colamd.h:49
list x
Definition: plotDoE.py:28
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
Determines whether the given binary operation of two numeric types is allowed and what the scalar ret...
Definition: XprHelper.h:1043
Definition: BinaryFunctors.h:23
Arg1 first_argument_type
Definition: BinaryFunctors.h:24
Arg2 second_argument_type
Definition: BinaryFunctors.h:25
Definition: BinaryFunctors.h:716
BinaryOp::second_argument_type second_argument_type
Definition: BinaryFunctors.h:718
EIGEN_DEVICE_FUNC bind1st_op(const first_argument_type &val)
Definition: BinaryFunctors.h:721
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &b) const
Definition: BinaryFunctors.h:728
first_argument_type m_value
Definition: BinaryFunctors.h:732
BinaryOp::first_argument_type first_argument_type
Definition: BinaryFunctors.h:717
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const second_argument_type &b) const
Definition: BinaryFunctors.h:723
BinaryOp::result_type result_type
Definition: BinaryFunctors.h:719
Definition: BinaryFunctors.h:738
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a) const
Definition: BinaryFunctors.h:750
BinaryOp::first_argument_type first_argument_type
Definition: BinaryFunctors.h:739
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const first_argument_type &a) const
Definition: BinaryFunctors.h:745
BinaryOp::second_argument_type second_argument_type
Definition: BinaryFunctors.h:740
second_argument_type m_value
Definition: BinaryFunctors.h:754
EIGEN_DEVICE_FUNC bind2nd_op(const second_argument_type &val)
Definition: BinaryFunctors.h:743
BinaryOp::result_type result_type
Definition: BinaryFunctors.h:741
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run_xor(const Scalar &a, const Scalar &b)
Definition: BinaryFunctors.h:575
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run_or(const Scalar &a, const Scalar &b)
Definition: BinaryFunctors.h:570
typename NumTraits< Scalar >::Real Real
Definition: BinaryFunctors.h:564
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run_and(const Scalar &a, const Scalar &b)
Definition: BinaryFunctors.h:565
Definition: BinaryFunctors.h:539
static constexpr size_t Size
Definition: BinaryFunctors.h:540
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run_xor(const Scalar &a, const Scalar &b)
Definition: BinaryFunctors.h:554
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run_or(const Scalar &a, const Scalar &b)
Definition: BinaryFunctors.h:548
typename numext::get_integer_by_size< Size >::unsigned_type uint_t
Definition: BinaryFunctors.h:541
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run_and(const Scalar &a, const Scalar &b)
Definition: BinaryFunctors.h:542
Definition: ConjHelper.h:71
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ResultType pmul(const LhsType &x, const RhsType &y) const
Definition: ConjHelper.h:79
LhsScalar Scalar
Definition: BinaryFunctors.h:701
scalar_quotient_op< LhsScalar, RhsScalar >::result_type result_type
Definition: BinaryFunctors.h:447
Definition: XprHelper.h:205
@ PacketAccess
Definition: XprHelper.h:206
@ Cost
Definition: XprHelper.h:206
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void run(Packet x)
Definition: BinaryFunctors.h:412
Definition: BinaryFunctors.h:405
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void run(Packet x)
Definition: BinaryFunctors.h:406
Definition: GenericPacketMath.h:108
Template functor to compute the absolute difference of two scalars.
Definition: BinaryFunctors.h:660
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_absolute_difference_op >::ReturnType result_type
Definition: BinaryFunctors.h:661
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:666
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:670
Definition: BinaryFunctors.h:683
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &y, const Packet &x) const
Definition: BinaryFunctors.h:694
LhsScalar Scalar
Definition: BinaryFunctors.h:684
static constexpr bool Enable
Definition: BinaryFunctors.h:686
Template functor to compute the atan of a scalar.
Definition: functors/UnaryFunctors.h:676
Template functor to compute the bitwise and of two scalars.
Definition: BinaryFunctors.h:588
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar &a, const Scalar &b) const
Definition: BinaryFunctors.h:593
EIGEN_STATIC_ASSERT(!NumTraits< Scalar >::RequireInitialization, BITWISE OPERATIONS MAY ONLY BE PERFORMED ON PLAIN DATA TYPES) using result_type
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:597
Template functor to compute the bitwise or of two scalars.
Definition: BinaryFunctors.h:612
EIGEN_STATIC_ASSERT(!NumTraits< Scalar >::RequireInitialization, BITWISE OPERATIONS MAY ONLY BE PERFORMED ON PLAIN DATA TYPES) using result_type
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar &a, const Scalar &b) const
Definition: BinaryFunctors.h:617
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:621
Template functor to compute the bitwise xor of two scalars.
Definition: BinaryFunctors.h:636
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:645
EIGEN_STATIC_ASSERT(!NumTraits< Scalar >::RequireInitialization, BITWISE OPERATIONS MAY ONLY BE PERFORMED ON PLAIN DATA TYPES) using result_type
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar &a, const Scalar &b) const
Definition: BinaryFunctors.h:641
Template functor to compute the and of two scalars as if they were booleans.
Definition: BinaryFunctors.h:461
Scalar result_type
Definition: BinaryFunctors.h:462
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar &a, const Scalar &b) const
Definition: BinaryFunctors.h:465
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:469
Template functor to compute the or of two scalars as if they were booleans.
Definition: BinaryFunctors.h:489
EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:497
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar &a, const Scalar &b) const
Definition: BinaryFunctors.h:493
Scalar result_type
Definition: BinaryFunctors.h:490
Template functor to compute the xor of two scalars as if they were booleans.
Definition: BinaryFunctors.h:516
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar &a, const Scalar &b) const
Definition: BinaryFunctors.h:520
Scalar result_type
Definition: BinaryFunctors.h:517
EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:524
cmp_return_t< LhsScalar, RhsScalar, UseTypedComparators > result_type
Definition: BinaryFunctors.h:223
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:228
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:224
cmp_return_t< LhsScalar, RhsScalar, UseTypedComparators > result_type
Definition: BinaryFunctors.h:275
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:280
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:276
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:267
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:263
cmp_return_t< LhsScalar, RhsScalar, UseTypedComparators > result_type
Definition: BinaryFunctors.h:262
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:254
cmp_return_t< LhsScalar, RhsScalar, UseTypedComparators > result_type
Definition: BinaryFunctors.h:249
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:250
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:237
cmp_return_t< LhsScalar, RhsScalar, UseTypedComparators > result_type
Definition: BinaryFunctors.h:236
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:241
cmp_return_t< LhsScalar, RhsScalar, UseTypedComparators > result_type
Definition: BinaryFunctors.h:301
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:302
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:306
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:293
cmp_return_t< LhsScalar, RhsScalar, UseTypedComparators > result_type
Definition: BinaryFunctors.h:288
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:289
Template functors for comparison of two scalars.
Definition: BinaryFunctors.h:199
Template functor to compute the conjugate product of two scalars.
Definition: BinaryFunctors.h:114
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_conj_product_op >::ReturnType result_type
Definition: BinaryFunctors.h:117
@ Conj
Definition: BinaryFunctors.h:115
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:119
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:124
Template functor to compute the difference of two scalars.
Definition: BinaryFunctors.h:381
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:391
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:387
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_difference_op >::ReturnType result_type
Definition: BinaryFunctors.h:382
Definition: XprHelper.h:883
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar &x, const Scalar &y) const
Definition: BinaryFunctors.h:319
Definition: ForwardDeclarations.h:320
Template functor to compute the max of two scalars.
Definition: BinaryFunctors.h:171
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_max_op >::ReturnType result_type
Definition: BinaryFunctors.h:172
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type predux(const Packet &a) const
Definition: BinaryFunctors.h:181
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:173
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:177
Template functor to compute the min of two scalars.
Definition: BinaryFunctors.h:142
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_min_op >::ReturnType result_type
Definition: BinaryFunctors.h:143
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:144
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type predux(const Packet &a) const
Definition: BinaryFunctors.h:152
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:148
Template functor to compute the pow of two scalars See the specification of pow in https://en....
Definition: BinaryFunctors.h:341
ScalarBinaryOpTraits< Scalar, Exponent, scalar_pow_op >::ReturnType result_type
Definition: BinaryFunctors.h:342
EIGEN_DEVICE_FUNC result_type operator()(const Scalar &a, const Exponent &b) const
Definition: BinaryFunctors.h:351
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:356
Template functor to compute the product of two scalars.
Definition: BinaryFunctors.h:73
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:79
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type predux(const Packet &a) const
Definition: BinaryFunctors.h:87
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:83
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_product_op >::ReturnType result_type
Definition: BinaryFunctors.h:74
Template functor to compute the quotient of two scalars.
Definition: BinaryFunctors.h:430
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_quotient_op >::ReturnType result_type
Definition: BinaryFunctors.h:431
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:440
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:436
Template functor to compute the sum of two scalars.
Definition: BinaryFunctors.h:34
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type predux(const Packet &a) const
Definition: BinaryFunctors.h:48
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:44
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:40
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_sum_op >::ReturnType result_type
Definition: BinaryFunctors.h:35
Definition: BinaryFunctors.h:211
static constexpr bool IsNumeric
Definition: BinaryFunctors.h:213
static constexpr bool SameType
Definition: BinaryFunctors.h:212
static constexpr bool UseTyped
Definition: BinaryFunctors.h:214
typename conditional< UseTyped, LhsScalar, bool >::type type
Definition: BinaryFunctors.h:215
void unsigned_type
Definition: Meta.h:48
EIGEN_DONT_INLINE Scalar zero()
Definition: svd_common.h:232
Definition: ZVector/PacketMath.h:50