From bf7fb86355bad1c7bd424dff3d6c0119f10e2bf9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Argos=29?=
 <stepan@adjemian.eu>
Date: Wed, 9 Apr 2025 16:26:57 +0200
Subject: [PATCH] Bug fix (computation of PredictedObservedVarianceSquareRoot).

---
 matlab/nonlinear-filters/nonlinear_kalman_filter.m | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/matlab/nonlinear-filters/nonlinear_kalman_filter.m b/matlab/nonlinear-filters/nonlinear_kalman_filter.m
index 551345c1ac..f103ceff2c 100644
--- a/matlab/nonlinear-filters/nonlinear_kalman_filter.m
+++ b/matlab/nonlinear-filters/nonlinear_kalman_filter.m
@@ -181,14 +181,13 @@ for t=1:sample_size
             lik(t)=-Inf;
             return
         end
-        [~, p]= chol(PredictedObservedVariance,'lower');
+        [PredictedObservedVarianceSquareRoot, p]= chol(PredictedObservedVariance,'lower');
         if p
             LIK=-Inf;
             lik(t)=-Inf;
             return
         end
     end
-    PredictedObservedVarianceSquareRoot = chol(PredictedObservedVariance);
     PredictedObservedInverseVarianceSquareRoot = PredictedObservedVarianceSquareRoot\eye(n); % Inverse of the Cholesky -> inv(PredictedObservedVariance) = A*A'
     StandardPredictionError = PredictedObservedInverseVarianceSquareRoot'*PredictionError;
     lik(t) = -.5*n*log(2*pi) + sum(log(diag(PredictedObservedInverseVarianceSquareRoot))) - .5*dot(StandardPredictionError, StandardPredictionError);
-- 
GitLab