1 | // This file is part of Eigen, a lightweight C++ template library |
2 | // for linear algebra. |
3 | // |
4 | // Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr> |
5 | // |
6 | // This Source Code Form is subject to the terms of the Mozilla |
7 | // Public License v. 2.0. If a copy of the MPL was not distributed |
8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. |
9 | |
10 | #ifndef EIGEN_SELFCWISEBINARYOP_H |
11 | #define EIGEN_SELFCWISEBINARYOP_H |
12 | |
13 | namespace Eigen { |
14 | |
15 | // TODO generalize the scalar type of 'other' |
16 | |
17 | template<typename Derived> |
18 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator*=(const Scalar& other) |
19 | { |
20 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::mul_assign_op<Scalar,Scalar>()); |
21 | return derived(); |
22 | } |
23 | |
24 | template<typename Derived> |
25 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& ArrayBase<Derived>::operator+=(const Scalar& other) |
26 | { |
27 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::add_assign_op<Scalar,Scalar>()); |
28 | return derived(); |
29 | } |
30 | |
31 | template<typename Derived> |
32 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& ArrayBase<Derived>::operator-=(const Scalar& other) |
33 | { |
34 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::sub_assign_op<Scalar,Scalar>()); |
35 | return derived(); |
36 | } |
37 | |
38 | template<typename Derived> |
39 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator/=(const Scalar& other) |
40 | { |
41 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::div_assign_op<Scalar,Scalar>()); |
42 | return derived(); |
43 | } |
44 | |
45 | } // end namespace Eigen |
46 | |
47 | #endif // EIGEN_SELFCWISEBINARYOP_H |
48 | |