code: def rbf_kernel(X, Y=None, gamma=None):
      """Compute the rbf (gaussian) kernel between X and Y.
  
          K(x, y) = exp(-gamma ||x-y||^2)
  
      for each pair of rows x in X and y in Y.
  
      Read more in the :ref:`User Guide <rbf_kernel>`.
  
      Parameters
      ----------
      X : {array-like, sparse matrix} of shape (n_samples_X, n_features)
          A feature array.
  
      Y : {array-like, sparse matrix} of shape (n_samples_Y, n_features), default=None
          An optional second feature array. If `None`, uses `Y=X`.
  
      gamma : float, default=None
          If None, defaults to 1.0 / n_features.
  
      Returns
      -------
      kernel : ndarray of shape (n_samples_X, n_samples_Y)
          The RBF kernel.
  
      Examples
      --------
      >>> from sklearn.metrics.pairwise import rbf_kernel
      >>> X = [[0, 0, 0], [1, 1, 1]]
      >>> Y = [[1, 0, 0], [1, 1, 0]]
      >>> rbf_kernel(X, Y)
      array([[0.71..., 0.51...],
             [0.51..., 0.71...]])
      """
      X, Y = check_pairwise_arrays(X, Y)
      if gamma is None:
          gamma = 1.0 / X.shape[1]
  
      K = euclidean_distances(X, Y, squared=True)
      K *= -gamma
      np.exp(K, K)  # exponentiate K in-place
      return K
  
imports: import itertools
  import warnings
  from functools import partial
  from numbers import Integral, Real
  import numpy
  from joblib import effective_n_jobs
  from scipy.sparse import csr_matrix, issparse
  from scipy.spatial import distance
  from ..None import config_context
  from ..exceptions import DataConversionWarning
  from ..preprocessing import normalize
  from ..utils import check_array, gen_batches, gen_even_slices, get_chunk_n_rows, is_scalar_nan
  from ..utils._mask import _get_mask
  from ..utils._param_validation import Hidden, Interval, MissingValues, Options, StrOptions, validate_params
  from ..utils.extmath import row_norms, safe_sparse_dot
  from ..utils.fixes import parse_version, sp_base_version
  from ..utils.parallel import Parallel, delayed
  from ..utils.validation import _num_samples, check_non_negative
  from ._pairwise_distances_reduction import ArgKmin
  from ._pairwise_fast import _chi2_kernel_fast, _sparse_manhattan
label_desc: Use image node_id 22 for calling a global function with example usage: rbf_kernel(X, Y, gamma) and returns: K