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

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