Home | History | Annotate | Download | only in plugins
      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   */
     10 EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived>
     11 abs() 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   */
     23 EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived>
     24 abs2() 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   */
     36 inline const CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived>
     37 exp() 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   */
     49 inline const CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived>
     50 log() 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   */
     62 inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived>
     63 sqrt() 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   */
     75 inline const CwiseUnaryOp<internal::scalar_cos_op<Scalar>, const Derived>
     76 cos() 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   */
     89 inline const CwiseUnaryOp<internal::scalar_sin_op<Scalar>, const Derived>
     90 sin() 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   */
    102 inline const CwiseUnaryOp<internal::scalar_acos_op<Scalar>, const Derived>
    103 acos() 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   */
    115 inline const CwiseUnaryOp<internal::scalar_asin_op<Scalar>, const Derived>
    116 asin() 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   */
    128 inline const CwiseUnaryOp<internal::scalar_tan_op<Scalar>, Derived>
    129 tan() 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   */
    142 inline const CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived>
    143 pow(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   */
    157 inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived>
    158 inverse() 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   */
    170 inline const CwiseUnaryOp<internal::scalar_square_op<Scalar>, const Derived>
    171 square() 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   */
    183 inline const CwiseUnaryOp<internal::scalar_cube_op<Scalar>, const Derived>
    184 cube() 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 
    196 EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator==,  std::equal_to)
    197 EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator!=,  std::not_equal_to)
    198 EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator<,   std::less)
    199 EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator<=,  std::less_equal)
    200 EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator>,   std::greater)
    201 EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator>=,  std::greater_equal)
    202 
    203 
    204