From c99514b3dba266eb6c9dd58d1c48da04e1f19c7b Mon Sep 17 00:00:00 2001 From: Marco Ratto <marco.ratto@ec.europa.eu> Date: Thu, 14 Dec 2023 19:32:27 +0100 Subject: [PATCH] replace length(find()) instances with sum() --- matlab/+occbin/solve_one_constraint.m | 4 ++-- matlab/+occbin/solve_two_constraints.m | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/matlab/+occbin/solve_one_constraint.m b/matlab/+occbin/solve_one_constraint.m index 9c60f732e4..b8a16fb4a1 100644 --- a/matlab/+occbin/solve_one_constraint.m +++ b/matlab/+occbin/solve_one_constraint.m @@ -219,7 +219,7 @@ for shock_period = 1:n_shocks_periods % if max_check_ahead_periods<inf, enforce unconstrained regime for period larger than max_check_ahead_periods binding_constraint_new=[binding.constraint_1(1:end_periods);last_indicator]; relaxed_constraint_new = [relax.constraint_1(1:end_periods);not(last_indicator)]; - number_of_periods_with_violations(iter) = length(find(binding_indicator -((binding_indicator | binding_constraint_new) & ~(binding_indicator & relaxed_constraint_new)))); + number_of_periods_with_violations(iter) = sum(binding_indicator -((binding_indicator | binding_constraint_new) & ~(binding_indicator & relaxed_constraint_new))); regime_exit_period(iter) = max(regime_history(shock_period).regimestart); if curb_retrench % apply Gauss-Seidel idea of slowing down the change in the guess @@ -259,7 +259,7 @@ for shock_period = 1:n_shocks_periods if size(binding_indicator,1)== size(binding_indicator_history{kiter},1) % vvv = [binding_indicator_history{kiter}; false(size(binding_indicator,1)- size(binding_indicator_history{kiter},1), 1)]; % is_periodic(kiter) = isequal(vvv, binding_indicator); - is_periodic(kiter) = isequal(binding_indicator_history{kiter}, binding_indicator) && length(find(binding_indicator_history{iter}-binding_indicator))<=opts_simul_.periodic_solution_threshold; + is_periodic(kiter) = isequal(binding_indicator_history{kiter}, binding_indicator) && sum(binding_indicator_history{iter}-binding_indicator)<=opts_simul_.periodic_solution_threshold; else is_periodic(kiter)=false; end diff --git a/matlab/+occbin/solve_two_constraints.m b/matlab/+occbin/solve_two_constraints.m index ba4bdfeec7..f4c24f14a5 100644 --- a/matlab/+occbin/solve_two_constraints.m +++ b/matlab/+occbin/solve_two_constraints.m @@ -243,8 +243,8 @@ for shock_period = 1:n_shocks_periods binding_constraint_new=[binding.constraint_1(1:end_periods);last_indicator; binding.constraint_2(1:end_periods);last_indicator]; relaxed_constraint_new = [relax.constraint_1(1:end_periods);not(last_indicator); relax.constraint_2(1:end_periods);not(last_indicator)]; - tmp_nper(1) = length(find(binding_indicator(:,1) - (binding_indicator(:,1) | [binding.constraint_1(1:end_periods);last_indicator]) & ~(binding_indicator(:,1) & [relax.constraint_1(1:end_periods);not(last_indicator)]))); - tmp_nper(2) = length(find(binding_indicator(:,2) - (binding_indicator(:,2) | [binding.constraint_2(1:end_periods);last_indicator]) & ~(binding_indicator(:,2) & [relax.constraint_2(1:end_periods);not(last_indicator)]))); + tmp_nper(1) = sum(binding_indicator(:,1) - (binding_indicator(:,1) | [binding.constraint_1(1:end_periods);last_indicator]) & ~(binding_indicator(:,1) & [relax.constraint_1(1:end_periods);not(last_indicator)])); + tmp_nper(2) = sum(binding_indicator(:,2) - (binding_indicator(:,2) | [binding.constraint_2(1:end_periods);last_indicator]) & ~(binding_indicator(:,2) & [relax.constraint_2(1:end_periods);not(last_indicator)])); number_of_periods_with_violations(iter) = max(tmp_nper); regime_exit_period(iter,1) = max(regime_history(shock_period).regimestart1); regime_exit_period(iter,2) = max(regime_history(shock_period).regimestart2); @@ -290,7 +290,7 @@ for shock_period = 1:n_shocks_periods if size(binding_indicator,1)== size(binding_indicator_history{kiter},1) % vvv = [binding_indicator_history{kiter}; false(size(binding_indicator,1)- size(binding_indicator_history{kiter},1), 1)]; % is_periodic(kiter) = isequal(vvv, binding_indicator); - is_periodic(kiter) = isequal(binding_indicator_history{kiter}, binding_indicator) && length(find(binding_indicator_history{iter}(:,1)-binding_indicator(:,1)))<=opts_simul_.periodic_solution_threshold && length(find(binding_indicator_history{iter}(:,2)-binding_indicator(:,2)))<=opts_simul_.periodic_solution_threshold; + is_periodic(kiter) = isequal(binding_indicator_history{kiter}, binding_indicator) && sum(binding_indicator_history{iter}(:,1)-binding_indicator(:,1))<=opts_simul_.periodic_solution_threshold && sum(binding_indicator_history{iter}(:,2)-binding_indicator(:,2))<=opts_simul_.periodic_solution_threshold; else is_periodic(kiter)=false; end -- GitLab