class_docstr: Marginal distribution of a Multitask GP at finitely many points.
docstr: Return `index_points` if not None, else `self._index_points`.
  
  Args:
    index_points: if given, this is what is returned; else,
    `self._index_points`
  
  Returns:
    index_points: the given arg, if not None, else the class member
    `self._index_points`.
  
  Rases:
    ValueError: if `index_points` and `self._index_points` are both `None`.
docstr_tok: ["Return","`","index_points","`","if","not","None",",","else","`","self._index_points","`",".","Args",":","index_points",":","if","given",",","this","is","what","is","returned",";","else",",","`","self._index_points","`","Returns",":","index_points",":","the","given","arg",",","if","not","None",",","else","the","class","member","`","self._index_points","`",".","Rases",":","ValueError",":","if","`","index_points","`","and","`","self._index_points","`","are","both","`","None","`","."]
code: def _get_index_points(self, index_points=None):
      """Return `index_points` if not None, else `self._index_points`.
  
      Args:
        index_points: if given, this is what is returned; else,
        `self._index_points`
  
      Returns:
        index_points: the given arg, if not None, else the class member
        `self._index_points`.
  
      Rases:
        ValueError: if `index_points` and `self._index_points` are both `None`.
      """
      if self._index_points is None and index_points is None:
          raise ValueError(
              "This MultiTaskGaussianProcess instance was not instantiated with a "
              "value for index_points. One must therefore be provided when calling "
              "sample, log_prob, and other such methods. In particular, one can't "
              " compute KL divergences to/from an instance of "
              "`MultiTaskGaussianProccess` with unspecified `index_points` "
              "directly. Instead, use the `get_marginal_distribution` function, "
              "which takes `index_points` as an argument and returns a `Normal` or "
              "`MultivariateNormalLinearOperator` instance, whose KL can be "
              "computed."
          )
      return nest_util.convert_to_nested_tensor(
          index_points
          if index_points is not None
          else self._index_points,
          dtype_hint=self.kernel.dtype,
          allow_packing=True,
      )
  
imports: import functools
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import cholesky_util
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import mvn_linear_operator
  from tensorflow_probability.python.distributions.internal import stochastic_process_util
  from tensorflow_probability.python.experimental.linalg import linear_operator_unitary
  from tensorflow_probability.python.experimental.psd_kernels import multitask_kernel
  from tensorflow_probability.python.internal import batch_shape_lib
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import nest_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 tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow.python.util import nest
label_desc: Use image node_id 13 for calling the MultiTaskGaussianProcess obj's underlying member method code with example usage: obj._get_index_points(index_points) and returns: nest_util