Source code for geomstats.varifold.base

"""Base objects for varifold implementation."""

import abc

import geomstats.backend as gs


[docs] class Pairing(abc.ABC): """Kernel pairing.""" def _get_kernel_prod_args(self, point_a, point_b): return [x for pair in zip(point_a[:-1], point_b[:-1]) for x in pair] + [ point_b[-1] ] def __call__(self, point_a, point_b): """Evaluate kernel. Parameters ---------- point_a : tuple point_b : tuple Returns ------- scalar : float """ kernel_args = self._get_kernel_prod_args(point_a, point_b) return gs.sum(self.kernel_prod(*kernel_args) * point_a[-1])