Computes the min eigen value and corresponding vector of matrix M or H
    using the Lanczos algorithm.
    Args:
      compute_m: boolean to determine whether we should compute eig val/vec
        for M or for H. True for M; False for H.
      feed_dict: dictionary mapping from TF placeholders to values (optional)
    Returns:
      min_eig_vec: Corresponding eigen vector to min eig val
      eig_val: Minimum eigen value

def get_lanczos_eig(self, compute_m=True, feed_dict=None):
    """Computes the min eigen value and corresponding vector of matrix M or H
    using the Lanczos algorithm.
    Args:
      compute_m: boolean to determine whether we should compute eig val/vec
        for M or for H. True for M; False for H.
      feed_dict: dictionary mapping from TF placeholders to values (optional)
    Returns:
      min_eig_vec: Corresponding eigen vector to min eig val
      eig_val: Minimum eigen value
    """
    if compute_m:
      min_eig, min_vec = self.sess.run([self.m_min_eig, self.m_min_vec], feed_dict=feed_dict)

    else:
      min_eig, min_vec = self.sess.run([self.h_min_eig, self.h_min_vec], feed_dict=feed_dict)

    return min_vec, min_eig