@@ -189,7 +189,9 @@ def __init__(
189
189
self ._drop_first = drop_first
190
190
self ._m = m
191
191
self ._m_star = int (np .prod (self ._m ))
192
- self ._L = L
192
+ self ._L : Optional [pt .TensorVariable ] = None
193
+ if L is not None :
194
+ self ._L = pt .as_tensor (L )
193
195
self ._c = c
194
196
195
197
super ().__init__ (mean_func = mean_func , cov_func = cov_func )
@@ -198,13 +200,13 @@ def __add__(self, other):
198
200
raise NotImplementedError ("Additive HSGPs aren't supported." )
199
201
200
202
@property
201
- def L (self ):
203
+ def L (self ) -> pt . TensorVariable :
202
204
if self ._L is None :
203
205
raise RuntimeError ("Boundaries `L` required but still unset." )
204
206
return self ._L
205
207
206
208
@L .setter
207
- def L (self , value ):
209
+ def L (self , value : TensorLike ):
208
210
self ._L = pt .as_tensor_variable (value )
209
211
210
212
def prior_linearized (self , Xs : TensorLike ):
@@ -290,9 +292,7 @@ def prior_linearized(self, Xs: TensorLike):
290
292
# If not provided, use Xs and c to set L
291
293
if self ._L is None :
292
294
assert isinstance (self ._c , (numbers .Real , np .ndarray , pt .TensorVariable ))
293
- self .L = set_boundary (Xs , self ._c )
294
- else :
295
- self .L = self ._L
295
+ self ._L = pt .as_tensor (set_boundary (Xs , self ._c ))
296
296
297
297
eigvals = calc_eigenvalues (self .L , self ._m , tl = pt )
298
298
phi = calc_eigenvectors (Xs , self .L , eigvals , self ._m , tl = pt )
0 commit comments