13 #ifndef EIGEN_PARSED_BY_DOXYGEN
16 typedef std::conditional_t<NumTraits<Scalar>::IsComplex,
17 const CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>,
const Derived>,
19 > ConjugateReturnType;
21 typedef std::conditional_t<NumTraits<Scalar>::IsComplex,
22 const CwiseUnaryOp<internal::scalar_real_op<Scalar>,
const Derived>,
26 typedef std::conditional_t<NumTraits<Scalar>::IsComplex,
27 CwiseUnaryView<internal::scalar_real_ref_op<Scalar>, Derived>,
29 > NonConstRealReturnType;
31 typedef CwiseUnaryOp<internal::scalar_imag_op<Scalar>,
const Derived> ImagReturnType;
33 typedef CwiseUnaryView<internal::scalar_imag_ref_op<Scalar>, Derived> NonConstImagReturnType;
35 typedef CwiseUnaryOp<internal::scalar_opposite_op<Scalar>,
const Derived> NegativeReturnType;
41 EIGEN_DOC_UNARY_ADDONS(
operator-,opposite)
44 inline const NegativeReturnType
45 operator-()
const {
return NegativeReturnType(derived()); }
48 template<
class NewType>
struct CastXpr {
typedef typename internal::cast_return_type<Derived,const CwiseUnaryOp<internal::scalar_cast_op<Scalar, NewType>,
const Derived> >::type Type; };
55 EIGEN_DOC_UNARY_ADDONS(cast,conversion
function)
59 template<
typename NewType>
61 typename CastXpr<NewType>::Type
64 return typename CastXpr<NewType>::Type(derived());
69 EIGEN_DOC_UNARY_ADDONS(conjugate,complex conjugate)
73 inline ConjugateReturnType
76 return ConjugateReturnType(derived());
81 EIGEN_DOC_UNARY_ADDONS(conjugate,complex conjugate)
86 inline std::conditional_t<Cond,ConjugateReturnType,const Derived&>
89 typedef std::conditional_t<Cond,ConjugateReturnType,const Derived&> ReturnType;
90 return ReturnType(derived());
95 EIGEN_DOC_UNARY_ADDONS(real,real part
function)
100 real()
const {
return RealReturnType(derived()); }
104 EIGEN_DOC_UNARY_ADDONS(imag,imaginary part
function)
108 inline const ImagReturnType
109 imag()
const {
return ImagReturnType(derived()); }
128 EIGEN_DOC_UNARY_ADDONS(unaryExpr,unary
function)
132 template<
typename CustomUnaryOp>
134 inline const CwiseUnaryOp<CustomUnaryOp, const Derived>
135 unaryExpr(
const CustomUnaryOp& func = CustomUnaryOp())
const
137 return CwiseUnaryOp<CustomUnaryOp, const Derived>(derived(), func);
149 EIGEN_DOC_UNARY_ADDONS(unaryViewExpr,unary
function)
153 template<
typename CustomViewOp>
155 inline const CwiseUnaryView<CustomViewOp, const Derived>
156 unaryViewExpr(
const CustomViewOp& func = CustomViewOp())
const
158 return CwiseUnaryView<CustomViewOp, const Derived>(derived(), func);
163 EIGEN_DOC_UNARY_ADDONS(real,real part
function)
167 inline NonConstRealReturnType
168 real() {
return NonConstRealReturnType(derived()); }
172 EIGEN_DOC_UNARY_ADDONS(imag,imaginary part
function)
176 inline NonConstImagReturnType
177 imag() {
return NonConstImagReturnType(derived()); }
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_imag_op< typename Derived::Scalar >, const Derived > imag(const Eigen::ArrayBase< Derived > &x)
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_real_op< typename Derived::Scalar >, const Derived > real(const Eigen::ArrayBase< Derived > &x)