dynare/mex/sources/block_trust_region
Sébastien Villemot d574705b4a
Design and performance improvement to solve_algo={12,14}
Use the new time-recursive block decomposition computed by the preprocessor
for:
- the simulation of backward models with “simul_backward”
- the perfect foresight simulation of purely backward/forward/static models

Also note that in this case, the preprocessor now defaults to “mfs=3” (i.e. it
minimizes the set of feedback variables and tries to renormalize equations).

This replaces the previous algorithm based on Dulmage-Mendelsohn (dmperm), plus
an ad hoc identification of some equations that can be evaluated (those with a
LHS equal to a variable, the log of a variable, or the diff-log of a variable).

By the way, the block_trust_region MEX has been modified so that it accepts a
boolean argument to decide whether it performs a Dulmage-Mendelsohn
decomposition (if not, then it performs a simple trust region on the whole
nonlinear system).

This provides a significant performance improvement (of almost an order of
magnitude for solve_algo=14 on a 700 equations model).
2022-11-30 14:47:57 +01:00
..
test Add new block_trust_region MEX 2019-12-03 16:17:16 +01:00
dulmage_mendelsohn.f08 Use secure URL for link to GNU licenses 2021-06-09 17:35:05 +02:00
matlab_fcn_closure.F08 block_trust_region MEX: add support for sparse Jacobian 2022-11-30 14:47:57 +01:00
mexFunction.f08 Design and performance improvement to solve_algo={12,14} 2022-11-30 14:47:57 +01:00
trust_region.f08 Revert update if residuals or jacobian have NaNs (block_trust_region). 2022-03-25 19:42:40 +01:00