def calculate(self, avec, gmat):
        if self._order == 0:
            return (avec ** 2).sum().astype("float")

        return 0.5 * avec.dot(gmat).dot(avec)