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