1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// This file is part of Eigen, a lightweight C++ template library 2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// for linear algebra. 3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// 4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr> 5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// 6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// This Source Code Form is subject to the terms of the Mozilla 7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Public License v. 2.0. If a copy of the MPL was not distributed 8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#ifndef EIGEN_ARRAY_CWISE_OPERATORS_H 11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#define EIGEN_ARRAY_CWISE_OPERATORS_H 12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathnamespace Eigen { 14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/*************************************************************************** 16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath* The following functions were defined in Core 17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath***************************************************************************/ 18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::abs() */ 21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathEIGEN_STRONG_INLINE const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs_op) 23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::abs() const 24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 27c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 28c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::abs2() */ 29c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 30c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathEIGEN_STRONG_INLINE const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs2_op) 31c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::abs2() const 32c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 33c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::exp() */ 37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_exp_op) 39c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::exp() const 40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 41c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 42c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 43c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 44c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::log() */ 45c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 46c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_log_op) 47c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::log() const 48c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 49c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 50c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 51c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 52c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator*() */ 53c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 54c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 55c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathEIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived) 56c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator*(const MatrixBase<OtherDerived> &other) const 57c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 58c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)(_expression(), other.derived()); 59c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 60c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 61c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator/() */ 62c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 63c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 64c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathEIGEN_STRONG_INLINE const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op) 65c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator/(const MatrixBase<OtherDerived> &other) const 66c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 67c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)(_expression(), other.derived()); 68c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 69c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 70c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator*=() */ 71c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 72c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 73c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline ExpressionType& Cwise<ExpressionType>::operator*=(const MatrixBase<OtherDerived> &other) 74c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 75c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return m_matrix.const_cast_derived() = *this * other; 76c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 77c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 78c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator/=() */ 79c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 80c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 81c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline ExpressionType& Cwise<ExpressionType>::operator/=(const MatrixBase<OtherDerived> &other) 82c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 83c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return m_matrix.const_cast_derived() = *this / other; 84c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 85c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 86c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/*************************************************************************** 87c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath* The following functions were defined in Array 88c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath***************************************************************************/ 89c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 90c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// -- unary operators -- 91c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 92c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::sqrt() */ 93c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 94c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sqrt_op) 95c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::sqrt() const 96c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 97c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 98c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 99c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 100c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::cos() */ 101c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 102c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cos_op) 103c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::cos() const 104c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 105c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 106c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 107c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 108c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 109c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::sin() */ 110c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 111c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sin_op) 112c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::sin() const 113c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 114c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 115c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 116c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 117c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 118c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::log() */ 119c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 120c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op) 121c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::pow(const Scalar& exponent) const 122c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 123c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op)(_expression(), internal::scalar_pow_op<Scalar>(exponent)); 124c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 125c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 126c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 127c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::inverse() */ 128c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 129c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_inverse_op) 130c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::inverse() const 131c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 132c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 133c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 134c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 135c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::square() */ 136c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 137c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_square_op) 138c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::square() const 139c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 140c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 141c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 142c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 143c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::cube() */ 144c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 145c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cube_op) 146c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::cube() const 147c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 148c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return _expression(); 149c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 150c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 151c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 152c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// -- binary operators -- 153c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 154c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator<() */ 155c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 156c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 157c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less) 158c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator<(const MatrixBase<OtherDerived> &other) const 159c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 160c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)(_expression(), other.derived()); 161c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 162c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 163c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::<=() */ 164c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 165c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 166c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal) 167c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator<=(const MatrixBase<OtherDerived> &other) const 168c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 169c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)(_expression(), other.derived()); 170c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 171c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 172c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator>() */ 173c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 174c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 175c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater) 176c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator>(const MatrixBase<OtherDerived> &other) const 177c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 178c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)(_expression(), other.derived()); 179c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 180c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 181c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator>=() */ 182c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 183c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 184c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal) 185c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator>=(const MatrixBase<OtherDerived> &other) const 186c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 187c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)(_expression(), other.derived()); 188c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 189c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 190c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator==() */ 191c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 192c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 193c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to) 194c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator==(const MatrixBase<OtherDerived> &other) const 195c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 196c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)(_expression(), other.derived()); 197c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 198c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 199c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator!=() */ 200c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 201c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename OtherDerived> 202c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to) 203c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator!=(const MatrixBase<OtherDerived> &other) const 204c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 205c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)(_expression(), other.derived()); 206c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 207c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 208c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// comparisons to scalar value 209c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 210c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator<(Scalar) */ 211c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 212c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less) 213c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator<(Scalar s) const 214c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 215c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)(_expression(), 216c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s)); 217c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 218c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 219c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator<=(Scalar) */ 220c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 221c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal) 222c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator<=(Scalar s) const 223c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 224c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)(_expression(), 225c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s)); 226c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 227c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 228c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator>(Scalar) */ 229c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 230c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater) 231c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator>(Scalar s) const 232c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 233c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)(_expression(), 234c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s)); 235c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 236c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 237c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator>=(Scalar) */ 238c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 239c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal) 240c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator>=(Scalar s) const 241c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 242c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)(_expression(), 243c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s)); 244c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 245c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 246c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator==(Scalar) */ 247c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 248c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to) 249c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator==(Scalar s) const 250c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 251c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)(_expression(), 252c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s)); 253c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 254c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 255c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator!=(Scalar) */ 256c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 257c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to) 258c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator!=(Scalar s) const 259c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 260c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)(_expression(), 261c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s)); 262c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 263c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 264c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// scalar addition 265c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 266c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator+(Scalar) */ 267c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 268c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const typename Cwise<ExpressionType>::ScalarAddReturnType 269c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator+(const Scalar& scalar) const 270c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 271c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return typename Cwise<ExpressionType>::ScalarAddReturnType(m_matrix, internal::scalar_add_op<Scalar>(scalar)); 272c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 273c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 274c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator+=(Scalar) */ 275c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 276c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline ExpressionType& Cwise<ExpressionType>::operator+=(const Scalar& scalar) 277c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 278c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return m_matrix.const_cast_derived() = *this + scalar; 279c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 280c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 281c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator-(Scalar) */ 282c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 283c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline const typename Cwise<ExpressionType>::ScalarAddReturnType 284c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathCwise<ExpressionType>::operator-(const Scalar& scalar) const 285c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 286c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return *this + (-scalar); 287c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 288c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 289c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath/** \deprecated ArrayBase::operator-=(Scalar) */ 290c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename ExpressionType> 291c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathinline ExpressionType& Cwise<ExpressionType>::operator-=(const Scalar& scalar) 292c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 293c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath return m_matrix.const_cast_derived() = *this - scalar; 294c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 295c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 296c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} // end namespace Eigen 297c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 298c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#endif // EIGEN_ARRAY_CWISE_OPERATORS_H 299