Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dóra Kocsis
dynare
Commits
871cbbe4
Commit
871cbbe4
authored
Mar 05, 2013
by
Sébastien Villemot
Browse files
Construct the filename of the dynamic MEX file only at the deepest level
In the calling chain, only pass the basename of the MOD file.
parent
325a2ea9
Changes
14
Hide whitespace changes
Inline
Side-by-side
mex/sources/estimation/InitializeKalmanFilter.cc
View file @
871cbbe4
...
...
@@ -30,7 +30,7 @@ InitializeKalmanFilter::~InitializeKalmanFilter()
{
}
InitializeKalmanFilter
::
InitializeKalmanFilter
(
const
std
::
string
&
dynamicDllFil
e
,
size_t
n_endo_arg
,
size_t
n_exo_arg
,
InitializeKalmanFilter
::
InitializeKalmanFilter
(
const
std
::
string
&
basenam
e
,
size_t
n_endo_arg
,
size_t
n_exo_arg
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
const
std
::
vector
<
size_t
>
&
zeta_varobs_back_mixed_arg
,
...
...
@@ -42,7 +42,7 @@ InitializeKalmanFilter::InitializeKalmanFilter(const std::string &dynamicDllFile
lyapunov_tol
(
lyapunov_tol_arg
),
zeta_varobs_back_mixed
(
zeta_varobs_back_mixed_arg
),
detrendData
(
varobs_arg
,
noconstant_arg
),
modelSolution
(
dynamicDllFil
e
,
n_endo_arg
,
n_exo_arg
,
zeta_fwrd_arg
,
zeta_back_arg
,
modelSolution
(
basenam
e
,
n_endo_arg
,
n_exo_arg
,
zeta_fwrd_arg
,
zeta_back_arg
,
zeta_mixed_arg
,
zeta_static_arg
,
qz_criterium_arg
),
discLyapFast
(
zeta_varobs_back_mixed
.
size
()),
g_x
(
n_endo_arg
,
zeta_back_arg
.
size
()
+
zeta_mixed_arg
.
size
()),
...
...
mex/sources/estimation/InitializeKalmanFilter.hh
View file @
871cbbe4
...
...
@@ -43,7 +43,7 @@ public:
/*!
\param[in] zeta_varobs_back_mixed_arg The union of indices of observed, backward and mixed variables
*/
InitializeKalmanFilter
(
const
std
::
string
&
dynamicDllFil
e
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
InitializeKalmanFilter
(
const
std
::
string
&
basenam
e
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
const
std
::
vector
<
size_t
>
&
zeta_varobs_back_mixed_arg
,
const
std
::
vector
<
size_t
>
&
varobs_arg
,
...
...
mex/sources/estimation/KalmanFilter.cc
View file @
871cbbe4
...
...
@@ -31,7 +31,7 @@ KalmanFilter::~KalmanFilter()
}
KalmanFilter
::
KalmanFilter
(
const
std
::
string
&
dynamicDllFil
e
,
size_t
n_endo
,
size_t
n_exo
,
KalmanFilter
::
KalmanFilter
(
const
std
::
string
&
basenam
e
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
double
qz_criterium_arg
,
const
std
::
vector
<
size_t
>
&
varobs_arg
,
...
...
@@ -44,7 +44,7 @@ KalmanFilter::KalmanFilter(const std::string &dynamicDllFile, size_t n_endo, siz
Finv
(
varobs_arg
.
size
(),
varobs_arg
.
size
()),
K
(
zeta_varobs_back_mixed
.
size
(),
varobs_arg
.
size
()),
KFinv
(
zeta_varobs_back_mixed
.
size
(),
varobs_arg
.
size
()),
oldKFinv
(
zeta_varobs_back_mixed
.
size
(),
varobs_arg
.
size
()),
a_init
(
zeta_varobs_back_mixed
.
size
()),
a_new
(
zeta_varobs_back_mixed
.
size
()),
vt
(
varobs_arg
.
size
()),
vtFinv
(
varobs_arg
.
size
()),
riccati_tol
(
riccati_tol_arg
),
initKalmanFilter
(
dynamicDllFil
e
,
n_endo
,
n_exo
,
zeta_fwrd_arg
,
zeta_back_arg
,
zeta_mixed_arg
,
initKalmanFilter
(
basenam
e
,
n_endo
,
n_exo
,
zeta_fwrd_arg
,
zeta_back_arg
,
zeta_mixed_arg
,
zeta_static_arg
,
zeta_varobs_back_mixed
,
varobs_arg
,
qz_criterium_arg
,
lyapunov_tol_arg
,
noconstant_arg
,
info
),
FUTP
(
varobs_arg
.
size
()
*
(
varobs_arg
.
size
()
+
1
)
/
2
)
{
...
...
mex/sources/estimation/KalmanFilter.hh
View file @
871cbbe4
...
...
@@ -49,7 +49,7 @@ class KalmanFilter
public:
virtual
~
KalmanFilter
();
KalmanFilter
(
const
std
::
string
&
dynamicDllFil
e
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
KalmanFilter
(
const
std
::
string
&
basenam
e
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
double
qz_criterium_arg
,
const
std
::
vector
<
size_t
>
&
varobs_arg
,
double
riccati_tol_arg
,
double
lyapunov_tol_arg
,
...
...
mex/sources/estimation/LogLikelihoodMain.cc
View file @
871cbbe4
...
...
@@ -25,14 +25,14 @@
#include
"LogLikelihoodMain.hh"
LogLikelihoodMain
::
LogLikelihoodMain
(
const
std
::
string
&
dynamicDllFil
e
,
EstimatedParametersDescription
&
estiParDesc
,
size_t
n_endo
,
size_t
n_exo
,
LogLikelihoodMain
::
LogLikelihoodMain
(
const
std
::
string
&
basenam
e
,
EstimatedParametersDescription
&
estiParDesc
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
const
double
qz_criterium
,
const
std
::
vector
<
size_t
>
&
varobs
,
double
riccati_tol
,
double
lyapunov_tol
,
bool
noconstant_arg
,
int
&
info_arg
)
:
estSubsamples
(
estiParDesc
.
estSubsamples
),
logLikelihoodSubSample
(
dynamicDllFil
e
,
estiParDesc
,
n_endo
,
n_exo
,
zeta_fwrd_arg
,
zeta_back_arg
,
zeta_mixed_arg
,
zeta_static_arg
,
qz_criterium
,
logLikelihoodSubSample
(
basenam
e
,
estiParDesc
,
n_endo
,
n_exo
,
zeta_fwrd_arg
,
zeta_back_arg
,
zeta_mixed_arg
,
zeta_static_arg
,
qz_criterium
,
varobs
,
riccati_tol
,
lyapunov_tol
,
noconstant_arg
,
info_arg
),
vll
(
estiParDesc
.
getNumberOfPeriods
()),
// time dimension size of data
detrendedData
(
varobs
.
size
(),
estiParDesc
.
getNumberOfPeriods
())
...
...
mex/sources/estimation/LogLikelihoodMain.hh
View file @
871cbbe4
...
...
@@ -37,7 +37,7 @@ private:
public:
virtual
~
LogLikelihoodMain
();
LogLikelihoodMain
(
const
std
::
string
&
dynamicDllFil
e
,
EstimatedParametersDescription
&
estiParDesc
,
size_t
n_endo
,
size_t
n_exo
,
LogLikelihoodMain
(
const
std
::
string
&
basenam
e
,
EstimatedParametersDescription
&
estiParDesc
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
const
double
qz_criterium_arg
,
const
std
::
vector
<
size_t
>
&
varobs_arg
,
double
riccati_tol_arg
,
double
lyapunov_tol_arg
,
...
...
mex/sources/estimation/LogLikelihoodSubSample.cc
View file @
871cbbe4
...
...
@@ -29,12 +29,12 @@ LogLikelihoodSubSample::~LogLikelihoodSubSample()
{
};
LogLikelihoodSubSample
::
LogLikelihoodSubSample
(
const
std
::
string
&
dynamicDllFil
e
,
EstimatedParametersDescription
&
INestiParDesc
,
size_t
n_endo
,
size_t
n_exo
,
LogLikelihoodSubSample
::
LogLikelihoodSubSample
(
const
std
::
string
&
basenam
e
,
EstimatedParametersDescription
&
INestiParDesc
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
const
double
qz_criterium
,
const
std
::
vector
<
size_t
>
&
varobs
,
double
riccati_tol
,
double
lyapunov_tol
,
bool
noconstant_arg
,
int
&
INinfo
)
:
startPenalty
(
-
1e8
),
estiParDesc
(
INestiParDesc
),
kalmanFilter
(
dynamicDllFil
e
,
n_endo
,
n_exo
,
zeta_fwrd_arg
,
zeta_back_arg
,
zeta_mixed_arg
,
zeta_static_arg
,
qz_criterium
,
kalmanFilter
(
basenam
e
,
n_endo
,
n_exo
,
zeta_fwrd_arg
,
zeta_back_arg
,
zeta_mixed_arg
,
zeta_static_arg
,
qz_criterium
,
varobs
,
riccati_tol
,
lyapunov_tol
,
noconstant_arg
,
INinfo
),
eigQ
(
n_exo
),
eigH
(
varobs
.
size
()),
info
(
INinfo
)
{
};
...
...
mex/sources/estimation/LogLikelihoodSubSample.hh
View file @
871cbbe4
...
...
@@ -36,7 +36,7 @@ class LogLikelihoodSubSample
{
public:
LogLikelihoodSubSample
(
const
std
::
string
&
dynamicDllFil
e
,
EstimatedParametersDescription
&
estiParDesc
,
size_t
n_endo
,
size_t
n_exo
,
LogLikelihoodSubSample
(
const
std
::
string
&
basenam
e
,
EstimatedParametersDescription
&
estiParDesc
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
const
double
qz_criterium
,
const
std
::
vector
<
size_t
>
&
varobs_arg
,
double
riccati_tol_in
,
double
lyapunov_tol
,
bool
noconstant_arg
,
int
&
info
);
...
...
mex/sources/estimation/ModelSolution.cc
View file @
871cbbe4
...
...
@@ -30,14 +30,14 @@
/**
* compute the steady state (2nd stage), and computes first order approximation
*/
ModelSolution
::
ModelSolution
(
const
std
::
string
&
dynamicDllFil
e
,
size_t
n_endo_arg
,
size_t
n_exo_arg
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
ModelSolution
::
ModelSolution
(
const
std
::
string
&
basenam
e
,
size_t
n_endo_arg
,
size_t
n_exo_arg
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
double
INqz_criterium
)
:
n_endo
(
n_endo_arg
),
n_exo
(
n_exo_arg
),
// n_jcols = Num of Jacobian columns = nStat+2*nPred+3*nBoth+2*nForw+nExog
n_jcols
(
n_exo
+
n_endo
+
zeta_back_arg
.
size
()
/*nsPred*/
+
zeta_fwrd_arg
.
size
()
/*nsForw*/
+
2
*
zeta_mixed_arg
.
size
()),
jacobian
(
n_endo
,
n_jcols
),
residual
(
n_endo
),
Mx
(
1
,
n_exo
),
decisionRules
(
n_endo_arg
,
n_exo_arg
,
zeta_fwrd_arg
,
zeta_back_arg
,
zeta_mixed_arg
,
zeta_static_arg
,
INqz_criterium
),
dynamicDLLp
(
dynamicDllFil
e
),
dynamicDLLp
(
basenam
e
),
llXsteadyState
(
n_jcols
-
n_exo
)
{
Mx
.
setAll
(
0.0
);
...
...
mex/sources/estimation/ModelSolution.hh
View file @
871cbbe4
...
...
@@ -38,7 +38,7 @@ class ModelSolution
{
public:
ModelSolution
(
const
std
::
string
&
dynamicDllFil
e
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
ModelSolution
(
const
std
::
string
&
basenam
e
,
size_t
n_endo
,
size_t
n_exo
,
const
std
::
vector
<
size_t
>
&
zeta_fwrd_arg
,
const
std
::
vector
<
size_t
>
&
zeta_back_arg
,
const
std
::
vector
<
size_t
>
&
zeta_mixed_arg
,
const
std
::
vector
<
size_t
>
&
zeta_static_arg
,
double
qz_criterium
);
virtual
~
ModelSolution
()
{};
...
...
mex/sources/estimation/logMHMCMCposterior.cc
View file @
871cbbe4
...
...
@@ -650,10 +650,8 @@ logMCMCposterior(VectorConstView &estParams, const MatrixConstView &data,
// Construct arguments of constructor of LogLikelihoodMain
char
*
fName
=
mxArrayToString
(
mxGetField
(
M_
,
0
,
"fname"
));
std
::
string
resultsFileStem
(
fName
);
std
::
string
dynamicDllFil
e
(
fName
);
std
::
string
basenam
e
(
fName
);
mxFree
(
fName
);
dynamicDllFile
+=
"_dynamic"
;
dynamicDllFile
+=
MEXEXT
;
size_t
n_endo
=
(
size_t
)
*
mxGetPr
(
mxGetField
(
M_
,
0
,
"endo_nbr"
));
size_t
n_exo
=
(
size_t
)
*
mxGetPr
(
mxGetField
(
M_
,
0
,
"exo_nbr"
));
...
...
@@ -716,7 +714,7 @@ logMCMCposterior(VectorConstView &estParams, const MatrixConstView &data,
// Allocate LogPosteriorDensity object
int
info
;
LogPosteriorDensity
lpd
(
dynamicDllFil
e
,
epd
,
n_endo
,
n_exo
,
zeta_fwrd
,
zeta_back
,
zeta_mixed
,
zeta_static
,
LogPosteriorDensity
lpd
(
basenam
e
,
epd
,
n_endo
,
n_exo
,
zeta_fwrd
,
zeta_back
,
zeta_mixed
,
zeta_static
,
qz_criterium
,
varobs
,
riccati_tol
,
lyapunov_tol
,
noconstant
,
info
);
// Construct MHMCMC Sampler
...
...
mex/sources/estimation/logposterior.cc
View file @
871cbbe4
...
...
@@ -116,10 +116,8 @@ logposterior(VEC1 &estParams, const MatrixConstView &data,
// Construct arguments of constructor of LogLikelihoodMain
char
*
fName
=
mxArrayToString
(
mxGetField
(
M_
,
0
,
"fname"
));
std
::
string
dynamicDllFil
e
(
fName
);
std
::
string
basenam
e
(
fName
);
mxFree
(
fName
);
dynamicDllFile
+=
"_dynamic"
;
dynamicDllFile
+=
MEXEXT
;
size_t
n_endo
=
(
size_t
)
*
mxGetPr
(
mxGetField
(
M_
,
0
,
"endo_nbr"
));
size_t
n_exo
=
(
size_t
)
*
mxGetPr
(
mxGetField
(
M_
,
0
,
"exo_nbr"
));
...
...
@@ -184,7 +182,7 @@ logposterior(VEC1 &estParams, const MatrixConstView &data,
bool
noconstant
=
(
bool
)
*
mxGetPr
(
mxGetField
(
options_
,
0
,
"noconstant"
));
// Allocate LogPosteriorDensity object
LogPosteriorDensity
lpd
(
dynamicDllFil
e
,
epd
,
n_endo
,
n_exo
,
zeta_fwrd
,
zeta_back
,
zeta_mixed
,
zeta_static
,
LogPosteriorDensity
lpd
(
basenam
e
,
epd
,
n_endo
,
n_exo
,
zeta_fwrd
,
zeta_back
,
zeta_mixed
,
zeta_static
,
qz_criterium
,
varobs
,
riccati_tol
,
lyapunov_tol
,
noconstant
,
info
);
// Construct arguments of compute() method
...
...
mex/sources/estimation/utils/dynamic_dll.cc
View file @
871cbbe4
...
...
@@ -23,14 +23,14 @@
using
namespace
std
;
DynamicModelDLL
::
DynamicModelDLL
(
const
std
::
string
&
dynamicDllFil
e
)
throw
(
TSException
)
DynamicModelDLL
::
DynamicModelDLL
(
const
std
::
string
&
basenam
e
)
throw
(
TSException
)
{
std
::
string
fName
;
#if !defined(__CYGWIN32__) && !defined(_WIN32)
if
(
dynamicDllFil
e
[
0
]
!=
'/'
)
if
(
basenam
e
[
0
]
!=
'/'
)
fName
=
"./"
;
#endif
fName
+=
dynamicDllFile
;
fName
+=
basename
+
"_dynamic"
+
MEXEXT
;
try
{
...
...
mex/sources/estimation/utils/dynamic_dll.hh
View file @
871cbbe4
...
...
@@ -52,7 +52,7 @@ private:
public:
// construct and load Dynamic model DLL
DynamicModelDLL
(
const
std
::
string
&
dynamicDllFil
e
)
throw
(
TSException
);
DynamicModelDLL
(
const
std
::
string
&
basenam
e
)
throw
(
TSException
);
virtual
~
DynamicModelDLL
();
//! evaluate Dynamic model DLL
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment