[9562] | 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@inria.fr> |
---|
| 5 | // Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@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 a base class plugin containing matrix specifics coefficient wise functions. |
---|
| 12 | |
---|
| 13 | /** \returns an expression of the coefficient-wise absolute value of \c *this |
---|
| 14 | * |
---|
| 15 | * Example: \include MatrixBase_cwiseAbs.cpp |
---|
| 16 | * Output: \verbinclude MatrixBase_cwiseAbs.out |
---|
| 17 | * |
---|
| 18 | * \sa cwiseAbs2() |
---|
| 19 | */ |
---|
| 20 | EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> |
---|
| 21 | cwiseAbs() const { return derived(); } |
---|
| 22 | |
---|
| 23 | /** \returns an expression of the coefficient-wise squared absolute value of \c *this |
---|
| 24 | * |
---|
| 25 | * Example: \include MatrixBase_cwiseAbs2.cpp |
---|
| 26 | * Output: \verbinclude MatrixBase_cwiseAbs2.out |
---|
| 27 | * |
---|
| 28 | * \sa cwiseAbs() |
---|
| 29 | */ |
---|
| 30 | EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> |
---|
| 31 | cwiseAbs2() const { return derived(); } |
---|
| 32 | |
---|
| 33 | /** \returns an expression of the coefficient-wise square root of *this. |
---|
| 34 | * |
---|
| 35 | * Example: \include MatrixBase_cwiseSqrt.cpp |
---|
| 36 | * Output: \verbinclude MatrixBase_cwiseSqrt.out |
---|
| 37 | * |
---|
| 38 | * \sa cwisePow(), cwiseSquare() |
---|
| 39 | */ |
---|
| 40 | inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> |
---|
| 41 | cwiseSqrt() const { return derived(); } |
---|
| 42 | |
---|
| 43 | /** \returns an expression of the coefficient-wise inverse of *this. |
---|
| 44 | * |
---|
| 45 | * Example: \include MatrixBase_cwiseInverse.cpp |
---|
| 46 | * Output: \verbinclude MatrixBase_cwiseInverse.out |
---|
| 47 | * |
---|
| 48 | * \sa cwiseProduct() |
---|
| 49 | */ |
---|
| 50 | inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> |
---|
| 51 | cwiseInverse() const { return derived(); } |
---|
| 52 | |
---|
| 53 | /** \returns an expression of the coefficient-wise == operator of \c *this and a scalar \a s |
---|
| 54 | * |
---|
| 55 | * \warning this performs an exact comparison, which is generally a bad idea with floating-point types. |
---|
| 56 | * In order to check for equality between two vectors or matrices with floating-point coefficients, it is |
---|
| 57 | * generally a far better idea to use a fuzzy comparison as provided by isApprox() and |
---|
| 58 | * isMuchSmallerThan(). |
---|
| 59 | * |
---|
| 60 | * \sa cwiseEqual(const MatrixBase<OtherDerived> &) const |
---|
| 61 | */ |
---|
| 62 | inline const CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >, const Derived> |
---|
| 63 | cwiseEqual(const Scalar& s) const |
---|
| 64 | { |
---|
| 65 | return CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >,const Derived> |
---|
| 66 | (derived(), std::bind1st(std::equal_to<Scalar>(), s)); |
---|
| 67 | } |
---|