def full(self, X, Xs=None): linear = super().full(X, Xs) return at.power(linear + self.offset, self.d)
def diag(self, X): linear = super().diag(X) return at.power(linear + self.offset, self.d)
def full(self, X, Xs=None): X, Xs = self._slice(X, Xs) return at.power( (1.0 + 0.5 * self.square_dist(X, Xs) * (1.0 / self.alpha)), -1.0 * self.alpha, )