docstr: Computes the kernel distance matrix between `x` and `y`.
  
  Parameters
  ----------
  x
      The first array of data instances.
  y
      The second array of data instances.
  
  Returns
  -------
  Kernel distance matrix between `x` and `y` having the size of `Nx x Ny`, where `Nx` is the number of         instances in `x` and `y` is the number of instances in `y`.
docstr_tok: ["Computes","the","kernel","distance","matrix","between","`","x","`","and","`","y","`",".","Parameters","--","--","--","--","--","x","The","first","array","of","data","instances",".","y","The","second","array","of","data","instances",".","Returns","--","--","--","-","Kernel","distance","matrix","between","`","x","`","and","`","y","`","having","the","size","of","`","Nx","x","Ny","`",",","where","`","Nx","`","is","the","number","of","instances","in","`","x","`","and","`","y","`","is","the","number","of","instances","in","`","y","`","."]
code: def __call__(self, x: np.ndarray, y: np.ndarray) -> np.ndarray:
      """
          Computes the kernel distance matrix between `x` and `y`.
  
          Parameters
          ----------
          x
              The first array of data instances.
          y
              The second array of data instances.
  
          Returns
          -------
          Kernel distance matrix between `x` and `y` having the size of `Nx x Ny`, where `Nx` is the number of \
          instances in `x` and `y` is the number of instances in `y`.
          """
      y = y.astype(x.dtype)
      x, y = x.reshape((x.shape[0], -1)), y.reshape(
          (y.shape[0], -1)
      )  # flatten
      dist = np.sqrt(squared_pairwise_distance(x, y))  # [Nx, Ny]
      return dist
  
file_path: alibi/alibi/utils/kernel.py
imports: import numpy
  from typing import Union, Optional
  from alibi.utils.distance import squared_pairwise_distance
label_desc: Use image node_id 2 for calling the EuclideanDistance obj's underlying member method code with example usage: obj.__call__(x, y) and returns: dist