From f7aae77f16ac487edd93bedb48fc489f95fc986b Mon Sep 17 00:00:00 2001
From: Marco Ratto <marco.ratto@jrc.ec.europa.eu>
Date: Mon, 13 Aug 2012 13:02:31 +0200
Subject: [PATCH] removed useless elements + reduce loops for efficiency
 (cherry picked from commit f2271264994af253ccdc7f01478320e4d2c2c0e7)

---
 matlab/kalman/likelihood/computeDLIK.m | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/matlab/kalman/likelihood/computeDLIK.m b/matlab/kalman/likelihood/computeDLIK.m
index d08901356c..4efc95b33e 100644
--- a/matlab/kalman/likelihood/computeDLIK.m
+++ b/matlab/kalman/likelihood/computeDLIK.m
@@ -181,13 +181,13 @@ d2P1 = zeros(ns,ns,k,k);
 for ii = 1:k
     dAi = dA(:,:,ii);
     dFi = dP0(Z,Z,ii);
-    d2Omi = d2Om(:,:,ii);
+%     d2Omi = d2Om(:,:,ii);
     diFi = -iF*dFi*iF;
     dKi = dK0(:,:,ii);
-    for jj = 1:k
+    for jj = 1:ii,
         dAj = dA(:,:,jj);
         dFj = dP0(Z,Z,jj);
-        d2Omj = d2Om(:,:,jj);
+%         d2Omj = d2Om(:,:,jj);
         dFj = dP0(Z,Z,jj);
         diFj = -iF*dFj*iF;
         dKj = dK0(:,:,jj);
@@ -218,6 +218,9 @@ for ii = 1:k
     d2K(:,:,ii,jj)  = d2Kij; %#ok<NASGU>
     d2P1(:,:,ii,jj) = d2AtmpA  + d2Omij;  %#ok<*NASGU>
     d2S(:,:,ii,jj)  = d2Fij;
+    d2K(:,:,jj,ii)  = d2Kij; %#ok<NASGU>
+    d2P1(:,:,jj,ii) = d2AtmpA  + d2Omij;  %#ok<*NASGU>
+    d2S(:,:,jj,ii)  = d2Fij;
 %     d2iS(:,:,ii,jj) = d2iF;
     end
 end
@@ -244,13 +247,13 @@ d2P1 = zeros(ns,ns,k,k);
 for ii = 1:k
     dAi = dA(:,:,ii);
     dFi = Z*dP0(:,:,ii)*Z;
-    d2Omi = d2Om(:,:,ii);
+%     d2Omi = d2Om(:,:,ii);
     diFi = -iF*dFi*iF;
     dKi = dK0(:,:,ii);
-    for jj = 1:k
+    for jj = 1:ii,
         dAj = dA(:,:,jj);
         dFj = Z*dP0(:,:,jj)*Z;
-        d2Omj = d2Om(:,:,jj);
+%         d2Omj = d2Om(:,:,jj);
         dFj = Z*dP0(:,:,jj)*Z;
         diFj = -iF*dFj*iF;
         dKj = dK0(:,:,jj);
@@ -282,6 +285,9 @@ for ii = 1:k
     d2P1(:,:,ii,jj) = d2AtmpA  + d2Omij;  %#ok<*NASGU>
     d2S(:,:,ii,jj)  = d2Fij;
 %     d2iS(:,:,ii,jj) = d2iF;
+    d2K(:,:,jj,ii)  = d2Kij; %#ok<NASGU>
+    d2P1(:,:,jj,ii) = d2AtmpA  + d2Omij;  %#ok<*NASGU>
+    d2S(:,:,jj,ii)  = d2Fij;
     end
 end
 
-- 
GitLab