From c160d24074f4912215d248e58dc5a2dfb8cfbf70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Mon, 30 Nov 2020 17:40:49 +0100
Subject: [PATCH] =?UTF-8?q?Octave=206=20implements=20intersect(=E2=80=A6,?=
 =?UTF-8?q?=20'stable')?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[skip ci]
---
 matlab/compute_moments_varendo.m                              | 2 +-
 matlab/conditional_variance_decomposition.m                   | 2 +-
 matlab/conditional_variance_decomposition_ME_mc_analysis.m    | 2 +-
 matlab/disp_moments.m                                         | 2 +-
 matlab/disp_th_moments.m                                      | 4 ++--
 ...simulated_theoretical_conditional_variance_decomposition.m | 2 +-
 matlab/dsge_simulated_theoretical_variance_decomposition.m    | 2 +-
 matlab/dynare_config.m                                        | 4 ++--
 matlab/posterior_analysis.m                                   | 2 +-
 tests/conditional_variance_decomposition/example1.mod         | 2 +-
 10 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/matlab/compute_moments_varendo.m b/matlab/compute_moments_varendo.m
index d4a35758b..0604bd978 100644
--- a/matlab/compute_moments_varendo.m
+++ b/matlab/compute_moments_varendo.m
@@ -151,7 +151,7 @@ if M_.exo_nbr > 1
     end
     skipline();
     if ~all(diag(M_.H)==0)
-        if isoctave
+        if isoctave && octave_ver_less_than('6')
             [observable_name_requested_vars, varlist_pos] = intersect_stable(var_list_, options_.varobs);
         else
             [observable_name_requested_vars, varlist_pos] = intersect(var_list_, options_.varobs, 'stable');
diff --git a/matlab/conditional_variance_decomposition.m b/matlab/conditional_variance_decomposition.m
index f249a7c7a..8a8b90834 100644
--- a/matlab/conditional_variance_decomposition.m
+++ b/matlab/conditional_variance_decomposition.m
@@ -89,7 +89,7 @@ end
 % Measurement error
 
 if ~all(diag(StateSpaceModel.measurement_error)==0)
-    if isoctave
+    if isoctave && octave_ver_less_than('6')
         [observable_pos,index_subset,index_observables]=intersect_stable(SubsetOfVariables,StateSpaceModel.observable_pos);
     else
         [observable_pos,index_subset,index_observables]=intersect(SubsetOfVariables,StateSpaceModel.observable_pos,'stable');
diff --git a/matlab/conditional_variance_decomposition_ME_mc_analysis.m b/matlab/conditional_variance_decomposition_ME_mc_analysis.m
index a0b5ffdd7..b9f187298 100644
--- a/matlab/conditional_variance_decomposition_ME_mc_analysis.m
+++ b/matlab/conditional_variance_decomposition_ME_mc_analysis.m
@@ -63,7 +63,7 @@ if isempty(exogenous_variable_index)
     end
 end
 
-if isoctave
+if isoctave && octave_ver_less_than('6')
     [observable_pos_requested_vars,index_subset,index_observables]=intersect_stable(var_list,options_.varobs);
 else
     [observable_pos_requested_vars,index_subset,index_observables]=intersect(var_list,options_.varobs,'stable');
diff --git a/matlab/disp_moments.m b/matlab/disp_moments.m
index 3d0cb6aa1..52454ff89 100644
--- a/matlab/disp_moments.m
+++ b/matlab/disp_moments.m
@@ -50,7 +50,7 @@ y = y(ivar,options_.drop+1:end)';
 
 ME_present=0;
 if ~all(M_.H==0)
-    if isoctave
+    if isoctave && octave_ver_less_than('6')
         [observable_pos_requested_vars, index_subset, index_observables] = intersect_stable(ivar, options_.varobs_id);
     else
         [observable_pos_requested_vars, index_subset, index_observables] = intersect(ivar, options_.varobs_id, 'stable');
diff --git a/matlab/disp_th_moments.m b/matlab/disp_th_moments.m
index 5ea5040bd..5708d97df 100644
--- a/matlab/disp_th_moments.m
+++ b/matlab/disp_th_moments.m
@@ -55,7 +55,7 @@ oo_.var = oo_.gamma_y{1};
 
 ME_present=0;
 if ~all(diag(M_.H)==0)
-    if isoctave
+    if isoctave && octave_ver_less_than('6')
         [observable_pos_requested_vars,index_subset,index_observables]=intersect_stable(ivar,options_.varobs_id);
     else
         [observable_pos_requested_vars,index_subset,index_observables]=intersect(ivar,options_.varobs_id,'stable');
