code: def solve_triangular(
      x1: Union[tf.Tensor, tf.Variable],
      x2: Union[tf.Tensor, tf.Variable],
      /,
      *,
      upper: bool = True,
      adjoint: bool = False,
      unit_diagonal: bool = False,
      out: Optional[Union[tf.Tensor, tf.Variable]] = None,
  ) -> Union[tf.Tensor, tf.Variable]:
      # Multiplying with a mask matrix can stop gradients on the diagonal.
      if unit_diagonal:
          w = tf.constant(
              tf.eye(
                  x1.shape[-2],
                  batch_shape=x1.shape[:-2],
                  dtype=x1.dtype,
              )
          )
          x1 = w + (1 - w) * x1
      return tf.linalg.triangular_solve(
          x1, x2, lower=not upper, adjoint=adjoint
      )
  
file_path: ivy/ivy/functional/backends/tensorflow/experimental/linear_algebra.py
imports: from typing import Union, Optional, Tuple, List, Sequence
  import tensorflow
  from functools import reduce
  import ivy
  from ivy.functional.ivy.experimental.linear_algebra import _check_valid_dimension_size
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from ivy.utils.exceptions import IvyNotImplementedException
  from ..None import backend_version
label_desc: Use image node_id 8 for calling a global function with example usage: solve_triangular() and returns: tf