Sébastien Villemot
449553e7b6
Dynare++: various improvements
2019-03-08 15:32:30 +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
29daae72b4
Dynare++: minor modernization
2019-03-01 18:40:46 +01:00
Sébastien Villemot
81d9b08050
Dynare++ tensor library: various modernizations/improvements
2019-02-27 19:07:01 +01:00
Sébastien Villemot
fc35f3a384
Dynare++: make more explicit the interface for extracting the Symmetry of an IntSequence
2019-02-27 17:01:37 +01:00
Sébastien Villemot
9751e6e199
Dynare++: simplify IntSequence by moving a special-purpose constructor into Symmetry
2019-02-27 15:43:22 +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
d86101327e
Dynare++: more explicit interface for inserting into a IntSequence
2019-02-27 14:39:47 +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
16cc191298
Dynare++ tensor library: last batch of modernizations of testsuite
2019-02-26 18:59:45 +01:00
Sébastien Villemot
c44545bb18
Dynare++: add some comments
2019-02-26 12:43:04 +01:00
Sébastien Villemot
82e7f9250d
Dynare++: make the sparse tensors assignable
2019-02-22 17:44:07 +01:00
Sébastien Villemot
8751de896b
Dynare++: make tensor containers assignable
2019-02-22 16:54:00 +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
790c56612c
Dynare++ tensor library: changes to exception handling
...
- TL_RAISE now unconditionally raises an exception
- rathe use TL_RAISE_IF at some places, to save a test in non-debug mode
2019-02-20 18:07:07 +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
c8c6ec58a6
Dynare++: simplify TLException class
2019-02-20 17:23:37 +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
9e1df25580
Dynare++: various simplifications
2019-02-20 14:36:35 +01:00
Sébastien Villemot
02d6f86487
Dynare++ tensor library: use smart pointers in fold() and unfold() methods
2019-02-20 14:25:32 +01:00
Sébastien Villemot
72a445c348
Dynare++ tensor library doc: update for TLStatic; fix typo
2019-02-20 14:00:00 +01:00
Sébastien Villemot
c0224a640c
Dynare++: small optimization in unfolded tensor indexing
2019-02-20 13:06:17 +01:00
Sébastien Villemot
30b8681731
Dynare++: make multinomial coeffs computation a method of IntSequence
...
Also improve on the comments.
2019-02-20 12:37:59 +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
0f37649755
Dynare++ tensor library: modernize normal moments computation
2019-02-19 12:53:02 +01:00
Sébastien Villemot
d08ca8ca7f
Dynare++ tensor library: modernization of Kronecker product classes
2019-02-19 12:47:40 +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
23c9257f00
Dynare++: rollback the std::shared_ptr change in IntSequence
...
The performance cost is too high to warrant the change.
2019-02-14 11:05:19 +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
08a91079ce
Dynare++: change default # of threads to # logical CPUs divided by 2
...
Having twice less threads seems to give a better performance, probably because
BLAS is parallel.
2019-02-13 18:29:34 +01:00
Sébastien Villemot
579be3c5e2
Dynare tensor library tests: further modernizations
2019-02-13 16:35:06 +01:00
Sébastien Villemot
002e3d3770
Dynare++ tensor library: various simplifications/modernizations
2019-02-12 17:30:10 +01:00
Sébastien Villemot
d9f0345213
Drop support for MatIO < 1.5
2019-02-12 15:58:29 +01:00
Sébastien Villemot
8e52940181
Dynare++ tensor library: first batch of simplifications for tests
...
Also make test failures fatal.
2019-02-12 15:18:24 +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
099a1de607
Dynare++: further simplification in Vector class
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