code: def _two_piece_normal_sample_jvp(sample_shape, primals, tangents):
      """Compute primals and tangents using implicit derivative."""
      skewness, seed = primals
      dskewness, dseed = tangents
      del dseed
  
      broadcast_skewness = tf.broadcast_to(skewness, sample_shape)
      broadcast_dskewness = tf.broadcast_to(dskewness, sample_shape)
  
      samples = _two_piece_normal_sample_no_gradient(
          sample_shape, skewness, seed
      )
      dsamples = (
          broadcast_dskewness
          * _two_piece_normal_sample_gradient(
              broadcast_skewness, samples
          )
      )
  
      return samples, dsamples
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import identity
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import custom_gradient
  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 special_math
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.math import special
  from tensorflow_probability.python.math.numeric import log1psquare
label_desc: Use image node_id 9 for calling a global function with example usage: _two_piece_normal_sample_jvp(sample_shape, primals, tangents) and returns: samples,  dsamples