diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index 53f4f23e..b323fc76 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -2530,7 +2530,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic init_output << "residual = zeros(" << nrows << ", 1);"; writeDynamicModelHelper(dynamic_basename + "_resid", "residual", dynamic_basename + "_resid_tt", - temporary_terms_res_idxs.size(), + temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size(), "", init_output, end_output, model_output, model_tt_output); @@ -2539,7 +2539,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic init_output << "g1 = zeros(" << nrows << ", " << dynJacobianColsNbr << ");"; writeDynamicModelHelper(dynamic_basename + "_g1", "g1", dynamic_basename + "_g1_tt", - temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size(), + temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size(), dynamic_basename + "_resid_tt", init_output, end_output, jacobian_output, jacobian_tt_output); @@ -2556,7 +2556,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic init_output << "g2 = sparse([],[],[]," << nrows << "," << hessianColsNbr << ");"; writeDynamicModelHelper(dynamic_basename + "_g2", "g2", dynamic_basename + "_g2_tt", - temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size(), dynamic_basename + "_g1_tt", init_output, end_output, @@ -2577,7 +2577,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic init_output << "g3 = sparse([],[],[]," << nrows << "," << ncols << ");"; writeDynamicModelHelper(dynamic_basename + "_g3", "g3", dynamic_basename + "_g3_tt", - temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() + temporary_terms_g3_idxs.size(), dynamic_basename + "_g2_tt", init_output, end_output, @@ -2690,7 +2690,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic // Write the number of temporary terms output << "tmp_nbr = zeros(Int,4)" << endl - << "tmp_nbr[1] = " << temporary_terms_res_idxs.size() << "# Number of temporary terms for the residuals" << endl + << "tmp_nbr[1] = " << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() << "# Number of temporary terms for the residuals" << endl << "tmp_nbr[2] = " << temporary_terms_g1_idxs.size() << "# Number of temporary terms for g1 (jacobian)" << endl << "tmp_nbr[3] = " << temporary_terms_g2_idxs.size() << "# Number of temporary terms for g2 (hessian)" << endl << "tmp_nbr[4] = " << temporary_terms_g3_idxs.size() << "# Number of temporary terms for g3 (third order derivates)" << endl << endl; @@ -2707,7 +2707,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic output << "function dynamicResid!(T::Vector{Float64}, residual::Vector{Float64}," << endl << " y::Vector{Float64}, x::Matrix{Float64}, " << "params::Vector{Float64}, steady_state::Vector{Float64}, it_::Int, T_flag::Bool)" << endl - << " @assert length(T) >= " << temporary_terms_res_idxs.size() << endl + << " @assert length(T) >= " << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() << endl << " @assert length(residual) == " << nrows << endl << " @assert length(y)+size(x, 2) == " << dynJacobianColsNbr << endl << " @assert length(params) == " << symbol_table.param_nbr() << endl @@ -2732,7 +2732,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic << " y::Vector{Float64}, x::Matrix{Float64}, " << "params::Vector{Float64}, steady_state::Vector{Float64}, it_::Int, T_flag::Bool)" << endl << " @assert length(T) >= " - << temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() << endl + << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() << endl << " @assert size(g1) == (" << nrows << ", " << dynJacobianColsNbr << ")" << endl << " @assert length(y)+size(x, 2) == " << dynJacobianColsNbr << endl << " @assert length(params) == " << symbol_table.param_nbr() << endl @@ -2757,7 +2757,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic output << "function dynamicG2!(T::Vector{Float64}, g2::Matrix{Float64}," << endl << " y::Vector{Float64}, x::Matrix{Float64}, " << "params::Vector{Float64}, steady_state::Vector{Float64}, it_::Int, T_flag::Bool)" << endl - << " @assert length(T) >= " << temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() << endl + << " @assert length(T) >= " << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() << endl << " @assert size(g2) == (" << nrows << ", " << hessianColsNbr << ")" << endl << " @assert length(y)+size(x, 2) == " << dynJacobianColsNbr << endl << " @assert length(params) == " << symbol_table.param_nbr() << endl @@ -2784,7 +2784,7 @@ DynamicModel::writeDynamicModel(const string &dynamic_basename, ostream &Dynamic << " y::Vector{Float64}, x::Matrix{Float64}, " << "params::Vector{Float64}, steady_state::Vector{Float64}, it_::Int, T_flag::Bool)" << endl << " @assert length(T) >= " - << temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() + temporary_terms_g3_idxs.size() << endl + << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() + temporary_terms_g3_idxs.size() << endl << " @assert size(g3) == (" << nrows << ", " << ncols << ")" << endl << " @assert length(y)+size(x, 2) == " << dynJacobianColsNbr << endl << " @assert length(params) == " << symbol_table.param_nbr() << endl diff --git a/src/StaticModel.cc b/src/StaticModel.cc index 837fd11f..ca7c06fd 100644 --- a/src/StaticModel.cc +++ b/src/StaticModel.cc @@ -1549,7 +1549,7 @@ StaticModel::writeStaticModel(const string &basename, << "end"; writeStaticModelHelper(static_name + "_resid", "residual", static_name + "_resid_tt", - temporary_terms_res_idxs.size(), + temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size(), "", init_output, end_output, model_output, model_tt_output); @@ -1563,7 +1563,7 @@ StaticModel::writeStaticModel(const string &basename, << "end"; writeStaticModelHelper(static_name + "_g1", "g1", static_name + "_g1_tt", - temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size(), + temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size(), static_name + "_resid_tt", init_output, end_output, jacobian_output, jacobian_tt_output); @@ -1582,7 +1582,7 @@ StaticModel::writeStaticModel(const string &basename, init_output << "g2 = sparse([],[],[]," << equations.size() << "," << g2ncols << ");"; writeStaticModelHelper(static_name + "_g2", "g2", static_name + "_g2_tt", - temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size(), static_name + "_g1_tt", init_output, end_output, @@ -1603,7 +1603,7 @@ StaticModel::writeStaticModel(const string &basename, init_output << "g3 = sparse([],[],[]," << nrows << "," << ncols << ");"; writeStaticModelHelper(static_name + "_g3", "g3", static_name + "_g3_tt", - temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() + temporary_terms_g3_idxs.size(), static_name + "_g2_tt", init_output, end_output, @@ -1707,7 +1707,7 @@ StaticModel::writeStaticModel(const string &basename, // Write the number of temporary terms output << "tmp_nbr = zeros(Int,4)" << endl - << "tmp_nbr[1] = " << temporary_terms_res_idxs.size() << "# Number of temporary terms for the residuals" << endl + << "tmp_nbr[1] = " << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() << "# Number of temporary terms for the residuals" << endl << "tmp_nbr[2] = " << temporary_terms_g1_idxs.size() << "# Number of temporary terms for g1 (jacobian)" << endl << "tmp_nbr[3] = " << temporary_terms_g2_idxs.size() << "# Number of temporary terms for g2 (hessian)" << endl << "tmp_nbr[4] = " << temporary_terms_g3_idxs.size() << "# Number of temporary terms for g3 (third order derivates)" << endl << endl; @@ -1715,7 +1715,7 @@ StaticModel::writeStaticModel(const string &basename, // staticResidTT! output << "function staticResidTT!(T::Vector{Float64}," << endl << " y::Vector{Float64}, x::Vector{Float64}, params::Vector{Float64})" << endl - << " @assert length(T) >= " << temporary_terms_res_idxs.size() << endl + << " @assert length(T) >= " << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() << endl << model_tt_output.str() << " return nothing" << endl << "end" << endl << endl; @@ -1751,7 +1751,7 @@ StaticModel::writeStaticModel(const string &basename, output << "function staticG1!(T::Vector{Float64}, g1::Matrix{Float64}," << endl << " y::Vector{Float64}, x::Vector{Float64}, params::Vector{Float64}, T1_flag::Bool, T0_flag::Bool)" << endl << " @assert length(T) >= " - << temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() << endl + << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() << endl << " @assert size(g1) == (" << equations.size() << ", " << symbol_table.endo_nbr() << ")" << endl << " @assert length(y) == " << symbol_table.endo_nbr() << endl << " @assert length(x) == " << symbol_table.exo_nbr() << endl @@ -1781,7 +1781,7 @@ StaticModel::writeStaticModel(const string &basename, output << "function staticG2!(T::Vector{Float64}, g2::Matrix{Float64}," << endl << " y::Vector{Float64}, x::Vector{Float64}, params::Vector{Float64}, T2_flag::Bool, T1_flag::Bool, T0_flag::Bool)" << endl << " @assert length(T) >= " - << temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() << endl + << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() << endl << " @assert size(g2) == (" << equations.size() << ", " << g2ncols << ")" << endl << " @assert length(y) == " << symbol_table.endo_nbr() << endl << " @assert length(x) == " << symbol_table.exo_nbr() << endl @@ -1809,7 +1809,7 @@ StaticModel::writeStaticModel(const string &basename, output << "function staticG3!(T::Vector{Float64}, g3::Matrix{Float64}," << endl << " y::Vector{Float64}, x::Vector{Float64}, params::Vector{Float64}, T3_flag::Bool, T2_flag::Bool, T1_flag::Bool, T0_flag::Bool)" << endl << " @assert length(T) >= " - << temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() + temporary_terms_g3_idxs.size() << endl + << temporary_terms_mlv_idxs.size() + temporary_terms_res_idxs.size() + temporary_terms_g1_idxs.size() + temporary_terms_g2_idxs.size() + temporary_terms_g3_idxs.size() << endl << " @assert size(g3) == (" << nrows << ", " << ncols << ")" << endl << " @assert length(y) == " << symbol_table.endo_nbr() << endl << " @assert length(x) == " << symbol_table.exo_nbr() << endl