class_docstr: Vanilla `Normal` except has enhanced `__add__`.
class_docstr_tok: ["Vanilla","`","Normal","`","except","has","enhanced","`","__add__","`","."]
docstr: Distributional arithmetic unless both have value semantics.
code: def __add__(self, x):
      """Distributional arithmetic unless both have value semantics."""
      if (
          isinstance(x, (Normal, normal.Normal))
          and not isinstance(x, dtc._TensorCoercible)
          and not isinstance(self, dtc._TensorCoercible)
      ):
          return Normal(
              loc=self.loc + x.loc,
              scale=tf.sqrt(self.scale**2.0 + x.scale**2.0),
          )
      # testUserCustomOperators shows that this is never called.
      return super(Normal, self).__add__(x)
  
imports: import gc
  import operator
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import categorical
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.internal import reparameterization
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.layers import distribution_layer
  from tensorflow_probability.python.layers.internal import distribution_tensor_coercible
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 1 for calling the Normal obj's underlying member method code with example usage: obj.__add__(x) and returns: super, Normal