code: def _linear_solve_transpose_rule(
      cotangent, *primals, const_lengths, jaxprs
  ):
      if jaxprs.transpose_solve is None:
          raise TypeError(
              "transpose_solve required for backwards mode automatic "
              "differentiation of custom_linear_solve"
          )
  
      params, b = _split_linear_solve_args(primals, const_lengths)
      # split off symbolic zeros in the cotangent if present
      x_cotangent, _ = split_list(cotangent, [len(b)])
      assert all(ad.is_undefined_primal(x) for x in b)
      cotangent_b_full = linear_solve_p.bind(
          *(_flatten(params.transpose()) + x_cotangent),
          const_lengths=const_lengths.transpose(),
          jaxprs=jaxprs.transpose(),
      )
      # drop aux values in cotangent computation
      cotangent_b, _ = split_list(cotangent_b_full, [len(b)])
      return [None] * sum(const_lengths) + cotangent_b
  
imports: import collections
  from functools import partial
  import operator
  import jax
  from jax.tree_util import tree_flatten, treedef_children, tree_leaves, tree_unflatten, treedef_tuple
  from jax._src import ad_util
  from jax._src import core
  from jax._src import linear_util
  from jax._src.core import raise_to_shaped
  from jax._src.interpreters import ad
  from jax._src.interpreters import batching
  from jax._src.interpreters import mlir
  from jax._src.interpreters import xla
  from jax._src.traceback_util import api_boundary
  from jax._src.util import split_list, safe_map
  import numpy
  from jax._src.lax.control_flow.common import _abstractify, _check_tree, _initial_style_jaxpr
label_desc: Use image node_id 14 for calling a global function with example usage: _linear_solve_transpose_rule(cotangent) and returns: unknown