From b0c27f4d5afb245570325f8117f5fff532fea5c0 Mon Sep 17 00:00:00 2001
From: Johannes Pfeifer <jpfeifer@gmx.de>
Date: Wed, 24 Apr 2024 17:01:37 +0200
Subject: [PATCH] :bug: fix crashes due to leading singleton dimensions being
 ignored by ndim

Occurs with e.g. one shock only for heteroskedastic_filter

(cherry picked from commit 8b7420c77b0edfcbb710bc1c23befce64b169dfa)
---
 matlab/kalman/likelihood/kalman_filter.m                        | 2 +-
 matlab/kalman/likelihood/kalman_filter_d.m                      | 2 +-
 matlab/kalman/likelihood/missing_observations_kalman_filter.m   | 2 +-
 matlab/kalman/likelihood/missing_observations_kalman_filter_d.m | 2 +-
 matlab/kalman/likelihood/univariate_kalman_filter.m             | 2 +-
 matlab/kalman/likelihood/univariate_kalman_filter_d.m           | 2 +-
 matlab/kalman/missing_DiffuseKalmanSmootherH1_Z.m               | 2 +-
 matlab/kalman/missing_DiffuseKalmanSmootherH3_Z.m               | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/matlab/kalman/likelihood/kalman_filter.m b/matlab/kalman/likelihood/kalman_filter.m
index 369c086013..acafbff267 100644
--- a/matlab/kalman/likelihood/kalman_filter.m
+++ b/matlab/kalman/likelihood/kalman_filter.m
@@ -115,7 +115,7 @@ smpl = last-start+1;
 % Initialize some variables.
 dF   = 1;
 isqvec = false;
-if ndim(Q)>2
+if ndims(Q)>2
     Qvec = Q;
     Q=Q(:,:,1);
     isqvec = true;
diff --git a/matlab/kalman/likelihood/kalman_filter_d.m b/matlab/kalman/likelihood/kalman_filter_d.m
index 3ee2749cab..fece96fde0 100644
--- a/matlab/kalman/likelihood/kalman_filter_d.m
+++ b/matlab/kalman/likelihood/kalman_filter_d.m
@@ -60,7 +60,7 @@ smpl = last-start+1;
 % Initialize some variables.
 dF   = 1;
 isqvec = false;
-if ndim(Q)>2
+if ndims(Q)>2
     Qvec = Q;
     Q=Q(:,:,1);
     isqvec = true;
diff --git a/matlab/kalman/likelihood/missing_observations_kalman_filter.m b/matlab/kalman/likelihood/missing_observations_kalman_filter.m
index 4979a5e2fc..67b3adf614 100644
--- a/matlab/kalman/likelihood/missing_observations_kalman_filter.m
+++ b/matlab/kalman/likelihood/missing_observations_kalman_filter.m
@@ -78,7 +78,7 @@ smpl = last-start+1;
 % Initialize some variables.
 dF   = 1;
 isqvec = false;
-if ndim(Q)>2
+if ndims(Q)>2
     Qvec = Q;
     Q=Q(:,:,1);
     isqvec = true;
diff --git a/matlab/kalman/likelihood/missing_observations_kalman_filter_d.m b/matlab/kalman/likelihood/missing_observations_kalman_filter_d.m
index c870f73c9c..3c3724b3b7 100644
--- a/matlab/kalman/likelihood/missing_observations_kalman_filter_d.m
+++ b/matlab/kalman/likelihood/missing_observations_kalman_filter_d.m
@@ -66,7 +66,7 @@ smpl = last-start+1;
 % Initialize some variables.
 dF   = 1;
 isqvec = false;
-if ndim(Q)>2
+if ndims(Q)>2
     Qvec = Q;
     Q=Q(:,:,1);
     isqvec = true;
diff --git a/matlab/kalman/likelihood/univariate_kalman_filter.m b/matlab/kalman/likelihood/univariate_kalman_filter.m
index 43c8603590..06df584225 100644
--- a/matlab/kalman/likelihood/univariate_kalman_filter.m
+++ b/matlab/kalman/likelihood/univariate_kalman_filter.m
@@ -117,7 +117,7 @@ smpl = last-start+1;
 
 % Initialize some variables.
 isqvec = false;
-if ndim(Q)>2
+if ndims(Q)>2
     Qvec = Q;
     Q=Q(:,:,1);
     isqvec = true;
diff --git a/matlab/kalman/likelihood/univariate_kalman_filter_d.m b/matlab/kalman/likelihood/univariate_kalman_filter_d.m
index d18b262a0f..f331197037 100644
--- a/matlab/kalman/likelihood/univariate_kalman_filter_d.m
+++ b/matlab/kalman/likelihood/univariate_kalman_filter_d.m
@@ -110,7 +110,7 @@ smpl = last-start+1;
 % Initialize some variables.
 dF   = 1;
 isqvec = false;
-if ndim(Q)>2
+if ndims(Q)>2
     Qvec = Q;
     Q=Q(:,:,1);
     isqvec = true;
diff --git a/matlab/kalman/missing_DiffuseKalmanSmootherH1_Z.m b/matlab/kalman/missing_DiffuseKalmanSmootherH1_Z.m
index cf1430a6ab..4b23b4cc85 100644
--- a/matlab/kalman/missing_DiffuseKalmanSmootherH1_Z.m
+++ b/matlab/kalman/missing_DiffuseKalmanSmootherH1_Z.m
@@ -111,7 +111,7 @@ Pinf            = zeros(spinf(1),spinf(2),smpl+1);
 Pinf(:,:,1)     = Pinf1;
 rr              = size(Q,1);
 isqvec = false;
-if ndim(Q)>2
+if ndims(Q)>2
     Qvec = Q;
     Q=Q(:,:,1);
     isqvec = true;
diff --git a/matlab/kalman/missing_DiffuseKalmanSmootherH3_Z.m b/matlab/kalman/missing_DiffuseKalmanSmootherH3_Z.m
index eb19f41ebd..2b6f904668 100644
--- a/matlab/kalman/missing_DiffuseKalmanSmootherH3_Z.m
+++ b/matlab/kalman/missing_DiffuseKalmanSmootherH3_Z.m
@@ -121,7 +121,7 @@ Pstar1          = Pstar;
 Pinf1           = Pinf;
 rr              = size(Q,1); % number of structural shocks
 isqvec = false;
-if ndim(Q)>2
+if ndims(Q)>2
     Qvec = Q;
     Q=Q(:,:,1);
     isqvec = true;
-- 
GitLab