class_docstr: Normal Inverse Gaussian distribution.
  
  The [Normal-inverse Gaussian distribution]
  (https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution)
  is parameterized by a `loc`, `tailweight`, `skewness` and `scale` parameter.
  
  #### Mathematical Details
  
  The name of this distribution refers to it being a variance mean mixture.
  In other words if `x` is sampled via:
  
  ```none
  z ~ InverseGaussian(1 / gamma, 1.)
  x ~ Normal(loc + skewness * z, scale * z)
  ```
  then `x ~ NormalInverseGaussian(loc, scale, tailweight, skewness)`.
  
  where `gamma = sqrt(tailweight ** 2 - skewness ** 2)`.
  
  
  The probability density function (pdf) is,
  
  ```none
  pdf(x; mu, sigma, alpha, beta) = [alpha * sigma * K1(alpha * g)] / (pi * g)
                                   exp(sigma * gamma + beta * (x - loc))
  ```
  
  where
  * `loc = mu`
  * `tailweight = alpha`
  * `skewness = beta`
  * `scale = sigma`
  * `g = sqrt(sigma ** 2 + (x - mu) ** 2)`
  * `gamma = sqrt(alpha ** 2 - beta ** 2)`
  * `K1(x)` is the modified Bessel function of the second kind with
    order parameter 1.
  
  The support of the distribution is defined on `(-infinity, infinity)`.
  
  Mapping to R and Python scipy's parameterization:
  * R: GeneralizedHyperbolic.NIG
    - mu = loc
    - delta = scale
    - alpha = tailweight
    - beta = skewness
  * Python: scipy.stats.norminvgauss
    - a = tailweight
    - b = skewness
    - loc = loc
    - Note that `scipy.stats.norminvgauss` implements the distribution as a
      location-scale family. However, in the original paper, and other
      implementations (such as R) do not implement it this way. Thus the
      `scale` parameters here and scipy don't match unless `scale = 1`.
  
  Warning: As mentioned above, this distribution is __not__ a location-scale
  family. Specifically:
  
  ```none
  NIG(loc, scale, alpha, beta) != loc + scale * NIG(0, 1, alpha, beta).
  ```
code: def _default_event_space_bijector(self):
      return identity_bijector.Identity()
  
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.distributions import inverse_gaussian
  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
  from tensorflow_probability.python.math import bessel
label_desc: Use image node_id 13 for calling the NormalInverseGaussian obj's underlying member method code with example usage: obj._default_event_space_bijector() and returns: identity_bijector