code: def _noinline_jvp(primals, tangents):
      # TODO: add custom partial-eval rule to avoid the double-noinline?
      dynamic_index, abstract_fn, transforms, args = primals
      t_dynamic_index, t_abstract_fn, t_transforms, t_args = tangents
      assert (
          len(
              jtu.tree_leaves(
                  (t_dynamic_index, t_abstract_fn, t_transforms)
              )
          )
          == 0
      )  # all none
      del t_dynamic_index, t_abstract_fn, t_transforms
      tangents = jtu.tree_map(
          materialise_zeros, args, t_args, is_leaf=_is_none
      )
      primal_outs = filter_primitive_bind(noinline_p, *primals)
      tangent_outs = filter_primitive_bind(
          noinline_p,
          dynamic_index,
          abstract_fn,
          transforms + [_jvp_transform],
          (args, t_args),
      )
      return primal_outs, tangent_outs
  
imports: import functools
  from collections.abc import Callable
  from typing import Any, Optional, Union
  import jax
  import jax._src.pretty_printer
  import jax._src.source_info_util
  import jax.core
  import jax.interpreters.ad
  import jax.interpreters.batching
  import jax.interpreters.mlir
  import jax.numpy
  import jax.tree_util
  import numpy
  from jaxtyping import Array, Int, PyTree
  from .._ad import filter_jvp
  from .._caches import internal_lru_caches
  from .._compile_utils import hashable_combine, hashable_partition
  from .._eval_shape import filter_eval_shape
  from .._filters import combine, is_array, partition
  from .._module import field, Module, module_update_wrapper
  from .._vmap_pmap import filter_vmap
  from .None import _primitive
  from ._primitive import filter_primitive_batching, filter_primitive_bind, filter_primitive_def, filter_primitive_jvp, filter_primitive_transpose, materialise_zeros
label_desc: Use image node_id 16 for calling a global function with example usage: _noinline_jvp(primals, tangents) and returns: primal_outs,  tangent_outs