From b96c35a1a4aea9a3ba45e5c20f22da29be4647c8 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan.bastani@ens.fr>
Date: Fri, 13 Apr 2012 15:56:25 +0200
Subject: [PATCH] ms-sbvar: remove unused code

---
 matlab/ms-sbvar/ms_estimation.m               |   3 -
 mex/build/ms_sbvar.am                         |  15 +-
 .../mex_ms_convert_free_parameters.cc         | 110 ---
 mex/sources/ms-sbvar/mex_ms_sbvar.cc          | 631 ------------------
 mex/sources/ms-sbvar/mex_ms_sbvar.h           |  73 --
 5 files changed, 1 insertion(+), 831 deletions(-)
 delete mode 100644 mex/sources/ms-sbvar/mex_ms_convert_free_parameters.cc
 delete mode 100644 mex/sources/ms-sbvar/mex_ms_sbvar.cc
 delete mode 100644 mex/sources/ms-sbvar/mex_ms_sbvar.h

diff --git a/matlab/ms-sbvar/ms_estimation.m b/matlab/ms-sbvar/ms_estimation.m
index 389e532753..b08f664930 100644
--- a/matlab/ms-sbvar/ms_estimation.m
+++ b/matlab/ms-sbvar/ms_estimation.m
@@ -71,7 +71,4 @@ opt = [opt ' -random_tol_parms ' num2str(options_.ms.random_parameter_convergenc
 mexErrCheck('ms_estimation', err);
 
 [options_, oo_] = set_ms_estimation_file(options_.ms.output_file_tag, options_, oo_);
-[err, oo_.ms.A0, oo_.ms.Aplus, oo_.ms.Zeta, oo_.ms.Q] = ...
-    mex_ms_convert_free_parameters({{'file_tag',options_.ms.output_file_tag}}, oo_.ms.maxparams);
-mexErrCheck('mex_ms_convert_free_parameters', err);
 end
diff --git a/mex/build/ms_sbvar.am b/mex/build/ms_sbvar.am
index 219bf5d127..ce1d4584fa 100644
--- a/mex/build/ms_sbvar.am
+++ b/mex/build/ms_sbvar.am
@@ -1,4 +1,4 @@
-noinst_PROGRAMS = ms_sbvar_create_init_file ms_sbvar_command_line mex_ms_convert_free_parameters
+noinst_PROGRAMS = ms_sbvar_create_init_file ms_sbvar_command_line
 
 DWSWITCHDIR = $(top_srcdir)/../../../ms-sbvar/switch_dw
 DWUTILITIESDIR = $(top_srcdir)/../../../ms-sbvar/utilities_dw
@@ -62,16 +62,3 @@ nodist_ms_sbvar_command_line_SOURCES = \
 	$(DWSWITCHDIR)/state_space/sbvar/dw_csminwel.c \
 	$(DWUTILS) \
 	$(MSMEXSRC)
-
-nodist_mex_ms_convert_free_parameters_SOURCES = \
-	$(DWSWITCHDIR)/switching/dw_switch.c \
-	$(DWSWITCHDIR)/switching/dw_switchio.c \
-	$(DWSWITCHDIR)/switching/dw_dirichlet_restrictions.c \
-	$(DWSWITCHDIR)/switching/dw_metropolis_theta.c \
-	$(DWSWITCHDIR)/state_space/sbvar/VARbase.c \
-	$(DWSWITCHDIR)/state_space/sbvar/VARio.c \
-	$(DWSWITCHDIR)/state_space/sbvar/VARio_matlab.c \
-	$(MSMEXSRCDIR)/mex_ms_convert_free_parameters.cc \
-	$(MSMEXSRCDIR)/mex_ms_sbvar.cc \
-	$(MSMEXSRCDIR)/modify_for_mex.cc \
-	$(DWUTILS)
diff --git a/mex/sources/ms-sbvar/mex_ms_convert_free_parameters.cc b/mex/sources/ms-sbvar/mex_ms_convert_free_parameters.cc
deleted file mode 100644
index 89d846df48..0000000000
--- a/mex/sources/ms-sbvar/mex_ms_convert_free_parameters.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2011 Dynare Team
- *
- * This file is part of Dynare.
- *
- * Dynare is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Dynare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
-
-#include <iostream>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "mex_ms_sbvar.h"
-
-extern "C"  {
-#include "modify_for_mex.h"
-#include "switch.h"
-#include "switchio.h"
-#include "VARio.h"
-}
-
-void
-mexFunction(int nlhs, mxArray *plhs[],
-            int nrhs, const mxArray *prhs[])
-{
-  double *free_parameters;
-  int nvars, npre, nstates, nfree;
-  double *aplus = NULL, *a0 = NULL, *zeta = NULL, *q = NULL;
-  mxArray *Q = NULL;
-  TStateModel *model;
-  SbvarOption *options = NULL;
-
-  /* input must be a string */
-  if (nrhs !=2)
-    DYN_MEX_FUNC_ERR_MSG_TXT("This function takes exactly two arguments");
-  if (!mxIsDouble(prhs[1]))
-    DYN_MEX_FUNC_ERR_MSG_TXT("Second argument is a vector of free parameters");
-
-  if (nlhs < 4)
-    DYN_MEX_FUNC_ERR_MSG_TXT("You must specify at least four output arguments [err,A0,Aplus,Zeta]");
-
-  // second element should be vector of free parameters */
-  free_parameters = mxGetPr(prhs[1]);
-
-  model = initialize_model_and_options(&options, prhs, &nstates, &nvars, &npre, &nfree);
-  if (model == NULL || options == NULL)
-    DYN_MEX_FUNC_ERR_MSG_TXT("There was a problem initializing the model, can not continue");
-
-  // Check the size of the parameters that were passed in
-  size_t npars_passed =  mxGetN(prhs[1]) > mxGetM(prhs[1]) ? mxGetN(prhs[1])  : mxGetM(prhs[1]);
-  // If it is 2 longer than the number of free parameters assume that the first two numbers should be ignored (log posterior, log likelihood)
-  if (nfree + 2 == (int) npars_passed)
-    free_parameters = free_parameters + 2;
-  else if (nfree != (int) npars_passed && nfree + 2 != (int) npars_passed)
-    {
-      printf("\n\nThe model requires a free paramter vector of length %d, you passed one of length %d\n\n",
-             (int) nfree, (int) npars_passed);
-      DYN_MEX_FUNC_ERR_MSG_TXT("The Free Parameter Array is the wrong size for this model\n");
-    }
-
-  // Ao (nstates x nvars x nvars)
-  mwSize dims[3] = {nstates, nvars, nvars};
-  plhs[1] = mxCreateNumericArray(3, dims, mxDOUBLE_CLASS, mxREAL);
-  a0 = mxGetPr(plhs[1]);
-
-  // Zeta (nstates x nvars x nvars)
-  plhs[3] = mxCreateNumericArray(3, dims, mxDOUBLE_CLASS, mxREAL);
-  zeta = mxGetPr(plhs[3]);
-
-  // Aplus (nstates x (nlags*nvars +nconstant) x nvars)
-  dims[1] = npre;
-  plhs[2] = mxCreateNumericArray(3, dims, mxDOUBLE_CLASS, mxREAL);
-  aplus = mxGetPr(plhs[2]);
-
-  // Grand Transition Matrix
-  Q = mxCreateDoubleMatrix(nstates, nstates, mxREAL);
-  q = mxGetPr(Q);
-
-  // get the matrices
-  int ret = convert_free_parameters_to_VAR(model, free_parameters, a0, aplus, zeta, q);
-  if (ret > 0)
-    {
-      char *error_msg;
-      sprintf(error_msg = (char *) mxMalloc(255*sizeof(char)), "There was a problem converting the free parameters for the given model and inputs\nError Code: %d", ret);
-      DYN_MEX_FUNC_ERR_MSG_TXT(error_msg);
-    }
-
-  // if they have passed 4 arguments then pass back Q
-  if (nlhs > 4)
-    plhs[4] = Q;
-
-  mxFree(model);
-  plhs[0] = mxCreateDoubleScalar(0);
-}
-
-#endif
diff --git a/mex/sources/ms-sbvar/mex_ms_sbvar.cc b/mex/sources/ms-sbvar/mex_ms_sbvar.cc
deleted file mode 100644
index 8be9beed7b..0000000000
--- a/mex/sources/ms-sbvar/mex_ms_sbvar.cc
+++ /dev/null
@@ -1,631 +0,0 @@
-/*
- * Copyright (C) 2011 Dynare Team
- *
- * This file is part of Dynare.
- *
- * Dynare is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Dynare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
-#include "dynmex.h"
-
-#include "mex_ms_sbvar.h"
-
-#include <iostream>
-#include <fstream>
-
-extern "C"  {
-#include "modify_for_mex.h"
-#include "switch.h"
-#include "switchio.h"
-#include "VARio.h"
-#include "dw_rand.h"
-}
-
-using namespace std;
-
-int
-file_exist(char *filename)
-{
-  int ret = 0;
-  char ch;
-
-  ifstream fin;
-  fin.open(filename, ios_base::in);
-  if (fin.is_open() && fin.get(ch))
-    ret = 1;
-
-  fin.close();
-  return ret;
-}
-
-char *
-CreateFilenameFromTag(const char *fmt, const char *tag, const char *dir)
-{
-  char *filename;
-  if (!tag)
-    tag = "";
-  if (!dir)
-    dir = "";
-  sprintf(filename = (char *) mxMalloc(strlen(dir) + strlen(fmt) + strlen(tag) - 3), fmt, dir, tag);
-  return filename;
-}
-
-/*
- *  initialize_ms_model
- *  - initiliazes a TstateModel given the filename or tagname of initialization file
- */
-TStateModel *
-initialize_ms_model(char *name)
-{
-  TStateModel *model = (TStateModel *) NULL;
-
-  char *filename = (char *) NULL, *est_filename = (char *) NULL, *init_filename = (char *) NULL;
-  est_filename = CreateFilenameFromTag("%sest_final_%s.out", name, "");
-  init_filename = CreateFilenameFromTag("%sinit_%s.dat", name, "");
-
-  if (file_exist(name))
-    filename = name;
-  else if (file_exist(est_filename))
-    filename = est_filename;
-  else if (file_exist(init_filename))
-    filename = init_filename;
-  else
-    {
-      printf("Can not open initialization or estimation file!\n");
-      return (TStateModel *) NULL;
-    }
-
-  try
-    {
-      if (!(model = Read_VAR_Specification((FILE *) NULL, filename)))
-        {
-          mxFree(filename);
-          printf("Can not initialize model with given name!\n");
-          return (TStateModel *) NULL;
-        }
-
-      if (est_filename != NULL)
-        {
-          if (!strstr(est_filename, filename))
-            {
-              printf("Initializing with empty parameters %s\n", filename);
-              // If no estimation file is around then just initialize the sizes
-
-              double *theta = (double *) mxMalloc(sizeof(double)*NumberFreeParametersTheta(model));
-              double *q = (double *) mxMalloc(sizeof(double)*NumberFreeParametersQ(model));
-              ConvertFreeParametersToQ(model, q);
-              ConvertFreeParametersToTheta(model, theta);
-            }
-        }
-    }
-  catch (const char *s)
-    {
-      printf("Error Initializing TStateModel: %s\n", s);
-      model = (TStateModel *) NULL;
-    }
-
-  mxFree(filename);
-  return model;
-}
-
-int
-get_var_dimensions(TStateModel *model, int *nstates, int *nvars, int *npre, int *nfree)
-{
-
-  if (model)
-    {
-      try
-        {
-          *nfree = NumberFreeParametersTheta(model)+NumberFreeParametersQ(model);
-
-          T_VAR_Parameters *p = (T_VAR_Parameters *) (model->theta);
-
-          *nstates = model->sv->nstates;
-          *nvars =  p->nvars;
-          *npre = p->npre;
-          return 0;
-        }
-      catch (const char *s)
-        {
-          printf("Error Getting VAR Dimensions");
-          return 1;
-        }
-
-    }
-  else
-    {
-      printf("The model passed was null!\n");
-      return 1;
-    }
-}
-
-int
-set_parameters_in_VAR(TStateModel *model, double *free_parameters)
-{
-  int nfree;
-  try
-    {
-      nfree = NumberFreeParametersTheta(model)+NumberFreeParametersQ(model);
-      ConvertFreeParametersToQ(model, free_parameters+NumberFreeParametersTheta(model));
-      ConvertFreeParametersToTheta(model, free_parameters);
-      ComputeTransitionMatrix(0, model);
-    }
-  catch (const char *s)
-    {
-      return 1;
-    }
-  return 0;
-}
-
-int
-convert_free_parameters_to_VAR(TStateModel *model, double *free_parameters, double *A0, double *Aplus, double *Zeta, double *Q)
-{
-  int nstates = 0, nvars = 0, npre = 0;
-  int i = 0, j = 0, s = 0;
-
-  if (model == NULL)
-    {
-      printf("The model passed was null in Convert Free Parameters!\n");
-      return 1;
-    }
-
-  if (set_parameters_in_VAR(model, free_parameters) > 0)
-    {
-      printf("Could not set Parameters in model when converting parameters to var\n");
-      return 2;
-    }
-
-  try
-    {
-      T_VAR_Parameters *p = (T_VAR_Parameters *) (model->theta);
-      nstates = model->sv->nstates;
-      nvars = p->nvars;
-      npre = p->npre;
-
-      TMatrix a = NULL, aplus = NULL;
-      a = CreateMatrix(p->nvars, p->nvars);
-      aplus = CreateMatrix(p->npre, p->nvars);
-
-      // Is this is a good idea in matlab?
-      if (A0 == NULL)
-        A0 = new double [nstates*nvars*nvars];
-      //A0 = malloc(sizeof(double)*(nstates*nvars*nvars));
-      if (Aplus == NULL)
-        Aplus = new double [nstates*npre*nvars];
-      //Aplus = malloc(sizeof(double)*(nstates*npre*nvars));
-      if (Zeta == NULL)
-        Zeta = new double [nstates*nvars*nvars];
-      //Zeta = malloc(sizeof(double)*(nstates*nvars*nvars));
-      if (Q == NULL)
-        Q = new double [nstates*nstates];
-      //Q = malloc(sizeof(double)*(nstates*nstates));
-
-      for (s = 0; s < nstates; s++)
-        {
-          MakeA0(a, s, p);
-          for (i = 0; i < nvars; i++)
-            {
-              for (j = 0; j < nvars; j++)
-                A0[(s)+((i+j*nvars)*nstates)] = ElementM(a, i, j);
-            }
-          MakeAplus(aplus, s, p);
-          for (i = 0; i < npre; i++)
-            {
-              for (j = 0; j < nvars; j++)
-                Aplus[(s)+((i+j*npre)*nstates)] = ElementM(aplus, i, j);
-            }
-          MakeZeta(a, s, p);
-          for (i = 0; i < nvars; i++)
-            {
-              for (j = 0; j < nvars; j++)
-                Zeta[(s)+((i+j*nvars)*nstates)] = ElementM(a, i, j);
-            }
-        }
-
-      // Grand Transition Matrix
-      for (i = 0; i < nstates; i++)
-        for (j = 0; j < nstates; j++)
-          Q[i + j*nstates] = ElementM(model->sv->Q, i, j);
-
-      FreeMatrix(a);
-      FreeMatrix(aplus);
-    }
-  catch (const char *s)
-    {
-      printf("Exception: convert_free_parameters\n");
-      return 3;
-    }
-  return 0;
-}
-
-/*
-   Additional command line parameters
-
-   'horizon', <integer>
-      If this argument exists, then the forecast horizon is given by the passed
-      integer.  The default value is 12.
-
-   'filtered'
-      Uses filtered probabilities at the end of the sample as initial conditions
-      for regime probabilities.  The default behavior is to us the erogdic
-      distribution for the initial conditions.  This flag only applies if neither
-      -regimes nor -regime is specified.
-
-   'error_bands'
-      Output error bands.  (default = off - only median is computed)
-
-   'percentiles' n p_1 p_2 ... p_n
-      Percentiles to compute. The first parameter after percentiles must be the
-      number of percentiles and the following values are the actual percentiles.
-      default = 3  0.16  0.50  0.84   if error_bands flag is set
-              = 1  0.50               otherwise
-
-   'parameter_uncertainty'
-      Apply parameter uncertainty when computing error bands or median. When set,
-      will default shocks = 1
-
-   'shocks_per_parameter', <integer>
-      Number of regime paths to draw for each parameter draw.  The default value
-      is 1 if parameter_uncertainty is set and 10,000 otherwise.
-
-   'thin'
-      Thinning factor.  Only 1/thin of the draws in posterior draws file are
-      used. The default value is 1.
-
-   'regimes'
-      Produces forecasts as if each regime were permanent. (default = off)
-
-   'regime' <integer>
-      Produces forecasts as if regime were permanent.  Regime numbers are zero
-      based.  (default = off)
-
-   'simulation_file', <string>
-      name of the file containing the model's simulated free values
-
-   'number_observations', <integer>
-         If this argument exists, then the number of data points included in the
-         output is given by the passed integer int the forecast output.  The default value is 0.
-
-   'free_parameters' <vector>:
-        Vector of free paramters to initialize the model with.
-
-   'median':
-      Shortcut for setting 'percentiles',[0.5]
-
-   'mean':
-      Compute the mean, instead of percentiles
-
-   'seed':
-      Set the Seed for random number generation, default=0 (random)
- */
-
-SbvarOption *
-initialize_sbvar_options(char *file_tag)
-{
-  SbvarOption *options = new SbvarOption;
-  options->shocks = 10000;
-  options->thin = 1;
-  options->horizon = 20;
-  options->number_observations = 0;
-  options->regime = -1;
-  options->regimes = false;
-  options->parameter_uncertainty = false;
-  options->num_percentiles = 3;
-  options->percentiles = new double[3];
-  options->percentiles[0] = 0.16;
-  options->percentiles[1] = 0.5;
-  options->percentiles[2] = 0.84;
-  options->filtered_probabilities = false;
-  options->num_parameters = -1;
-  options->free_parameters = (double *) NULL;
-  options->mean = false;
-  options->seed = 0;
-
-  if (file_tag != NULL)
-    {
-      options->simulation_filename = (char *) CreateFilenameFromTag("%ssimulation_%s.out", file_tag, "");
-      if (file_exist(options->simulation_filename))
-        options->simulation_file = fopen(options->simulation_filename, "r");
-    }
-  else
-    {
-      options->simulation_filename = (char *) NULL;
-      options->simulation_file = (FILE *) NULL;
-    }
-  return options;
-}
-
-int
-set_options(SbvarOption *options, const mxArray *prhs[])
-{
-  if (options == NULL)
-    options = initialize_sbvar_options((char *) NULL);
-
-  double *temp_buf;
-  bool shocks_passed = false;
-  int num_options = mxGetN(prhs[0]);
-  for (int i = 1; i < num_options; i++)
-    {
-      mxArray *this_option = mxGetCell(prhs[0],i);
-      char *option_name_c = mxArrayToString(mxGetCell(this_option,0));
-      string option_name (option_name_c);
-      mxArray *this_option_value = NULL;
-      if (mxGetN(this_option) > 1)
-        this_option_value = mxGetCell(this_option,1);
-
-      if (option_name == "horizon")
-        if (this_option_value && mxIsNumeric(this_option_value))
-          {
-            temp_buf = (double *) mxGetData(this_option_value);
-            options->horizon = (int) temp_buf[0];
-          }
-        else
-          {
-            cout << "You must pass an integer after specifying the 'horizon' option" << endl;
-            return 1;
-          }
-      else if (option_name == "filtered")
-        options->filtered_probabilities = true;
-      else if (option_name == "error_bands")
-        {
-          free(options->percentiles);
-          options->num_percentiles = 3;
-          options->percentiles = new double[3];
-          options->percentiles[0] = 0.16;
-          options->percentiles[1] = 0.5;
-          options->percentiles[2] = 0.84;
-
-          // Check if the user specified to turn off error bands
-          if (this_option_value && mxIsNumeric(this_option_value))
-            {
-              temp_buf = (double *) mxGetData(this_option_value);
-              if (temp_buf[0] == 0)
-                {
-                  options->num_percentiles = 1;
-                  options->percentiles = new double[1];
-                  options->percentiles[0] = 0.50;
-                }
-            }
-        }
-      else if (option_name == "median")
-        {
-          free(options->percentiles);
-          options->num_percentiles = 1;
-          options->percentiles = new double[1];
-          options->percentiles[0] = 0.5;
-        }
-      else if (option_name == "percentiles")
-        if (this_option_value)
-          {
-            options->num_percentiles = mxGetN(this_option_value)
-              > mxGetM(this_option_value) ? mxGetN(this_option_value)
-              : mxGetM(this_option_value);
-            options->percentiles = mxGetPr(this_option_value);
-          }
-        else
-          {
-            cout << "You must pass a vector after the 'percentiles' argument with the "
-                 << "percentiles that you want to have computed, ex "
-                 << "'percentiles',[.16 .5 .84]" << endl;
-            return 1;
-          }
-      else if (option_name == "parameter_uncertainty")
-        {
-          options->parameter_uncertainty = true;
-          if (shocks_passed == false)
-            options->shocks = 1;
-        }
-      else if (option_name == "shocks_per_parameter")
-        if (this_option_value && mxIsNumeric(this_option_value))
-          {
-            temp_buf = (double *) mxGetData(this_option_value);
-            options->shocks = (int) temp_buf[0];
-            shocks_passed = true;
-          }
-        else
-          {
-            cout << "You must pass an integer after specifying the 'shocks_per_parameter' option" << endl;
-            return 1;
-          }
-      else if (option_name == "thin")
-        if (this_option_value && mxIsNumeric(this_option_value))
-          {
-            temp_buf = (double *) mxGetData(this_option_value);
-            options->thin = (int) temp_buf[0];
-          }
-        else
-          {
-            cout << "You must pass an integer after specifying the 'thin' option" << endl;
-            return 1;
-          }
-      else if (option_name == "simulation_file")
-        {
-          char *posterior_filename = mxArrayToString(this_option_value);
-          strcpy(options->simulation_filename, posterior_filename);
-          if (!(options->simulation_file = fopen(posterior_filename, "rt")))
-            {
-              cout << "Can not open posterior file " << options->simulation_file
-                   << " for reading. " << endl;
-              return 1;
-            }
-          mxFree(posterior_filename);
-        }
-      else if (option_name == "regimes")
-        options->regimes = true;
-      else if (option_name == "regime")
-        if (this_option_value && mxIsNumeric(this_option_value))
-          {
-            temp_buf = (double *) mxGetData(this_option_value);
-            options->regime = (int) temp_buf[0];
-          }
-        else
-          {
-            cout << "You must pass an integer after specifying the 'regime' "
-                 << "option, or alternatively you can specify 'regimes'" << endl;
-            return 1;
-          }
-      else if (option_name == "number_observations")
-        if (this_option_value && mxIsNumeric(this_option_value))
-          {
-            temp_buf = (double *) mxGetData(this_option_value);
-            options->number_observations = (int) temp_buf[0];
-          }
-        else
-          {
-            cout << "You must pass an integer after specifying the "
-                 << "'number_observations' option" << endl;
-            return 1;
-          }
-      else if (option_name == "free_parameters")
-        if (this_option_value && mxIsNumeric(this_option_value))
-          {
-            options->num_parameters = mxGetM(this_option_value);
-            options->free_parameters = mxGetPr(this_option_value);
-          }
-        else
-          {
-            cout << "You must pass a vector of free parameters after "
-                 << "specifying 'free_parameters'" << endl;
-            return 1;
-          }
-      else if (option_name == "mean")
-        {
-          options->mean = true;
-          options->num_percentiles = 0;
-          options->percentiles = (double *) NULL;
-
-        }
-      else if (option_name == "seed")
-        if (this_option_value && mxIsNumeric(this_option_value))
-          {
-            temp_buf = (double *) mxGetData(this_option_value);
-            options->seed = (long) temp_buf[0];
-          }
-        else
-          {
-            cout << "You must pass an integer after specifying the 'seed' option" << endl;
-            return 1;
-          }
-      else
-          {
-            cout << "set_options error: option '" << option_name << "' not matched" << endl;
-            return 1;
-          }
-      mxFree(option_name_c);
-    } // End Optional Arguments
-  return 0;
-}
-
-int
-print_sbvar_options(SbvarOption *options)
-{
-  using namespace std;
-  int i;
-
-  if (options == NULL)
-    return 1;
-
-  cout << "SBVAR OPTIONS" << endl;
-  cout << "Number of Shocks: " << options->shocks << endl;
-  cout << "Thinning Factor: " << options->thin << endl;
-  cout << "Horizon: " << options->horizon << endl;
-  cout << "Number of Observations to Show: " << options->number_observations << endl;
-  cout << "Regime: " << options->regime << endl;
-  cout << "Regimes: " << options->regimes << endl;
-  cout << "Number Free parameters: " << options->num_parameters << endl;
-  cout << "Parameter Uncertainty: " << options->parameter_uncertainty << endl;
-  cout << "Mean: " << options->mean << endl;
-  cout << "Number Percentiles: " << options->num_percentiles << endl;
-  cout << "Percentiles: ";
-  for (i = 0; i < options->num_percentiles; i++)
-    cout << options->percentiles[i] << " ";
-  cout << endl;
-  cout << "Filtered Probabilities: " << options->filtered_probabilities << endl;
-  cout << "Simulation Filename: " << options->simulation_filename << endl;
-  cout << "Random Number Seed: " << options->seed << endl;
-
-  return 0;
-}
-
-TStateModel *
-initialize_model_and_options(SbvarOption **options, const mxArray *prhs[], int *nstates, int *nvars, int *npre, int *nfree)
-{
-  char *name;
-  TStateModel *model = (TStateModel *) NULL;
-  SbvarOption *opt;
-
-  // Initialize the StateSpace Model with the initialization file
-  name = mxArrayToString(mxGetCell(mxGetCell(prhs[0],0),1));
-  model = initialize_ms_model(name);
-  if (model == NULL)
-    {
-      cout << "Could not initialize State Space Switching model with the given tag." << endl;
-      return (TStateModel *) NULL;
-    }
-  if (get_var_dimensions(model, nstates, nvars, npre, nfree) > 0)
-    {
-      cout << "Problems Determining the size of the Initialized model." << endl;
-      return (TStateModel *) NULL;
-    }
-
-  // Process the rest of the options
-  opt = initialize_sbvar_options(name);
-  mxFree(name);
-  if (set_options(opt, prhs) > 0)
-    {
-      cout << "There was a problem with the options passed." << endl;
-      return (TStateModel *) NULL;
-    }
-
-  // Set seed value
-  try
-    {
-      dw_initialize_generator(opt->seed);
-    }
-  catch (const char *s)
-    {
-      cout << "Exception: " << s << endl;
-      cout << "Exception thrown initializing Random Seed." << endl;
-      return (TStateModel *) NULL;
-    }
-
-  // If free parameters have been passed, then set them in the model
-  if (opt->num_parameters > 0)
-    {
-      if (opt->num_parameters == *nfree + 2)
-        {
-          opt->free_parameters = opt->free_parameters+2;
-          opt->num_parameters = opt->num_parameters - 2;
-        }
-      if (opt->num_parameters != *nfree)
-        {
-          cout << "The Free Parameter vector passed is the wrong size for the given model" << endl;
-          return (TStateModel *) NULL;
-        }
-
-      // Set the paramters as the current 'theta'
-      if (set_parameters_in_VAR(model, opt->free_parameters) > 0)
-        {
-          cout << "Problem with the free parameters that were passed being set in MS-SBVAR Model." << endl;
-          return (TStateModel *) NULL;
-        }
-    }
-
-  *options = opt;
-
-  return model;
-}
-
-#endif
diff --git a/mex/sources/ms-sbvar/mex_ms_sbvar.h b/mex/sources/ms-sbvar/mex_ms_sbvar.h
deleted file mode 100644
index edca7a2961..0000000000
--- a/mex/sources/ms-sbvar/mex_ms_sbvar.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2011 Dynare Team
- *
- * This file is part of Dynare.
- *
- * Dynare is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Dynare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
- */
- 
-#ifndef _MEXMSSBVAR_H_
-#define _MEXMSSBVAR_H_
-
-#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
-
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-extern "C"  {
-  #include "modify_for_mex.h"
-  #include "switch.h"
-  #include "switchio.h"
-  #include "VARio.h"
-}
-
-typedef struct sbvar_options_t {
-  int shocks;
-  int thin;
-  int horizon;
-  int number_observations;
-  int regime;
-  bool regimes;
-  bool parameter_uncertainty;
-  int num_percentiles;
-  double *percentiles;
-  bool filtered_probabilities;
-  char *simulation_filename;
-  int num_parameters;
-  double *free_parameters; 
-  FILE *simulation_file;
-  bool mean;
-  long seed;
-} SbvarOption;
-
-#define printf mexPrintf
-
-int file_exist(char *filename);
-char* CreateFilenameFromTag(const char *fmt,const  char *tag,const  char *dir);
-SbvarOption * initialize_sbvar_options(char *file_tag);
-int set_options(SbvarOption *options, const mxArray *prhs[]);
-int print_sbvar_options(SbvarOption *options);
-TStateModel * initialize_ms_model(char *filename);
-int get_var_dimensions(TStateModel *model, int *nstates, int *nvars, int *npre, int *nfree); 
-int set_parameters_in_VAR(TStateModel *model, double *free_parameters); 
-int convert_free_parameters_to_VAR(TStateModel *model, double *free_parameters, double *A0, double *Aplus, double *Zeta, double *Q );
-TStateModel * initialize_model_and_options(SbvarOption **options, const mxArray *prhs[], int *nstates, int *nvars, int *npre, int *nfree);
-
-#endif
-#endif
-- 
GitLab