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) 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 : 3271 : EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator*=(const Scalar& other) 19 : : { 20 : 3271 : internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::mul_assign_op<Scalar,Scalar>()); 21 : 3271 : 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 : 16812 : EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator/=(const Scalar& other) 40 : : { 41 : 16812 : internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::div_assign_op<Scalar,Scalar>()); 42 : 16812 : return derived(); 43 : : } 44 : : 45 : : } // end namespace Eigen 46 : : 47 : : #endif // EIGEN_SELFCWISEBINARYOP_H