diff options
author | Gael Guennebaud <g.gael@free.fr> | 2013-07-31 15:30:50 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2013-07-31 15:30:50 +0200 |
commit | 6126ad801f89cb88d46ed0dae0d8e9448652c506 (patch) | |
tree | 5b1292c1e39a36b37d7960a529900dea049eb6d2 /Eigen/src/Core/ArrayBase.h | |
parent | 2f593ee67cd2ce995fcf52560daf88774c7c64f2 (diff) |
Extend support for nvcc to Array objects and wrappers
Diffstat (limited to 'Eigen/src/Core/ArrayBase.h')
-rw-r--r-- | Eigen/src/Core/ArrayBase.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Eigen/src/Core/ArrayBase.h b/Eigen/src/Core/ArrayBase.h index 38852600d..9c6daf4fe 100644 --- a/Eigen/src/Core/ArrayBase.h +++ b/Eigen/src/Core/ArrayBase.h @@ -118,40 +118,52 @@ template<typename Derived> class ArrayBase /** Special case of the template operator=, in order to prevent the compiler * from generating a default operator= (issue hit with g++ 4.1) */ + EIGEN_DEVICE_FUNC Derived& operator=(const ArrayBase& other) { return internal::assign_selector<Derived,Derived>::run(derived(), other.derived()); } + EIGEN_DEVICE_FUNC Derived& operator+=(const Scalar& scalar) { return *this = derived() + scalar; } + EIGEN_DEVICE_FUNC Derived& operator-=(const Scalar& scalar) { return *this = derived() - scalar; } template<typename OtherDerived> + EIGEN_DEVICE_FUNC Derived& operator+=(const ArrayBase<OtherDerived>& other); template<typename OtherDerived> + EIGEN_DEVICE_FUNC Derived& operator-=(const ArrayBase<OtherDerived>& other); template<typename OtherDerived> + EIGEN_DEVICE_FUNC Derived& operator*=(const ArrayBase<OtherDerived>& other); template<typename OtherDerived> + EIGEN_DEVICE_FUNC Derived& operator/=(const ArrayBase<OtherDerived>& other); public: + EIGEN_DEVICE_FUNC ArrayBase<Derived>& array() { return *this; } + EIGEN_DEVICE_FUNC const ArrayBase<Derived>& array() const { return *this; } /** \returns an \link Eigen::MatrixBase Matrix \endlink expression of this array * \sa MatrixBase::array() */ + EIGEN_DEVICE_FUNC MatrixWrapper<Derived> matrix() { return derived(); } + EIGEN_DEVICE_FUNC const MatrixWrapper<const Derived> matrix() const { return derived(); } // template<typename Dest> // inline void evalTo(Dest& dst) const { dst = matrix(); } protected: + EIGEN_DEVICE_FUNC ArrayBase() : Base() {} private: |