code: def Kdiag(self, X):
          
          K_ff = np.zeros(X.shape[0])
          for i,x in enumerate(X):
              K_ff[i] = self.k_ff(x[0],x[0],self.lengthscale[0])
          return K_ff * self.variances[0]
docs: I've used the fact that we call this method for K_ff when finding the covariance as a hack so
          I know if I should return K_ff or K_xx. In this case we're returning K_ff!!
          $K_{ff}^{post} = K_{ff} - K_{fx} K_{xx}^{-1} K_{xf}$