code: def _tangent_linear_map(func, params, params_dot, *x):
      """Compute the tangent of a linear map.
  
      Assuming ``func(*params, *x)`` is linear in ``x`` and computes ``A @ x``,
      this function computes ``∂A @ x``.
      """
      assert any(type(p) is not ad_util.Zero for p in params_dot)
      zeros = _map(ad_util.Zero.from_value, x)
      _, out_tangent = ad.jvp(lu.wrap_init(func)).call_wrapped(
          params + list(x), params_dot + zeros
      )
      return out_tangent
  
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 12 for calling a global function with example usage: _tangent_linear_map(func, params, params_dot) and returns: out_tangent