From 8ecf9f941d33c6229585fae89729bc511857d1c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Wed, 30 Oct 2024 14:29:38 +0100 Subject: [PATCH] Testsuite / PAC: use sparse representation for the model Ref. #1859 --- tests/pac/trend-component-14/example1.mod | 7 ++++--- tests/pac/trend-component-14/substitution.mod | 5 +++-- tests/pac/var-5/example1.mod | 5 +++-- tests/pac/var-5/substitution.mod | 5 +++-- tests/pac/var-6/example1.mod | 5 +++-- tests/pac/var-6/substitution.mod | 5 +++-- tests/pac/var-7/example1.mod | 5 +++-- tests/pac/var-7/substitution.mod | 5 +++-- tests/pac/var-8/example1.mod | 5 +++-- tests/pac/var-8/substitution.mod | 5 +++-- tests/pac/var-9/example1.mod | 5 +++-- tests/pac/var-9/substitution.mod | 5 +++-- 12 files changed, 37 insertions(+), 25 deletions(-) diff --git a/tests/pac/trend-component-14/example1.mod b/tests/pac/trend-component-14/example1.mod index 232dca925..4041e52b8 100644 --- a/tests/pac/trend-component-14/example1.mod +++ b/tests/pac/trend-component-14/example1.mod @@ -87,7 +87,8 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = example1.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; - [residual, g1] = example1.dynamic(y, x', M_.params, oo_.steady_state, 1); + y3n = repmat(y, 3, 1); + [residual, T_order, T] = example1.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = example1.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); save('example1.mat', 'residual', 'g1', 'TrueData'); -end; \ No newline at end of file +end; diff --git a/tests/pac/trend-component-14/substitution.mod b/tests/pac/trend-component-14/substitution.mod index 466807ad1..7baa7aba9 100644 --- a/tests/pac/trend-component-14/substitution.mod +++ b/tests/pac/trend-component-14/substitution.mod @@ -78,9 +78,10 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = substitution.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; + y3n = repmat(y, 3, 1); + [residual, T_order, T] = substitution.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = substitution.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); example1 = load('example1.mat'); - [residual, g1] = substitution.dynamic(y, x', M_.params, oo_.steady_state, 1); end; if max(abs(example1.TrueData.data(:)-TrueData.data(:)))>1e-9 diff --git a/tests/pac/var-5/example1.mod b/tests/pac/var-5/example1.mod index 779045887..3de7e0e1e 100644 --- a/tests/pac/var-5/example1.mod +++ b/tests/pac/var-5/example1.mod @@ -67,7 +67,8 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = example1.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; - [residual, g1] = example1.dynamic(y, x', M_.params, oo_.steady_state, 1); + y3n = repmat(y, 3, 1); + [residual, T_order, T] = example1.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = example1.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); save('example1.mat', 'residual', 'g1', 'TrueData'); end; diff --git a/tests/pac/var-5/substitution.mod b/tests/pac/var-5/substitution.mod index 29d837f70..c33825f02 100644 --- a/tests/pac/var-5/substitution.mod +++ b/tests/pac/var-5/substitution.mod @@ -59,9 +59,10 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = substitution.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; + y3n = repmat(y, 3, 1); + [residual, T_order, T] = substitution.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = substitution.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); example1 = load('example1.mat'); - [residual, g1] = substitution.dynamic(y, x', M_.params, oo_.steady_state, 1); end; if max(abs(example1.TrueData.data(:)-TrueData.data(:)))>1e-9 diff --git a/tests/pac/var-6/example1.mod b/tests/pac/var-6/example1.mod index 58a5b08fc..4e85012d0 100644 --- a/tests/pac/var-6/example1.mod +++ b/tests/pac/var-6/example1.mod @@ -71,7 +71,8 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = example1.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; - [residual, g1] = example1.dynamic(y, x', M_.params, oo_.steady_state, 1); + y3n = repmat(y, 3, 1); + [residual, T_order, T] = example1.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = example1.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); save('example1.mat', 'residual', 'g1', 'TrueData'); end; diff --git a/tests/pac/var-6/substitution.mod b/tests/pac/var-6/substitution.mod index f5f1c665a..3e3e9203a 100644 --- a/tests/pac/var-6/substitution.mod +++ b/tests/pac/var-6/substitution.mod @@ -64,9 +64,10 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = substitution.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; + y3n = repmat(y, 3, 1); + [residual, T_order, T] = substitution.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = substitution.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); example1 = load('example1.mat'); - [residual, g1] = substitution.dynamic(y, x', M_.params, oo_.steady_state, 1); if max(abs(example1.TrueData.data(:)-TrueData.data(:)))>1e-9 error('Simulations do not match.') diff --git a/tests/pac/var-7/example1.mod b/tests/pac/var-7/example1.mod index ccda33575..1520c842e 100644 --- a/tests/pac/var-7/example1.mod +++ b/tests/pac/var-7/example1.mod @@ -73,7 +73,8 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = example1.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; - [residual, g1] = example1.dynamic(y, x', M_.params, oo_.steady_state, 1); + y3n = repmat(y, 3, 1); + [residual, T_order, T] = example1.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = example1.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); save('example1.mat', 'residual', 'g1', 'TrueData'); end; diff --git a/tests/pac/var-7/substitution.mod b/tests/pac/var-7/substitution.mod index 1e906fe72..7dba54ed2 100644 --- a/tests/pac/var-7/substitution.mod +++ b/tests/pac/var-7/substitution.mod @@ -67,9 +67,10 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = substitution.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; + y3n = repmat(y, 3, 1); + [residual, T_order, T] = substitution.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = substitution.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); example1 = load('example1.mat'); - [residual, g1] = substitution.dynamic(y, x', M_.params, oo_.steady_state, 1); if max(abs(example1.TrueData.data(:)-TrueData.data(:)))>1e-9 error('Simulations do not match.') diff --git a/tests/pac/var-8/example1.mod b/tests/pac/var-8/example1.mod index 8885873b5..1c0d230ab 100644 --- a/tests/pac/var-8/example1.mod +++ b/tests/pac/var-8/example1.mod @@ -84,7 +84,8 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = example1.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; - [residual, g1] = example1.dynamic(y, x', M_.params, oo_.steady_state, 1); + y3n = repmat(y, 3, 1); + [residual, T_order, T] = example1.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = example1.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); save('example1.mat', 'residual', 'g1', 'TrueData'); end; diff --git a/tests/pac/var-8/substitution.mod b/tests/pac/var-8/substitution.mod index 9f909dbb3..f4a75ef26 100644 --- a/tests/pac/var-8/substitution.mod +++ b/tests/pac/var-8/substitution.mod @@ -64,9 +64,10 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = substitution.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; + y3n = repmat(y, 3, 1); + [residual, T_order, T] = substitution.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = substitution.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); example1 = load('example1.mat'); - [residual, g1] = substitution.dynamic(y, x', M_.params, oo_.steady_state, 1); if max(abs(example1.TrueData.data(:)-TrueData.data(:)))>1e-9 error('Simulations do not match.') diff --git a/tests/pac/var-9/example1.mod b/tests/pac/var-9/example1.mod index 0a5fcda4a..ce91ee613 100644 --- a/tests/pac/var-9/example1.mod +++ b/tests/pac/var-9/example1.mod @@ -88,7 +88,8 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = example1.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; - [residual, g1] = example1.dynamic(y, x', M_.params, oo_.steady_state, 1); + y3n = repmat(y, 3, 1); + [residual, T_order, T] = example1.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = example1.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); save('example1.mat', 'residual', 'g1', 'TrueData'); end; diff --git a/tests/pac/var-9/substitution.mod b/tests/pac/var-9/substitution.mod index d9e70378b..203a58301 100644 --- a/tests/pac/var-9/substitution.mod +++ b/tests/pac/var-9/substitution.mod @@ -65,9 +65,10 @@ verbatim; y(1:M_.orig_endo_nbr) = rand(M_.orig_endo_nbr, 1); x = randn(M_.exo_nbr,1); y = substitution.set_auxiliary_variables(y, x, M_.params); - y = [y(find(M_.lead_lag_incidence(1,:))); y]; + y3n = repmat(y, 3, 1); + [residual, T_order, T] = substitution.sparse.dynamic_resid(y3n, x', M_.params, oo_.steady_state); + g1 = substitution.sparse.dynamic_g1(y3n, x', M_.params, oo_.steady_state, M_.dynamic_g1_sparse_rowval, M_.dynamic_g1_sparse_colval, M_.dynamic_g1_sparse_colptr, T_order, T); example1 = load('example1.mat'); - [residual, g1] = substitution.dynamic(y, x', M_.params, oo_.steady_state, 1); if max(abs(example1.TrueData.data(:)-TrueData.data(:)))>1e-9 error('Simulations do not match.') -- GitLab