Commit Graph

42 Commits (2f13d6610d6842adc4a4b448eb45ebd4223967e6)

Author SHA1 Message Date
Sébastien Villemot b901b7af86
Global reindentation of MEX sources 2019-12-20 16:30:24 +01:00
Sébastien Villemot 5b6c3bb452
k_order_perturbation MEX: small simplification in handling of NameLists 2019-07-09 17:33:14 +02:00
Sébastien Villemot aaaa897a2a
k_order_perturbation MEX: improve input handling and sanitization 2019-07-09 17:33:05 +02:00
Sébastien Villemot 67a49fc67b
k-order MEX: fix incorrect variable name in comment 2019-06-28 15:24:30 +02:00
Sébastien Villemot ec05451d1a
Remove symmetric elements in 3rd model derivatives 2019-06-17 16:18:07 +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 d7dd7214c7
k-order DLL: convert model derivatives from Dynare to Dynare++ format at an arbitrary order
Ref #217
2019-04-12 18:26:30 +02:00
Sébastien Villemot 2dc988b69d
k-order DLL: make model derivatives storage ready for an arbitrary order 2019-04-10 19:00:49 +02:00
Sébastien Villemot b556290d60
k-order DLL: simplify and better document correspondence between Dynare and Dynare++ variable orderings 2019-04-10 09:23:32 +02:00
Sébastien Villemot 20cbc30450
k-order DLL: various simplifications 2019-04-02 19:16:10 +02:00
Sébastien Villemot 4c11e9e9ec
Dynare++ kord and MEX: various modernizations and improvements 2019-03-07 19:46:15 +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 b5793ddd22
Dynare++: use std::unique_ptr for storage inside tensor containers 2019-02-20 17:04:34 +01:00
Sébastien Villemot 9dfb556740
k-order DLL: fix bug introduced in 1f7d3beddc
For the IntSequence class, the initialization with {} and () are no longer
equivalent.
2019-02-12 19:09:28 +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 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 3c5afded8e
k-order DLL: fix build failure 2019-01-10 19:45:11 +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 df772325a2
dynare++/kord: move away from CWEB
By the way apply Dynare C++ coding style and extensions (.cc/.hh).
2019-01-04 16:32:05 +01:00
Sébastien Villemot 50a09a687e
C++11 modernization
Incidentally, fix a memory leak related to DynamicModelAC instantiation, using
a std::unique_ptr (see Dynare/dynare#1490).
2018-11-08 17:24:19 +01:00
Stéphane Adjemian (Charybdis) 1bf81c9f5a Fixed copyright notices. 2017-05-18 18:36:38 +02:00
Stéphane Adjemian (Charybdis) b4448937cc Fixed indentation of c/h/cc/hh files. 2017-05-16 16:30:27 +02:00
Stéphane Adjemian (Charybdis) a53636e24e Fixed copyright notices. 2017-05-16 14:11:15 +02:00
Michel Juillard 5d38280f27 remove one instance of dynamic exception specification
closes issue #1250
2016-07-16 00:13:47 +02:00
Sébastien Villemot 050b495a52 Fix an invalid memory access in k_order_perturbation DLL.
In the case where a 2nd/3rd derivative is symbolically not zero but numerically
zero at the evaluation point, the last lines of the g2/g3 matrices (in
KordpDynare::calcDerivativesAtSteady()) where uninitialized (these matrices
store the sparse hessian/3rd-deriv in coordinate list form, i.e. with 3 columns
and as many rows as non-zero elements). When reconstructing the dense
hessian/3rd-deriv matrix out of g2/g3, this would result in invalid memory
accesses.
2014-03-21 17:26:48 +01:00
Sébastien Villemot f1c8ec60c7 Remove various compilation warnings 2013-06-12 16:05:35 +02:00
Michel Juillard 84164dc57e adding possibility to pass derivative matrices to k_order_perturbation
MEX function
2012-07-07 21:21:28 +02:00
Michel Juillard 287b134884 k_order mex: added derivatives as members of KorderpDynare 2012-07-06 13:52:17 +02:00
Sébastien Villemot 02652f6eb8 Updated copyright notices 2011-02-04 17:27:33 +01:00
Sébastien Villemot cc2a9d90ac Global reindentation of MEX source files 2011-02-04 16:53:12 +01:00
Houtan Bastani a11817cfa4 k-order: added support for m-files, added tests and modified manual 2010-12-22 09:48:05 +01:00
Sébastien Villemot 2d84d8dc49 K-order DLL: code simplification 2010-12-06 17:01:06 +01:00
Sébastien Villemot a9b4331a95 Bugfix at order 3 (hopefully was not affecting final results, thanks to Pablo Winant for spotting this):
- in the 3rd derivatives matrix, among symmetric elements, the first one had
the right values but the following ones were set to zero
- moreover, the k-order DLL was trying to add all the symmetric elements in the
folded tensor, instead of only keeping one value among all the symmetric ones
- hopefully, Ondra's tensor library was (silently) refusing to add symmetric
elements after the first (and right) value had been added
- so the final result was correct
2010-12-06 17:00:46 +01:00
Sébastien Villemot aa8963c1db K-order DLL: code simplification 2010-09-20 19:24:23 +02:00
Sébastien Villemot f34c31307b K-order: minor fix for order of initialization of data members 2010-06-25 15:40:36 +02:00
Michel Juillard a3d798836e k_order_perturbation: fixing bug in making of tensor of 3rd order derivatives
modifying tests and adding a new test against dynare++ output (fs2000k4.mod)
2010-05-22 16:12:39 +02:00
Sébastien Villemot 2449a4365c K-order DLL, DynareNameList class: removed memory leaks 2010-03-09 18:30:23 +01:00
Sébastien Villemot d95b0cf6d7 K-order DLL, KordpDynare class: removed memory leaks 2010-03-09 18:30:23 +01:00
Sébastien Villemot 1b3bc4a825 K-order DLL: removed useless stuff 2010-03-09 18:30:23 +01:00
Sébastien Villemot cf8f793c55 k_order_perturbation: give a value to model residuals, otherwise valgrind logs are cluttered with unitialized value errors 2010-02-09 14:32:40 +01:00
sebastien 65fc856710 k_order_perturbation: renamed source files with *.cc and *.hh extensions, for compliance with Dynare coding standards + adapted the build system accordingly
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3260 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-17 11:00:50 +00:00