code: def _von_mises_cdf_normal(x, concentration, dtype):
      """Computes the von Mises CDF and its derivative via Normal approximation."""
  
      def cdf_func(concentration):
          """A helper function that is passed to value_and_gradient."""
          # z is an "almost Normally distributed" random variable.
          z = (
              tf.constant(np.sqrt(2.0 / np.pi), dtype=dtype)
              / tf.math.bessel_i0e(concentration)
          ) * tf.sin(0.5 * x)
  
          # This is the correction described in [1] which reduces the error
          # of the Normal approximation.
          z2 = z**2
          z3 = z2 * z
          z4 = z2**2
          c = 24.0 * concentration
          c1 = 56.0
  
          xi = (
              z
              - z3
              / (
                  (c - 2.0 * z2 - 16.0) / 3.0
                  - (z4 + (7.0 / 4.0) * z2 + 167.0 / 2.0)
                  / (c - c1 - z2 + 3.0)
              )
              ** 2
          )
  
          distrib = normal.Normal(
              tf.cast(0.0, dtype), tf.cast(1.0, dtype)
          )
  
          return distrib.cdf(xi)
  
      return value_and_gradient(cdf_func, concentration)
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import sigmoid
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import custom_gradient
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import reparameterization
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.math.gradient import value_and_gradient
label_desc: Use image node_id 5 for calling a global function with example usage: _von_mises_cdf_normal(x, concentration, dtype) and returns: value_and_gradient, distrib