'Multivariate Horner\'s scheme
Parameters
x, y : array
coeff : array of coefficients in inverse lexical order'

def multivariate_horner(self, x, y, coeffs):

    alpha = self._invlex()
    r0 = coeffs[0]
    r1 = (r0 * 0.0)
    r2 = (r0 * 0.0)
    karr = np.diff(alpha, axis=0)
    for n in range(len(karr)):
        if (karr[(n, 1)] != 0):
            r2 = (y * ((r0 + r1) + r2))
            r1 = np.zeros_like(coeffs[0], subok=False)
        else:
            r1 = (x * (r0 + r1))
        r0 = coeffs[(n + 1)]
    return ((r0 + r1) + r2)
