From b22875dac971db391e7a7789f3a532f6be0c8f0f Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Wed, 20 Mar 2019 17:34:03 -0700 Subject: [PATCH] Defer to Eigen for mod & fmod functors and cost estimates. PiperOrigin-RevId: 239510737 --- tensorflow/core/kernels/cwise_ops.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tensorflow/core/kernels/cwise_ops.h b/tensorflow/core/kernels/cwise_ops.h index 2865b490f58..898147b3661 100644 --- a/tensorflow/core/kernels/cwise_ops.h +++ b/tensorflow/core/kernels/cwise_ops.h @@ -426,7 +426,7 @@ struct google_floor_fmod { EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T operator()(const T& x, const T& y) const { // EIGEN_STATIC_ASSERT(NUMERIC_TYPE_MUST_BE_REAL); - T trunc_mod = std::fmod(x, y); + T trunc_mod = scalar_fmod_op()(x, y); return trunc_mod != T(0) && (y < T(0) != trunc_mod < T(0)) ? trunc_mod + y : trunc_mod; } @@ -435,8 +435,8 @@ struct google_floor_fmod { template struct functor_traits> { enum { - Cost = 2 * Eigen::internal::scalar_div_cost::value + - 2 * NumTraits::AddCost, + Cost = functor_traits>::Cost + + NumTraits::AddCost, PacketAccess = false }; }; @@ -447,7 +447,7 @@ struct google_floor_mod { EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T operator()(const T& x, const T& y) const { // EIGEN_STATIC_ASSERT(!NUMERIC_TYPE_MUST_BE_REAL); - T trunc_mod = x % y; + T trunc_mod = Eigen::internal::scalar_mod2_op()(x, y); return trunc_mod != T(0) && (y < T(0) != trunc_mod < T(0)) ? trunc_mod + y : trunc_mod; } @@ -456,8 +456,8 @@ struct google_floor_mod { template struct functor_traits> { enum { - Cost = 2 * Eigen::internal::scalar_div_cost::value + - 2 * NumTraits::AddCost, + Cost = functor_traits>::Cost + + NumTraits::AddCost, PacketAccess = false }; };