code: def ref_rbf_kernel(
      X: AnyNDArray,
      lengthscales: AnyNDArray,
      signal_variance: AnyNDArray,
  ) -> AnyNDArray:
      N, _ = X.shape
      kernel = np.zeros((N, N))
      for row_index in range(N):
          for column_index in range(N):
              vecA = X[row_index, :]
              vecB = X[column_index, :]
              delta = vecA - vecB
              distance_squared = np.dot(delta.T, delta)
              kernel[
                  row_index, column_index
              ] = signal_variance * np.exp(
                  -0.5 * distance_squared / lengthscales**2
              )
      return kernel
  
imports: import numpy
  from check_shapes import check_shapes
  from gpflow.base import AnyNDArray
label_desc: Use image node_id 1 for calling a global function with example usage: ref_rbf_kernel(X, lengthscales, signal_variance) and returns: kernel