code: def lognorm_to_norm(mu: Tensor, Cov: Tensor) -> Tuple[Tensor, Tensor]:
      """Compute mean and covariance of a MVN from those of the associated log-MVN
  
      If `Y` is log-normal with mean mu_ln and covariance Cov_ln, then
      `X ~ N(mu_n, Cov_n)` with
  
          Cov_n_{ij} = log(1 + Cov_ln_{ij} / (mu_ln_{i} * mu_n_{j}))
          mu_n_{i} = log(mu_ln_{i}) - 0.5 * log(1 + Cov_ln_{ii} / mu_ln_{i}**2)
  
      Args:
          mu: A `batch_shape x n` mean vector of the log-Normal distribution.
          Cov: A `batch_shape x n x n` covariance matrix of the log-Normal
              distribution.
  
      Returns:
          A two-tuple containing:
  
          - The `batch_shape x n` mean vector of the Normal distribution
          - The `batch_shape x n x n` covariance matrix of the Normal distribution
      """
      Cov_n = torch.log(1 + Cov / (mu.unsqueeze(-1) * mu.unsqueeze(-2)))
      mu_n = torch.log(mu) - 0.5 * torch.diagonal(
          Cov_n, dim1=-1, dim2=-2
      )
      return mu_n, Cov_n
  
file_path: botorch/botorch/models/transforms/utils.py
imports: from __future__ import annotations
  from functools import wraps
  from typing import Tuple
  import torch
  from torch import Tensor
label_desc: Use image node_id 1 for calling a global function with example usage: lognorm_to_norm(mu, Cov) and returns: mu_n,  Cov_n