diff --git a/mex/sources/k_order_perturbation/k_ord_dynare.cc b/mex/sources/k_order_perturbation/k_ord_dynare.cc index d93274302..46aafbb95 100644 --- a/mex/sources/k_order_perturbation/k_ord_dynare.cc +++ b/mex/sources/k_order_perturbation/k_ord_dynare.cc @@ -89,10 +89,8 @@ KordpDynare::evaluateSystem(Vector &out, const Vector &yym, const Vector &yy, void KordpDynare::calcDerivativesAtSteady() throw (DynareException) { - TwoDMatrix g1(nY, nJcols); - g1.zeros(); - - TwoDMatrix *g2p = NULL, *g3p = NULL; + g1p = new TwoDMatrix(nY, nJcols); + g1p->zeros(); if (nOrder > 1) { @@ -115,9 +113,10 @@ KordpDynare::calcDerivativesAtSteady() throw (DynareException) Vector llxSteady(nJcols-nExog); LLxSteady(ySteady, llxSteady); - dynamicModelFile->eval(llxSteady, xx, params, ySteady, out, &g1, g2p, g3p); + dynamicModelFile->eval(llxSteady, xx, params, ySteady, out, g1p, g2p, g3p); - populateDerivativesContainer(g1, 1, JacobianIndices); + populateDerivativesContainer(*g1p, 1, JacobianIndices); + delete g1p; if (nOrder > 1) { diff --git a/mex/sources/k_order_perturbation/k_ord_dynare.hh b/mex/sources/k_order_perturbation/k_ord_dynare.hh index 3629c3d74..262fecf21 100644 --- a/mex/sources/k_order_perturbation/k_ord_dynare.hh +++ b/mex/sources/k_order_perturbation/k_ord_dynare.hh @@ -113,6 +113,10 @@ class KordpDynare : public DynamicModel const TwoDMatrix &ll_Incidence; double qz_criterium; vector JacobianIndices; + + TwoDMatrix *g1p; + TwoDMatrix *g2p; + TwoDMatrix *g3p; public: KordpDynare(const vector &endo, int num_endo, const vector &exo, int num_exo, int num_par,