11 #ifndef EIGEN_GLOBAL_FUNCTIONS_H 12 #define EIGEN_GLOBAL_FUNCTIONS_H 14 #ifdef EIGEN_PARSED_BY_DOXYGEN 16 #define EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(NAME,FUNCTOR,DOC_OP,DOC_DETAILS) \ 23 template<typename Derived> \ 24 inline const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> \ 25 NAME(const Eigen::ArrayBase<Derived>& x); 29 #define EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(NAME,FUNCTOR,DOC_OP,DOC_DETAILS) \ 30 template<typename Derived> \ 31 inline const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> \ 32 (NAME)(const Eigen::ArrayBase<Derived>& x) { \ 33 return Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived>(x.derived()); \ 36 #endif // EIGEN_PARSED_BY_DOXYGEN 38 #define EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(NAME,FUNCTOR) \ 40 template<typename Derived> \ 41 struct NAME##_retval<ArrayBase<Derived> > \ 43 typedef const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> type; \ 45 template<typename Derived> \ 46 struct NAME##_impl<ArrayBase<Derived> > \ 48 static inline typename NAME##_retval<ArrayBase<Derived> >::type run(const Eigen::ArrayBase<Derived>& x) \ 50 return typename NAME##_retval<ArrayBase<Derived> >::type(x.derived()); \ 56 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(real,scalar_real_op,real part,\sa
ArrayBase::real)
57 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(imag,scalar_imag_op,imaginary part,\sa
ArrayBase::imag)
59 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(inverse,scalar_inverse_op,inverse,\sa
ArrayBase::inverse)
60 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sin,scalar_sin_op,sine,\sa
ArrayBase::sin)
61 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cos,scalar_cos_op,cosine,\sa
ArrayBase::cos)
62 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tan,scalar_tan_op,tangent,\sa
ArrayBase::tan)
63 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(atan,scalar_atan_op,arc-tangent,\sa
ArrayBase::atan)
64 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(asin,scalar_asin_op,arc-sine,\sa
ArrayBase::asin)
65 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(acos,scalar_acos_op,arc-consine,\sa
ArrayBase::acos)
66 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sinh,scalar_sinh_op,hyperbolic sine,\sa
ArrayBase::sinh)
67 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cosh,scalar_cosh_op,hyperbolic cosine,\sa
ArrayBase::cosh)
68 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tanh,scalar_tanh_op,hyperbolic tangent,\sa
ArrayBase::tanh)
69 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(lgamma,scalar_lgamma_op,natural logarithm of the gamma
function,\sa
ArrayBase::lgamma)
70 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(digamma,scalar_digamma_op,derivative of lgamma,\sa
ArrayBase::digamma)
71 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(erf,scalar_erf_op,error
function,\sa
ArrayBase::erf)
72 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(erfc,scalar_erfc_op,complement error
function,\sa
ArrayBase::erfc)
73 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(exp,scalar_exp_op,exponential,\sa
ArrayBase::exp)
74 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log,scalar_log_op,natural logarithm,\sa Eigen::log10 DOXCOMMA
ArrayBase::log)
75 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log1p,scalar_log1p_op,natural logarithm of 1 plus the value,\sa
ArrayBase::log1p)
76 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log10,scalar_log10_op,base 10 logarithm,\sa Eigen::log DOXCOMMA
ArrayBase::log)
81 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(rsqrt,scalar_rsqrt_op,reciprocal square root,\sa
ArrayBase::rsqrt)
82 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(square,scalar_square_op,square (power 2),\sa Eigen::abs2 DOXCOMMA Eigen::pow DOXCOMMA
ArrayBase::square)
83 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cube,scalar_cube_op,cube (power 3),\sa Eigen::pow DOXCOMMA
ArrayBase::cube)
84 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(round,scalar_round_op,nearest integer,\sa Eigen::floor DOXCOMMA Eigen::ceil DOXCOMMA
ArrayBase::round)
85 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(floor,scalar_floor_op,nearest integer not greater than the giben value,\sa Eigen::ceil DOXCOMMA
ArrayBase::floor)
86 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(ceil,scalar_ceil_op,nearest integer not less than the giben value,\sa Eigen::floor DOXCOMMA
ArrayBase::ceil)
87 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(isnan,scalar_isnan_op,not-a-number test,\sa Eigen::isinf DOXCOMMA Eigen::isfinite DOXCOMMA ArrayBase::isnan)
88 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(isinf,scalar_isinf_op,infinite value test,\sa Eigen::isnan DOXCOMMA Eigen::isfinite DOXCOMMA ArrayBase::isinf)
89 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(isfinite,scalar_isfinite_op,finite value test,\sa Eigen::isinf DOXCOMMA Eigen::isnan DOXCOMMA ArrayBase::isfinite)
90 EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sign,scalar_sign_op,sign (or 0),\sa
ArrayBase::sign)
100 #ifdef EIGEN_PARSED_BY_DOXYGEN 101 template<
typename Derived,
typename ScalarExponent>
102 inline const CwiseBinaryOp<internal::scalar_pow_op<Derived::Scalar,ScalarExponent>,Derived,Constant<ScalarExponent> >
105 template<
typename Derived,
typename ScalarExponent>
106 inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,ScalarExponent>::value) && EIGEN_SCALAR_BINARY_SUPPORTED(pow,
typename Derived::Scalar,ScalarExponent),
107 const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,ScalarExponent,pow) >::type
109 return x.derived().
pow(exponent);
112 template<
typename Derived>
113 inline const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,
typename Derived::Scalar,pow)
115 return x.derived().
pow(exponent);
130 template<
typename Derived,
typename ExponentDerived>
153 #ifdef EIGEN_PARSED_BY_DOXYGEN 154 template<
typename Scalar,
typename Derived>
158 template<
typename Scalar,
typename Derived>
160 const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(
Scalar,Derived,pow) >::type
163 return EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(
Scalar,Derived,pow)(
167 template<
typename Derived>
168 inline const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(
typename Derived::Scalar,Derived,pow)
171 return EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(
typename Derived::Scalar,Derived,pow)(
179 EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(real,scalar_real_op)
180 EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(imag,scalar_imag_op)
181 EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(abs2,scalar_abs2_op)
187 #endif // EIGEN_GLOBAL_FUNCTIONS_H EIGEN_DEVICE_FUNC const CoshReturnType cosh() const
Definition: ArrayBase.h:319
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseAbs2ReturnType cwiseAbs2() const
Definition: MatrixBase.h:46
Generic expression of a matrix where all coefficients are defined by a functor.
Definition: CwiseNullaryOp.h:60
internal::traits< Derived >::Scalar Scalar
The numeric type of the expression' coefficients, e.g.
Definition: DenseBase.h:66
EIGEN_DEVICE_FUNC const Log1pReturnType log1p() const
Definition: ArrayBase.h:120
EIGEN_DEVICE_FUNC RealReturnType real() const
Definition: ArrayBase.h:87
EIGEN_DEVICE_FUNC const RoundReturnType round() const
Definition: ArrayBase.h:375
EIGEN_DEVICE_FUNC const TanhReturnType tanh() const
Definition: ArrayBase.h:291
EIGEN_DEVICE_FUNC const CubeReturnType cube() const
Definition: ArrayBase.h:361
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:85
EIGEN_DEVICE_FUNC const TanReturnType tan() const
Definition: ArrayBase.h:235
const Eigen::CwiseBinaryOp< Eigen::internal::scalar_pow_op< typename Derived::Scalar, typename ExponentDerived::Scalar >, const Derived, const ExponentDerived > pow(const Eigen::ArrayBase< Derived > &x, const Eigen::ArrayBase< ExponentDerived > &exponents)
Definition: GlobalFunctions.h:132
EIGEN_DEVICE_FUNC const SinReturnType sin() const
Definition: ArrayBase.h:221
EIGEN_DEVICE_FUNC const DigammaReturnType digamma() const
Definition: ArrayBase.h:508
EIGEN_DEVICE_FUNC const LogReturnType log() const
Definition: ArrayBase.h:106
EIGEN_DEVICE_FUNC const CwiseSqrtReturnType cwiseSqrt() const
Definition: MatrixBase.h:59
internal::enable_if< !(internal::is_same< typename Derived::Scalar, Scalar >::value) &&EIGEN_SCALAR_BINARY_SUPPORTED(pow, Scalar, typename Derived::Scalar), const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar, Derived, pow) >::type pow(const Scalar &x, const Eigen::ArrayBase< Derived > &exponents)
Definition: GlobalFunctions.h:161
EIGEN_DEVICE_FUNC const InverseReturnType inverse() const
Definition: ArrayBase.h:333
EIGEN_DEVICE_FUNC const ImagReturnType imag() const
Definition: ArrayBase.h:96
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArgReturnType arg() const
Definition: ArrayBase.h:58
Generic expression where a coefficient-wise binary operator is applied to two expressions.
Definition: CwiseBinaryOp.h:77
EIGEN_DEVICE_FUNC const CeilReturnType ceil() const
Definition: ArrayBase.h:403
EIGEN_DEVICE_FUNC const AcosReturnType acos() const
Definition: ArrayBase.h:263
EIGEN_DEVICE_FUNC const SquareReturnType square() const
Definition: ArrayBase.h:347
EIGEN_DEVICE_FUNC ConjugateReturnType conjugate() const
Definition: ArrayBase.h:75
internal::enable_if< !(internal::is_same< typename Derived::Scalar, ScalarExponent >::value) &&EIGEN_SCALAR_BINARY_SUPPORTED(pow, typename Derived::Scalar, ScalarExponent), const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived, ScalarExponent, pow) >::type pow(const Eigen::ArrayBase< Derived > &x, const ScalarExponent &exponent)
Definition: GlobalFunctions.h:108
EIGEN_DEVICE_FUNC const RsqrtReturnType rsqrt() const
Definition: ArrayBase.h:169
EIGEN_DEVICE_FUNC const SqrtReturnType sqrt() const
Definition: ArrayBase.h:153
EIGEN_DEVICE_FUNC const SinhReturnType sinh() const
Definition: ArrayBase.h:305
EIGEN_DEVICE_FUNC const LgammaReturnType lgamma() const
Definition: ArrayBase.h:491
Base class for all 1D and 2D array, and related expressions.
Definition: ArrayBase.h:39
EIGEN_DEVICE_FUNC const AsinReturnType asin() const
Definition: ArrayBase.h:277
EIGEN_DEVICE_FUNC const FloorReturnType floor() const
Definition: ArrayBase.h:389
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseAbsReturnType cwiseAbs() const
Definition: MatrixBase.h:33
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Abs2ReturnType abs2() const
Definition: ArrayBase.h:72
EIGEN_DEVICE_FUNC const ErfReturnType erf() const
Definition: ArrayBase.h:529
Definition: BandTriangularSolver.h:13
EIGEN_DEVICE_FUNC const AtanReturnType atan() const
Definition: ArrayBase.h:249
EIGEN_DEVICE_FUNC const SignReturnType sign() const
Definition: ArrayBase.h:185
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const AbsReturnType abs() const
Definition: ArrayBase.h:44
Definition: datatypes.h:12
EIGEN_DEVICE_FUNC const ErfcReturnType erfc() const
Definition: ArrayBase.h:550
EIGEN_DEVICE_FUNC const CosReturnType cos() const
Definition: ArrayBase.h:203
EIGEN_DEVICE_FUNC const ExpReturnType exp() const
Definition: ArrayBase.h:89