1typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>,
const Derived> AbsReturnType;
2typedef CwiseUnaryOp<internal::scalar_arg_op<Scalar>,
const Derived> ArgReturnType;
3typedef CwiseUnaryOp<internal::scalar_carg_op<Scalar>,
const Derived> CArgReturnType;
4typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>,
const Derived> Abs2ReturnType;
5typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>,
const Derived> SqrtReturnType;
6typedef CwiseUnaryOp<internal::scalar_cbrt_op<Scalar>,
const Derived> CbrtReturnType;
7typedef CwiseUnaryOp<internal::scalar_rsqrt_op<Scalar>,
const Derived> RsqrtReturnType;
8typedef CwiseUnaryOp<internal::scalar_sign_op<Scalar>,
const Derived> SignReturnType;
9typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>,
const Derived> InverseReturnType;
10typedef CwiseUnaryOp<internal::scalar_boolean_not_op<Scalar>,
const Derived> BooleanNotReturnType;
11typedef CwiseUnaryOp<internal::scalar_bitwise_not_op<Scalar>,
const Derived> BitwiseNotReturnType;
13typedef CwiseUnaryOp<internal::scalar_exp_op<Scalar>,
const Derived> ExpReturnType;
14typedef CwiseUnaryOp<internal::scalar_exp2_op<Scalar>,
const Derived> Exp2ReturnType;
15typedef CwiseUnaryOp<internal::scalar_expm1_op<Scalar>,
const Derived> Expm1ReturnType;
16typedef CwiseUnaryOp<internal::scalar_log_op<Scalar>,
const Derived> LogReturnType;
17typedef CwiseUnaryOp<internal::scalar_log1p_op<Scalar>,
const Derived> Log1pReturnType;
18typedef CwiseUnaryOp<internal::scalar_log10_op<Scalar>,
const Derived> Log10ReturnType;
19typedef CwiseUnaryOp<internal::scalar_log2_op<Scalar>,
const Derived> Log2ReturnType;
20typedef CwiseUnaryOp<internal::scalar_cos_op<Scalar>,
const Derived> CosReturnType;
21typedef CwiseUnaryOp<internal::scalar_sin_op<Scalar>,
const Derived> SinReturnType;
22typedef CwiseUnaryOp<internal::scalar_tan_op<Scalar>,
const Derived> TanReturnType;
23typedef CwiseUnaryOp<internal::scalar_acos_op<Scalar>,
const Derived> AcosReturnType;
24typedef CwiseUnaryOp<internal::scalar_asin_op<Scalar>,
const Derived> AsinReturnType;
25typedef CwiseUnaryOp<internal::scalar_atan_op<Scalar>,
const Derived> AtanReturnType;
26typedef CwiseUnaryOp<internal::scalar_tanh_op<Scalar>,
const Derived> TanhReturnType;
27typedef CwiseUnaryOp<internal::scalar_logistic_op<Scalar>,
const Derived> LogisticReturnType;
28typedef CwiseUnaryOp<internal::scalar_sinh_op<Scalar>,
const Derived> SinhReturnType;
29typedef CwiseUnaryOp<internal::scalar_atanh_op<Scalar>,
const Derived> AtanhReturnType;
30typedef CwiseUnaryOp<internal::scalar_asinh_op<Scalar>,
const Derived> AsinhReturnType;
31typedef CwiseUnaryOp<internal::scalar_acosh_op<Scalar>,
const Derived> AcoshReturnType;
32typedef CwiseUnaryOp<internal::scalar_cosh_op<Scalar>,
const Derived> CoshReturnType;
33typedef CwiseUnaryOp<internal::scalar_square_op<Scalar>,
const Derived> SquareReturnType;
34typedef CwiseUnaryOp<internal::scalar_cube_op<Scalar>,
const Derived> CubeReturnType;
35typedef CwiseUnaryOp<internal::scalar_round_op<Scalar>,
const Derived> RoundReturnType;
36typedef CwiseUnaryOp<internal::scalar_rint_op<Scalar>,
const Derived> RintReturnType;
37typedef CwiseUnaryOp<internal::scalar_floor_op<Scalar>,
const Derived> FloorReturnType;
38typedef CwiseUnaryOp<internal::scalar_ceil_op<Scalar>,
const Derived> CeilReturnType;
39typedef CwiseUnaryOp<internal::scalar_trunc_op<Scalar>,
const Derived> TruncReturnType;
40typedef CwiseUnaryOp<internal::scalar_isnan_op<Scalar>,
const Derived> IsNaNReturnType;
41typedef CwiseUnaryOp<internal::scalar_isinf_op<Scalar>,
const Derived> IsInfReturnType;
42typedef CwiseUnaryOp<internal::scalar_isfinite_op<Scalar>,
const Derived> IsFiniteReturnType;
43typedef CwiseUnaryOp<internal::scalar_isfinite_op<Scalar, true>,
const Derived> IsFiniteTypedReturnType;
52EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
const AbsReturnType abs()
const {
return AbsReturnType(derived()); }
61EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
const ArgReturnType
arg()
const {
return ArgReturnType(derived()); }
63EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
const CArgReturnType
carg()
const {
return CArgReturnType(derived()); }
72EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
const Abs2ReturnType
abs2()
const {
return Abs2ReturnType(derived()); }
85EIGEN_DEVICE_FUNC
inline const ExpReturnType exp()
const {
return ExpReturnType(derived()); }
94EIGEN_DEVICE_FUNC
inline const Exp2ReturnType exp2()
const {
return Exp2ReturnType(derived()); }
103EIGEN_DEVICE_FUNC
inline const Expm1ReturnType expm1()
const {
return Expm1ReturnType(derived()); }
115EIGEN_DEVICE_FUNC
inline const LogReturnType log()
const {
return LogReturnType(derived()); }
124EIGEN_DEVICE_FUNC
inline const Log1pReturnType log1p()
const {
return Log1pReturnType(derived()); }
135EIGEN_DEVICE_FUNC
inline const Log10ReturnType log10()
const {
return Log10ReturnType(derived()); }
142EIGEN_DEVICE_FUNC
inline const Log2ReturnType log2()
const {
return Log2ReturnType(derived()); }
154EIGEN_DEVICE_FUNC
inline const SqrtReturnType sqrt()
const {
return SqrtReturnType(derived()); }
165EIGEN_DEVICE_FUNC
inline const CbrtReturnType
cbrt()
const {
return CbrtReturnType(derived()); }
176EIGEN_DEVICE_FUNC
inline const RsqrtReturnType
rsqrt()
const {
return RsqrtReturnType(derived()); }
187EIGEN_DEVICE_FUNC
inline const SignReturnType
sign()
const {
return SignReturnType(derived()); }
199EIGEN_DEVICE_FUNC
inline const CosReturnType cos()
const {
return CosReturnType(derived()); }
211EIGEN_DEVICE_FUNC
inline const SinReturnType sin()
const {
return SinReturnType(derived()); }
220EIGEN_DEVICE_FUNC
inline const TanReturnType tan()
const {
return TanReturnType(derived()); }
229EIGEN_DEVICE_FUNC
inline const AtanReturnType atan()
const {
return AtanReturnType(derived()); }
238EIGEN_DEVICE_FUNC
inline const AcosReturnType acos()
const {
return AcosReturnType(derived()); }
247EIGEN_DEVICE_FUNC
inline const AsinReturnType asin()
const {
return AsinReturnType(derived()); }
256EIGEN_DEVICE_FUNC
inline const TanhReturnType tanh()
const {
return TanhReturnType(derived()); }
265EIGEN_DEVICE_FUNC
inline const SinhReturnType sinh()
const {
return SinhReturnType(derived()); }
274EIGEN_DEVICE_FUNC
inline const CoshReturnType cosh()
const {
return CoshReturnType(derived()); }
280EIGEN_DEVICE_FUNC
inline const AtanhReturnType atanh()
const {
return AtanhReturnType(derived()); }
286EIGEN_DEVICE_FUNC
inline const AsinhReturnType asinh()
const {
return AsinhReturnType(derived()); }
292EIGEN_DEVICE_FUNC
inline const AcoshReturnType acosh()
const {
return AcoshReturnType(derived()); }
296EIGEN_DEVICE_FUNC
inline const LogisticReturnType
logistic()
const {
return LogisticReturnType(derived()); }
305EIGEN_DEVICE_FUNC
inline const InverseReturnType
inverse()
const {
return InverseReturnType(derived()); }
314EIGEN_DEVICE_FUNC
inline const SquareReturnType
square()
const {
return SquareReturnType(derived()); }
323EIGEN_DEVICE_FUNC
inline const CubeReturnType
cube()
const {
return CubeReturnType(derived()); }
332EIGEN_DEVICE_FUNC
inline const RintReturnType rint()
const {
return RintReturnType(derived()); }
341EIGEN_DEVICE_FUNC
inline const RoundReturnType round()
const {
return RoundReturnType(derived()); }
350EIGEN_DEVICE_FUNC
inline const FloorReturnType floor()
const {
return FloorReturnType(derived()); }
359EIGEN_DEVICE_FUNC
inline const CeilReturnType ceil()
const {
return CeilReturnType(derived()); }
368EIGEN_DEVICE_FUNC
inline const TruncReturnType trunc()
const {
return TruncReturnType(derived()); }
371struct ShiftRightXpr {
372 typedef CwiseUnaryOp<internal::scalar_shift_right_op<Scalar, N>,
const Derived> Type;
383EIGEN_DEVICE_FUNC
typename ShiftRightXpr<N>::Type shiftRight()
const {
384 return typename ShiftRightXpr<N>::Type(derived());
389 typedef CwiseUnaryOp<internal::scalar_shift_left_op<Scalar, N>,
const Derived> Type;
400EIGEN_DEVICE_FUNC
typename ShiftLeftXpr<N>::Type shiftLeft()
const {
401 return typename ShiftLeftXpr<N>::Type(derived());
411EIGEN_DEVICE_FUNC
inline const IsNaNReturnType isNaN()
const {
return IsNaNReturnType(derived()); }
420EIGEN_DEVICE_FUNC
inline const IsInfReturnType isInf()
const {
return IsInfReturnType(derived()); }
429EIGEN_DEVICE_FUNC
inline const IsFiniteReturnType isFinite()
const {
return IsFiniteReturnType(derived()); }
430EIGEN_DEVICE_FUNC
inline const IsFiniteTypedReturnType isFiniteTyped()
const {
431 return IsFiniteTypedReturnType(derived());
441EIGEN_DEVICE_FUNC
inline const BooleanNotReturnType operator!()
const {
return BooleanNotReturnType(derived()); }
445EIGEN_DEVICE_FUNC
inline const BitwiseNotReturnType operator~()
const {
return BitwiseNotReturnType(derived()); }
449typedef CwiseUnaryOp<internal::scalar_lgamma_op<Scalar>,
const Derived> LgammaReturnType;
450typedef CwiseUnaryOp<internal::scalar_digamma_op<Scalar>,
const Derived> DigammaReturnType;
451typedef CwiseUnaryOp<internal::scalar_erf_op<Scalar>,
const Derived> ErfReturnType;
452typedef CwiseUnaryOp<internal::scalar_erfc_op<Scalar>,
const Derived> ErfcReturnType;
453typedef CwiseUnaryOp<internal::scalar_ndtri_op<Scalar>,
const Derived> NdtriReturnType;
465EIGEN_DEVICE_FUNC
inline const LgammaReturnType
lgamma()
const {
return LgammaReturnType(derived()); }
478EIGEN_DEVICE_FUNC
inline const DigammaReturnType
digamma()
const {
return DigammaReturnType(derived()); }
491EIGEN_DEVICE_FUNC
inline const ErfReturnType
erf()
const {
return ErfReturnType(derived()); }
504EIGEN_DEVICE_FUNC
inline const ErfcReturnType
erfc()
const {
return ErfcReturnType(derived()); }
519EIGEN_DEVICE_FUNC
inline const NdtriReturnType
ndtri()
const {
return NdtriReturnType(derived()); }
521template <
typename ScalarExponent>
522using UnaryPowReturnType =
523 std::enable_if_t<internal::is_arithmetic<typename NumTraits<ScalarExponent>::Real>::value,
524 CwiseUnaryOp<internal::scalar_unary_pow_op<Scalar, ScalarExponent>,
const Derived>>;
540template <
typename ScalarExponent>
541EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
const UnaryPowReturnType<ScalarExponent> pow(
542 const ScalarExponent& exponent)
const {
543 return UnaryPowReturnType<ScalarExponent>(derived(), internal::scalar_unary_pow_op<Scalar, ScalarExponent>(exponent));
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_inverse_op< typename Derived::Scalar >, const Derived > inverse(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_rsqrt_op< typename Derived::Scalar >, const Derived > rsqrt(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_cube_op< typename Derived::Scalar >, const Derived > cube(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_square_op< typename Derived::Scalar >, const Derived > square(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_sign_op< typename Derived::Scalar >, const Derived > sign(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_logistic_op< typename Derived::Scalar >, const Derived > logistic(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_lgamma_op< typename Derived::Scalar >, const Derived > lgamma(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_abs2_op< typename Derived::Scalar >, const Derived > abs2(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_erf_op< typename Derived::Scalar >, const Derived > erf(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_carg_op< typename Derived::Scalar >, const Derived > carg(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_erfc_op< typename Derived::Scalar >, const Derived > erfc(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_ndtri_op< typename Derived::Scalar >, const Derived > ndtri(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_arg_op< typename Derived::Scalar >, const Derived > arg(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_digamma_op< typename Derived::Scalar >, const Derived > digamma(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_cbrt_op< typename Derived::Scalar >, const Derived > cbrt(const Eigen::ArrayBase< Derived > &x)