Source code for UQpy.utilities.kernels.baseclass.Kernel

from abc import ABC, abstractmethod
from typing import Union

import numpy as np


[docs]class Kernel(ABC): """ Abstract base class of all Kernels. Serves as a template for creating new Gaussian Process covariance functions. """ def __init__(self, kernel_parameter: Union[int, float]): self.__kernel_parameter = kernel_parameter self.kernel_matrix=None @property def kernel_parameter(self): return self.__kernel_parameter @kernel_parameter.setter def kernel_parameter(self, value): self.__kernel_parameter = value
[docs] @abstractmethod def calculate_kernel_matrix(self, x, s): """ Abstract method that needs to be implemented by the user when creating a new Covariance function. """ pass
@staticmethod def check_samples_and_return_stack(x, s): x_, s_ = np.atleast_2d(x), np.atleast_2d(s) # Create stack matrix, where each block is x_i with all s stack = np.tile( np.swapaxes(np.atleast_3d(x_), 1, 2), (1, np.size(s_, 0), 1) ) - np.tile(s_, (np.size(x_, 0), 1, 1)) return stack