From 29038b982d4e8028b69211ef09e3fc3c7e6dfb69 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Thu, 5 Nov 2015 19:39:48 -0800 Subject: Added support for modulo operation --- unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h') diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h b/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h index a98c6a2e3..8153e8ce5 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h @@ -14,6 +14,20 @@ namespace Eigen { namespace internal { +/** \internal + * \brief Template functor to compute the modulo between an array and a scalar. + */ +template +struct scalar_mod_op { + EIGEN_DEVICE_FUNC scalar_mod_op(const Scalar& divisor) : m_divisor(divisor) {} + EIGEN_DEVICE_FUNC inline Scalar operator() (const Scalar& a) const { return a % m_divisor; } + const Scalar m_divisor; +}; +template +struct functor_traits > +{ enum { Cost = 2 * NumTraits::MulCost, PacketAccess = false }; }; + + /** \internal * \brief Template functor to compute the sigmoid of a scalar * \sa class CwiseUnaryOp, ArrayBase::sigmoid() -- cgit v1.2.3