1 2 3/** \returns an expression of the coefficient-wise absolute value of \c *this 4 * 5 * Example: \include Cwise_abs.cpp 6 * Output: \verbinclude Cwise_abs.out 7 * 8 * \sa abs2() 9 */ 10EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> 11abs() const 12{ 13 return derived(); 14} 15 16/** \returns an expression of the coefficient-wise squared absolute value of \c *this 17 * 18 * Example: \include Cwise_abs2.cpp 19 * Output: \verbinclude Cwise_abs2.out 20 * 21 * \sa abs(), square() 22 */ 23EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> 24abs2() const 25{ 26 return derived(); 27} 28 29/** \returns an expression of the coefficient-wise exponential of *this. 30 * 31 * Example: \include Cwise_exp.cpp 32 * Output: \verbinclude Cwise_exp.out 33 * 34 * \sa pow(), log(), sin(), cos() 35 */ 36inline const CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived> 37exp() const 38{ 39 return derived(); 40} 41 42/** \returns an expression of the coefficient-wise logarithm of *this. 43 * 44 * Example: \include Cwise_log.cpp 45 * Output: \verbinclude Cwise_log.out 46 * 47 * \sa exp() 48 */ 49inline const CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived> 50log() const 51{ 52 return derived(); 53} 54 55/** \returns an expression of the coefficient-wise square root of *this. 56 * 57 * Example: \include Cwise_sqrt.cpp 58 * Output: \verbinclude Cwise_sqrt.out 59 * 60 * \sa pow(), square() 61 */ 62inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> 63sqrt() const 64{ 65 return derived(); 66} 67 68/** \returns an expression of the coefficient-wise cosine of *this. 69 * 70 * Example: \include Cwise_cos.cpp 71 * Output: \verbinclude Cwise_cos.out 72 * 73 * \sa sin(), acos() 74 */ 75inline const CwiseUnaryOp<internal::scalar_cos_op<Scalar>, const Derived> 76cos() const 77{ 78 return derived(); 79} 80 81 82/** \returns an expression of the coefficient-wise sine of *this. 83 * 84 * Example: \include Cwise_sin.cpp 85 * Output: \verbinclude Cwise_sin.out 86 * 87 * \sa cos(), asin() 88 */ 89inline const CwiseUnaryOp<internal::scalar_sin_op<Scalar>, const Derived> 90sin() const 91{ 92 return derived(); 93} 94 95/** \returns an expression of the coefficient-wise arc cosine of *this. 96 * 97 * Example: \include Cwise_acos.cpp 98 * Output: \verbinclude Cwise_acos.out 99 * 100 * \sa cos(), asin() 101 */ 102inline const CwiseUnaryOp<internal::scalar_acos_op<Scalar>, const Derived> 103acos() const 104{ 105 return derived(); 106} 107 108/** \returns an expression of the coefficient-wise arc sine of *this. 109 * 110 * Example: \include Cwise_asin.cpp 111 * Output: \verbinclude Cwise_asin.out 112 * 113 * \sa sin(), acos() 114 */ 115inline const CwiseUnaryOp<internal::scalar_asin_op<Scalar>, const Derived> 116asin() const 117{ 118 return derived(); 119} 120 121/** \returns an expression of the coefficient-wise tan of *this. 122 * 123 * Example: \include Cwise_tan.cpp 124 * Output: \verbinclude Cwise_tan.out 125 * 126 * \sa cos(), sin() 127 */ 128inline const CwiseUnaryOp<internal::scalar_tan_op<Scalar>, Derived> 129tan() const 130{ 131 return derived(); 132} 133 134 135/** \returns an expression of the coefficient-wise power of *this to the given exponent. 136 * 137 * Example: \include Cwise_pow.cpp 138 * Output: \verbinclude Cwise_pow.out 139 * 140 * \sa exp(), log() 141 */ 142inline const CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived> 143pow(const Scalar& exponent) const 144{ 145 return CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived> 146 (derived(), internal::scalar_pow_op<Scalar>(exponent)); 147} 148 149 150/** \returns an expression of the coefficient-wise inverse of *this. 151 * 152 * Example: \include Cwise_inverse.cpp 153 * Output: \verbinclude Cwise_inverse.out 154 * 155 * \sa operator/(), operator*() 156 */ 157inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> 158inverse() const 159{ 160 return derived(); 161} 162 163/** \returns an expression of the coefficient-wise square of *this. 164 * 165 * Example: \include Cwise_square.cpp 166 * Output: \verbinclude Cwise_square.out 167 * 168 * \sa operator/(), operator*(), abs2() 169 */ 170inline const CwiseUnaryOp<internal::scalar_square_op<Scalar>, const Derived> 171square() const 172{ 173 return derived(); 174} 175 176/** \returns an expression of the coefficient-wise cube of *this. 177 * 178 * Example: \include Cwise_cube.cpp 179 * Output: \verbinclude Cwise_cube.out 180 * 181 * \sa square(), pow() 182 */ 183inline const CwiseUnaryOp<internal::scalar_cube_op<Scalar>, const Derived> 184cube() const 185{ 186 return derived(); 187} 188 189#define EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(METHOD_NAME,FUNCTOR) \ 190 inline const CwiseUnaryOp<std::binder2nd<FUNCTOR<Scalar> >, const Derived> \ 191 METHOD_NAME(const Scalar& s) const { \ 192 return CwiseUnaryOp<std::binder2nd<FUNCTOR<Scalar> >, const Derived> \ 193 (derived(), std::bind2nd(FUNCTOR<Scalar>(), s)); \ 194 } 195 196EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator==, std::equal_to) 197EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator!=, std::not_equal_to) 198EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator<, std::less) 199EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator<=, std::less_equal) 200EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator>, std::greater) 201EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator>=, std::greater_equal) 202 203