code: def _select_if_vmap_transpose(ct, pred, x, y):
      assert not ad.is_undefined_primal(pred)
      assert ct.shape == x.aval.shape
      assert ct.dtype == x.aval.dtype
      assert ct.shape == y.aval.shape
      assert ct.dtype == y.aval.dtype
      if type(ct) is ad.Zero:
          ct_x = None
          ct_y = None
      else:
          zero = jnp.zeros(ct.shape, ct.dtype)
          if ad.is_undefined_primal(x):
              ct_x = _select_if_vmap(
                  pred, ct, zero, makes_false_steps=False
              )
          else:
              ct_x = None
          if ad.is_undefined_primal(y):
              ct_y = _select_if_vmap(
                  pred, zero, ct, makes_false_steps=False
              )
          else:
              ct_y = None
      return [None, ct_x, ct_y]
  
imports: import itertools
  from typing import Any, TYPE_CHECKING, Union
  import jax
  import jax.core
  import jax.interpreters.ad
  import jax.interpreters.batching
  import jax.interpreters.mlir
  import jax.lax
  import jax.numpy
  import jax.tree_util
  from jaxtyping import Array, Bool
  from ..._filters import combine, is_array, partition
  from ..._module import field, Module
  from ..._pretty_print import tree_pformat
  from ..._tree import tree_at, tree_equal
  from ..._unvmap import unvmap_any
  from .._nontraceable import nonbatchable
  from .._primitive import create_vprim
label_desc: Use image node_id 4 for calling a global function with example usage: _select_if_vmap_transpose(ct, pred, x, y) and returns: list