From cee7adc078356882f424c9d5e7d77a287fb36918 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Mon, 3 Aug 2015 17:51:45 +0200
Subject: [PATCH] preprocessor: make hp, one-sided hp, and bandpass filters
 mutually exclusive

---
 preprocessor/ComputingTasks.cc | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/preprocessor/ComputingTasks.cc b/preprocessor/ComputingTasks.cc
index 7174e2cba0..28de2ee551 100644
--- a/preprocessor/ComputingTasks.cc
+++ b/preprocessor/ComputingTasks.cc
@@ -167,10 +167,15 @@ StochSimulStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli
       || mod_file_struct.order_option >= 3)
     mod_file_struct.k_order_solver = true;
 
-  if (options_list.num_options.find("hp_filter") != options_list.num_options.end() &&
-      options_list.num_options.find("bandpass.indicator") != options_list.num_options.end())
+  it = options_list.num_options.find("hp_filter");
+  OptionsList::num_options_t::const_iterator it1 = options_list.num_options.find("bandpass.indicator");
+  OptionsList::num_options_t::const_iterator it2 = options_list.num_options.find("one_sided_hp_filter");
+  if ((it != options_list.num_options.end() && it1 != options_list.num_options.end()) ||
+      (it != options_list.num_options.end() && it2 != options_list.num_options.end()) ||
+      (it1 != options_list.num_options.end() && it2 != options_list.num_options.end()))
       {
-          cerr << "ERROR: stoch_simul: can only use one of hp and bandpass filters" << endl;
+          cerr << "ERROR: stoch_simul: can only use one of hp, one-sided hp, and bandpass filters"
+               << endl;
           exit(EXIT_FAILURE);
       }
 }
-- 
GitLab