@@ -105,7 +105,7 @@ if size(stationary_vars, 1) > 0
             lh = cellofchararraymaxlength(M_.endo_names(ivar(stationary_vars)))+2;
             dyntable(options_, title, headers, M_.endo_names(ivar(stationary_vars)), 100*oo_.gamma_y{options_.ar+2}(stationary_vars,:), lh, 8, 2);
             if ME_present
-                if isoctave
+                if isoctave && octave_ver_less_than('6')
                     [stationary_observables, pos_index_subset] = intersect_stable(index_subset, stationary_vars);
                 else
                     [stationary_observables, pos_index_subset] = intersect(index_subset, stationary_vars, 'stable');
diff --git a/matlab/dsge_simulated_theoretical_conditional_variance_decomposition.m b/matlab/dsge_simulated_theoretical_conditional_variance_decomposition.m
index 22ced1fe5..b923e3654 100644
--- a/matlab/dsge_simulated_theoretical_conditional_variance_decomposition.m
+++ b/matlab/dsge_simulated_theoretical_conditional_variance_decomposition.m
@@ -83,7 +83,7 @@ MaXNumberOfConditionalDecompLines = ceil(options_.MaxNumberOfBytes/NumberOfSaved
 
 ME_present=0;
 if ~all(diag(M_.H)==0)
-    if isoctave
+    if isoctave && octave_ver_less_than('6')
         [observable_pos_requested_vars,index_subset,index_observables]=intersect_stable(ivar,options_.varobs_id);
     else
         [observable_pos_requested_vars,index_subset,index_observables]=intersect(ivar,options_.varobs_id,'stable');
diff --git a/matlab/dsge_simulated_theoretical_variance_decomposition.m b/matlab/dsge_simulated_theoretical_variance_decomposition.m
index b93aa246e..714cfdb31 100644
--- a/matlab/dsge_simulated_theoretical_variance_decomposition.m
+++ b/matlab/dsge_simulated_theoretical_variance_decomposition.m
@@ -86,7 +86,7 @@ MaXNumberOfDecompLines = ceil(options_.MaxNumberOfBytes/NumberOfSavedElementsPer
 
 ME_present=0;
 if ~all(diag(M_.H)==0)
-    if isoctave
+    if isoctave && octave_ver_less_than('6')
         [observable_pos_requested_vars,index_subset,index_observables]=intersect_stable(ivar,options_.varobs_id);
     else
         [observable_pos_requested_vars,index_subset,index_observables]=intersect(ivar,options_.varobs_id,'stable');
diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m
index 4109f08dc..6e0442d8c 100644
--- a/matlab/dynare_config.m
+++ b/matlab/dynare_config.m
@@ -88,8 +88,8 @@ if isoctave && octave_ver_less_than('5')
     p{end+1} = '/missing/ordeig';
 end
 
-%% intersect(…, 'stable') doesn't exist in Octave
-if isoctave
+%% intersect(…, 'stable') doesn't exist in Octave < 6
+if isoctave && octave_ver_less_than('6')
     p{end+1} = '/missing/intersect_stable';
 end
 
diff --git a/matlab/posterior_analysis.m b/matlab/posterior_analysis.m
index 03bff87b8..453d3b5d6 100644
--- a/matlab/posterior_analysis.m
+++ b/matlab/posterior_analysis.m
@@ -66,7 +66,7 @@ switch type
                                              M_.exo_names,arg2,vartan,arg1,options_.mh_conf_sig,oo_,options_);
     if ~all(diag(M_.H)==0)
         if strmatch(arg1,options_.varobs,'exact')
-            if isoctave
+            if isoctave && octave_ver_less_than('6')
                 [observable_name_requested_vars,index_subset,index_observables]=intersect_stable(vartan,options_.varobs);
             else
                 [observable_name_requested_vars,index_subset,index_observables]=intersect(vartan,options_.varobs,'stable');
diff --git a/tests/conditional_variance_decomposition/example1.mod b/tests/conditional_variance_decomposition/example1.mod
index 039fa99ab..3988fea9c 100644
--- a/tests/conditional_variance_decomposition/example1.mod
+++ b/tests/conditional_variance_decomposition/example1.mod
@@ -76,7 +76,7 @@ for i=1:nvar
     SubsetOfVariables(i) = i_tmp;
 end
 
-if isoctave
+if isoctave && octave_ver_less_than('6')
     [observable_pos,index_observables,index_subset]=intersect_stable(SubsetOfVariables,options_.varobs_id);
 else
     [observable_pos,index_observables,index_subset]=intersect(SubsetOfVariables,options_.varobs_id,'stable');
-- 
GitLab