code: def test_kahan_precision_bijector(self, jit=False):
      maybe_jit = lambda f: f
      if jit:
          self.skip_if_no_xla()
          maybe_jit = tf.function(jit_compile=True)
  
      def ldj_fn(x, dist):
          bij = dist.experimental_default_event_space_bijector()
          y = bij.inverse(x) + 0.0
          return bij.inverse_log_det_jacobian(
              x, event_ndims=1
          ), bij.forward_log_det_jacobian(y, event_ndims=1)
  
      stream = test_util.test_seed_stream()
      n = 20_000
      samps = exponential.Exponential(rate=1.0).sample(n, seed=stream())
      rate = lognormal.LogNormal(0, 0.2).sample(seed=stream())
      exp = exponential.Exponential(rate=rate)
      ldj32_fn = maybe_jit(
          functools.partial(
              ldj_fn,
              dist=sample.Sample(
                  exp, n, experimental_use_kahan_sum=True
              ),
          )
      )
      ldj32 = ldj32_fn(samps)
      exp64 = exponential.Exponential(rate=tf.cast(rate, tf.float64))
      ldj64 = ldj_fn(
          tf.cast(samps, tf.float64), dist=sample.Sample(exp64, n)
      )
      # Evaluate together to ensure we use the same samples.
      ldj32, ldj64 = self.evaluate((ldj32, ldj64))
      self.assertAllCloseNested(ldj64, ldj32, rtol=0.0, atol=0.002)
  
imports: import functools
  import os
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.bijectors import scale_matvec_tril
  from tensorflow_probability.python.distributions import cholesky_lkj
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import log_prob_ratio
  from tensorflow_probability.python.distributions import logistic
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import poisson
  from tensorflow_probability.python.distributions import sample
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 21 for calling the SampleDistributionTest obj's underlying member method code with example usage: obj.test_kahan_precision_bijector(jit) and returns: bij,  bij