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