Evaluates the horsetail matching metric at given values of the
        design variables.

        :param iterable x: values of the design variables, this is passed as
            the first argument to the function fqoi
        :param str method: method to use to evaluate the metric ('empirical' or
            'kernel')

        :return: metric_value - value of the metric evaluated at the design
            point given by x

        :rtype: float

        *Example Usage*::

            >>> def myFunc(x, u): return x[0]*x[1] + u
            >>> u1 = UniformParameter()
            >>> theHM = HorsetailMatching(myFunc, u)
            >>> x0 = [1, 2]
            >>> theHM.evalMetric(x0)

def evalMetric(self, x, method=None):
        '''Evaluates the horsetail matching metric at given values of the
        design variables.

        :param iterable x: values of the design variables, this is passed as
            the first argument to the function fqoi
        :param str method: method to use to evaluate the metric ('empirical' or
            'kernel')

        :return: metric_value - value of the metric evaluated at the design
            point given by x

        :rtype: float

        *Example Usage*::

            >>> def myFunc(x, u): return x[0]*x[1] + u
            >>> u1 = UniformParameter()
            >>> theHM = HorsetailMatching(myFunc, u)
            >>> x0 = [1, 2]
            >>> theHM.evalMetric(x0)

        '''
        # Make sure dimensions are correct
#        u_sample_dimensions = self._processDimensions()

        if self.verbose:
            print('----------')
            print('At design: ' + str(x))

        q_samples, grad_samples = self.evalSamples(x)

        if self.verbose:
            print('Evaluating metric')

        return self.evalMetricFromSamples(q_samples, grad_samples, method)