code: def random_scale_tril(*args):
      if isinstance(args[0], tuple):
          assert len(args) == 1
          shape = args[0]
      else:
          shape = args
  
      from funsor.distribution import BACKEND_TO_DISTRIBUTIONS_BACKEND
  
      backend_dist = importlib.import_module(
          BACKEND_TO_DISTRIBUTIONS_BACKEND[get_backend()]
      ).dist
  
      if get_backend() == "torch":
          data = randn(shape)
          return backend_dist.transforms.transform_to(
              backend_dist.constraints.lower_cholesky
          )(data)
      else:
          data = randn(shape[:-2] + (shape[-1] * (shape[-1] + 1) // 2,))
          return backend_dist.biject_to(
              backend_dist.constraints.lower_cholesky
          )(data)
  
imports: import contextlib
  import importlib
  import itertools
  import numbers
  import operator
  from collections import OrderedDict, namedtuple
  from functools import reduce
  import numpy
  import opt_einsum
  from multipledispatch import dispatch
  from multipledispatch.variadic import Variadic
  import funsor.ops
  from funsor.cnf import Contraction
  from funsor.delta import Delta
  from funsor.domains import Bint, Domain, Real
  from funsor.gaussian import Gaussian
  from funsor.tensor import Tensor
  from funsor.terms import Funsor, Number
  from funsor.util import get_backend
label_desc: Use image node_id 17 for calling a global function with example usage: random_scale_tril() and returns: backend_dist, backend_dist