Commit Graph

59 Commits (bb3aa0a206d3ef023206f7cf38334c6a05059160)

Author SHA1 Message Date
Sébastien Villemot dcf56b89cd
Bytecode: rework message verbosity
Now uses options_.verbosity to decide what to print:
– if options_.verbosity == 0, prints nothing
– if options_.verbosity >= 1, prints iteration counter and duration, and fatal errors
– if options_.verbosity >= 2, additionally print floating point exceptions and
  details about algorithmic decisions
2023-06-13 16:59:07 +02:00
Sébastien Villemot 08d378c244
Bytecode: in evaluate+dynamic mode, return residuals with as many columns as periods
Previously it would also include initial and terminal conditions (i.e.
residuals would have periods+maximum_lag+maximum_lead columns). But we do not
care about residuals at the initial and terminal conditions.

This change is for consistency with the perfect_foresight_problem MEX.
2023-06-12 19:18:44 +02:00
Sébastien Villemot 030316f2d8
Bytecode: misc simplifications 2023-04-18 22:25:58 +02:00
Sébastien Villemot afe147d88d
Bytecode: the class dynSparseMatrix is no longer derived from Evaluate 2023-04-18 18:10:45 +02:00
Sébastien Villemot e22972849b
Bytecode: make Evaluate::{symbol_table, steady_state} private and const 2023-04-18 17:46:48 +02:00
Sébastien Villemot d789e6a4c5
Bytecode: move storage for variable and parameter values out of the Evaluate class 2023-04-18 17:37:33 +02:00
Sébastien Villemot 325e6487d4
Bytecode: move computation routines out of the Evaluate class 2023-02-24 15:18:43 -05:00
Sébastien Villemot 13b3208cdb
Bytecode: move all logic for navigating through the .cod file into the Evaluate class 2023-02-23 17:37:08 -05:00
Sébastien Villemot aaab993ccf
Bytecode: merge CodeLoad class into Evaluate 2023-02-23 11:21:22 -05:00
Sébastien Villemot 895ce96c61
Bytecode: fix memory management for FBEGINBLOCK and FCALL tags
FCALL was not properly deallocated, hence leading to a memory leak.
Also simplify the handling of FBEGINBLOCK through a std::unique_ptr.
2023-02-21 16:58:45 -05:00
Sébastien Villemot 1ad6b29936
Bytecode: misc minor simplifications 2023-02-21 16:31:08 -05:00
Sébastien Villemot 24b2976ac2
Bytecode: move CodeLoad class out of the preprocessor 2023-02-21 16:02:21 -05:00
Sébastien Villemot 05ba2970be
Bytecode: diminish the number of data members in Evaluate class 2023-02-17 13:46:41 -05:00
Sébastien Villemot 0c5c96e724
Bytecode w/ block decomposition: no longer output derivatives w.r.t. exogenous and endogenous outside the block 2023-01-17 14:24:02 +01:00
Sébastien Villemot f84753025d
Bytecode: the block and non-block versions now coexist in parallel
As a consequence, a new “block_decomposed” option of the bytecode MEX has been
introduced to explicitly select the block-decomposed version.

Note that we do not always use the “block_decomposed” option even when the
“block” option has been passed to the user, in situations where the block
decomposition brings nothing (e.g. when evaluating the residuals of the whole
model).
2023-01-09 15:20:46 +01:00
Sébastien Villemot e22ca82ab6
Bytecode MEX: drop the ErrorMsg class and integrate most of its members inside the Evaluate class 2022-07-29 13:04:31 +02:00
Sébastien Villemot 4ec6c0dab4
Bytecode MEX: streamline preprocessor guards in includes 2022-07-29 12:40:33 +02:00
Sébastien Villemot 6e1635658f
Bytecode MEX: split out code for dealing with variable names into a dedicated BasicSymbolTable class 2022-07-28 16:56:40 +02:00
Sébastien Villemot b3cff2d34d
Bytecode: remove incomplete/buggy support for exogenous deterministic 2022-07-05 13:02:17 +02:00
Sébastien Villemot 3cc4aeb826
Preprocessor: split CodeInterpreter.hh into two headers 2022-06-16 18:05:00 +02:00
Sébastien Villemot b4ce69db3a
Remove options_.slowc field
There was no user interface, and the feature that it provides has lost
relevance over time.

