Sébastien Villemot
a8351130f1
Bytecode MEX: bugfix in error message printing
...
Class Evaluate had data members with the same name as members of
ErrorMsg (which it derives from). In practice, this means that the data members
from ErrorMsg could be unitialized when displaying error messages.
2022-07-25 15:07:52 +02:00
Sébastien Villemot
feb10b75e6
Bytecode MEX: minor fix to debug mode
2022-07-20 16:19:49 +02:00
Sébastien Villemot
e87d643084
Preprocessor: various refactorings, mainly bytecode-related
2022-07-20 16:18:02 +02:00
Sébastien Villemot
b29dde227d
Preprocessor: various refactorings (mainly bytecode)
2022-07-08 16:05:33 +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
8be6f55bf6
Bytecode MEX: remove unused function parameters
2022-07-05 12:12:08 +02:00
Sébastien Villemot
b05ef5dd7f
Bytecode MEX: remove unused function
2022-07-05 12:11:32 +02:00
Sébastien Villemot
8dba4ec68c
Bytecode: minor fixes to debug mode
2022-06-24 12:53:19 +02:00
Sébastien Villemot
8a0eb76b1b
Use operator""s to replace some calls to std::string constructor
...
By the way, remove other unnecessary calls to that constructor.
2022-06-22 12:51:08 +02:00
Sébastien Villemot
0107365f6a
Bytecode: stop using unsigned integers where signed ones avoid unnecessary casts
2022-06-20 17:52:01 +02:00
Sébastien Villemot
8bee62fa5e
Bytecode: directly use several enums inside instruction classes
2022-06-20 17:51:59 +02:00
Sébastien Villemot
a2d0ac3586
Bytecode: remove unused expression types
2022-06-17 16:32:59 +02:00
Sébastien Villemot
0719f749e7
Bytecode: remove unused opcodes
2022-06-17 16:32:50 +02:00
Sébastien Villemot
3cc4aeb826
Preprocessor: split CodeInterpreter.hh into two headers
2022-06-16 18:05:00 +02:00
Sébastien Villemot
06f665e231
Perfect foresight: LBJ now available under stack_solve_algo=1 (with/without block/bytecode)
...
Previously, LBJ was available:
– under stack_solve_algo=6 when neither block nor bytecode were present
– under stack_solve_algo=1 with either block or bytecode (but the documentation
was not making it clear that it was LBJ)
This commit merges the two values for the option, and makes them
interchangeable. LBJ should now be invoked with stack_solve_algo=1 (but
stack_solve_algo=6 is kept for compatibility, and is a synonymous).
2022-06-15 15:06:33 +02:00
Sébastien Villemot
9cc5a5576e
Bytecode: some clean ups around checks for “stack_solve_algo” value
2022-06-15 14:28:41 +02:00
Sébastien Villemot
5db070e9dd
Bytecode: fix inconsistency in memory manager
...
The variable “gap” is compared to zero, so the intent probably was that it
could be negative. But size_t is an unsigned type. Rather use a signed type.
2022-06-07 17:26:45 +02:00
Sébastien Villemot
41ccfd4068
Bytecode: use braces (instead of $ and £) to highlight floating-point errors in expressions
2022-05-05 17:10:27 +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
2d73ae2971
Bytecode: fix typo
2022-03-16 15:00:09 +01:00
Sébastien Villemot
96fb676be7
Bytecode: fix stack_solve_algo=4 when a “solve backward/forward” block follows a “solve two boundaries” block
...
When solving a “Solve two boundarise” block with stack_solve_algo=4, the
“slowc” variable is modified. This would affect the resolution of further
“solve backward/forward” blocks, which would yield results.
The fix consists in saving and restoring “slowc”.
2022-03-15 17:42:03 +01:00
Sébastien Villemot
65e18fe883
Bytecode: fix stack_solve_algo=4 on linear blocks
...
Only one iteration is performed on linear blocks. But in the case of
stack_solve_algo=4 it is not enough, since it will not find the right optimal
path lenght at the first iteration (even though that optimal path length is
ufnitary).
2022-03-01 11:29:29 +01:00
Sébastien Villemot
dbbbb75874
Bytecode: fix typo, replace “substract” by “subtract”
2022-02-28 18:47:20 +01:00
Sébastien Villemot
67a003aa73
Bytecode: fix stack_solve_algo=1 (relaxation method)
...
There were various issues with the construction of sparse submatrices.
By the way, refactor and document the code to make it more readable.
2022-02-28 18:47:20 +01:00
Sébastien Villemot
811e53f9ad
Bytecode: document matrix computation routines
2022-02-28 18:47:20 +01:00
Sébastien Villemot
59b8ee9c33
Bytecode: remove unused matrix subtraction routine
2022-02-28 18:47:20 +01:00
Sébastien Villemot
a7cc466285
Bytecode: fix bug in sparse matrix multiplication routines
...
Since those routines compute Aᵀ·B, the number of rows of the output is equal to
the number of columns of A.
2022-02-28 12:18:58 +01:00
Sébastien Villemot
8536b63827
Bytecode: remove superfluous debug information
2022-02-18 14:17:37 +01:00
Sébastien Villemot
972461c326
Bytecode: add debugging information about input arguments
2022-02-17 17:41:10 +01:00
Sébastien Villemot
a376d8c9fe
Fix steady state computation with bytecode+block and solve_algo ⩽ 4 or ⩾ 9
...
– Temporary terms were not correctly passed between blocks
– solve_algo ⩾ 9 was incorrectly passed through bytecode own’s solver instead
of through dynare_solve
2022-02-17 17:28:37 +01:00
Sébastien Villemot
ceb3ec2487
Bytecode: remove unused constructors
2022-02-15 16:54:41 +01:00
Sébastien Villemot
863fa2de1c
Bytecode: perfect foresight simulation of *linear* “Solve forward simple/complete” blocks was giving was results
2022-02-15 16:54:41 +01:00
Sébastien Villemot
803e3721ec
Bytecode: correctly handle M_.{endo_names,exo_names,param_names}, which are now cell arrays
2022-02-14 15:06:07 +01:00
Sébastien Villemot
92e82cfa0a
Bytecode: remove unused function prototype
2022-02-14 14:40:34 +01:00
Sébastien Villemot
188df7711d
Bytecode: fix simulation of blocks “Solve forward/backward complete” with stack_solve_algo={0,1,4}
...
The problem would also manifest at steady state computation with solve_algo=6.
It could crash or give incorrect results.
2022-02-11 12:00:25 +01:00
Sébastien Villemot
d74cb031d2
Bytecode: fix error message about convergence failure that can happen in Solve Backward Complete as well
2022-02-10 17:27:07 +01:00
Sébastien Villemot
cdb4f872b2
Bytecode: fix crash with stack_solve_algo=1 on “Solve forward/backward” blocks
2022-02-10 17:15:24 +01:00
Sébastien Villemot
ef6e4c7745
Bytecode: remove unused code
2022-02-10 16:58:39 +01:00
Sébastien Villemot
0caefa1593
Bytecode: exit gracefully when M_ does not exist
2022-02-09 14:32:25 +01:00
Sébastien Villemot
5f675eee18
Add erfc() primitive
2021-12-07 17:00:59 +01:00
Sébastien Villemot
271d80abee
Bytecode: release the lock on dynamic.bin when an exception occurs
...
Closes : #1815
2021-09-20 17:28: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
1a0ee5f055
Bytecode / sparse transpose: bug fix
...
The Jc vector has n+1 elements, where n is the number of columns. Moreover, the
size passed to memset() was wrong.
2021-02-09 16:05:11 +01:00
Sébastien Villemot
c9f6d3a626
Bytecode: more simplifications and modernizations
2021-02-09 16:00:53 +01:00
Sébastien Villemot
4a1dbc5ca4
Bytecode: fix bug introduced in previous commit
...
map::at() does bound checking, and throws an exception if out-of-range,
contrary to [] operator which returns a new element.
2021-02-03 19:52:25 +01:00
Sébastien Villemot
4893f0e82c
Bytecode: various simplifications and modernizations
2021-02-03 18:10:31 +01:00
Sébastien Villemot
30cfb0b03c
Bytecode: bugfix in conditional forecast
2021-02-01 17:54:36 +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
bb5f58f55f
Bytecode: remove useless constant redefinition
2021-02-01 15:26:33 +01:00