Grammian

View as Markdown

Source header: cuvs/distance/grammian.hpp

Types

distance::kernels::GramMatrixBase

Base class for general Gram matrices

A Gram matrix is the Hermitian matrix of inner probucts G_ik = <x_i, x_k> Here, the inner product is evaluated for all elements from vectors sets X1, and X2.

To be more precise, on exit the output buffer will store:

  • if is_row_major == true: out[j+k*n1] = <x1_j, x2_k>,
  • if is_row_major == false: out[j*n2 + k] = <x1_j, x2_k>, where x1_j is the j-th vector from the x1 set and x2_k is the k-th vector from the x2 set.
1template <typename math_t>
2class GramMatrixBase { ... };

distance::kernels::PolynomialKernel

Create a kernel matrix using polynomial kernel function.

1template <typename math_t, typename exp_t>
2class PolynomialKernel : public GramMatrixBase<math_t> { ... };

distance::kernels::TanhKernel

Create a kernel matrix using tanh kernel function.

1template <typename math_t>
2class TanhKernel : public GramMatrixBase<math_t> { ... };

distance::kernels::RBFKernel

Create a kernel matrix using RBF kernel function.

1template <typename math_t>
2class RBFKernel : public GramMatrixBase<math_t> { ... };