 05 Dec, 2018 2 commits


Sébastien Villemot authored
 ExprNode::maxLag() and ExprNode::maxLead() now take into account exogenous deterministic variables, for consistency with M_.maximum_{lead,lag}  ExprNode::maxLag() no longer behaves as if diff() operators were expanded (i.e. it now returns 1 on diff(x(1))), for consistency with maxEndoLag() and maxExoLag()  New ExprNode::maxLagWithDiffsExpanded() method, that behaves as maxLag() used to behave (except that it also takes exogenous deterministic into account)

Sébastien Villemot authored
Previously, this function was counting the total number of diff() operators in an expression. But this is not very useful, and is potentially misleading, because in practice we use this function to compute the maximum lag on variables in levels. This function now returns the maximum number of nested diffs. For example, on diff(x)+diff(diff(y)), this function was returning 3, and it now returns 2.

 04 Dec, 2018 2 commits


Sébastien Villemot authored

Sébastien Villemot authored
This was a bug, now fixed in Bison 3.2.2. The latter version is now available on most platforms (Debian unstable/testing, Homebrew, MSYS2).

 03 Dec, 2018 2 commits


Sébastien Villemot authored

Sébastien Villemot authored

 30 Nov, 2018 1 commit


Sébastien Villemot authored

 29 Nov, 2018 1 commit


Sébastien Villemot authored

 28 Nov, 2018 4 commits


Sébastien Villemot authored
The data structure written in the driver file is changed also in the case of the "variable" option.

Sébastien Villemot authored
Those const data members are simply made public.

Sébastien Villemot authored

Houtan Bastani authored

 27 Nov, 2018 2 commits


Sébastien Villemot authored
The engine is now more robust and should reject any expression that does not conform to the expected form. It is also able to deal with more cases, such as terms appearing with a minus sign, or variables in the middle of a threefactors product. BTW, use a std::tuple for storing the result of the matching inside PacExpectationNode, and change the order of components within the structure (variable first, scalar last).

Sébastien Villemot authored

 23 Nov, 2018 2 commits


Sébastien Villemot authored

Sébastien Villemot authored

 22 Nov, 2018 5 commits


Sébastien Villemot authored
The preprocessor now writes all the symmetric elements in the "hp" matrix (derivatives of the hessian w.r.t. parameters), for consistency with all other derivatives output. Previously it was only writing one of the two symmetric elements, when indices of endogenous were different.

Sébastien Villemot authored
Also, no longer compute two times symmetric elements in derivation w.r.t. parameters at order 2, for consistency with derivation w.r.t. endogenous. It is therefore now necessary to duplicate them in the output to keep behavior unchanged.

Sébastien Villemot authored

Sébastien Villemot authored

Sébastien Villemot authored

 21 Nov, 2018 1 commit


Sébastien Villemot authored
Thanks to Akim Demaille for the suggestion.

 19 Nov, 2018 2 commits


Sébastien Villemot authored

Sébastien Villemot authored
When creating the sparse matrix (in MATLAB or C mode), since storage is in columnmajor order, output the first column, then the second, then the third. This gives a significant performance boost in use_dll mode (at both compilation and runtime), because it facilitates memory accesses and expression reusage.

 16 Nov, 2018 3 commits


Sébastien Villemot authored

Sébastien Villemot authored
Closes #13

Sébastien Villemot authored

 15 Nov, 2018 6 commits


Sébastien Villemot authored
This is the first step towards computing korder derivatives. Ref dynare#217, #10

Houtan Bastani authored

Houtan Bastani authored

Houtan Bastani authored
This reverts commit 17dd4433.

Houtan Bastani authored
This reverts commit 158f027d.

Houtan Bastani authored
This reverts commit 3776e3b8.

 09 Nov, 2018 1 commit


Houtan Bastani authored

 08 Nov, 2018 1 commit


Sébastien Villemot authored

 07 Nov, 2018 1 commit


Houtan Bastani authored

 06 Nov, 2018 1 commit


Sébastien Villemot authored
On Windows/MinGW, use the static linking flag. This enforces static linking of Boost libraries, which is needed on MSYS2. Also, use AM_CXXFLAGS and AM_LDFLAGS variables for changing flags, since CXXFLAGS and LDFLAGS are user variables.

 05 Nov, 2018 2 commits


Sébastien Villemot authored
Now both x+(y) and (x)+y are simplified using a minus operator. Also simplify some code using std::swap().

Sébastien Villemot authored
Incidentally, this fixes an issue in DataTree::operator=(), where this would cause to the copy to have a different number of nodes than the original.

 31 Oct, 2018 1 commit


Sébastien Villemot authored
