code: def natural_to_meanvarsqrt(
      nat1: tf.Tensor, nat2: tf.Tensor
  ) -> Tuple[tf.Tensor, tf.Tensor]:
      var_sqrt_inv = tf.linalg.cholesky(-2 * nat2)
      var_sqrt = _inverse_lower_triangular(var_sqrt_inv)
      S = tf.linalg.matmul(var_sqrt, var_sqrt, transpose_a=True)
      mu = tf.linalg.matmul(S, nat1)
      # We need the decomposition of S as L L^T, not as L^T L,
      # hence we need another cholesky.
      return mu, tf.linalg.cholesky(S)
  
imports: import abc
  import functools
  from typing import Any, Callable, Dict, Optional, Sequence, Tuple, Union
  import tensorflow
  from check_shapes import check_shapes
  from ..base import AnyNDArray, Parameter, _to_constrained
label_desc: Use image node_id 2 for calling a global function with example usage: natural_to_meanvarsqrt(nat1, nat2) and returns: mu,  tf