20EIGEN_DOC_UNARY_ADDONS(cwiseAbs, absolute value)
24EIGEN_MAKE_CWISE_UNARY_OP(cwiseAbs, internal::scalar_abs_op, CwiseAbsReturnType)
31EIGEN_DOC_UNARY_ADDONS(cwiseAbs2, squared absolute value)
35EIGEN_MAKE_CWISE_UNARY_OP(cwiseAbs2, internal::scalar_abs2_op, CwiseAbs2ReturnType)
42EIGEN_DOC_UNARY_ADDONS(cwiseSqrt, square - root)
46EIGEN_MAKE_CWISE_UNARY_OP(cwiseSqrt, internal::scalar_sqrt_op, CwiseSqrtReturnType)
50EIGEN_DOC_UNARY_ADDONS(cwiseCbrt, cube - root)
54EIGEN_MAKE_CWISE_UNARY_OP(cwiseCbrt, internal::scalar_cbrt_op, CwiseCbrtReturnType)
58EIGEN_DOC_UNARY_ADDONS(cwiseSquare, square)
62EIGEN_MAKE_CWISE_UNARY_OP(cwiseSquare, internal::scalar_square_op, CwiseSquareReturnType)
69EIGEN_DOC_UNARY_ADDONS(cwiseSign, sign function)
71EIGEN_MAKE_CWISE_UNARY_OP(cwiseSign, internal::scalar_sign_op, CwiseSignReturnType)
78EIGEN_DOC_UNARY_ADDONS(cwiseInverse, inverse)
82EIGEN_MAKE_CWISE_UNARY_OP(cwiseInverse, internal::scalar_inverse_op, CwiseInverseReturnType)
89EIGEN_DOC_UNARY_ADDONS(cwiseArg, arg)
91EIGEN_MAKE_CWISE_UNARY_OP(cwiseArg, internal::scalar_arg_op, CwiseArgReturnType)
93EIGEN_MAKE_CWISE_UNARY_OP(cwiseCArg, internal::scalar_carg_op, CwiseCArgReturnType)
95template <
typename ScalarExponent>
96using CwisePowReturnType =
97 std::enable_if_t<internal::is_arithmetic<typename NumTraits<ScalarExponent>::Real>::value,
98 CwiseUnaryOp<internal::scalar_unary_pow_op<Scalar, ScalarExponent>,
const Derived>>;
100template <
typename ScalarExponent>
101EIGEN_DEVICE_FUNC
constexpr inline const CwisePowReturnType<ScalarExponent> cwisePow(
102 const ScalarExponent& exponent)
const {
103 return CwisePowReturnType<ScalarExponent>(derived(), internal::scalar_unary_pow_op<Scalar, ScalarExponent>(exponent));