LCOV - code coverage report
Current view: top level - plugins - CommonCwiseBinaryOps.h (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 6 6 100.0 %
Date: 1980-01-01 00:00:00 Functions: 33 33 100.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : // This file is part of Eigen, a lightweight C++ template library
       2                 :            : // for linear algebra.
       3                 :            : //
       4                 :            : // Copyright (C) 2008-2016 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 common coefficient wise functions.
      12                 :            : 
      13                 :            : /** \returns an expression of the difference of \c *this and \a other
      14                 :            :   *
      15                 :            :   * \note If you want to substract a given scalar from all coefficients, see Cwise::operator-().
      16                 :            :   *
      17                 :            :   * \sa class CwiseBinaryOp, operator-=()
      18                 :            :   */
      19                 :       8454 : EIGEN_MAKE_CWISE_BINARY_OP(operator-,difference)
      20                 :            : 
      21                 :            : /** \returns an expression of the sum of \c *this and \a other
      22                 :            :   *
      23                 :            :   * \note If you want to add a given scalar to all coefficients, see Cwise::operator+().
      24                 :            :   *
      25                 :            :   * \sa class CwiseBinaryOp, operator+=()
      26                 :            :   */
      27                 :      18958 : EIGEN_MAKE_CWISE_BINARY_OP(operator+,sum)
      28                 :            : 
      29                 :            : /** \returns an expression of a custom coefficient-wise operator \a func of *this and \a other
      30                 :            :   *
      31                 :            :   * The template parameter \a CustomBinaryOp is the type of the functor
      32                 :            :   * of the custom operator (see class CwiseBinaryOp for an example)
      33                 :            :   *
      34                 :            :   * Here is an example illustrating the use of custom functors:
      35                 :            :   * \include class_CwiseBinaryOp.cpp
      36                 :            :   * Output: \verbinclude class_CwiseBinaryOp.out
      37                 :            :   *
      38                 :            :   * \sa class CwiseBinaryOp, operator+(), operator-(), cwiseProduct()
      39                 :            :   */
      40                 :            : template<typename CustomBinaryOp, typename OtherDerived>
      41                 :            : EIGEN_DEVICE_FUNC
      42                 :            : EIGEN_STRONG_INLINE const CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived>
      43                 :          6 : binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other, const CustomBinaryOp& func = CustomBinaryOp()) const
      44                 :            : {
      45                 :          6 :   return CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived>(derived(), other.derived(), func);
      46                 :            : }
      47                 :            : 
      48                 :            : 
      49                 :            : #ifndef EIGEN_PARSED_BY_DOXYGEN
      50                 :      46388 : EIGEN_MAKE_SCALAR_BINARY_OP(operator*,product)
      51                 :            : #else
      52                 :            : /** \returns an expression of \c *this scaled by the scalar factor \a scalar
      53                 :            :   *
      54                 :            :   * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
      55                 :            :   */
      56                 :            : template<typename T>
      57                 :            : const CwiseBinaryOp<internal::scalar_product_op<Scalar,T>,Derived,Constant<T> > operator*(const T& scalar) const;
      58                 :            : /** \returns an expression of \a expr scaled by the scalar factor \a scalar
      59                 :            :   *
      60                 :            :   * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
      61                 :            :   */
      62                 :            : template<typename T> friend
      63                 :            : const CwiseBinaryOp<internal::scalar_product_op<T,Scalar>,Constant<T>,Derived> operator*(const T& scalar, const StorageBaseType& expr);
      64                 :            : #endif
      65                 :            : 
      66                 :            : 
      67                 :            : 
      68                 :            : #ifndef EIGEN_PARSED_BY_DOXYGEN
      69                 :       7828 : EIGEN_MAKE_SCALAR_BINARY_OP_ONTHERIGHT(operator/,quotient)
      70                 :            : #else
      71                 :            : /** \returns an expression of \c *this divided by the scalar value \a scalar
      72                 :            :   *
      73                 :            :   * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
      74                 :            :   */
      75                 :            : template<typename T>
      76                 :            : const CwiseBinaryOp<internal::scalar_quotient_op<Scalar,T>,Derived,Constant<T> > operator/(const T& scalar) const;
      77                 :            : #endif
      78                 :            : 
      79                 :            : /** \returns an expression of the coefficient-wise boolean \b and operator of \c *this and \a other
      80                 :            :   *
      81                 :            :   * \warning this operator is for expression of bool only.
      82                 :            :   *
      83                 :            :   * Example: \include Cwise_boolean_and.cpp
      84                 :            :   * Output: \verbinclude Cwise_boolean_and.out
      85                 :            :   *
      86                 :            :   * \sa operator||(), select()
      87                 :            :   */
      88                 :            : template<typename OtherDerived>
      89                 :            : EIGEN_DEVICE_FUNC
      90                 :            : inline const CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>
      91                 :            : operator&&(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
      92                 :            : {
      93                 :            :   EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
      94                 :            :                       THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
      95                 :            :   return CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>(derived(),other.derived());
      96                 :            : }
      97                 :            : 
      98                 :            : /** \returns an expression of the coefficient-wise boolean \b or operator of \c *this and \a other
      99                 :            :   *
     100                 :            :   * \warning this operator is for expression of bool only.
     101                 :            :   *
     102                 :            :   * Example: \include Cwise_boolean_or.cpp
     103                 :            :   * Output: \verbinclude Cwise_boolean_or.out
     104                 :            :   *
     105                 :            :   * \sa operator&&(), select()
     106                 :            :   */
     107                 :            : template<typename OtherDerived>
     108                 :            : EIGEN_DEVICE_FUNC
     109                 :            : inline const CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>
     110                 :            : operator||(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
     111                 :            : {
     112                 :            :   EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
     113                 :            :                       THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
     114                 :            :   return CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>(derived(),other.derived());
     115                 :            : }

Generated by: LCOV version 1.0