Home | History | Annotate | Download | only in plugins
      1 // This file is part of Eigen, a lightweight C++ template library
      2 // for linear algebra.
      3 //
      4 // Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud (at) inria.fr>
      5 // Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 (at) gmail.com>
      6 //
      7 // This Source Code Form is subject to the terms of the Mozilla
      8 // Public License v. 2.0. If a copy of the MPL was not distributed
      9 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
     10 
     11 // This file is included into the body of the base classes supporting matrix specific coefficient-wise functions.
     12 // This include MatrixBase and SparseMatrixBase.
     13 
     14 
     15 typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> CwiseAbsReturnType;
     16 typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> CwiseAbs2ReturnType;
     17 typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> CwiseSqrtReturnType;
     18 typedef CwiseUnaryOp<internal::scalar_sign_op<Scalar>, const Derived> CwiseSignReturnType;
     19 typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> CwiseInverseReturnType;
     20 
     21 /// \returns an expression of the coefficient-wise absolute value of \c *this
     22 ///
     23 /// Example: \include MatrixBase_cwiseAbs.cpp
     24 /// Output: \verbinclude MatrixBase_cwiseAbs.out
     25 ///
     26 EIGEN_DOC_UNARY_ADDONS(cwiseAbs,absolute value)
     27 ///
     28 /// \sa cwiseAbs2()
     29 ///
     30 EIGEN_DEVICE_FUNC
     31 EIGEN_STRONG_INLINE const CwiseAbsReturnType
     32 cwiseAbs() const { return CwiseAbsReturnType(derived()); }
     33 
     34 /// \returns an expression of the coefficient-wise squared absolute value of \c *this
     35 ///
     36 /// Example: \include MatrixBase_cwiseAbs2.cpp
     37 /// Output: \verbinclude MatrixBase_cwiseAbs2.out
     38 ///
     39 EIGEN_DOC_UNARY_ADDONS(cwiseAbs2,squared absolute value)
     40 ///
     41 /// \sa cwiseAbs()
     42 ///
     43 EIGEN_DEVICE_FUNC
     44 EIGEN_STRONG_INLINE const CwiseAbs2ReturnType
     45 cwiseAbs2() const { return CwiseAbs2ReturnType(derived()); }
     46 
     47 /// \returns an expression of the coefficient-wise square root of *this.
     48 ///
     49 /// Example: \include MatrixBase_cwiseSqrt.cpp
     50 /// Output: \verbinclude MatrixBase_cwiseSqrt.out
     51 ///
     52 EIGEN_DOC_UNARY_ADDONS(cwiseSqrt,square-root)
     53 ///
     54 /// \sa cwisePow(), cwiseSquare()
     55 ///
     56 EIGEN_DEVICE_FUNC
     57 inline const CwiseSqrtReturnType
     58 cwiseSqrt() const { return CwiseSqrtReturnType(derived()); }
     59 
     60 /// \returns an expression of the coefficient-wise signum of *this.
     61 ///
     62 /// Example: \include MatrixBase_cwiseSign.cpp
     63 /// Output: \verbinclude MatrixBase_cwiseSign.out
     64 ///
     65 EIGEN_DOC_UNARY_ADDONS(cwiseSign,sign function)
     66 ///
     67 EIGEN_DEVICE_FUNC
     68 inline const CwiseSignReturnType
     69 cwiseSign() const { return CwiseSignReturnType(derived()); }
     70 
     71 
     72 /// \returns an expression of the coefficient-wise inverse of *this.
     73 ///
     74 /// Example: \include MatrixBase_cwiseInverse.cpp
     75 /// Output: \verbinclude MatrixBase_cwiseInverse.out
     76 ///
     77 EIGEN_DOC_UNARY_ADDONS(cwiseInverse,inverse)
     78 ///
     79 /// \sa cwiseProduct()
     80 ///
     81 EIGEN_DEVICE_FUNC
     82 inline const CwiseInverseReturnType
     83 cwiseInverse() const { return CwiseInverseReturnType(derived()); }
     84 
     85 
     86