class_docstr: The Half Normal distribution with scale `scale`.
  
  #### Mathematical details
  
  The half normal is a transformation of a centered normal distribution.
  If some random variable `X` has normal distribution,
  ```none
  X ~ Normal(0.0, scale)
  Y = |X|
  ```
  Then `Y` will have half normal distribution. The probability density
  function (pdf) is:
  
  ```none
  pdf(x; scale, x > 0) = sqrt(2) / (scale * sqrt(pi)) *
    exp(- 1/2 * (x / scale) ** 2)
  )
  ```
  Where `scale = sigma` is the standard deviation of the underlying normal
  distribution.
  
  #### Examples
  
  Examples of initialization of one or a batch of distributions.
  
  ```python
  # Define a single scalar HalfNormal distribution.
  dist = tfp.distributions.HalfNormal(scale=3.0)
  
  # Evaluate the cdf at 1, returning a scalar.
  dist.cdf(1.)
  
  # Define a batch of two scalar valued HalfNormals.
  # The first has scale 11.0, the second 22.0
  dist = tfp.distributions.HalfNormal(scale=[11.0, 22.0])
  
  # Evaluate the pdf of the first distribution on 1.0, and the second on 1.5,
  # returning a length two tensor.
  dist.prob([1.0, 1.5])
  
  # Get 3 samples, returning a 3 x 2 tensor.
  dist.sample([3])
  ```
class_docstr_tok: ["The","Half","Normal","distribution","with","scale","`","scale","`",".","#","#","#","#","Mathematical","details","The","half","normal","is","a","transformation","of","a","centered","normal","distribution",".","If","some","random","variable","`","X","`","has","normal","distribution",",","``","`","none","X","~","Normal","(","0.0",",","scale",")","Y","=","|X|","``","`","Then","`","Y","`","will","have","half","normal","distribution",".","The","probability","density","function","(","pdf",")","is",":","``","`","none","pdf","(","x",";","scale",",","x",">","0",")","=","sqrt","(","2",")","\/","(","scale","*","sqrt","(","pi",")",")","*","exp","(","-","1\/2","*","(","x","\/","scale",")","*","*","2",")",")","``","`","Where","`","scale","=","sigma","`","is","the","standard","deviation","of","the","underlying","normal","distribution",".","#","#","#","#","Examples","Examples","of","initialization","of","one","or","a","batch","of","distributions",".","``","`","python","#","Define","a","single","scalar","HalfNormal","distribution",".","dist","=","tfp.distributions.HalfNormal","(","scale=3.0",")","#","Evaluate","the","cdf","at","1",",","returning","a","scalar",".","dist.cdf","(","1",".",")","#","Define","a","batch","of","two","scalar","valued","HalfNormals",".","#","The","first","has","scale","11.0",",","the","second","22.0","dist","=","tfp.distributions.HalfNormal","(","scale=","[","11.0",",","22.0","]",")","#","Evaluate","the","pdf","of","the","first","distribution","on","1.0",",","and","the","second","on","1.5",",","#","returning","a","length","two","tensor",".","dist.prob","(","[","1.0",",","1.5","]",")","#","Get","3","samples",",","returning","a","3","x","2","tensor",".","dist.sample","(","[","3","]",")","``","`"]
docstr: Construct HalfNormals with scale `scale`.
  
  Args:
    scale: Floating point tensor; the scales of the distribution(s).
      Must contain only positive values.
    validate_args: Python `bool`, default `False`. When `True` distribution
      parameters are checked for validity despite possibly degrading runtime
      performance. When `False` invalid inputs may silently render incorrect
      outputs.
    allow_nan_stats: Python `bool`, default `True`. When `True`,
      statistics (e.g., mean, mode, variance) use the value '`NaN`' to
      indicate the result is undefined. When `False`, an exception is raised
      if one or more of the statistic's batch members are undefined.
    name: Python `str` name prefixed to Ops created by this class.
docstr_tok: ["Construct","HalfNormals","with","scale","`","scale","`",".","Args",":","scale",":","Floating","point","tensor",";","the","scales","of","the","distribution","(","s",")",".","Must","contain","only","positive","values",".","validate_args",":","Python","`","bool","`",",","default","`","False","`",".","When","`","True","`","distribution","parameters","are","checked","for","validity","despite","possibly","degrading","runtime","performance",".","When","`","False","`","invalid","inputs","may","silently","render","incorrect","outputs",".","allow_nan_stats",":","Python","`","bool","`",",","default","`","True","`",".","When","`","True","`",",","statistics","(","e.g.",",","mean",",","mode",",","variance",")","use","the","value","'","`","NaN","`","'","to","indicate","the","result","is","undefined",".","When","`","False","`",",","an","exception","is","raised","if","one","or","more","of","the","statistic","'s","batch","members","are","undefined",".","name",":","Python","`","str","`","name","prefixed","to","Ops","created","by","this","class","."]
code: def __init__(
      self,
      scale,
      validate_args=False,
      allow_nan_stats=True,
      name="HalfNormal",
  ):
      """Construct HalfNormals with scale `scale`.
  
      Args:
        scale: Floating point tensor; the scales of the distribution(s).
          Must contain only positive values.
        validate_args: Python `bool`, default `False`. When `True` distribution
          parameters are checked for validity despite possibly degrading runtime
          performance. When `False` invalid inputs may silently render incorrect
          outputs.
        allow_nan_stats: Python `bool`, default `True`. When `True`,
          statistics (e.g., mean, mode, variance) use the value '`NaN`' to
          indicate the result is undefined. When `False`, an exception is raised
          if one or more of the statistic's batch members are undefined.
        name: Python `str` name prefixed to Ops created by this class.
      """
      parameters = dict(locals())
      with tf.name_scope(name) as name:
          dtype = dtype_util.common_dtype(
              [scale], dtype_hint=tf.float32
          )
          self._scale = tensor_util.convert_nonref_to_tensor(
              scale, name="scale", dtype=dtype
          )
          super(HalfNormal, self).__init__(
              dtype=dtype,
              reparameterization_type=reparameterization.FULLY_REPARAMETERIZED,
              validate_args=validate_args,
              allow_nan_stats=allow_nan_stats,
              parameters=parameters,
              name=name,
          )
  
imports: import math
  import numpy
  import tensorflow.compat.v2
  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.internal import assert_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
label_desc: Use image node_id 1 to create a new HalfNormal object from inherited base classes: distribution with example: obj = HalfNormal(scale, validate_args, allow_nan_stats, name)