Sébastien Villemot
9d99dafdd7
Dynare++: ensure that exception gives meaningful message if BK conditions not satisfied
...
Previously, if Blanchard-Kahn conditions were not satisfied, there was the
possibility an exception about NaN/Inf values in gy/gu was raised *before* the
exception about BK itself, leading to a confusing message. This commits moves
the test for BK before the test for NaN/Inf in gy/gu.
Closes : #674
2019-11-19 15:19:34 +01:00
Sébastien Villemot
6ff7d4c56c
C++17: use structured bindings instead of std::tie
2019-09-11 16:06:35 +02:00
Sébastien Villemot
7cc4aad8b6
Dynare++: update copyright information
...
— Ondra Kamenik has agreed to the relicensing of utils and parser modules to
GPL
— add DynareTeam’s copyright, since we have made a lot of modifications
— add proper copyright notices in all files
2019-06-19 15:02:41 +02:00
Sébastien Villemot
09b8397f44
Dynare++: improvements to comments (last batch!)
...
[skip ci]
2019-06-11 16:58:32 +02:00
Sébastien Villemot
7599bc1069
Dynare++: improve comments
...
[skip ci]
2019-06-05 18:17:43 +02:00
Sébastien Villemot
72ad793d85
Dynare++: improvements to comments
...
[skip ci]
2019-05-22 17:25:58 +02:00
Sébastien Villemot
c7cd325e4e
Dynare++: improvements to comments
2019-05-10 18:41:38 +02:00
Sébastien Villemot
b9f92b69be
Dynare++: replace some uses of std::vector by a lighter std::unique_ptr
2019-04-30 12:58:21 +02:00
Sébastien Villemot
26778ea666
Dynare++: drop unmaintained R stuff
2019-04-26 14:44:36 +02:00
Sébastien Villemot
0b9b69f638
Dynare++: various simplifications
2019-04-24 17:47:15 +02:00
Sébastien Villemot
9a869560e6
Dynare++ main: various modernizations
2019-04-23 19:14:51 +02:00
Sébastien Villemot
f5e2bfc30a
Ask GCC to warn about C-style casts (-Wold-style-cast)
...
Adapt the code accordingly.
2019-04-23 13:03:20 +02:00
Sébastien Villemot
c9bdc2c885
Dynare++: simplify methods for getting number of columns and rows of a matrix
...
Previously there were GeneralMatrix::numRows() and TwoDMatrix::nrows() for doing
the same thing (and same for columns and Const versions).
Merge these two into GeneralMatrix::nrows().
2019-04-16 12:44:02 +02: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
Sébastien Villemot
fe9a691969
Dynare++: simplification of platform-specific routines for available memory
2019-04-01 18:42:35 +02:00
Sébastien Villemot
a6ff8495cd
Dynare++: use portable C++11 primitive for detecting the number of logical processors
2019-04-01 18:42:35 +02:00
Houtan Bastani
51d7508c7f
dynare++: _SC_AVPHYS_PAGES is not defined on macOS
2019-04-01 15:47:35 +02:00
Sébastien Villemot
418cfa558b
Dynare++: fix compilation failure under macOS
...
We still need to properly define available memory.
[skip ci]
2019-04-01 11:22:04 +02:00
Sébastien Villemot
149fde1e74
Dynare++: detect Windows by testing for _WIN32 rather than __MINGW32__
2019-04-01 11:16:04 +02:00
Sébastien Villemot
44b40bbf09
Dynare++: improvements to comments
...
[skip ci]
2019-03-28 18:59:34 +01:00
Sébastien Villemot
5958848145
Dynare++: improve comments using Unicode (first batch)
...
[skip ci]
2019-03-27 19:22:51 +01:00
Sébastien Villemot
4c11e9e9ec
Dynare++ kord and MEX: various modernizations and improvements
2019-03-07 19:46:15 +01:00
Sébastien Villemot
598f0193d5
Dynare++ kord library: make test failures fatal
...
Required an increase for the error tolerance of SW-like models tests.
By the way, decrease the tolerance for the small model.
2019-03-07 11:34:30 +01:00
Sébastien Villemot
a7de121b01
Dynare++ kord library: some equations were incorrectly omitted from residual error checking
2019-03-07 10:39:33 +01:00
Sébastien Villemot
14f85cf448
Dynare++ kord library: various modernizations and improvements
...
Note that I removed several #define whose purpose was to avoid typing "typename
ctraits<t>::…". Even though this tends to complicates the code, this is
probably safer, especially since the #define was capturing a free variable (t).
2019-03-06 18:43:04 +01:00
Sébastien Villemot
6d99b6d120
Dynare++ kord library: various modernizations and simplifications
2019-03-05 18:35:35 +01:00
Sébastien Villemot
7fd95a6b72
Dynare++ kord library: use modern pseudo-random number generators
2019-03-05 12:29:17 +01:00
Sébastien Villemot
81d9b08050
Dynare++ tensor library: various modernizations/improvements
2019-02-27 19:07:01 +01:00
Sébastien Villemot
07ef21fdc7
Dynare++: more explicit interface for unfolding an IntSequence wrt a Symmetry
2019-02-27 15:29:06 +01:00
Sébastien Villemot
a062ea2b69
Dynare++ tensor library: various modernizations
2019-02-26 18:59:45 +01:00
Sébastien Villemot
1639f75a3c
Dynare++: improve interface to not-in-place matrix multiplications
2019-02-26 18:59:45 +01:00
Sébastien Villemot
e3967bda9a
Dynare++: improve interface to matrix transpose
2019-02-26 18:59:45 +01:00
Sébastien Villemot
58bdee12c3
Dynare++ tensor library: refactor static stuff
...
- encapsulate it more clearly
- make it thread safe
- put back the Pascal triangle initialization stuff removed in 9512a32ad0
2019-02-21 19:00:50 +01:00
Sébastien Villemot
b72857d4ce
Dynare++: the get() method of tensor containers now return a reference
...
Previously it was returning a pointer, which is non-standard for containers,
and was leading to ugly dereferencing everywhere.
2019-02-20 18:06:58 +01:00
Sébastien Villemot
ff57451474
Dynare++: simplifications made possible by new init-list constructor of IntSequence
2019-02-20 17:04:37 +01:00
Sébastien Villemot
b5793ddd22
Dynare++: use std::unique_ptr for storage inside tensor containers
2019-02-20 17:04:34 +01:00
Sébastien Villemot
9512a32ad0
Dynare++: remove duplicate implementation of the Pascal triangle
...
As a consequence, the singleton implementation has to be made thread-safe.
Also implement the singleton pattern using a namespace, rather than a static
instance.
2019-02-19 16:46:04 +01:00
Sébastien Villemot
5fcf563c61
Dynare++: factorize and optimize code for integer exponentiation
...
There were two implementations of integer exponentiation. Merge them into a new
file under utils/cc/.
By the way, optimize it using exponentiation by squaring.
2019-02-19 15:50:07 +01:00
Sébastien Villemot
e91f48f2ce
Dynare++: modernize kord tests
2019-02-14 15:47:58 +01:00
Sébastien Villemot
db6df6c73c
Dynare++ kord test: use modern pseudo-random number generator
2019-02-14 11:45:15 +01:00
Sébastien Villemot
49f85ceaca
Dynare++: rollback the std::shared_ptr change in Vector and ConstVector
...
The performance cost is too high to warrant the change.
2019-02-14 11:29:18 +01:00
Sébastien Villemot
8dbc08e2c2
Dynare++: display real time elapsed in kord tests
...
Previously, only CPU time was displayed, which is misleading with
multithreading.
2019-02-13 18:31:03 +01:00
Sébastien Villemot
d9f0345213
Drop support for MatIO < 1.5
2019-02-12 15:58:29 +01:00
Sébastien Villemot
44d47ee560
Dynare++: refactor iterator over symmetries
...
Simplify the logic of iteration. Adapt the range-based for loop syntax.
2019-02-12 12:17:07 +01:00
Sébastien Villemot
1f7d3beddc
Dynare++ tensor library: modernize the Symmetry class
...
We now use a initializer list constructor for creating symmetries of the form
$y^n$, $y^n u^m$, $y^nu^m\sigma^k$.
The constructor taking a single integer is used to initialize a symmetry of a
given length.
Similar changes are made to IntSequence.
This behavior is similar to std::vector.
2019-02-11 16:45:07 +01:00
Sébastien Villemot
19cc08b7e5
Dynare++: modernization and simplification of the IntSequence class
...
Similarly to Vector, it now uses a std::shared_ptr for managing the underlying
data.
2019-02-06 19:00:46 +01:00
Sébastien Villemot
af722f438f
Dynare++: drop remaining "using namespace std"
2019-02-06 19:00:46 +01:00
Sébastien Villemot
8698b4c540
Dynare++: fix computation of IRFs
...
Since the introduction of the --burn option (in Dynare++ shipped with Dynare
4.3.0), the IRFs reported by Dynare++ were wrong.
The IRFs are computed using a generalized IRF method: the result is
the (average) difference between a simulation with shock and a simulation
without shock. The problem was that the two simulations were not using the same
starting point.
Closes #1634
2019-02-05 17:18:21 +01:00
Sébastien Villemot
edda6e3038
Dynare++ multithreading: simplification of mutex interface
2019-01-29 15:53:44 +01:00
Sébastien Villemot
752a02a36c
Dynare++: use C++11 threads (instead of POSIX threads API)
...
On Windows, this means that a POSIX threads implementation is no longer needed,
since C++11 threads are implemented using native Windows threads.
On GNU/Linux and macOS, POSIX threads are still used under the hood.
A new m4 macro (AX_CXX11_THREAD) is used to add the proper compilation
flags (instead of AX_PTHREAD).
2019-01-28 18:44:24 +01:00