class_docstr: The [Multivariate Student's t-distribution](
  
  https://en.wikipedia.org/wiki/Multivariate_t-distribution) on `R^k`.
  
  #### Mathematical Details
  
  The probability density function (pdf) is,
  
  ```none
  pdf(x; df, loc, Sigma) = (1 + ||y||**2 / df)**(-0.5 (df + k)) / Z
  where,
  y = inv(Sigma) (x - loc)
  Z = abs(det(Sigma)) sqrt(df pi)**k Gamma(0.5 df) / Gamma(0.5 (df + k))
  ```
  
  where:
  
  * `df` is a positive scalar.
  * `loc` is a vector in `R^k`,
  * `Sigma` is a positive definite `shape' matrix in `R^{k x k}`, parameterized
     as `scale @ scale.T` in this class,
  * `Z` denotes the normalization constant, and,
  * `||y||**2` denotes the squared Euclidean norm of `y`.
  
  The Multivariate Student's t-distribution distribution is a member of the
  [location-scale
  family](https://en.wikipedia.org/wiki/Location-scale_family), i.e., it can be
  constructed as,
  
  ```none
  X ~ MultivariateT(loc=0, scale=1)   # Identity scale, zero shift.
  Y = scale @ X + loc
  ```
  
  #### Examples
  
  ```python
  tfd = tfp.distributions
  
  # Initialize a single 3-variate Student's t.
  df = 3.
  loc = [1., 2, 3]
  scale = [[ 0.6,  0. ,  0. ],
           [ 0.2,  0.5,  0. ],
           [ 0.1, -0.3,  0.4]]
  sigma = tf.matmul(scale, scale, adjoint_b=True)
  # ==> [[ 0.36,  0.12,  0.06],
  #      [ 0.12,  0.29, -0.13],
  #      [ 0.06, -0.13,  0.26]]
  
  mvt = tfd.MultivariateStudentTLinearOperator(
      df=df,
      loc=loc,
      scale=tf.linalg.LinearOperatorLowerTriangular(scale))
  
  # Covariance is closely related to the sigma matrix (for df=3, it is 3x of the
  # sigma matrix).
  
  mvt.covariance()
  # ==> [[ 1.08,  0.36,  0.18],
  #      [ 0.36,  0.87, -0.39],
  #      [ 0.18, -0.39,  0.78]]
  
  # Compute the pdf of an`R^3` observation; return a scalar.
  mvt.prob([-1., 0, 1])  # shape: []
  ```
class_docstr_tok: ["The","[","Multivariate","Student","'s","t-distribution","]","(","https",":","\/\/en.wikipedia.org\/wiki\/Multivariate_t-distribution",")","on","`","R^k","`",".","#","#","#","#","Mathematical","Details","The","probability","density","function","(","pdf",")","is",",","``","`","none","pdf","(","x",";","df",",","loc",",","Sigma",")","=","(","1","+","||y||","*","*","2","\/","df",")","*","*","(","-0.5","(","df","+","k",")",")","\/","Z","where",",","y","=","inv","(","Sigma",")","(","x","-","loc",")","Z","=","abs","(","det","(","Sigma",")",")","sqrt","(","df","pi",")","*","*","k","Gamma","(","0.5","df",")","\/","Gamma","(","0.5","(","df","+","k",")",")","``","`","where",":","*","`","df","`","is","a","positive","scalar",".","*","`","loc","`","is","a","vector","in","`","R^k","`",",","*","`","Sigma","`","is","a","positive","definite","`","shape","'","matrix","in","`","R^","{","k","x","k","}","`",",","parameterized","as","`","scale","@","scale.T","`","in","this","class",",","*","`","Z","`","denotes","the","normalization","constant",",","and",",","*","`","||y||","*","*","2","`","denotes","the","squared","Euclidean","norm","of","`","y","`",".","The","Multivariate","Student","'s","t-distribution","distribution","is","a","member","of","the","[","location-scale","family","]","(","https",":","\/\/en.wikipedia.org\/wiki\/Location-scale_family",")",",","i.e.",",","it","can","be","constructed","as",",","``","`","none","X","~","MultivariateT","(","loc=0",",","scale=1",")","#","Identity","scale",",","zero","shift",".","Y","=","scale","@","X","+","loc","``","`","#","#","#","#","Examples","``","`","python","tfd","=","tfp.distributions","#","Initialize","a","single","3-variate","Student","'s","t.","df","=","3.","loc","=","[","1.",",","2",",","3","]","scale","=","[","[","0.6",",","0.",",","0",".","]",",","[","0.2",",","0.5",",","0",".","]",",","[","0.1",",","-0.3",",","0.4","]","]","sigma","=","tf.matmul","(","scale",",","scale",",","adjoint_b=True",")","#","==",">","[","[","0.36",",","0.12",",","0.06","]",",","#","[","0.12",",","0.29",",","-0.13","]",",","#","[","0.06",",","-0.13",",","0.26","]","]","mvt","=","tfd.MultivariateStudentTLinearOperator","(","df=df",",","loc=loc",",","scale=tf.linalg.LinearOperatorLowerTriangular","(","scale",")",")","#","Covariance","is","closely","related","to","the","sigma","matrix","(","for","df=3",",","it","is","3x","of","the","#","sigma","matrix",")",".","mvt.covariance","(",")","#","==",">","[","[","1.08",",","0.36",",","0.18","]",",","#","[","0.36",",","0.87",",","-0.39","]",",","#","[","0.18",",","-0.39",",","0.78","]","]","#","Compute","the","pdf","of","an","`","R^3","`","observation",";","return","a","scalar",".","mvt.prob","(","[","-1.",",","0",",","1","]",")","#","shape",":","[","]","``","`"]
code: def _parameter_control_dependencies(self, is_init):
      if not self.validate_args:
          return []
      assertions = []
      if is_init != tensor_util.is_ref(self._df):
          assertions.append(
              assert_util.assert_positive(
                  self._df, message="Argument `df` must be positive."
              )
          )
      return assertions
  
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 chi2
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import mvn_linear_operator
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import distribution_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 numeric
  from tensorflow_probability.python.math import special
label_desc: Use image node_id 21 for calling the MultivariateStudentTLinearOperator obj's underlying member method code with example usage: obj._parameter_control_dependencies(is_init) and returns: assertions, list