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(real,real part function)
86real()
const {
return RealReturnType(derived()); }
90EIGEN_DOC_UNARY_ADDONS(imag,imaginary part function)
94inline const ImagReturnType
95imag()
const {
return ImagReturnType(derived()); }
114EIGEN_DOC_UNARY_ADDONS(unaryExpr,unary function)
118template<
typename CustomUnaryOp>
120inline const CwiseUnaryOp<CustomUnaryOp, const Derived>
121unaryExpr(
const CustomUnaryOp& func = CustomUnaryOp())
const
123 return CwiseUnaryOp<CustomUnaryOp, const Derived>(derived(), func);
135EIGEN_DOC_UNARY_ADDONS(unaryViewExpr,unary function)
139template<
typename CustomViewOp>
141inline const CwiseUnaryView<CustomViewOp, const Derived>
142unaryViewExpr(
const CustomViewOp& func = CustomViewOp())
const
144 return CwiseUnaryView<CustomViewOp, const Derived>(derived(), func);
149EIGEN_DOC_UNARY_ADDONS(real,real part function)
153inline NonConstRealReturnType
154real() {
return NonConstRealReturnType(derived()); }
158EIGEN_DOC_UNARY_ADDONS(imag,imaginary part function)
162inline NonConstImagReturnType
163imag() {
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)