class_docstr: Create a half normal object, where
      X ~ Normal(0, scale)
      Y = |X| ~ HalfNormal(scale)
  
  Parameters
  ----------
  scale : Tensor or scalar, default 1
      Scale of the full Normal distribution.
code: def log_prob(self, value):
      if self._validate_args:
          self._validate_samples(value)
      log_prob = self._base_dist.log_prob(value) + math.log(2)
      log_prob = np.where(value < 0, -inf, log_prob)
      return log_prob
  
file_path: mxnet/python/mxnet/gluon/probability/distributions/half_normal.py
imports: import math
  from numpy import inf
  from .transformed_distribution import TransformedDistribution
  from ..transformation import AbsTransform
  from .normal import Normal
  from .constraint import Positive
  from ....None import np
label_desc: Use image node_id 2 for calling the HalfNormal obj's underlying member method code with example usage: obj.log_prob(value) and returns: log_prob