code: def lognorm_to_norm(
      mu_ln: np.ndarray, Cov_ln: np.ndarray
  ) -> Tuple[np.ndarray, np.ndarray]:
      """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)
      """
      Cov_n = np.log(1 + Cov_ln / np.outer(mu_ln, mu_ln))
      mu_n = np.log(mu_ln) - 0.5 * np.diag(Cov_n)
      return mu_n, Cov_n
  
imports: from __future__ import annotations
  from logging import Logger
  from typing import Callable, List, Optional, Tuple, TYPE_CHECKING
  import numpy
  from ax.core.observation import Observation, ObservationData, ObservationFeatures
  from ax.core.optimization_config import OptimizationConfig
  from ax.core.outcome_constraint import OutcomeConstraint
  from ax.core.search_space import SearchSpace
  from ax.modelbridge.transforms.base import Transform
  from ax.models.types import TConfig
  from ax.utils.common.logger import get_logger
  from scipy.stats import norm
label_desc: Use image node_id 2 for calling a global function with example usage: lognorm_to_norm(mu_ln, Cov_ln) and returns: mu_n,  Cov_n