2525class KernelEmbedding :
2626 """Integrals over kernels against integration measures.
2727
28+ The available kernel embeddings are:
29+
30+ ============= ===============
31+ ExpQuad LebesgueMeasure
32+ ExpQuad GaussianMeasure
33+ Matern (1d) LebesgueMeasure
34+ ProductMatern LebesgueMeasure
35+ ============= ===============
36+
2837 Parameters
2938 ----------
3039 kernel:
@@ -51,7 +60,7 @@ def __init__(self, kernel: Kernel, measure: IntegrationMeasure) -> None:
5160 (self .input_dim ,) = self .kernel .input_shape
5261
5362 # retrieve the functions for the provided combination of kernel and measure
54- self ._kmean , self ._kvar = _get_kernel_embedding (
63+ self ._kmean , self ._kvar = self . _get_kernel_embedding (
5564 kernel = self .kernel , measure = self .measure
5665 )
5766
@@ -82,48 +91,48 @@ def kernel_variance(self) -> float:
8291 """
8392 return self ._kvar (kernel = self .kernel , measure = self .measure )
8493
94+ @staticmethod
95+ def _get_kernel_embedding (
96+ kernel : Kernel , measure : IntegrationMeasure
97+ ) -> Tuple [Callable , Callable ]:
98+ """Select the right kernel embedding given the kernel and integration measure.
8599
86- def _get_kernel_embedding (
87- kernel : Kernel , measure : IntegrationMeasure
88- ) -> Tuple [Callable , Callable ]:
89- """Select the right kernel embedding given the kernel and integration measure.
90-
91- Parameters
92- ----------
93- kernel :
94- Instance of a kernel.
95- measure :
96- Instance of an integration measure.
97-
98- Returns
99- -------
100- kernel_mean :
101- The kernel mean function.
102- kernel_variance :
103- The kernel variance function.
100+ Parameters
101+ ----------
102+ kernel :
103+ Instance of a kernel.
104+ measure :
105+ Instance of an integration measure.
104106
105- Raises
106- ------
107- NotImplementedError
108- If the given kernel is unknown.
109- NotImplementedError
110- If the kernel embedding of the kernel-measure pair is unknown.
111- """
107+ Returns
108+ -------
109+ kernel_mean :
110+ The kernel mean function.
111+ kernel_variance :
112+ The kernel variance function.
113+
114+ Raises
115+ ------
116+ NotImplementedError
117+ If the given kernel is unknown.
118+ NotImplementedError
119+ If the kernel embedding of the kernel-measure pair is unknown.
120+ """
112121
113- # Exponentiated quadratic kernel
114- if isinstance (kernel , ExpQuad ):
115- if isinstance (measure , GaussianMeasure ):
116- return _kernel_mean_expquad_gauss , _kernel_variance_expquad_gauss
117- if isinstance (measure , LebesgueMeasure ):
118- return _kernel_mean_expquad_lebesgue , _kernel_variance_expquad_lebesgue
119-
120- # Matern
121- if isinstance (kernel , (Matern , ProductMatern )):
122- if isinstance (measure , LebesgueMeasure ):
123- return _kernel_mean_matern_lebesgue , _kernel_variance_matern_lebesgue
124-
125- # other kernels
126- raise NotImplementedError (
127- "The combination of kernel ({0 }) and measure ({1}) is not available as kernel "
128- " embedding.". format ( type ( kernel ), type ( measure ))
129- )
122+ # Exponentiated quadratic kernel
123+ if isinstance (kernel , ExpQuad ):
124+ if isinstance (measure , GaussianMeasure ):
125+ return _kernel_mean_expquad_gauss , _kernel_variance_expquad_gauss
126+ if isinstance (measure , LebesgueMeasure ):
127+ return _kernel_mean_expquad_lebesgue , _kernel_variance_expquad_lebesgue
128+
129+ # Matern
130+ if isinstance (kernel , (Matern , ProductMatern )):
131+ if isinstance (measure , LebesgueMeasure ):
132+ return _kernel_mean_matern_lebesgue , _kernel_variance_matern_lebesgue
133+
134+ # other kernels
135+ raise NotImplementedError (
136+ f "The combination of kernel ({ type ( kernel ) } ) and measure ({ type ( measure ) } ) "
137+ f"is not available as kernel embedding."
138+ )
0 commit comments