From 0493a020d48081b6f2afb53a1ac9d45b2861c03d Mon Sep 17 00:00:00 2001 From: Srinivas Vasudevan Date: Wed, 22 Apr 2020 11:04:12 -0700 Subject: [PATCH] Change `log` to `log1p` in Random Gamma sampler. PiperOrigin-RevId: 307853432 Change-Id: Id5c7ffbf30c45a62c22a30086fe253c59e5fffc0 --- tensorflow/core/kernels/random_op.cc | 3 ++- tensorflow/core/kernels/stateless_random_ops.cc | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tensorflow/core/kernels/random_op.cc b/tensorflow/core/kernels/random_op.cc index 7b7f5153436..152ab5f7d1e 100644 --- a/tensorflow/core/kernels/random_op.cc +++ b/tensorflow/core/kernels/random_op.cc @@ -208,6 +208,7 @@ class RandomGammaOp : public OpKernel { alpha_flat](int start_output, int limit_output) { using Eigen::numext::exp; using Eigen::numext::log; + using Eigen::numext::log1p; using Eigen::numext::pow; // Capturing "rng" by-value would only make a copy for the _shared_ @@ -241,7 +242,7 @@ class RandomGammaOp : public OpKernel { gen.Skip(kReservedSamplesPerOutput * output_idx); int16 uniform_remaining = 0; UNIFORM(u); - const double res = -log(1.0 - u); + const double res = -log1p(-u); samples_alpha_offset[sample_idx * num_alphas] = static_cast(res); } // for (sample_idx) } else { // if alpha != 1.0 diff --git a/tensorflow/core/kernels/stateless_random_ops.cc b/tensorflow/core/kernels/stateless_random_ops.cc index 167daf2ff9e..6738a34e3fd 100644 --- a/tensorflow/core/kernels/stateless_random_ops.cc +++ b/tensorflow/core/kernels/stateless_random_ops.cc @@ -259,6 +259,7 @@ class StatelessRandomGammaOp : public StatelessRandomOpBase { using Eigen::numext::exp; using Eigen::numext::log; + using Eigen::numext::log1p; using Eigen::numext::pow; Normal normal; @@ -288,7 +289,7 @@ class StatelessRandomGammaOp : public StatelessRandomOpBase { gen.Skip(kReservedSamplesPerOutput * output_idx); int16 uniform_remaining = 0; UNIFORM(u); - const double res = -log(1.0 - u); + const double res = -log1p(-u); samples_alpha_offset[sample_idx * num_alphas] = static_cast(res); } // for (sample_idx) } else { // if alpha != 1.0