gpytorch/variational/unwhitened_variational_strategy.py

Killed 57 out of 108 mutants

Survived

Survived mutation testing. These mutants show holes in your test suite.

Mutant 297

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -46,7 +46,7 @@
         parameters of the model).
     """
 
-    @cached(name="cholesky_factor", ignore_args=True)
+    @cached(name="XXcholesky_factorXX", ignore_args=True)
     def _cholesky_factor(self, induc_induc_covar):
         # Maybe used - if we're not using CG
         L = psd_safe_cholesky(delazify(induc_induc_covar), jitter=settings.cholesky_jitter.value())

Mutant 298

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -46,7 +46,7 @@
         parameters of the model).
     """
 
-    @cached(name="cholesky_factor", ignore_args=True)
+    @cached(name="cholesky_factor", ignore_args=False)
     def _cholesky_factor(self, induc_induc_covar):
         # Maybe used - if we're not using CG
         L = psd_safe_cholesky(delazify(induc_induc_covar), jitter=settings.cholesky_jitter.value())

Mutant 299

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -46,7 +46,6 @@
         parameters of the model).
     """
 
-    @cached(name="cholesky_factor", ignore_args=True)
     def _cholesky_factor(self, induc_induc_covar):
         # Maybe used - if we're not using CG
         L = psd_safe_cholesky(delazify(induc_induc_covar), jitter=settings.cholesky_jitter.value())

Mutant 302

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -53,7 +53,7 @@
         return TriangularLazyTensor(L)
 
     @property
-    @cached(name="prior_distribution_memo")
+    @cached(name="XXprior_distribution_memoXX")
     def prior_distribution(self):
         out = self.model.forward(self.inducing_points)
         res = MultivariateNormal(out.mean, out.lazy_covariance_matrix.add_jitter())

Mutant 303

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -53,7 +53,7 @@
         return TriangularLazyTensor(L)
 
     @property
-    @cached(name="prior_distribution_memo")
+
     def prior_distribution(self):
         out = self.model.forward(self.inducing_points)
         res = MultivariateNormal(out.mean, out.lazy_covariance_matrix.add_jitter())

Mutant 317

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -76,7 +76,7 @@
         # Mean terms
         test_mean = full_mean[..., num_induc:]
         induc_mean = full_mean[..., :num_induc]
-        mean_diff = (inducing_values - induc_mean).unsqueeze(-1)
+        mean_diff = (inducing_values - induc_mean).unsqueeze(+1)
 
         # Covariance terms
         induc_induc_covar = full_covar[..., :num_induc, :num_induc].add_jitter()

Mutant 323

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -84,7 +84,7 @@
         data_data_covar = full_covar[..., num_induc:, num_induc:]
 
         # If we're less than a certain size, we'll compute the Cholesky decomposition of induc_induc_covar
-        cholesky = False
+        cholesky = True
         if settings.fast_computations.log_prob.off() or (num_induc <= settings.max_cholesky_size.value()):
             induc_induc_covar = CholLazyTensor(self._cholesky_factor(induc_induc_covar))
             cholesky = True

Mutant 324

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -84,7 +84,7 @@
         data_data_covar = full_covar[..., num_induc:, num_induc:]
 
         # If we're less than a certain size, we'll compute the Cholesky decomposition of induc_induc_covar
-        cholesky = False
+        cholesky = None
         if settings.fast_computations.log_prob.off() or (num_induc <= settings.max_cholesky_size.value()):
             induc_induc_covar = CholLazyTensor(self._cholesky_factor(induc_induc_covar))
             cholesky = True

Mutant 325

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -85,7 +85,7 @@
 
         # If we're less than a certain size, we'll compute the Cholesky decomposition of induc_induc_covar
         cholesky = False
-        if settings.fast_computations.log_prob.off() or (num_induc <= settings.max_cholesky_size.value()):
+        if settings.fast_computations.log_prob.off() or (num_induc < settings.max_cholesky_size.value()):
             induc_induc_covar = CholLazyTensor(self._cholesky_factor(induc_induc_covar))
             cholesky = True
 

Mutant 326

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -85,7 +85,7 @@
 
         # If we're less than a certain size, we'll compute the Cholesky decomposition of induc_induc_covar
         cholesky = False
-        if settings.fast_computations.log_prob.off() or (num_induc <= settings.max_cholesky_size.value()):
+        if settings.fast_computations.log_prob.off() and (num_induc <= settings.max_cholesky_size.value()):
             induc_induc_covar = CholLazyTensor(self._cholesky_factor(induc_induc_covar))
             cholesky = True
 

Mutant 328

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -87,7 +87,7 @@
         cholesky = False
         if settings.fast_computations.log_prob.off() or (num_induc <= settings.max_cholesky_size.value()):
             induc_induc_covar = CholLazyTensor(self._cholesky_factor(induc_induc_covar))
-            cholesky = True
+            cholesky = False
 
         # If we are making predictions and don't need variances, we can do things very quickly.
         if not self.training and settings.skip_posterior_variances.on():

Mutant 329

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -87,7 +87,7 @@
         cholesky = False
         if settings.fast_computations.log_prob.off() or (num_induc <= settings.max_cholesky_size.value()):
             induc_induc_covar = CholLazyTensor(self._cholesky_factor(induc_induc_covar))
-            cholesky = True
+            cholesky = None
 
         # If we are making predictions and don't need variances, we can do things very quickly.
         if not self.training and settings.skip_posterior_variances.on():

Mutant 330

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -90,7 +90,7 @@
             cholesky = True
 
         # If we are making predictions and don't need variances, we can do things very quickly.
-        if not self.training and settings.skip_posterior_variances.on():
+        if  self.training and settings.skip_posterior_variances.on():
             if not hasattr(self, "_mean_cache"):
                 # For now: run variational inference without a preconditioner
                 # The preconditioner screws things up for some reason

Mutant 331

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -90,7 +90,7 @@
             cholesky = True
 
         # If we are making predictions and don't need variances, we can do things very quickly.
-        if not self.training and settings.skip_posterior_variances.on():
+        if not self.training or settings.skip_posterior_variances.on():
             if not hasattr(self, "_mean_cache"):
                 # For now: run variational inference without a preconditioner
                 # The preconditioner screws things up for some reason

Mutant 332

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -103,7 +103,7 @@
             return MultivariateNormal(predictive_mean, predictive_covar)
 
         # Expand everything to the right size
-        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
+        shapes = [mean_diff.shape[:+1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
         if variational_inducing_covar is not None:
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
             shapes.append(root_variational_covar.shape[:-1])

Mutant 333

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -103,7 +103,7 @@
             return MultivariateNormal(predictive_mean, predictive_covar)
 
         # Expand everything to the right size
-        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
+        shapes = [mean_diff.shape[:-2], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
         if variational_inducing_covar is not None:
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
             shapes.append(root_variational_covar.shape[:-1])

Mutant 334

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -103,7 +103,7 @@
             return MultivariateNormal(predictive_mean, predictive_covar)
 
         # Expand everything to the right size
-        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
+        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:+1], induc_induc_covar.shape[:-1]]
         if variational_inducing_covar is not None:
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
             shapes.append(root_variational_covar.shape[:-1])

Mutant 335

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -103,7 +103,7 @@
             return MultivariateNormal(predictive_mean, predictive_covar)
 
         # Expand everything to the right size
-        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
+        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-2], induc_induc_covar.shape[:-1]]
         if variational_inducing_covar is not None:
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
             shapes.append(root_variational_covar.shape[:-1])

Mutant 336

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -103,7 +103,7 @@
             return MultivariateNormal(predictive_mean, predictive_covar)
 
         # Expand everything to the right size
-        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
+        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:+1]]
         if variational_inducing_covar is not None:
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
             shapes.append(root_variational_covar.shape[:-1])

Mutant 337

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -103,7 +103,7 @@
             return MultivariateNormal(predictive_mean, predictive_covar)
 
         # Expand everything to the right size
-        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
+        shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-2]]
         if variational_inducing_covar is not None:
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
             shapes.append(root_variational_covar.shape[:-1])

Mutant 341

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -106,7 +106,7 @@
         shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
         if variational_inducing_covar is not None:
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
-            shapes.append(root_variational_covar.shape[:-1])
+            shapes.append(root_variational_covar.shape[:+1])
         shape = _mul_broadcast_shape(*shapes)
         mean_diff = mean_diff.expand(*shape, mean_diff.size(-1))
         induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))

Mutant 342

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -106,7 +106,7 @@
         shapes = [mean_diff.shape[:-1], induc_data_covar.shape[:-1], induc_induc_covar.shape[:-1]]
         if variational_inducing_covar is not None:
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
-            shapes.append(root_variational_covar.shape[:-1])
+            shapes.append(root_variational_covar.shape[:-2])
         shape = _mul_broadcast_shape(*shapes)
         mean_diff = mean_diff.expand(*shape, mean_diff.size(-1))
         induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))

Mutant 344

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -108,7 +108,7 @@
             root_variational_covar = variational_inducing_covar.root_decomposition().root.evaluate()
             shapes.append(root_variational_covar.shape[:-1])
         shape = _mul_broadcast_shape(*shapes)
-        mean_diff = mean_diff.expand(*shape, mean_diff.size(-1))
+        mean_diff = mean_diff.expand(*shape, mean_diff.size(+1))
         induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))
         induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(-1))
         if variational_inducing_covar is not None:

Mutant 347

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -109,7 +109,7 @@
             shapes.append(root_variational_covar.shape[:-1])
         shape = _mul_broadcast_shape(*shapes)
         mean_diff = mean_diff.expand(*shape, mean_diff.size(-1))
-        induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))
+        induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(+1))
         induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(-1))
         if variational_inducing_covar is not None:
             root_variational_covar = root_variational_covar.expand(*shape, root_variational_covar.size(-1))

Mutant 350

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -110,7 +110,7 @@
         shape = _mul_broadcast_shape(*shapes)
         mean_diff = mean_diff.expand(*shape, mean_diff.size(-1))
         induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))
-        induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(-1))
+        induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(+1))
         if variational_inducing_covar is not None:
             root_variational_covar = root_variational_covar.expand(*shape, root_variational_covar.size(-1))
 

Mutant 351

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -110,7 +110,7 @@
         shape = _mul_broadcast_shape(*shapes)
         mean_diff = mean_diff.expand(*shape, mean_diff.size(-1))
         induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))
-        induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(-1))
+        induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(-2))
         if variational_inducing_covar is not None:
             root_variational_covar = root_variational_covar.expand(*shape, root_variational_covar.size(-1))
 

Mutant 353

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -111,7 +111,7 @@
         mean_diff = mean_diff.expand(*shape, mean_diff.size(-1))
         induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))
         induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(-1))
-        if variational_inducing_covar is not None:
+        if variational_inducing_covar is  None:
             root_variational_covar = root_variational_covar.expand(*shape, root_variational_covar.size(-1))
 
         # Cache the CG results

Mutant 354

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -112,7 +112,7 @@
         induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))
         induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(-1))
         if variational_inducing_covar is not None:
-            root_variational_covar = root_variational_covar.expand(*shape, root_variational_covar.size(-1))
+            root_variational_covar = root_variational_covar.expand(*shape, root_variational_covar.size(+1))
 
         # Cache the CG results
         # For now: run variational inference without a preconditioner

Mutant 355

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -112,7 +112,7 @@
         induc_data_covar = induc_data_covar.expand(*shape, induc_data_covar.size(-1))
         induc_induc_covar = induc_induc_covar.expand(*shape, induc_induc_covar.size(-1))
         if variational_inducing_covar is not None:
-            root_variational_covar = root_variational_covar.expand(*shape, root_variational_covar.size(-1))
+            root_variational_covar = root_variational_covar.expand(*shape, root_variational_covar.size(-2))
 
         # Cache the CG results
         # For now: run variational inference without a preconditioner

Mutant 357

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -117,7 +117,7 @@
         # Cache the CG results
         # For now: run variational inference without a preconditioner
         # The preconditioner screws things up for some reason
-        with settings.max_preconditioner_size(0):
+        with settings.max_preconditioner_size(1):
             # Cache the CG results
             if variational_inducing_covar is None:
                 left_tensors = mean_diff

Mutant 359

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -122,7 +122,7 @@
             if variational_inducing_covar is None:
                 left_tensors = mean_diff
             else:
-                left_tensors = torch.cat([mean_diff, root_variational_covar], -1)
+                left_tensors = torch.cat([mean_diff, root_variational_covar], +1)
 
             with torch.no_grad():
                 eager_rhs = torch.cat([left_tensors, induc_data_covar], -1)

Mutant 362

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -125,7 +125,7 @@
                 left_tensors = torch.cat([mean_diff, root_variational_covar], -1)
 
             with torch.no_grad():
-                eager_rhs = torch.cat([left_tensors, induc_data_covar], -1)
+                eager_rhs = torch.cat([left_tensors, induc_data_covar], +1)
                 solve, probe_vecs, probe_vec_norms, probe_vec_solves, tmats = CachedCGLazyTensor.precompute_terms(
                     induc_induc_covar,
                     eager_rhs.detach(),

Mutant 365

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -129,7 +129,7 @@
                 solve, probe_vecs, probe_vec_norms, probe_vec_solves, tmats = CachedCGLazyTensor.precompute_terms(
                     induc_induc_covar,
                     eager_rhs.detach(),
-                    logdet_terms=(not cholesky),
+                    logdet_terms=( cholesky),
                     include_tmats=(not settings.skip_logdet_forward.on() and not cholesky),
                 )
                 eager_rhss = [

Mutant 366

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -130,7 +130,7 @@
                     induc_induc_covar,
                     eager_rhs.detach(),
                     logdet_terms=(not cholesky),
-                    include_tmats=(not settings.skip_logdet_forward.on() and not cholesky),
+                    include_tmats=( settings.skip_logdet_forward.on() and not cholesky),
                 )
                 eager_rhss = [
                     eager_rhs.detach(),

Mutant 367

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -130,7 +130,7 @@
                     induc_induc_covar,
                     eager_rhs.detach(),
                     logdet_terms=(not cholesky),
-                    include_tmats=(not settings.skip_logdet_forward.on() and not cholesky),
+                    include_tmats=(not settings.skip_logdet_forward.on() and  cholesky),
                 )
                 eager_rhss = [
                     eager_rhs.detach(),

Mutant 368

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -130,7 +130,7 @@
                     induc_induc_covar,
                     eager_rhs.detach(),
                     logdet_terms=(not cholesky),
-                    include_tmats=(not settings.skip_logdet_forward.on() and not cholesky),
+                    include_tmats=(not settings.skip_logdet_forward.on() or not cholesky),
                 )
                 eager_rhss = [
                     eager_rhs.detach(),

Mutant 369

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -134,7 +134,7 @@
                 )
                 eager_rhss = [
                     eager_rhs.detach(),
-                    eager_rhs[..., left_tensors.size(-1) :].detach(),
+                    eager_rhs[..., left_tensors.size(+1) :].detach(),
                     eager_rhs[..., : left_tensors.size(-1)].detach(),
                 ]
                 solves = [

Mutant 371

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -135,7 +135,7 @@
                 eager_rhss = [
                     eager_rhs.detach(),
                     eager_rhs[..., left_tensors.size(-1) :].detach(),
-                    eager_rhs[..., : left_tensors.size(-1)].detach(),
+                    eager_rhs[..., : left_tensors.size(+1)].detach(),
                 ]
                 solves = [
                     solve.detach(),

Mutant 373

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -139,7 +139,7 @@
                 ]
                 solves = [
                     solve.detach(),
-                    solve[..., left_tensors.size(-1) :].detach(),
+                    solve[..., left_tensors.size(+1) :].detach(),
                     solve[..., : left_tensors.size(-1)].detach(),
                 ]
                 if settings.skip_logdet_forward.on():

Mutant 375

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -140,7 +140,7 @@
                 solves = [
                     solve.detach(),
                     solve[..., left_tensors.size(-1) :].detach(),
-                    solve[..., : left_tensors.size(-1)].detach(),
+                    solve[..., : left_tensors.size(+1)].detach(),
                 ]
                 if settings.skip_logdet_forward.on():
                     eager_rhss.append(torch.cat([probe_vecs, left_tensors], -1))

Mutant 378

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -158,7 +158,7 @@
         # Cache the kernel matrix with the cached CG calls
         if self.training:
             prior_dist = MultivariateNormal(induc_mean, induc_induc_covar)
-            add_to_cache(self, "prior_distribution_memo", prior_dist)
+            add_to_cache(self, "XXprior_distribution_memoXX", prior_dist)
 
         # Compute predictive mean
         inv_products = induc_induc_covar.inv_matmul(induc_data_covar, left_tensors.transpose(-1, -2))

Mutant 379

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -161,7 +161,7 @@
             add_to_cache(self, "prior_distribution_memo", prior_dist)
 
         # Compute predictive mean
-        inv_products = induc_induc_covar.inv_matmul(induc_data_covar, left_tensors.transpose(-1, -2))
+        inv_products = induc_induc_covar.inv_matmul(induc_data_covar, left_tensors.transpose(+1, -2))
         predictive_mean = torch.add(test_mean, inv_products[..., 0, :])
 
         # Compute covariance

Mutant 386

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -167,7 +167,7 @@
         # Compute covariance
         if self.training:
             interp_data_data_var, _ = induc_induc_covar.inv_quad_logdet(
-                induc_data_covar, logdet=False, reduce_inv_quad=False
+                induc_data_covar, logdet=True, reduce_inv_quad=False
             )
             data_covariance = DiagLazyTensor((data_data_covar.diag() - interp_data_data_var).clamp(0, math.inf))
         else:

Mutant 387

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -167,7 +167,7 @@
         # Compute covariance
         if self.training:
             interp_data_data_var, _ = induc_induc_covar.inv_quad_logdet(
-                induc_data_covar, logdet=False, reduce_inv_quad=False
+                induc_data_covar, logdet=False, reduce_inv_quad=True
             )
             data_covariance = DiagLazyTensor((data_data_covar.diag() - interp_data_data_var).clamp(0, math.inf))
         else:

Mutant 388

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -169,7 +169,7 @@
             interp_data_data_var, _ = induc_induc_covar.inv_quad_logdet(
                 induc_data_covar, logdet=False, reduce_inv_quad=False
             )
-            data_covariance = DiagLazyTensor((data_data_covar.diag() - interp_data_data_var).clamp(0, math.inf))
+            data_covariance = DiagLazyTensor((data_data_covar.diag() + interp_data_data_var).clamp(0, math.inf))
         else:
             neg_induc_data_data_covar = torch.matmul(
                 induc_data_covar.transpose(-1, -2).mul(-1), induc_induc_covar.inv_matmul(induc_data_covar)

Mutant 389

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -169,7 +169,7 @@
             interp_data_data_var, _ = induc_induc_covar.inv_quad_logdet(
                 induc_data_covar, logdet=False, reduce_inv_quad=False
             )
-            data_covariance = DiagLazyTensor((data_data_covar.diag() - interp_data_data_var).clamp(0, math.inf))
+            data_covariance = DiagLazyTensor((data_data_covar.diag() - interp_data_data_var).clamp(1, math.inf))
         else:
             neg_induc_data_data_covar = torch.matmul(
                 induc_data_covar.transpose(-1, -2).mul(-1), induc_induc_covar.inv_matmul(induc_data_covar)

Mutant 391

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -172,7 +172,7 @@
             data_covariance = DiagLazyTensor((data_data_covar.diag() - interp_data_data_var).clamp(0, math.inf))
         else:
             neg_induc_data_data_covar = torch.matmul(
-                induc_data_covar.transpose(-1, -2).mul(-1), induc_induc_covar.inv_matmul(induc_data_covar)
+                induc_data_covar.transpose(+1, -2).mul(-1), induc_induc_covar.inv_matmul(induc_data_covar)
             )
             data_covariance = data_data_covar + neg_induc_data_data_covar
         predictive_covar = PsdSumLazyTensor(RootLazyTensor(inv_products[..., 1:, :].transpose(-1, -2)), data_covariance)

Mutant 395

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -172,7 +172,7 @@
             data_covariance = DiagLazyTensor((data_data_covar.diag() - interp_data_data_var).clamp(0, math.inf))
         else:
             neg_induc_data_data_covar = torch.matmul(
-                induc_data_covar.transpose(-1, -2).mul(-1), induc_induc_covar.inv_matmul(induc_data_covar)
+                induc_data_covar.transpose(-1, -2).mul(+1), induc_induc_covar.inv_matmul(induc_data_covar)
             )
             data_covariance = data_data_covar + neg_induc_data_data_covar
         predictive_covar = PsdSumLazyTensor(RootLazyTensor(inv_products[..., 1:, :].transpose(-1, -2)), data_covariance)

Mutant 396

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -172,7 +172,7 @@
             data_covariance = DiagLazyTensor((data_data_covar.diag() - interp_data_data_var).clamp(0, math.inf))
         else:
             neg_induc_data_data_covar = torch.matmul(
-                induc_data_covar.transpose(-1, -2).mul(-1), induc_induc_covar.inv_matmul(induc_data_covar)
+                induc_data_covar.transpose(-1, -2).mul(-2), induc_induc_covar.inv_matmul(induc_data_covar)
             )
             data_covariance = data_data_covar + neg_induc_data_data_covar
         predictive_covar = PsdSumLazyTensor(RootLazyTensor(inv_products[..., 1:, :].transpose(-1, -2)), data_covariance)

Mutant 397

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -174,7 +174,7 @@
             neg_induc_data_data_covar = torch.matmul(
                 induc_data_covar.transpose(-1, -2).mul(-1), induc_induc_covar.inv_matmul(induc_data_covar)
             )
-            data_covariance = data_data_covar + neg_induc_data_data_covar
+            data_covariance = data_data_covar - neg_induc_data_data_covar
         predictive_covar = PsdSumLazyTensor(RootLazyTensor(inv_products[..., 1:, :].transpose(-1, -2)), data_covariance)
 
         # Done!

Mutant 399

--- gpytorch/variational/unwhitened_variational_strategy.py
+++ gpytorch/variational/unwhitened_variational_strategy.py
@@ -175,7 +175,7 @@
                 induc_data_covar.transpose(-1, -2).mul(-1), induc_induc_covar.inv_matmul(induc_data_covar)
             )
             data_covariance = data_data_covar + neg_induc_data_data_covar
-        predictive_covar = PsdSumLazyTensor(RootLazyTensor(inv_products[..., 1:, :].transpose(-1, -2)), data_covariance)
+        predictive_covar = PsdSumLazyTensor(RootLazyTensor(inv_products[..., 2:, :].transpose(-1, -2)), data_covariance)
 
         # Done!
         return MultivariateNormal(predictive_mean, predictive_covar)