Note that algorithms for block and/or bytecode still internally use some
equivalent of this parameter, but its initial value will no longer be
modifiable (which could lead to bugs, see commit
e49e7e906f).
2022-03-31 17:39:43 +02:00
Sébastien Villemot 766fff88f6
Use secure URL for link to GNU licenses 2021-06-09 17:35:05 +02:00
Sébastien Villemot c9f6d3a626
Bytecode: more simplifications and modernizations 2021-02-09 16:00:53 +01:00
Sébastien Villemot 4893f0e82c
Bytecode: various simplifications and modernizations 2021-02-03 18:10:31 +01:00
Sébastien Villemot 967966876f
Bytecode: remove obsolete LINBCG stuff 2021-02-01 15:26:33 +01:00
Sébastien Villemot 743469bfd7
Bytecode: remove stuff for creating a standalone debugging executable
This code no longer compiles. And it’s possible to debug the MEX directly.
2021-02-01 15:26:33 +01:00
Sébastien Villemot eb29dc003a
Bytecode: remove CUDA-specific stuff 2021-02-01 15:26:31 +01:00
Sébastien Villemot 57848930c6
Use Unicode copyright symbol (in UTF-8 encoding)
Do not use it in MATLAB source files, since unfortunately the MATLAB editor
does not support UTF-8.
2019-04-16 11:42:16 +02:00
Stéphane Adjemian (Charybdis) b4448937cc Fixed indentation of c/h/cc/hh files. 2017-05-16 16:30:27 +02:00
Stéphane Adjemian (Charybdis) a53636e24e Fixed copyright notices. 2017-05-16 14:11:15 +02:00
Ferhat Mihoubi 981e31c8c3 Fix issues in bytecode with option extended_path related to the size of endo_simul and exo_simul
(cherry picked from commit ab7acc49e30fbcb292d63d58281581a308716b4c)
2017-05-08 18:40:18 +02:00
Ferhat Mihoubi 857fc3c4f4 Corrects several bugs related to bytecode:
- Memory allocation is checked
- The amount of memory allocated for conditional forecast is corrected
2017-04-05 11:48:40 +02:00
ferhat 7c5272d852 Allows to compute the extended path and the conditional forecasts with bytecode 2015-09-22 15:39:49 +02:00
Sébastien Villemot 61485ab809 Fix copyright notices 2013-06-12 17:04:46 +02:00
Ferhat Mihoubi 03e487a092 Major update of bytecode:
- Iterative linear solvers using CUDA
 - interpreter.cc decomposed
2013-03-22 15:44:34 +01:00
Sébastien Villemot 1f9cea669a Update copyright notices 2012-06-08 18:22:34 +02:00
Ferhat Mihoubi 3072c6e611 Displays more details in case of singular system 2012-03-06 11:03:13 +01:00
Stéphane Adjemian (Charybdis) 3ba5a645be Make verbosity flag effective: do not print informations about perfect foresight solvers if options_.ep.verbosity=0. 2011-12-12 14:20:14 +01:00
Ferhat Mihoubi fe1b241186 Add an option in bytecode to prevent the display of error messages . 2011-06-18 17:15:47 +02:00
Sébastien Villemot 02652f6eb8 Updated copyright notices 2011-02-04 17:27:33 +01:00
Sébastien Villemot cc2a9d90ac Global reindentation of MEX source files 2011-02-04 16:53:12 +01:00
Ferhat Mihoubi ce07223628 - The Temporary terms management with bytecode when the model is block decomposed and solve_algo<5 is now compatible with octave
- Gets rid of warning message during the compilation of bytecode
2011-01-14 19:24:18 +01:00
Ferhat Mihoubi 20f414e0d2 - Extends the error messages in bytecode
- Implements the print option in bytecode
- Minor modifications to manage the global temporary terms
2010-12-31 16:41:50 +01:00
Ferhat Mihoubi bdfa881a96 Reorganization of error handling in bytecode 2010-11-25 16:11:05 +01:00
Ferhat Mihoubi 8f36437662 - Extends the algorithms compatible with bytecode to compute the steady-state (ticket #11). The new values for solve_algo are:
* 0: fsolve
   * 1: solve1
   * 2, 4: solve1 + block decomposition
   * 3: csolve
   * 5: LU decomposition with UMFPack (method handling sparse matrix in Matlab)
   * 6: GMRES
   * 7: BiCGStab
   * 8: bytecode own solver (use Gaussian elimination + sparse matrix)

- Bytecode can now evaluate a specific block instead of the overall blocks (new bytecode's option 'Block = block_number')
2010-10-11 19:21:32 +02:00
Ferhat Mihoubi df1b1e4ed0 - In bytecode, the MATLAB function "mexErrMsgTxt" has been replaced by an exception handling see ticket #137 2010-09-24 12:52:58 +02:00
Sébastien Villemot 6c66e3d2af Bytecode DLL: include dynmex.h instead of mex.h (for compatibility with older
MATLAB)
2010-09-20 10:23:05 +02:00
Ferhat Mihoubi 77b6096962 - extends the mex_interface: bytecode's debuging purpose
- correction of memory leaks in bytecode
2010-09-17 12:17:14 +02:00
Ferhat Mihoubi 0a3c8a4b0c - compute the jacobian matrix for exogenous, det_exogenous and previous blocks endogenous
- preprocessor provides informations about the dynamic structure of each block
- extends the algorithms available with bytecode: stack_solve_algo = 1, 2, 3 and 4 is compatible the bytecode. Speed and memory requirement are improved with stack_solve_algo = 1 or 4 for large scale models.
- bytecode can be used to evaluate a model
2010-09-17 12:16:47 +02:00
Ferhat MIHOUBI 6d958b6e8d Improvement of the floating point error messages (the equation and the location of the error are displayed) 2010-02-06 15:07:56 +01:00