diff --git a/src/shogun/machine/gp/LaplacianInferenceMethod.cpp b/src/shogun/machine/gp/LaplacianInferenceMethod.cpp index 362644145f6..d92bfd3a24b 100644 --- a/src/shogun/machine/gp/LaplacianInferenceMethod.cpp +++ b/src/shogun/machine/gp/LaplacianInferenceMethod.cpp @@ -409,10 +409,10 @@ void CLaplacianInferenceMethod::update_approx_cov() m_approx_cov.num_cols); MatrixXd eigen_iB=eigen_L.triangularView().adjoint().solve( - eigen_K*eigen_sW.asDiagonal()); + MatrixXd::Identity(m_L.num_rows, m_L.num_cols)); eigen_iB=eigen_L.triangularView().solve(eigen_iB); - eigen_approx_cov=eigen_K-eigen_iB*eigen_sW.asDiagonal()*eigen_K; + eigen_approx_cov=eigen_K-eigen_K*eigen_sW.asDiagonal()*eigen_iB*eigen_sW.asDiagonal()*eigen_K; } void CLaplacianInferenceMethod::update_chol()