10#ifndef EIGEN_BINARY_FUNCTORS_H
11#define EIGEN_BINARY_FUNCTORS_H
19template<
typename Arg1,
typename Arg2>
31template<
typename LhsScalar,
typename RhsScalar>
35#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
39 EIGEN_SCALAR_BINARY_OP_PLUGIN
43 template<
typename Packet>
46 template<
typename Packet>
50template<
typename LhsScalar,
typename RhsScalar>
69template<
typename LhsScalar,
typename RhsScalar>
73#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
77 EIGEN_SCALAR_BINARY_OP_PLUGIN
81 template<
typename Packet>
84 template<
typename Packet>
88template<
typename LhsScalar,
typename RhsScalar>
106template<
typename LhsScalar,
typename RhsScalar>
120 template<
typename Packet>
124template<
typename LhsScalar,
typename RhsScalar>
137template<
typename LhsScalar,
typename RhsScalar,
int NaNPropagation>
143 return internal::pmin<NaNPropagation>(a,
b);
145 template<
typename Packet>
148 return internal::pmin<NaNPropagation>(a,
b);
150 template<
typename Packet>
153 return internal::predux_min<NaNPropagation>(a);
157template<
typename LhsScalar,
typename RhsScalar,
int NaNPropagation>
170template<
typename LhsScalar,
typename RhsScalar,
int NaNPropagation>
176 return internal::pmax<NaNPropagation>(a,
b);
178 template<
typename Packet>
181 return internal::pmax<NaNPropagation>(a,
b);
183 template<
typename Packet>
186 return internal::predux_max<NaNPropagation>(a);
190template<
typename LhsScalar,
typename RhsScalar,
int NaNPropagation>
202template<
typename LhsScalar,
typename RhsScalar, ComparisonName cmp>
struct scalar_cmp_op;
204template<
typename LhsScalar,
typename RhsScalar, ComparisonName cmp>
212template<ComparisonName Cmp,
typename LhsScalar,
typename RhsScalar>
218template<
typename LhsScalar,
typename RhsScalar>
225template<
typename LhsScalar,
typename RhsScalar>
232template<
typename LhsScalar,
typename RhsScalar>
239template<
typename LhsScalar,
typename RhsScalar>
246template<
typename LhsScalar,
typename RhsScalar>
253template<
typename LhsScalar,
typename RhsScalar>
260template<
typename LhsScalar,
typename RhsScalar>
273template<
typename Scalar>
288template<
typename Scalar>
303template<
typename Scalar,
typename Exponent>
307#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
311 typedef Scalar LhsScalar;
312 typedef Exponent RhsScalar;
313 EIGEN_SCALAR_BINARY_OP_PLUGIN
320 template<
typename Packet>
327template<
typename Scalar,
typename Exponent>
348template<
typename LhsScalar,
typename RhsScalar>
352#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
356 EIGEN_SCALAR_BINARY_OP_PLUGIN
360 template<
typename Packet>
364template<
typename LhsScalar,
typename RhsScalar>
377template<
typename LhsScalar,
typename RhsScalar>
381#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
385 EIGEN_SCALAR_BINARY_OP_PLUGIN
389 template<
typename Packet>
393template<
typename LhsScalar,
typename RhsScalar>
412 template<
typename Packet>
431 template<
typename Packet>
450 template<
typename Packet>
466template<
typename LhsScalar,
typename RhsScalar>
470#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
474 EIGEN_SCALAR_BINARY_OP_PLUGIN
479 template<
typename Packet>
483template<
typename LhsScalar,
typename RhsScalar>
509 template<
typename Packet>
511 {
return BinaryOp::packetOp(internal::pset1<Packet>(
m_value),
b); }
528 template<
typename Packet>
530 {
return BinaryOp::packetOp(a,internal::pset1<Packet>(
m_value)); }
internal::enable_if< internal::valid_indexed_view_overload< RowIndices, ColIndices >::value &&internal::traits< typenameEIGEN_INDEXED_VIEW_METHOD_TYPE< RowIndices, ColIndices >::type >::ReturnAsIndexedView, typenameEIGEN_INDEXED_VIEW_METHOD_TYPE< RowIndices, ColIndices >::type >::type operator()(const RowIndices &rowIndices, const ColIndices &colIndices) EIGEN_INDEXED_VIEW_METHOD_CONST
Definition: IndexedViewMethods.h:73
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:986
#define EIGEN_STRONG_INLINE
Definition: Macros.h:927
#define EIGEN_EMPTY_STRUCT_CTOR(X)
Definition: XprHelper.h:22
EIGEN_DEVICE_FUNC Packet padd(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:215
@ cmp_NEQ
Definition: Constants.h:555
@ cmp_EQ
Definition: Constants.h:551
@ cmp_GT
Definition: Constants.h:556
@ cmp_LT
Definition: Constants.h:552
@ cmp_GE
Definition: Constants.h:557
@ cmp_LE
Definition: Constants.h:553
@ cmp_UNORD
Definition: Constants.h:554
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux(const Packet &a)
Definition: GenericPacketMath.h:875
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet generic_pow(const Packet &x, const Packet &y)
Definition: GenericPacketMathFunctions.h:1449
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE RealScalar positive_real_hypot(const RealScalar &x, const RealScalar &y)
Definition: MathFunctionsImpl.h:80
const Scalar & y
Definition: MathFunctions.h:821
EIGEN_DEVICE_FUNC Packet pdiv(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:244
EIGEN_STRONG_INLINE Packet8h por(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1042
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux_mul(const Packet &a)
Definition: GenericPacketMath.h:882
EIGEN_DEVICE_FUNC Packet pmul(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:237
EIGEN_DEVICE_FUNC Packet pabsdiff(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:595
EIGEN_STRONG_INLINE Packet8h pand(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1050
EIGEN_STRONG_INLINE Packet8h pxor(const Packet8h &a, const Packet8h &b)
Definition: PacketMath.h:1047
EIGEN_DEVICE_FUNC Packet psub(const Packet &a, const Packet &b)
Definition: GenericPacketMath.h:222
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T absdiff(const T &x, const T &y)
Definition: MathFunctions.h:1296
EIGEN_DEVICE_FUNC internal::pow_impl< ScalarX, ScalarY >::result_type pow(const ScalarX &x, const ScalarY &y)
Definition: MathFunctions.h:1361
Namespace containing all symbols from the Eigen library.
Definition: Core:141
Definition: Eigen_Colamd.h:50
Holds information about the various numeric (i.e.
Definition: NumTraits.h:233
Determines whether the given binary operation of two numeric types is allowed and what the scalar ret...
Definition: XprHelper.h:806
Definition: BinaryFunctors.h:21
Arg1 first_argument_type
Definition: BinaryFunctors.h:22
Arg2 second_argument_type
Definition: BinaryFunctors.h:23
Definition: BinaryFunctors.h:499
BinaryOp::second_argument_type second_argument_type
Definition: BinaryFunctors.h:502
EIGEN_DEVICE_FUNC bind1st_op(const first_argument_type &val)
Definition: BinaryFunctors.h:505
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &b) const
Definition: BinaryFunctors.h:510
first_argument_type m_value
Definition: BinaryFunctors.h:513
BinaryOp::first_argument_type first_argument_type
Definition: BinaryFunctors.h:501
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const second_argument_type &b) const
Definition: BinaryFunctors.h:507
BinaryOp::result_type result_type
Definition: BinaryFunctors.h:503
Definition: BinaryFunctors.h:518
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a) const
Definition: BinaryFunctors.h:529
BinaryOp::first_argument_type first_argument_type
Definition: BinaryFunctors.h:520
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const first_argument_type &a) const
Definition: BinaryFunctors.h:526
BinaryOp::second_argument_type second_argument_type
Definition: BinaryFunctors.h:521
second_argument_type m_value
Definition: BinaryFunctors.h:532
EIGEN_DEVICE_FUNC bind2nd_op(const second_argument_type &val)
Definition: BinaryFunctors.h:524
BinaryOp::result_type result_type
Definition: BinaryFunctors.h:522
Definition: ConjHelper.h:63
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ResultType pmul(const LhsType &x, const RhsType &y) const
Definition: ConjHelper.h:71
scalar_quotient_op< LhsScalar, RhsScalar >::result_type result_type
Definition: BinaryFunctors.h:395
Definition: XprHelper.h:176
@ PacketAccess
Definition: XprHelper.h:180
@ Cost
Definition: XprHelper.h:179
Definition: GenericPacketMath.h:107
bool type
Definition: BinaryFunctors.h:214
Definition: BinaryFunctors.h:468
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_absolute_difference_op >::ReturnType result_type
Definition: BinaryFunctors.h:469
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:477
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:480
Definition: BinaryFunctors.h:409
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:413
Definition: BinaryFunctors.h:428
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:432
Definition: BinaryFunctors.h:447
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:451
bool result_type
Definition: BinaryFunctors.h:221
bool result_type
Definition: BinaryFunctors.h:249
bool result_type
Definition: BinaryFunctors.h:242
bool result_type
Definition: BinaryFunctors.h:235
bool result_type
Definition: BinaryFunctors.h:228
bool result_type
Definition: BinaryFunctors.h:263
bool result_type
Definition: BinaryFunctors.h:256
Definition: BinaryFunctors.h:202
Definition: BinaryFunctors.h:108
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_conj_product_op >::ReturnType result_type
Definition: BinaryFunctors.h:114
@ Conj
Definition: BinaryFunctors.h:111
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:121
Definition: BinaryFunctors.h:350
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:361
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:359
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_difference_op >::ReturnType result_type
Definition: BinaryFunctors.h:351
Definition: XprHelper.h:710
Definition: ForwardDeclarations.h:210
Definition: BinaryFunctors.h:172
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_max_op >::ReturnType result_type
Definition: BinaryFunctors.h:173
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type predux(const Packet &a) const
Definition: BinaryFunctors.h:184
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:179
Definition: BinaryFunctors.h:139
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_min_op >::ReturnType result_type
Definition: BinaryFunctors.h:140
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type predux(const Packet &a) const
Definition: BinaryFunctors.h:151
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:146
Definition: BinaryFunctors.h:305
ScalarBinaryOpTraits< Scalar, Exponent, scalar_pow_op >::ReturnType result_type
Definition: BinaryFunctors.h:306
EIGEN_DEVICE_FUNC result_type operator()(const Scalar &a, const Exponent &b) const
Definition: BinaryFunctors.h:318
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:321
Definition: BinaryFunctors.h:71
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_product_op >::ReturnType result_type
Definition: BinaryFunctors.h:72
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:80
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type predux(const Packet &a) const
Definition: BinaryFunctors.h:85
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:82
Definition: BinaryFunctors.h:379
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet &a, const Packet &b) const
Definition: BinaryFunctors.h:390
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const LhsScalar &a, const RhsScalar &b) const
Definition: BinaryFunctors.h:388
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_quotient_op >::ReturnType result_type
Definition: BinaryFunctors.h:380
Definition: BinaryFunctors.h:33
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_sum_op >::ReturnType result_type
Definition: BinaryFunctors.h:34
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type predux(const Packet &a) const
Definition: BinaryFunctors.h:47
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:42