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