docstr: Approximates the true log probability.
docstr_tok: ["Approximates","the","true","log","probability","."]
code: def log_prob(self, value: Tensor) -> Tensor:
      r"""Approximates the true log probability."""
      neg_inf = get_constants_like(-float("inf"), value)
      inbounds = torch.logical_and(
          (self.bounds[..., 0] < value).all(-1),
          (self.bounds[..., 1] > value).all(-1),
      )
      if inbounds.any():
          return torch.where(
              inbounds,
              super().log_prob(value) - self.log_partition,
              neg_inf,
          )
      return torch.full(value.shape[: -len(self.event_shape)], neg_inf)
  
file_path: botorch/botorch/utils/probability/truncated_multivariate_normal.py
imports: from __future__ import annotations
  from typing import Optional, Sequence
  import torch
  from botorch.utils.probability.lin_ess import LinearEllipticalSliceSampler
  from botorch.utils.probability.mvnxpb import MVNXPB
  from botorch.utils.probability.utils import get_constants_like
  from torch import Tensor
  from torch.distributions.multivariate_normal import MultivariateNormal
label_desc: Use image node_id 2 for calling the TruncatedMultivariateNormal obj's underlying member method code with example usage: obj.log_prob(value) and returns: torch, torch