Commit Graph

47 Commits (2f13d6610d6842adc4a4b448eb45ebd4223967e6)

Author SHA1 Message Date
Sébastien Villemot 22ab507c6c
Global reindentation of Dynare++ 2019-12-20 15:43:17 +01:00
Sébastien Villemot d69fadc362
Dynare++: improvements to comments 2019-06-19 17:35:01 +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 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
Houtan Bastani 4120ce6730
dynare++: include needed on macOS 2019-04-01 14:54:20 +02:00
Sébastien Villemot 449553e7b6
Dynare++: various improvements 2019-03-08 15:32:30 +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 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 af722f438f
Dynare++: drop remaining "using namespace std" 2019-02-06 19:00:46 +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
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
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 b8791e9f13
Dynare++: various modernizations of numerical integration library 2019-01-14 18:56:49 +01:00
Sébastien Villemot 4a72266d05
Dynare++: use std::unique_ptr for memory management of workers in thread groups 2019-01-14 12:35:46 +01:00
Sébastien Villemot a8f12c5b76
A few more modernizations with clang-tidy 2019-01-10 14:50:49 +01:00
Sébastien Villemot e45d230a3d
Rename .dat file to standard .hh extension 2019-01-10 14:29:58 +01:00
Sébastien Villemot 6076a4ff0c
Remove Emacs local mode variable
No longer needed now that files have C++-specific extensions.
2019-01-10 14:26:14 +01:00
Sébastien Villemot 60fd92ddce
Port to C++11 override keyword
Performed using modernize-use-override from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-override.html
2019-01-09 16:26:42 +01:00
Sébastien Villemot 9656904d41
Port to C++11 nullptr keyword
Performed using modernize-use-nullptr from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2019-01-09 16:25:31 +01:00
Sébastien Villemot 197cbea919
Port to C++11 syntax for default constructors
Performed using modernize-use-equals-default from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-equals-default.html
2019-01-09 16:16:29 +01:00
Sébastien Villemot 1052046954
Port to C++11 emplace() method on containers
Performed using modernize-use-emplace from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-emplace.html
2019-01-09 16:00:05 +01:00
Sébastien Villemot cbcd0a6950
Port to C++11 default members initializers
Performed using modernize-use-default-member-init from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-default-member-init.html
2019-01-09 15:58:45 +01:00
Sébastien Villemot 966a1c2ac0
Port to C++11 auto keyword
Performed using modernize-use-auto from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-auto.html
2019-01-09 15:51:19 +01:00
Sébastien Villemot 2024330568
Port to C++11 range-based for loops
Performed using modernize-loop-convert from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-loop-convert.html
2019-01-09 15:44:26 +01:00
Sébastien Villemot ba609cce07
No need to redefine PI constant for MinGW 2019-01-08 17:46:36 +01:00
Sébastien Villemot 188d6296d7
Dynare++: finish to apply Dynare C++ coding style and extensions (.cc/.hh) 2019-01-08 17:12:05 +01:00
Sébastien Villemot ce1ef47093
dynare++ / tensor library (TL): move away from CWEB
By the way apply Dynare C++ coding style and extensions (.cc/.hh).
2019-01-08 16:09:25 +01:00
Sébastien Villemot 84255f9e9a
dynare++/integ: move away from CWEB
By the way apply Dynare C++ coding style and extensions (.cc/.hh).
2019-01-04 17:28:20 +01:00
Sébastien Villemot 671fe4bcd4
Build system improvements on Windows (MinGW / MSYS2)
- Use the -static flag when linking Dynare++, so that shipping libquadmath and
  libgcc DLL in the installer is no longer needed.

- Use AM_CXXFLAGS and AM_LDFLAGS variables for changing flags, since CXXFLAGS
  and LDFLAGS are user variables. Also, this avoids passing these flags down to
  configure scripts in subdirectories.

- Check for the SZIP library in the configure test for the MatIO, this is
  needed under MSYS2.

- Statically link MatIO and GSL in MEX files for MATLAB, this is needed under
  MSYS2.
2018-11-06 12:17:56 +01:00
Stéphane Adjemian (Charybdis) 1229372a6c Defines M_PI (cross compilation for Octave). 2016-12-01 13:32:54 +01:00
Sébastien Villemot cdcfc23037 Dynare++ documentation: split comment lines (they are too long for old versions of pdftex)
(problem introduced in beb3b7f9c4)
2011-03-22 10:36:36 +01:00
Sébastien Villemot beb3b7f9c4 Dynare++ documentation: fix invalid PDF problems 2011-03-11 12:33:43 +01:00
Sébastien Villemot a3640239ab Removed all MSVC workarounds, since we can now definitely drop this compiler on
Windows/64-bit platform
2010-09-21 15:06:14 +02:00
sebastien 295f998503 Dynare++ and k_order_perturbation DLL:
* support Microsoft Visual C++ 2008 compiler (necessary for 64-bit 
platforms)
* use standard C++ headers for C Standard Library support


git-svn-id: https://www.dynare.org/svn/dynare/trunk@3121 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-11-03 14:16:18 +00:00
sebastien 343e0b3c7d Build system: refactored the build system for MEX files, using two sub-packages with their own configure scripts
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3019 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-02 17:22:19 +00:00
sebastien 1443f112bb * Added back korderpert DLL to build system
* Fixes to Dynare++ for special LAPACK/BLAS integers in MATLAB
* Fixes to korderpert DLL for cross-platform compatibility


git-svn-id: https://www.dynare.org/svn/dynare/trunk@3009 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-02 10:23:49 +00:00
sebastien dde3f3795f Build system:
* Simplified the way we deal with various Octave/MATLAB contexts from MEX files:
  - only three defines: MATLAB_MEX_FILE, MATLAB_VERSION (hex number) and OCTAVE_MEX_FILE
  - one header for MEX files: dynmex.h
  - headers for BLAS and LAPACK: dynblas.h and dynlapack.h (used from Dynare++ and the MEX files)
* Merged the two sources trees of sylvester library


git-svn-id: https://www.dynare.org/svn/dynare/trunk@3006 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-01 14:17:02 +00:00
sebastien 834c6002f6 Build system: fix for Dynare++ with ctangle/cweb and dummy changelog issue
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3005 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-01 11:21:42 +00:00
sebastien 5d52ded375 Build system: minor fix for PDF files documenting Dynare++ src code
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2979 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-24 16:40:14 +00:00
sebastien edea5b303b Build system: fixes for creation of the tarball
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2968 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-24 10:15:59 +00:00
sebastien af2e195d56 Build system: test for eplain (TeX package needed for Dynare++ source documentation)
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2947 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-18 09:28:30 +00:00
sebastien 345a3e587a New build system for standalone dynare++
Note that dynare++ will only be built if configure finds ctangle, blas, lapack and pthreads


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2922 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-11 17:34:15 +00:00
sebastien 0318615ed8 Various minor fixes to dynare++ documentation
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2920 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-11 17:08:55 +00:00
sebastien b92b48c58e Putting dynare++ under main dynare SVN repository
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2905 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-08 13:55:19 +00:00