Commit Graph

11242 Commits (f7b332efa67d4751ca3c86a6923629038daca43d)

Author SHA1 Message Date
Stéphane Adjemia (Scylla) f7b332efa6
Removed shocks. 2019-02-04 10:04:33 +01:00
Sébastien Villemot 3e5b4084b8
Dynare++: fix bug in new threading code
At the end of a thread, we must first notify the main thread waiting on the
condition variable, then unlock the mutex. We must do these two operations in
that order, otherwise there is a possibility of having the main process
destroying the condition variable before the thread tries to notify it (if all
other threads terminate at the same time and bring the counter down to zero).
For that reason, we cannot use std::notify_all_at_thread_exit().

Bug introduced in commit 752a02a36.
2019-02-02 09:05:02 +01:00
Sébastien Villemot 44a378bf26
Add Dynare++ journals to artifacts 2019-02-02 09:05:02 +01:00
Sébastien Villemot 2bfc59bed4
Boost is no longer needed in Dynare++ 2019-02-02 09:05:02 +01:00
Houtan Bastani 18b006d46f
fix comments 2019-02-01 16:45:13 +01:00
Houtan Bastani f29d974410
add copyright and fix spacing 2019-02-01 16:42:32 +01:00
Sumudu Kankanamge 31d59d6be3 -add file to read JSON gui perfect-foresight 2019-02-01 14:54:52 +01:00
Sébastien Villemot 6e04919af9
README.md: bump GCC requirement to version 6 or later
GCC 5 supports C++14, but it is still not enough because it does not implement
N4387 that was retroactively applied to the standard in 2015 (see the "Notes"
and "Defect reports" sections of
https://en.cppreference.com/w/cpp/utility/tuple/tuple).
2019-02-01 12:31:50 +01:00
Sébastien Villemot 1238fb2071
Remove duplicate test file
Another version is already under tests/trend_var/ directory.
2019-01-31 19:01:41 +01:00
Sébastien Villemot 566d237ec3
Dynare++ tensor library: small simplification 2019-01-31 19:01:41 +01:00
Sébastien Villemot 342e8c7508
Dynare++ tensor library: further notation fixes in documentation
Also fix extensions of source files.
2019-01-31 19:01:41 +01:00
Sébastien Villemot a612c59ff3
Dynare++: remove leftover file from the transition away from CWEB 2019-01-31 19:01:40 +01:00
Houtan Bastani a68f3fc082
remove unused output from functions 2019-01-31 16:11:35 +01:00
Sébastien Villemot c15602c658
Dynare++: convert doc of Sylvester module to LaTeX
Previously it was plain TeX.

This allows us to remove the test for pdfetex.
2019-01-31 12:14:12 +01:00
Sébastien Villemot 268d540d58
Dynare++: add tl.tex to distributed tarball
By the way, simplify Makefile rules.
2019-01-31 12:11:28 +01:00
Sébastien Villemot 4f7330cb52
Dynare++: add LaTeX overview of the Tensor Library
The material of this document comes from the introduction to the library that
had been lost in the move away from CWEB (formerly tl/cc/main.web).

This file gives a good overview of the library. It has been adapted from TeX to
LaTeX. Also I fixed a mistake in the Faà di Bruno's tensor formula.
2019-01-30 19:07:57 +01:00
Sébastien Villemot a122927872
Dynare++: another change related to default number of threads
Forgotten in commit 733308807.
2019-01-29 20:31:06 +01:00
Sébastien Villemot 733308807d
Dynare++: by default, use as many threads as there are logical CPUs
The former default was 2 threads, since Dynare++ was written at a time when
hyper-threading was being generalized (but multiple cores were not).
2019-01-29 16:34:25 +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
Houtan Bastani 5ea315db20
preprocessor: submodule update 2019-01-28 17:53:36 +01:00
Houtan Bastani d32de4deae
preprocessor, reporting: submodule update 2019-01-28 15:47:40 +01:00
Houtan Bastani 266d470668
document rounding method in reporting 2019-01-28 15:27:27 +01:00
Sébastien Villemot cfc81bc5ff
Update preprocessor and dseries submodules 2019-01-28 15:16:37 +01:00
Houtan Bastani b758f56931
preprocessor: submodule update 2019-01-28 10:46:41 +01:00
Stéphane Adjemian d5db6ece5c Merge branch 'patch-1' into 'master'
Update dynare.texi

See merge request Dynare/dynare!1642
2019-01-28 08:22:21 +00:00
Wenddy SHu 163c904b49 Update dynare.texi 2019-01-28 01:38:10 +00:00
Sébastien Villemot a9e51ac4c0
Dynare++ sylvester equation solver: remove the SylvMemory class, not actually used 2019-01-25 18:43:21 +01:00
Sébastien Villemot 3ce051d819
Dynare++ sylvester equation solver: various simplifications and improvements
In particular, the test binary now errors out in case of test failure.
2019-01-25 18:43:21 +01:00
Houtan Bastani d15c998804
reporting: submodule update 2019-01-25 18:02:16 +01:00
Houtan Bastani dd4dd9be5b
preprocessor: submodule update 2019-01-25 15:07:31 +01:00
Sébastien Villemot 14fe72e11f
Add missing artefacts for Dynare++ 2019-01-24 19:57:21 +01:00
Sébastien Villemot 0ecc979116
Run dynare++ testsuite in Gitlab CI 2019-01-24 18:55:41 +01:00
Sébastien Villemot 1ef1dedc65
Refactor GeneralMatrix and ConstGeneralMatrix classes
- Remove the GeneralMatrix(const ConstVector &) constructor, since it is hides
  a memory allocation (copying the ConstVector into a fresh Vector). This
  helped detecting and fixing several unneeded memory allocations. Some other
  memory allocations are now more visible (with an explicit Vector{}
  constructor).

- Add checks in GeneralMatrix(Vector, …) and ConstGeneralMatrix(ConstVector, …)
  constructors for verifying that the {Const,}Vector has unit-stride (this was
  an implicit assumption so far) and is large enough for storing rows*cols
  elements.

- Add GeneralMatrix::operator=(const ConstGeneralMatrix &).

- Delete ConstGeneralMatrix::operator=().
2019-01-24 15:27:23 +01:00
Sébastien Villemot a2f2814cb2
Dynare++: ensure that all calls to BLAS/LAPACK use the correct LD values
Many BLAS/LAPACK calls were making the assumption that LD==rows when passing
matrices. In some cases this was correct (because of implementation details,
in particular because how the copy constructor of GeneralMatrix is implemented).
But in other cases it was a bug.

With this commit, the actual value for LD is systematically used (this fixes
existing bugs and prevent possible future ones if the implementation details
were changed).
2019-01-24 15:27:09 +01:00
Stéphane Adjemia (Scylla) 3690dc2e6f
Updated dseries submodule. 2019-01-23 17:26:08 +01:00
Stéphane Adjemia (Scylla) 2482eafdb7
Fixed dseries class initialization in Octave. 2019-01-23 15:49:55 +01:00
Sébastien Villemot fefccd4a1b
Reverts changes mistakenly added to commit f484942154. 2019-01-22 18:21:57 +01:00
Sébastien Villemot f484942154
Update dseries submodule 2019-01-22 18:10:16 +01:00
Sébastien Villemot c711d34d1d
Dynare++ / sylvester equation solver: refactor Vector and ConstVector classes
- these classes now encapsulate a std::shared_ptr<{const, }double>, so that
  they do not perform memory management, and several {Const,}Vector instances
  can transparently share the same underlying data

- make converting constructor from ConstVector to Vector explicit, since that
  entails memory allocation (but the reverse conversion is almost costless, so
  keep it implicit); do the same for GeneralMatrix/ConstGeneralMatrix,
  TwoDMatrix/ConstTwoDMatrix

- remove the constructors that were extracting a row/column from a matrix, and
  replace them by getRow() and getCol() methods on {Const,}GeneralMatrix

- rename and change the API of the complex version Vector::add(), so that it is
  explicit that it deals with complex numbers

- add constructors that take a MATLAB mxArray
2019-01-22 16:13:22 +01:00
Sébastien Villemot 49c06f5c7f
Dynare++ / sylvester equation solver: print solver method when debugging
By the way, simplify copy constructor/assignment.
2019-01-22 11:58:28 +01:00
Houtan Bastani 0c3f61f106
preprocessor: submodule update 2019-01-18 12:36:51 +01:00
Sébastien Villemot f655c170b6
Dynare++ / sylvester equation solver: second batch of modernizations 2019-01-17 10:20:49 +01:00
Houtan Bastani 026c0699aa
preprocessor: submodule update 2019-01-16 15:26:49 +01:00
Sébastien Villemot 74d22931fe
Enforce C++14 mode when compiling Dynare++ 2019-01-16 15:20:12 +01:00
Sébastien Villemot b0a7826cb9
Dynare++ / sylvester equation solver: first batch of modernizations 2019-01-15 19:04:13 +01:00
Sébastien Villemot 2666a4ce45
Dynare++: "make check" now fails if a numerical integration test fails
By the way, reactivate two tests that actually pass.
2019-01-15 19:04:13 +01:00
Sébastien Villemot 325b1a3bb5
Dynare++: remove quasi-Monte Carlo Normal quadrature
This quadrature is supposed to generate quadrature points that are
quasi-normally distributed. Basically it applies the inverse normal CDF to the
Halton low-discrepancy sequence.

The problem is that it gives poor numerical accuracy, and therefore fails the
tests.

Since it is actually used nowhere in Dynare++, remove that code.
2019-01-15 19:04:10 +01:00
Sébastien Villemot 8ebcd7cae6
Dynare++: fix check for QZ eigenvalue criterium
The criterium was previously incorrectly applied to the square absolute value
of eigenvalues. Rather apply it to the absolute value itself (as now done in
Dynare).

Ref #1632
2019-01-15 19:04:04 +01:00
Sébastien Villemot 2a82177304
Dynare++: enforce C++ Emacs mode for bison/flex files 2019-01-15 19:03:58 +01:00