def K(self, X, X2):
raise NotImplementedError<EOL>
Compute the kernel function.

.. math::
    K_{ij} = k(X_i, X_j)

:param X: the first set of inputs to the kernel
:param X2: (optional) the second set of arguments to the kernel. If X2
           is None, this is passed throgh to the 'part' object, which
           handLes this as X2 == X.